يمكنك إنشاء لعبة تسمح للاعبين بتوليد شخصية صورة رمزية وظيفية بالكامل باستخدام صورة وإشارة نصية.
تشمل هذه العملية الخطوات التالية:
- طلب جلسة توليد صورة رمزية
- تحفيز المستخدم لأخذ صورة شخصية وتوليد صورة معاينة ثنائية الأبعاد للصورة الرمزية
- توليد الشخصية الكاملة للصورة الرمزية باستخدام HumanoidDescription
طلب جلسة توليد صورة رمزية
للبدء في توليد الصورة إلى الصورة الرمزية، اتصل بـ AvatarCreationService:RequestAvatarGenerationSessionAsync() من الخادم لطلب جلسة للاعب. توفر الجلسة لـ Player عددًا معينًا من معاينات الصور الرمزية وتوليدات الصور الرمزية.
نظرًا لأنه قد يستغرق بعض الوقت لتصبح الجلسة متاحة، تعيد AvatarCreationService:RequestAvatarGenerationSessionAsync() قيمة RBXScriptConnection و waitTime بالثواني. يمكن استخدام waitTime لتزويد Player بمعلومات حول المدة التي ستستغرقها للبدء في توليدها.
بمجرد أن تصبح الجلسة جاهزة، يتم استدعاء الرد مع Dictionary من المعلومات حول الجلسة. يتضمن Dictionary:
- SessionId — تمرر كحجة عند استدعاء AvatarCreationService:GenerateAvatar2DPreviewAsync() و AvatarCreationService:GenerateAvatarAsync()
- Allowed2DGenerations — عدد توليدات المعاينة الثنائية الأبعاد المسموح بها في الجلسة
- Allowed3DGenerations — عدد توليدات الصورة الرمزية ثلاثية الأبعاد المسموح بها في الجلسة
- SessionTime — الحد الأقصى لوقت الجلسة بالثواني
تحفيز الصورة الشخصية وتوليد المعاينة الثنائية الأبعاد
بعد بدء الجلسة، قم بتحفيز المستخدم لأخذ صورة شخصية والحصول على fileId string عن طريق استدعاء طريقة AvatarCreationService:PromptSelectAvatarGenerationImageAsync() على الخادم. سيتم تمرير fileId هذا إلى طريقة AvatarCreationService:GenerateAvatar2DPreviewAsync().
لإنشاء صورة معاينة ثنائية الأبعاد للصورة الرمزية، اتصل بالطرق التالية:
تأخذ طريقة AvatarCreationService:GenerateAvatar2DPreviewAsync() SessionId وfileId وإشارة نصية اختيارية كمدخلات لتوليد معاينة ثنائية الأبعاد للصورة الرمزية. تعيد هذه الطريقة previewId.
يجب إرسال previewId إلى العميل، ويمكن استخدامه بعد ذلك لاسترجاع المعاينة كـ EditableImage.
إذا لم يكن المستخدم راضيًا عن المعاينة المولدة، يمكن تكرار هذه العملية.
توليد الصورة الرمزية ثلاثية الأبعاد
بمجرد أن يكون المستخدم راضيًا عن المعاينة، يمكنك توليد شخصية الصورة الرمزية ثلاثية الأبعاد الكاملة.
لتوليد شخصية الصورة الرمزية:
- اتصل بـ AvatarCreationService:GenerateAvatarAsync() على الخادم مع Dictionary يحتوي على SessionId وPreviewId.
- تُعيد هذه المكالمة method قيمة string generationId.
- استرجع بيانات الصورة الرمزية المولدة كـ HumanoidDescription باستخدام طريقة AvatarCreationService:LoadGeneratedAvatarAsync() على كل من الخادم الخاص باللعبة والعميل.
- يمكنك استخدام طريقة Players.CreateHumanoidModelFromDescription لإنشاء نموذج صورة رمزية من HumanoidDescription لعرضه على Player.
سيتم توفير أصول الشبكة والقوام ككائنات EditableMesh و EditableImage على التوالي، للسماح بتحرير مستمر للصورة الرمزية المولدة. يجب إجراء التعديلات على كل من الخادم الخاص باللعبة ونسخة العميل للحفاظ على التزامن للنشر.
نشر
إذا كان المستخدم راضيًا عن الصورة الرمزية الناتجة، يمكن نشرها باستخدام طريقة AvatarCreationService:PromptCreateAvatarAsync().
لمزيد من التفاصيل، انظر الإنشاء داخل اللعبة.