Anda dapat membuat game yang memungkinkan pemain untuk menghasilkan karakter avatar fungsional penuh menggunakan foto dan prompt teks.
Proses ini melibatkan langkah-langkah berikut:
- Meminta sesi AvatarGeneration
- Meminta pengguna untuk mengambil selfie dan menghasilkan gambar pratinjau 2D avatar
- Menghasilkan karakter Avatar lengkap menggunakan HumanoidDescription
Meminta sesi AvatarGeneration
Untuk memulai generasi foto ke avatar, panggil AvatarCreationService:RequestAvatarGenerationSessionAsync() dari server untuk meminta sesi bagi pemain. Sesi memberikan Player sejumlah pratinjau Avatar dan generasi Avatar tertentu.
Karena mungkin diperlukan waktu sebelum sesi tersedia, AvatarCreationService:RequestAvatarGenerationSessionAsync() mengembalikan RBXScriptConnection dan waitTime dalam detik. waitTime dapat digunakan untuk memberikan informasi kepada Player tentang berapa lama waktu yang dibutuhkan agar mereka dapat memulai generasi mereka.
Setelah sesi siap, callback dipanggil dengan Dictionary informasi tentang sesi tersebut. Dictionary ini mencakup:
- SessionId — diteruskan sebagai argumen saat memanggil AvatarCreationService:GenerateAvatar2DPreviewAsync() dan AvatarCreationService:GenerateAvatarAsync()
- Allowed2DGenerations — jumlah generasi pratinjau 2D yang diizinkan dalam sesi
- Allowed3DGenerations — jumlah generasi avatar 3D yang diizinkan dalam sesi
- SessionTime — waktu maksimum untuk sesi dalam detik
Meminta selfie dan menghasilkan pratinjau 2D
Setelah sesi dimulai, minta pengguna untuk mengambil selfie dan dapatkan fileId string dengan memanggil metode AvatarCreationService:PromptSelectAvatarGenerationImageAsync() di Server. fileId ini akan diteruskan ke metode AvatarCreationService:GenerateAvatar2DPreviewAsync().
Untuk membuat gambar pratinjau 2D dari Avatar, panggil metode berikut:
AvatarCreationService:GenerateAvatar2DPreviewAsync() membutuhkan SessionId, fileId dan prompt teks opsional sebagai input untuk menghasilkan pratinjau Avatar 2D. Metode ini mengembalikan previewId.
previewId ini harus dikirim ke klien dan kemudian dapat digunakan untuk mengambil pratinjau sebagai EditableImage.
Jika pengguna tidak puas dengan pratinjau yang dihasilkan, alur kerja ini dapat diulang.
Menghasilkan avatar 3D
Setelah pengguna puas dengan pratinjau, Anda dapat menghasilkan karakter avatar 3D yang lengkap.
Untuk menghasilkan karakter avatar:
- Panggil AvatarCreationService:GenerateAvatarAsync() di Server dengan Dictionary yang berisi SessionId dan PreviewId.
- Panggilan metode ini mengembalikan string generationId.
- Ambil data avatar yang dihasilkan sebagai HumanoidDescription menggunakan metode AvatarCreationService:LoadGeneratedAvatarAsync() di server game dan klien.
- Anda dapat menggunakan metode Players.CreateHumanoidModelFromDescription untuk membuat model avatar dari HumanoidDescription untuk ditampilkan kepada Player.
Aset mesh dan tekstur akan disediakan sebagai objek EditableMesh dan EditableImage, masing-masing, untuk memungkinkan pengeditan terus menerus dari avatar yang dihasilkan. Perubahan harus dilakukan baik di server game maupun salinan klien untuk menjaga keselarasan sebelum diterbitkan.
Menerbitkan
Jika pengguna puas dengan avatar yang dihasilkan, avatar tersebut dapat diterbitkan dengan menggunakan metode AvatarCreationService:PromptCreateAvatarAsync().
Untuk detail lebih lanjut lihat pembuatan dalam permainan.