Bir oyunda oyuncuların 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 avatar oluşturma oturumu talep edin.
- Kullanıcıdan bir selfie çekmesini isteyin ve avatarın 2D önizleme resmini oluşturun.
- HumanoidDescription kullanarak tam avatar karakterini oluşturun.
Avatar oluşturma 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, Player'a belirli sayıda avatar önizlemesi ve avatar oluşturma hakkı sağlar.
Bir oturumun kullanılabilir hale gelmesi biraz zaman alabileceğinden, AvatarCreationService:RequestAvatarGenerationSessionAsync() bir RBXScriptConnection ve bekleme süresi (waitTime) döndürür. Bekleme süresi, Player'a nesillerini başlatmak için ne kadar süre beklemesi gerektiği hakkında bilgi vermek için kullanılabilir.
Bir oturum hazır olduğunda, geri çağırma, oturum hakkında bilgi 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 oluşturma sayısı.
- Allowed3DGenerations — Bir oturumda izin verilen avatar oluşturma 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ıdan bir selfie çekmesini isteyin ve sunucuda AvatarCreationService:PromptSelectAvatarGenerationImageAsync() yöntemini çağırarak fileId string'ini alın. Bu fileId, AvatarCreationService:GenerateAvatar2DPreviewAsync() yöntemine geçirilecektir.
Avatarın 2D önizleme resmini oluşturmak için aşağıdaki yöntemleri çağırın:
AvatarCreationService:GenerateAvatar2DPreviewAsync(), 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 EditableImage olarak önizlemeyi almak için kullanılabilir.
Eğer kullanıcı oluşturulan önizlemeden memnun değilse, bu iş akışı tekrarlanabilir.
Avatarı oluşturma
Kullanıcı önizlemeden memnun kaldığında, tam 3D avatar karakterini oluşturabilirsiniz.
Bir avatar karakteri oluşturmak için:
- Sunucuda SessionId ve PreviewId içeren bir Dictionary ile AvatarCreationService:GenerateAvatarAsync() çağrısını yapın.
- Bu yöntem çağrısı bir string generationId döndürür.
- Hem oyun sunucusunda hem de istemcide AvatarCreationService:LoadGeneratedAvatarAsync() yöntemi ile oluşturulan avatar verilerini HumanoidDescription olarak alın.
- HumanoidDescription'dan bir avatar modeli oluşturmak için Players.CreateHumanoidModelFromDescription yöntemini kullanarak Player'a göstermek için kullanın.
Ağ ve doku varlıkları, oluşturulan avatarın düzenlenmesine devam etmek için sırasıyla EditableMesh ve EditableImage nesneleri olarak sağlanır. Düzenlemeler, yayın için senkronize kalmalarını sağlamak amacıyla hem oyun sunucusunda hem de istemci kopyasında yapılmalıdır.
Avatarı yayınlama
Kullanıcı sonuçlanan avatarla memnun kaldığında, AvatarCreationService:PromptCreateAvatarAsync() yöntemini kullanarak yayınlayabilir.
Daha fazla bilgi için oyun içi oluşturma sayfasına bakın.