Puedes crear un juego que permita a los jugadores generar un personaje avatar totalmente funcional utilizando una foto y un mensaje de texto.
Este proceso implica los siguientes pasos:
- Solicitar una sesión de AvatarGeneration
- Invitar al usuario a tomar una selfie y generar una imagen de vista previa 2D del avatar
- Generar el personaje Avatar completo utilizando HumanoidDescription
Solicitar una sesión de AvatarGeneration
Para comenzar la generación de foto-a-avatar, llama a AvatarCreationService:RequestAvatarGenerationSessionAsync() desde el servidor para solicitar una sesión para el jugador. Una sesión proporciona a un Player un cierto número de vistas previas de Avatar y generaciones de Avatar.
Como puede tomar algún tiempo que una sesión esté disponible, AvatarCreationService:RequestAvatarGenerationSessionAsync() devuelve un RBXScriptConnection y un waitTime en segundos. El waitTime puede ser utilizado para proporcionar al Player información sobre cuánto tiempo les llevará empezar sus generaciones.
Una vez que una sesión esté lista, la función de devolución de llamada se invoca con un Dictionary de información sobre la sesión. El Dictionary incluye:
- SessionId — pasado como argumento al llamar a AvatarCreationService:GenerateAvatar2DPreviewAsync() y AvatarCreationService:GenerateAvatarAsync()
- Allowed2DGenerations — el número de generaciones de vista previa 2D permitidas en una sesión
- Allowed3DGenerations — el número de generaciones de avatar 3D permitidas en una sesión
- SessionTime — el tiempo máximo para una sesión en segundos
Invitar a tomar una selfie y generar una vista previa 2D
Después de que se inicie una sesión, invita al usuario a tomar una selfie y obtén el fileId string llamando al método AvatarCreationService:PromptSelectAvatarGenerationImageAsync() en el servidor. Este fileId se pasará al método AvatarCreationService:GenerateAvatar2DPreviewAsync().
Para crear una imagen de vista previa 2D del Avatar llama a los siguientes métodos:
- AvatarCreationService:GenerateAvatar2DPreviewAsync() en el servidor
- AvatarCreationService:LoadAvatar2DPreviewAsync() en el cliente
El método AvatarCreationService:GenerateAvatar2DPreviewAsync() toma el SessionId, fileId y un mensaje de texto opcional como entrada para generar una vista previa 2D del Avatar. Este método devuelve un previewId.
Este previewId debe ser enviado al cliente y luego se puede usar para recuperar la vista previa como un EditableImage.
Si el usuario no está satisfecho con la vista previa generada, este flujo de trabajo puede repetirse.
Generar el avatar 3D
Una vez que el usuario esté satisfecho con la vista previa, puedes generar el personaje avatar 3D completo.
Para generar un personaje avatar:
- Llama a AvatarCreationService:GenerateAvatarAsync() en el servidor con un Dictionary que contenga el SessionId y PreviewId.
- Esta llamada al método devuelve un string generationId.
- Recupera los datos del avatar generado como una HumanoidDescription utilizando el método AvatarCreationService:LoadGeneratedAvatarAsync() en el servidor del juego y en el cliente.
- Puedes usar el método Players.CreateHumanoidModelFromDescription para crear un modelo de avatar a partir de la HumanoidDescription para mostrarlo al Player.
Los activos de malla y textura se proporcionarán como objetos EditableMesh y EditableImage, respectivamente, para permitir la edición continua del avatar generado. Las ediciones deben realizarse tanto en el servidor del juego como en la copia del cliente para mantenerlos sincronizados para su publicación.
Publicar
Si el usuario está satisfecho con el avatar resultante, se puede publicar utilizando el método AvatarCreationService:PromptCreateAvatarAsync().
Para obtener más detalles sobre la creación en el juego.