Você pode criar um jogo que permite que os jogadores gerem um personagem avatar totalmente funcional usando uma foto e um prompt de texto.
Esse processo envolve os seguintes passos:
- Solicitar uma sessão de AvatarGeneration
- Pedir ao usuário para tirar uma selfie e gerar uma imagem de visualização 2D do avatar
- Gerar o personagem Avatar completo usando HumanoidDescription
Solicitar uma sessão de AvatarGeneration
Para iniciar a geração de foto para avatar, chame AvatarCreationService:RequestAvatarGenerationSessionAsync() do servidor para solicitar uma sessão para o jogador. Uma sessão fornece a um Player um certo número de pré-visualizações de Avatar e gerações de Avatar.
Como pode levar algum tempo para que uma sessão fique disponível, AvatarCreationService:RequestAvatarGenerationSessionAsync() retorna uma RBXScriptConnection e um waitTime em segundos. O waitTime pode ser usado para fornecer ao Player informações sobre quanto tempo levará para que eles possam começar suas gerações.
Assim que uma sessão estiver pronta, o callback é invocado com um Dictionary de informações sobre a sessão. O Dictionary inclui:
- SessionId — passado como argumento ao chamar AvatarCreationService:GenerateAvatar2DPreviewAsync() e AvatarCreationService:GenerateAvatarAsync()
- Allowed2DGenerations — o número de gerações de pré-visualização 2D permitidas em uma sessão
- Allowed3DGenerations — o número de gerações de avatar 3D permitidas em uma sessão
- SessionTime — o tempo máximo para uma sessão em segundos
Pedir selfie e gerar pré-visualização 2D
Depois que uma sessão é iniciada, peça ao usuário para tirar uma selfie e obtenha o fileId string chamando o método AvatarCreationService:PromptSelectAvatarGenerationImageAsync() no servidor. Este fileId será passado para o método AvatarCreationService:GenerateAvatar2DPreviewAsync().
Para criar uma imagem de pré-visualização 2D do Avatar, chame os seguintes métodos:
O AvatarCreationService:GenerateAvatar2DPreviewAsync() leva o SessionId, fileId e um prompt de texto opcional como entrada para gerar uma pré-visualização 2D do Avatar. Este método retorna um previewId.
Este previewId deve ser enviado ao cliente e pode então ser usado para recuperar a pré-visualização como um EditableImage.
Se o usuário não estiver satisfeito com a pré-visualização gerada, esse fluxo de trabalho pode ser repetido.
Gerar o avatar 3D
Uma vez que o usuário esteja satisfeito com a pré-visualização, você pode gerar o personagem avatar 3D completo.
Para gerar um personagem avatar:
- Chame AvatarCreationService:GenerateAvatarAsync() no Servidor com um Dictionary contendo o SessionId e PreviewId.
- Esta chamada de método retorna um string generationId.
- Recupere os dados do avatar gerado como um HumanoidDescription usando o método AvatarCreationService:LoadGeneratedAvatarAsync() tanto no servidor do jogo quanto no cliente.
- Você pode usar o método Players.CreateHumanoidModelFromDescription para criar um modelo de avatar a partir do HumanoidDescription para exibir ao Player.
Os ativos de malha e textura serão fornecidos como objetos EditableMesh e EditableImage, respectivamente, para permitir edição contínua do avatar gerado. As edições devem ser feitas tanto no servidor do jogo quanto na cópia do cliente para mantê-las em sincronia para publicação.
Publicar
Se o usuário estiver satisfeito com o avatar resultante, ele pode ser publicado usando o método AvatarCreationService:PromptCreateAvatarAsync().
Para mais detalhes, consulte criação em jogo.