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