Bir oyuncunun bir fotoğraf ve bir metin istemi kullanarak tamamen işlevsel bir avatar karakteri oluşturmasına izin veren bir oyun oluşturabilirsiniz.
Bu süreç aşağıdaki adımları içerir:
- Bir AvatarGeneration oturumu talep etme
- Kullanıcıyı bir selfie çekmeye yönlendirme ve avatarın 2D önizleme görüntüsünü oluşturma
- HumanoidDescription kullanarak tam Avatar karakterini oluşturma
Bir AvatarGeneration oturumu talep etme
Foto'dan avatar oluşturmayı başlatmak için, sunucudan AvatarCreationService:RequestAvatarGenerationSessionAsync() çağrısını yaparak oyuncu için bir oturum talep edin. Bir oturum, bir Player'a belirli sayıda Avatar önizlemesi ve Avatar oluşturması sağlar.
Bir oturumun kullanılabilir hale gelmesi zaman alabileceğinden, AvatarCreationService:RequestAvatarGenerationSessionAsync() bir RBXScriptConnection ve bekleme süresi döndürür. Bekleme süresi, Player'a nesillerini başlatmak için ne kadar zaman alacağını bildirmek için kullanılabilir.
Oturum hazır olduğunda, geri çağrım, oturumla ilgili bilgileri içeren bir Dictionary ile çağrılır. Dictionary şunları içerir:
- SessionId — AvatarCreationService:GenerateAvatar2DPreviewAsync() ve AvatarCreationService:GenerateAvatarAsync() çağrılırken bir argüman olarak geçilir
- Allowed2DGenerations — bir oturumda izin verilen 2D önizleme üretimleri sayısı
- Allowed3DGenerations — bir oturumda izin verilen 3D avatar üretimleri sayısı
- SessionTime — bir oturumun maksimum süresi (saniye cinsinden)
Selfie çekme ve 2D önizleme oluşturma
Bir oturum başlatıldıktan sonra, kullanıcıyı bir selfie çekmeye yönlendirin ve AvatarCreationService:PromptSelectAvatarGenerationImageAsync() yöntemini sunucuda çağırarak fileId string alın. Bu fileId, AvatarCreationService:GenerateAvatar2DPreviewAsync() yöntemine geçirilecektir.
Avatar'ın 2D önizleme görüntüsünü oluşturmak için şu yöntemleri çağırın:
AvatarCreationService:GenerateAvatar2DPreviewAsync(), bir 2D Avatar önizlemesi oluşturmak için giriş olarak SessionId, fileId ve isteğe bağlı bir metin istemi alır. Bu yöntem bir previewId döndürür.
Bu previewId istemciye gönderilmeli ve ardından bir EditableImage olarak önizlemeyi almak için kullanılabilir.
Kullanıcı oluşturulan önizlemeden memnun değilse, bu iş akışı tekrarlanabilir.
3D avatar oluşturma
Kullanıcı önizlemeden memnunsa, tam 3D avatar karakterini oluşturabilirsiniz.
Bir avatar karakteri oluşturmak için:
- Sunucuda bir Dictionary içeren SessionId ve PreviewId ile AvatarCreationService:GenerateAvatarAsync() çağrısını yapın.
- Bu yöntem çağrısı bir string generationId döndürür.
- Üretilen avatar verilerini bir HumanoidDescription olarak almak için hem oyun sunucusunda hem de istemcide AvatarCreationService:LoadGeneratedAvatarAsync() yöntemini kullanın.
- HumanoidDescription'dan bir avatar modeli oluşturmak için Players.CreateHumanoidModelFromDescription yöntemini kullanarak Player'a gösterebilirsiniz.
Ağ ve doku varlıkları, oluşturulan avatarın sürekli düzenlenmesini sağlamak için sırasıyla EditableMesh ve EditableImage nesneleri olarak sağlanacaktır. Düzenlemeler, yayınlamak için senkronize tutmak amacıyla hem oyun sunucusunda hem de istemci kopyasında yapılmalıdır.
Yayınlama
Kullanıcı sonuçta elde edilen avatar ile memnun kalıyorsa, AvatarCreationService:PromptCreateAvatarAsync() yöntemini kullanarak yayınlanabilir.
Daha fazla ayrıntı için oyun içi oluşturma sayfasına bakın.