您可以創建一個遊戲,允許玩家使用照片和文本提示生成一個完整功能的角色。
此過程涉及以下步驟:
- 請求 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。
網格和材質資產將提供作為 EditableMesh 和 EditableImage 對象,以便對生成的角色進行持續編輯。應在遊戲伺服器和客戶端副本上進行編輯,以保持同步以便發布。
發布
如果用戶對生成的角色滿意,可以使用 AvatarCreationService:PromptCreateAvatarAsync() 方法進行發布。
有關詳細資訊,請參閱 遊戲內創作。