Możesz stworzyć doświadczenie, które pozwala graczom na wygenerowanie w pełni funkcjonalnego awatara postaci przy użyciu zdjęcia oraz tekstowego podpowiedzi.
Proces ten obejmuje następujące kroki:
- Zażądanie sesji generowania awatarów
- Zachęcenie użytkownika do zrobienia selfie i wygenerowanie 2D podglądu awatara
- Wygenerowanie pełnej postaci awatara przy użyciu HumanoidDescription
Zażądanie sesji generowania awatarów
Aby rozpocząć generowanie awatarów z zdjęć, wywołaj AvatarCreationService:RequestAvatarGenerationSessionAsync() z serwera, aby zażądać sesji dla gracza. Sesja zapewnia Player pewną liczbę podglądów awatarów oraz generacji awatarów.
Ponieważ może to zająć trochę czasu, aby sesja stała się dostępna, AvatarCreationService:RequestAvatarGenerationSessionAsync() zwraca RBXScriptConnection oraz waitTime w sekundach. waitTime można użyć do dostarczenia Player informacji o tym, jak długo zajmie im rozpoczęcie generacji.
Gdy sesja jest gotowa, wywoływana jest funkcja zwrotna z Dictionary informacji o sesji. Dictionary zawiera:
- SessionId — przekazywane jako argument podczas wywoływania AvatarCreationService:GenerateAvatar2DPreviewAsync() i AvatarCreationService:GenerateAvatarAsync()
- Allowed2DGenerations — liczba dozwolonych generacji 2D podglądów w sesji
- Allowed3DGenerations — liczba dozwolonych generacji 3D awatarów w sesji
- SessionTime — maksymalny czas sesji w sekundach
Zachęcenie do zrobienia selfie i generowanie 2D podglądu
Po rozpoczęciu sesji, zachęć użytkownika do zrobienia selfie i uzyskaj fileId string wywołując metodę AvatarCreationService:PromptSelectAvatarGenerationImageAsync() na serwerze. Ten fileId będzie przekazany do metody AvatarCreationService:GenerateAvatar2DPreviewAsync().
Aby stworzyć 2D podgląd obrazu awatara, wywołaj następujące metody:
- AvatarCreationService:LoadAvatar2DPreviewAsync() na kliencie
AvatarCreationService:GenerateAvatar2DPreviewAsync() przyjmuje SessionId, fileId oraz opcjonalną tekstową podpowiedź jako wejście, aby wygenerować 2D podgląd awatara. Metoda ta zwraca previewId.
Ten previewId powinien być wysłany do klienta i może być później użyty do pobrania podglądu jako EditableImage.
Jeśli użytkownik nie jest zadowolony z wygenerowanego podglądu, ten proces można powtórzyć.
Generowanie 3D awatara
Gdy użytkownik jest zadowolony z podglądu, możesz wygenerować kompletną postać 3D awatara.
Aby wygenerować postać awatara:
- Wywołaj AvatarCreationService:GenerateAvatarAsync() na serwerze z Dictionary zawierającym SessionId i PreviewId.
- To wywołanie metody zwraca string generationId.
- Pobierz wygenerowane dane awatara jako HumanoidDescription korzystając z metody AvatarCreationService:LoadGeneratedAvatarAsync() zarówno na serwerze doświadczenia, jak i na kliencie.
- Możesz użyć metody Players.CreateHumanoidModelFromDescription, aby stworzyć model awatara z HumanoidDescription, który będzie wyświetlany graczowi Player.
Zasoby meshowe i tekstury będą dostarczane jako obiekty EditableMesh oraz EditableImage, odpowiednio, aby umożliwić dalszą edycję wygenerowanego awatara. Edycje powinny być wprowadzane zarówno na serwerze doświadczenia, jak i na kliencie, aby utrzymać je w synchronizacji przed publikacją.
Publikacja
Jeśli użytkownik jest zadowolony z otrzymanego awatara, można go opublikować przy użyciu metody AvatarCreationService:PromptCreateAvatarAsync().
Aby uzyskać więcej informacji, zobacz tworzenie w doświadczeniu.