プレイヤーが写真とテキストプロンプトを使用して完全に機能するアバターキャラクターを生成できるゲームを作成することができます。
このプロセスには次の手順が含まれます。
- AvatarGeneration セッションをリクエストする
- ユーザーに自撮りを促し、アバターの 2D プレビュー画像を生成する
- HumanoidDescription を使用して完全なアバターキャラクターを生成する
AvatarGeneration セッションをリクエストする
写真からアバターを生成するためには、サーバーから AvatarCreationService:RequestAvatarGenerationSessionAsync() を呼び出してプレイヤーのセッションをリクエストします。セッションは、特定の数のアバタープレビューおよびアバター生成を Player に提供します。
セッションが利用可能になるまでに時間がかかる場合があるため、AvatarCreationService:RequestAvatarGenerationSessionAsync() は RBXScriptConnection と待機時間(秒単位)を返します。この待機時間は、Player に生成を開始できるまでの時間を提供するために使用できます。
セッションが準備できたら、コールバックがセッションに関する情報の Dictionary で呼び出されます。この Dictionary には次の情報が含まれます:
- SessionId — AvatarCreationService:GenerateAvatar2DPreviewAsync() と AvatarCreationService:GenerateAvatarAsync() を呼び出す際に引数として渡されます
- Allowed2DGenerations — セッション内で許可される 2D プレビュー生成の数
- Allowed3DGenerations — セッション内で許可される 3D アバター生成の数
- SessionTime — セッションの最大時間(秒単位)
自撮りを促し、2D プレビューを生成する
セッションが開始されたら、ユーザーに自撮りを促し、サーバー上で AvatarCreationService:PromptSelectAvatarGenerationImageAsync() メソッドを呼び出して fileId の string を取得します。この fileId は AvatarCreationService:GenerateAvatar2DPreviewAsync() メソッドに渡されます。
アバターの 2D プレビュー画像を作成するには、次のメソッドを呼び出します:
AvatarCreationService:GenerateAvatar2DPreviewAsync() は、SessionId、fileId、オプションのテキストプロンプトを入力として受け取り、2D アバタープレビューを生成します。このメソッドは previewId を返します。
この previewId はクライアントに送信され、その後 EditableImage としてプレビューを取得するために使用できます。
ユーザーが生成されたプレビューに満足していない場合、このワークフローは繰り返すことができます。
3D アバターを生成する
ユーザーがプレビューに満足したら、完全な 3D アバターキャラクターを生成できます。
アバターキャラクターを生成するには:
- サーバー上で AvatarCreationService:GenerateAvatarAsync() を呼び出し、SessionId と PreviewId を含む Dictionary を渡します。
- このメソッド呼び出しは string 型の generationId を返します。
- AvatarCreationService:LoadGeneratedAvatarAsync() メソッドを使用して、ゲームサーバーとクライアントの両方で生成されたアバターデータを HumanoidDescription として取得します。
- HumanoidDescription からアバターモデルを作成するために Players.CreateHumanoidModelFromDescription メソッドを使用して、Player に表示させることができます。
メッシュおよびテクスチャアセットは、それぞれ EditableMesh と EditableImage オブジェクトとして提供され、生成されたアバターの編集を継続できるようになります。編集は、公開のためにゲームサーバーとクライアントのコピーの両方で行う必要があります。
公開
ユーザーが生成されたアバターに満足した場合、AvatarCreationService:PromptCreateAvatarAsync() メソッドを使用して公開できます。
詳細については、ゲーム内作成を参照してください。