Bạn có thể tạo một trò chơi cho phép người chơi tạo ra một nhân vật avatar hoàn chỉnh bằng cách sử dụng một bức ảnh và một lời nhắc văn bản.
Quá trình này bao gồm các bước sau:
- Yêu cầu một phiên tạo avatar.
- Yêu cầu người dùng chụp một bức ảnh tự sướng và tạo một hình ảnh xem trước 2D của avatar.
- Tạo nhân vật avatar hoàn chỉnh bằng cách sử dụng HumanoidDescription.
Yêu cầu một phiên tạo avatar
Để bắt đầu quá trình tạo avatar từ ảnh, gọi AvatarCreationService:RequestAvatarGenerationSessionAsync() từ máy chủ để yêu cầu một phiên cho người chơi. Một phiên cung cấp cho Player một số lượng hình ảnh xem trước avatar và các lần tạo avatar.
Vì có thể mất một thời gian để một phiên trở nên khả dụng, AvatarCreationService:RequestAvatarGenerationSessionAsync() trả về một RBXScriptConnection và một thời gian chờ (waitTime) tính bằng giây. Thời gian chờ này có thể được sử dụng để cung cấp cho Player thông tin về thời gian mà họ sẽ phải chờ để có thể bắt đầu tạo avatar.
Khi một phiên đã sẵn sàng, callback sẽ được gọi với một Dictionary chứa thông tin về phiên đó. Dictionary bao gồm:
- SessionId — Được truyền như một tham số khi gọi AvatarCreationService:GenerateAvatar2DPreviewAsync() và AvatarCreationService:GenerateAvatarAsync().
- Allowed2DGenerations — Số lần tạo hình ảnh xem trước 2D được phép trong một phiên.
- Allowed3DGenerations — Số lần tạo avatar được phép trong một phiên.
- SessionTime — Thời gian tối đa cho một phiên tính bằng giây.
Yêu cầu chụp ảnh tự sướng và tạo hình ảnh xem trước 2D
Sau khi một phiên được bắt đầu, yêu cầu người dùng chụp một bức ảnh tự sướng và lấy fileId string bằng cách gọi phương thức AvatarCreationService:PromptSelectAvatarGenerationImageAsync() trên máy chủ. fileId này sẽ được truyền cho phương thức AvatarCreationService:GenerateAvatar2DPreviewAsync().
Để tạo một hình ảnh xem trước 2D của avatar, gọi các phương thức sau:
- AvatarCreationService:GenerateAvatar2DPreviewAsync() trên máy chủ.
- AvatarCreationService:LoadAvatar2DPreviewAsync() trên máy khách.
AvatarCreationService:GenerateAvatar2DPreviewAsync() nhận SessionId, fileId và một lời nhắc văn bản tùy chọn làm đầu vào để tạo ra một hình ảnh xem trước avatar 2D. Phương thức này trả về một previewId.
previewId này nên được gửi đến máy khách và có thể được sử dụng để lấy hình ảnh xem trước dưới dạng EditableImage.
Nếu người dùng không hài lòng với hình ảnh xem trước đã tạo, quy trình này có thể được lặp lại.
Tạo avatar
Khi người dùng hài lòng với hình ảnh xem trước, bạn có thể tạo ra nhân vật avatar 3D hoàn chỉnh.
Để tạo một nhân vật avatar:
- Gọi AvatarCreationService:GenerateAvatarAsync() trên máy chủ với một Dictionary chứa SessionId và PreviewId.
- Lời gọi phương thức này trả về một string generationId.
- Lấy dữ liệu avatar đã tạo dưới dạng HumanoidDescription bằng cách sử dụng phương thức AvatarCreationService:LoadGeneratedAvatarAsync() trên cả máy chủ trò chơi và máy khách.
- Sử dụng phương thức Players.CreateHumanoidModelFromDescription để tạo một mô hình avatar từ HumanoidDescription để hiển thị cho Player.
Các tài sản mesh và texture được cung cấp dưới dạng các đối tượng EditableMesh và EditableImage, tương ứng, để cho phép tiếp tục chỉnh sửa avatar đã tạo. Các chỉnh sửa nên được thực hiện trên cả máy chủ trò chơi và bản sao máy khách để giữ cho chúng đồng bộ khi xuất bản.
Xuất bản avatar
Nếu người dùng hài lòng với avatar đã tạo, nó có thể được xuất bản bằng cách sử dụng phương thức AvatarCreationService:PromptCreateAvatarAsync().
Để biết thêm thông tin, hãy xem tạo trong trò chơi.