Możesz stworzyć grę, która pozwala graczom generować w pełni funkcjonalnego awatara za pomocą zdjęcia i tekstowego podpowiedzi.
Proces ten obejmuje następujące kroki:
- Żądanie sesji generowania awatara.
- Zachęcenie użytkownika do zrobienia selfie i wygenerowanie 2D podglądu awatara.
- Wygenerowanie pełnego awatara za pomocą HumanoidDescription.
Żądanie sesji generowania awatara
Aby rozpocząć generowanie awatara z zdjęcia, wywołaj AvatarCreationService:RequestAvatarGenerationSessionAsync() z serwera, aby zażądać sesji dla gracza. Sesja zapewnia Player określoną liczbę podglądów awatarów i generacji awatarów.
Ponieważ może to zająć trochę czasu, zanim sesja będzie dostępna, AvatarCreationService:RequestAvatarGenerationSessionAsync() zwraca RBXScriptConnection oraz czas oczekiwania w sekundach. Czas oczekiwania można wykorzystać do poinformowania Player, 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 podglądów 2D w sesji.
- Allowed3DGenerations — Liczba dozwolonych generacji awatarów w sesji.
- SessionTime — Maksymalny czas trwania sesji w sekundach.
Zachęć do zrobienia selfie i wygeneruj podgląd 2D
Po rozpoczęciu sesji zachęć użytkownika do zrobienia selfie i uzyskaj fileId string, wywołując metodę AvatarCreationService:PromptSelectAvatarGenerationImageAsync() na serwerze. Ten fileId zostanie przekazany do metody AvatarCreationService:GenerateAvatar2DPreviewAsync().
Aby stworzyć 2D podgląd obrazu awatara, wywołaj następujące metody:
- AvatarCreationService:GenerateAvatar2DPreviewAsync() na serwerze.
- AvatarCreationService:LoadAvatar2DPreviewAsync() na kliencie.
Metoda AvatarCreationService:GenerateAvatar2DPreviewAsync() przyjmuje SessionId, fileId oraz opcjonalną tekstową podpowiedź jako dane wejściowe do generowania podglądu 2D awatara. Ta metoda zwraca previewId.
Ten previewId powinien być wysłany do klienta i może być 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ć.
Wygeneruj awatara
Gdy użytkownik jest zadowolony z podglądu, możesz wygenerować pełnego 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 za pomocą metody AvatarCreationService:LoadGeneratedAvatarAsync() zarówno na serwerze gry, jak i na kliencie.
- Użyj metody Players.CreateHumanoidModelFromDescription, aby stworzyć model awatara z HumanoidDescription, który zostanie wyświetlony Player.
Zasoby siatki i tekstur są dostarczane jako obiekty EditableMesh i EditableImage, odpowiednio, aby umożliwić dalszą edycję wygenerowanego awatara. Edycje powinny być dokonywane zarówno na serwerze gry, jak i na kopii klienta, aby utrzymać je w synchronizacji przed publikacją.
Publikuj awatara
Jeśli użytkownik jest zadowolony z uzyskanego awatara, można go opublikować za pomocą metody AvatarCreationService:PromptCreateAvatarAsync().
Aby uzyskać więcej informacji, zobacz tworzenie w grze.