您可以創建一個遊戲,允許玩家使用照片和文本提示生成一個功能完整的虛擬形象角色。
此過程涉及以下步驟:
- 請求虛擬形象生成會話。
- 提示用戶拍攝自拍並生成虛擬形象的 2D 預覽圖像。
- 使用 HumanoidDescription 生成完整的虛擬形象角色。
請求虛擬形象生成會話
要開始照片轉化為虛擬形象的生成,請從伺服器調用 AvatarCreationService:RequestAvatarGenerationSessionAsync() 來請求玩家的會話。會話為 Player 提供一定數量的虛擬形象預覽和虛擬形象生成。
由於會話可能需要一些時間才能可用,AvatarCreationService:RequestAvatarGenerationSessionAsync() 返回一個 RBXScriptConnection 和一個以秒為單位的 waitTime。waitTime 可用於向 Player 提供有關他們何時能開始生成的資訊。
一旦會話準備就緒,回調將被調用,並帶有有關會話的 Dictionary 資訊。Dictionary 包括:
- SessionId — 在調用 AvatarCreationService:GenerateAvatar2DPreviewAsync() 和 AvatarCreationService:GenerateAvatarAsync() 時作為參數傳遞。
- Allowed2DGenerations — 在會話中允許的 2D 預覽生成數量。
- Allowed3DGenerations — 在會話中允許的虛擬形象生成數量。
- SessionTime — 會話的最大時間(以秒為單位)。
提示自拍並生成 2D 預覽
會話開始後,提示用戶拍攝自拍並通過在伺服器上調用 AvatarCreationService:PromptSelectAvatarGenerationImageAsync() 方法來獲取 fileId string。此 fileId 將傳遞給 AvatarCreationService:GenerateAvatar2DPreviewAsync() 方法。
要創建虛擬形象的 2D 預覽圖像,請調用以下方法:
AvatarCreationService:GenerateAvatar2DPreviewAsync() 以 SessionId、fileId 和可選的文本提示作為輸入來生成 2D 虛擬形象預覽。此方法返回一個 previewId。
此 previewId 應發送到客戶端,然後可以用來檢索預覽作為 EditableImage。
如果用戶對生成的預覽不滿意,可以重複此工作流程。
生成虛擬形象
一旦用戶對預覽感到滿意,您可以生成完整的 3D 虛擬形象角色。
要生成虛擬形象角色:
- 在伺服器上調用 AvatarCreationService:GenerateAvatarAsync(),並傳遞包含 SessionId 和 PreviewId 的 Dictionary。
- 此方法調用返回一個 string generationId。
- 使用 AvatarCreationService:LoadGeneratedAvatarAsync() 方法在遊戲伺服器和客戶端上檢索生成的虛擬形象數據作為 HumanoidDescription。
網格和紋理資產分別作為 EditableMesh 和 EditableImage 對象提供,以允許對生成的虛擬形象進行持續編輯。編輯應在遊戲伺服器和客戶端副本上進行,以保持它們在發布時的同步。
發布虛擬形象
如果用戶對生成的虛擬形象感到滿意,可以使用 AvatarCreationService:PromptCreateAvatarAsync() 方法進行發布。
欲了解更多資訊,請參閱 遊戲內創建。