사진과 텍스트 프롬프트를 사용하여 플레이어가 완전한 기능을 갖춘 아바타 캐릭터를 생성할 수 있는 게임을 만들 수 있습니다.
이 과정은 다음 단계로 이루어집니다:
- 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()는 세션 ID, fileId 및 선택적 텍스트 프롬프트를 입력으로 받아 2D 아바타 미리보기를 생성합니다. 이 메서드는 previewId를 반환합니다.
이 previewId는 클라이언트로 전송되어 EditableImage로 미리보기를 가져오는 데 사용할 수 있습니다.
사용자가 생성된 미리보기에 만족하지 않으면 이 워크플로를 반복할 수 있습니다.
3D 아바타 생성
사용자가 미리보기에 만족하면 전체 3D 아바타 캐릭터를 생성할 수 있습니다.
아바타 캐릭터를 생성하려면:
- 서버에서 세션 ID와 PreviewId가 포함된 Dictionary로 AvatarCreationService:GenerateAvatarAsync()를 호출합니다.
- 이 메서드 호출은 string generationId를 반환합니다.
- 게임 서버와 클라이언트 모두에서 AvatarCreationService:LoadGeneratedAvatarAsync() 메서드를 사용하여 생성된 아바타 데이터를 HumanoidDescription으로 검색합니다.
- 생성된 아바타를 Player에게 표시하기 위해 HumanoidDescription에서 아바타 모델을 생성하기 위해 Players.CreateHumanoidModelFromDescription 메서드를 사용할 수 있습니다.
메시와 텍스처 자산은 각각 EditableMesh 및 EditableImage 객체로 제공되어 생성된 아바타의 지속적인 편집이 가능하도록 합니다. 수정은 게시를 위해 게임 서버와 클라이언트 사본 모두에서 수행되어야 동기화됩니다.
게시
사용자가 결과 아바타에 만족하면 AvatarCreationService:PromptCreateAvatarAsync() 메서드를 사용하여 아바타를 게시할 수 있습니다.
자세한 내용은 게임 내 생성을 참조하세요.