プレイヤーが写真とテキストプロンプトを使用して、完全に機能するアバターキャラクターを生成できる経験を作成できます。
このプロセスには以下のステップが含まれます:
- 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生成IDを返します。
- 経験のサーバーとクライアントの両方でAvatarCreationService:LoadGeneratedAvatarAsync()メソッドを使用して、生成されたアバターデータをHumanoidDescriptionとして取得します。
- Players.CreateHumanoidModelFromDescriptionメソッドを使用して、HumanoidDescriptionからアバターモデルを作成し、Playerに表示することができます。
メッシュとテクスチャアセットは、それぞれEditableMeshとEditableImageオブジェクトとして提供され、生成されたアバターの編集を続けることができます。公開のために同期を保つため、編集は経験のサーバーとクライアントのコピーの両方で行われるべきです。
公開
ユーザーが生成されたアバターに満足した場合は、AvatarCreationService:PromptCreateAvatarAsync()メソッドを使用して公開できます。
詳細については、経験内での作成を参照してください。