Vous pouvez créer un jeu qui permet aux joueurs de générer un personnage avatar entièrement fonctionnel à partir d'une photo et d'une invite textuelle.
Ce processus implique les étapes suivantes :
- Demander une session de génération d'avatar.
- Inviter l'utilisateur à prendre un selfie et générer une image de prévisualisation 2D de l'avatar.
- Générer le personnage avatar complet en utilisant HumanoidDescription.
Demander une session de génération d'avatar
Pour commencer une génération de photo en avatar, appelez AvatarCreationService:RequestAvatarGenerationSessionAsync() depuis le serveur pour demander une session pour le joueur. Une session fournit à un Player un certain nombre de prévisualisations d'avatar et de générations d'avatar.
Comme il peut falloir un certain temps pour qu'une session soit disponible, AvatarCreationService:RequestAvatarGenerationSessionAsync() renvoie un RBXScriptConnection et un waitTime en secondes. Le waitTime peut être utilisé pour fournir au Player des informations sur le temps qu'il faudra pour qu'il puisse commencer ses générations.
Une fois qu'une session est prête, le rappel est invoqué avec un Dictionary d'informations sur la session. Le Dictionary comprend :
- SessionId — Passé en argument lors de l'appel de AvatarCreationService:GenerateAvatar2DPreviewAsync() et AvatarCreationService:GenerateAvatarAsync().
- Allowed2DGenerations — Le nombre de générations de prévisualisation 2D autorisées dans une session.
- Allowed3DGenerations — Le nombre de générations d'avatar autorisées dans une session.
- SessionTime — Le temps maximum pour une session en secondes.
Inviter à prendre un selfie et générer une prévisualisation 2D
Après le démarrage d'une session, invitez l'utilisateur à prendre un selfie et obtenez le fileId string en appelant la méthode AvatarCreationService:PromptSelectAvatarGenerationImageAsync() sur le serveur. Ce fileId sera passé à la méthode AvatarCreationService:GenerateAvatar2DPreviewAsync().
Pour créer une image de prévisualisation 2D de l'avatar, appelez les méthodes suivantes :
- AvatarCreationService:GenerateAvatar2DPreviewAsync() sur le serveur.
- AvatarCreationService:LoadAvatar2DPreviewAsync() sur le client.
La méthode AvatarCreationService:GenerateAvatar2DPreviewAsync() prend le SessionId, le fileId et une invite textuelle optionnelle en entrée pour générer une prévisualisation d'avatar 2D. Cette méthode renvoie un previewId.
Ce previewId doit être envoyé au client et peut ensuite être utilisé pour récupérer la prévisualisation en tant que EditableImage.
Si l'utilisateur n'est pas satisfait de la prévisualisation générée, ce flux de travail peut être répété.
Générer l'avatar
Une fois que l'utilisateur est satisfait de la prévisualisation, vous pouvez générer le personnage avatar 3D complet.
Pour générer un personnage avatar :
- Appelez AvatarCreationService:GenerateAvatarAsync() sur le serveur avec un Dictionary contenant le SessionId et le PreviewId.
- Cet appel de méthode renvoie un string generationId.
- Récupérez les données de l'avatar généré en tant que HumanoidDescription en utilisant la méthode AvatarCreationService:LoadGeneratedAvatarAsync() à la fois sur le serveur de jeu et sur le client.
- Utilisez la méthode Players.CreateHumanoidModelFromDescription pour créer un modèle d'avatar à partir de la HumanoidDescription à afficher au Player.
Les actifs de maillage et de texture sont fournis en tant qu'objets EditableMesh et EditableImage, respectivement, pour permettre une édition continue de l'avatar généré. Les modifications doivent être effectuées à la fois sur le serveur de jeu et sur la copie client pour les garder synchronisées pour la publication.
Publier l'avatar
Si l'utilisateur est satisfait de l'avatar résultant, il peut être publié en utilisant la méthode AvatarCreationService:PromptCreateAvatarAsync().
Pour plus d'informations, consultez la création en jeu.