Sie können ein Spiel erstellen, das es Spielern ermöglicht, einen voll funktionsfähigen Avatar-Charakter mithilfe eines Fotos und eines Textprompts zu generieren.
Dieser Prozess umfasst die folgenden Schritte:
- Fordern Sie eine AvatarGeneration-Sitzung an
- Fordern Sie den Benutzer auf, ein Selfie zu machen und ein 2D-Vorschau-Bild des Avatars zu generieren
- Generieren Sie den vollständigen Avatar-Charakter mithilfe von HumanoidDescription
Fordern Sie eine AvatarGeneration-Sitzung an
Um mit der Fotografie-zu-Avatar-Generierung zu beginnen, rufen Sie AvatarCreationService:RequestAvatarGenerationSessionAsync() vom Server aus auf, um eine Sitzung für den Spieler anzufordern. Eine Sitzung bietet einem Player eine bestimmte Anzahl von Avatar-Vorschauen und Avatar-Generierungen.
Da es einige Zeit dauern kann, bis eine Sitzung verfügbar ist, gibt AvatarCreationService:RequestAvatarGenerationSessionAsync() eine RBXScriptConnection und eine Wartezeit in Sekunden zurück. Die Wartezeit kann verwendet werden, um dem Player Informationen darüber zu geben, wie lange es dauern wird, bis er mit seinen Generierungen beginnen kann.
Sobald eine Sitzung bereit ist, wird der Callback mit einem Dictionary von Informationen über die Sitzung aufgerufen. Das Dictionary enthält:
- SessionId — als Argument übergeben, wenn AvatarCreationService:GenerateAvatar2DPreviewAsync() und AvatarCreationService:GenerateAvatarAsync() aufgerufen werden
- Allowed2DGenerations — die Anzahl der in einer Sitzung erlaubten 2D-Vorschau-Generierungen
- Allowed3DGenerations — die Anzahl der in einer Sitzung erlaubten 3D-Avatar-Generierungen
- SessionTime — die maximale Zeit für eine Sitzung in Sekunden
Fordern Sie ein Selfie an und generieren Sie eine 2D-Vorschau
Nachdem eine Sitzung gestartet wurde, fordern Sie den Benutzer auf, ein Selfie zu machen und die fileId string zu erhalten, indem Sie die Methode AvatarCreationService:PromptSelectAvatarGenerationImageAsync() auf dem Server aufrufen. Diese fileId wird an die Methode AvatarCreationService:GenerateAvatar2DPreviewAsync() übergeben.
Um ein 2D-Vorschau-Bild des Avatars zu erstellen, rufen Sie die folgenden Methoden auf:
- AvatarCreationService:GenerateAvatar2DPreviewAsync() auf dem Server
- AvatarCreationService:LoadAvatar2DPreviewAsync() auf dem Client
Die AvatarCreationService:GenerateAvatar2DPreviewAsync() benötigt die SessionId, fileId und einen optionalen Textprompt als Eingabe, um eine 2D-Avatar-Vorschau zu generieren. Diese Methode gibt eine previewId zurück.
Diese previewId sollte an den Client gesendet werden und kann dann verwendet werden, um die Vorschau als EditableImage abzurufen.
Sollte der Benutzer mit der generierten Vorschau nicht zufrieden sein, kann dieser Workflow wiederholt werden.
Generieren Sie den 3D-Avatar
Sobald der Benutzer mit der Vorschau zufrieden ist, können Sie den vollständigen 3D-Avatar-Charakter generieren.
Um einen Avatar-Charakter zu generieren:
- Rufen Sie AvatarCreationService:GenerateAvatarAsync() auf dem Server mit einem Dictionary auf, das die SessionId und PreviewId enthält.
- Dieser Methodenaufruf gibt eine string generationId zurück.
- Rufen Sie die generierten Avatar-Daten als HumanoidDescription mithilfe der Methode AvatarCreationService:LoadGeneratedAvatarAsync() sowohl auf dem Spielserver als auch auf dem Client ab.
- Sie können die Methode Players.CreateHumanoidModelFromDescription verwenden, um ein Avatar-Modell aus der HumanoidDescription zu erstellen, das dem Player angezeigt wird.
Mesh- und Textur-Assets werden als EditableMesh und EditableImage Objekte bereitgestellt, um eine weitere Bearbeitung des generierten Avatars zu ermöglichen. Änderungen sollten sowohl auf dem Spielserver als auch auf der Client-Kopie vorgenommen werden, um sie beim Veröffentlichen synchron zu halten.
Veröffentlichen
Wenn der Benutzer mit dem resultierenden Avatar zufrieden ist, kann er mit der Methode AvatarCreationService:PromptCreateAvatarAsync() veröffentlicht werden.
Für weitere Details siehe In-Game-Generierung.