AvatarCreationService
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
AvatarCreationService là một dịch vụ hỗ trợ các nhà phát triển avatar, cung cấp các phương pháp hỗ trợ việc kích hoạt sự tạo avatar từ bên trong các trải nghiệm.
Tóm Tắt
Phương Pháp
Nhận dữ liệu liên quan đến các quy tắc mà tài sản phải tuân thủ để vượt qua xác minh UGC.
Nhận chi tiết token tạo avatar cho một danh sách token tạo avatar cùng một lúc.
- PromptCreateAvatarAsync(tokenId : string,player : Player,humanoidDescription : HumanoidDescription):Tuple
Yêu cầu một Player để mua và tạo một avatar từ một HumanoidDescription .
- ValidateUGCAccessoryAsync(player : Player,accessory : Instance,accessoryType : Enum.AccessoryType):Tuple
Chỉ studio. Chạy xác minh UGC cho một Enum.AccessoryType .
Chỉ studio. Chạy xác minh UGC cho một Enum.BodyPart .
Chỉ studio. Chạy xác minh UGC cho toàn bộ cơ thân.
Sự Kiện
- AvatarModerationCompleted(outfitId : number,moderationStatus : Enum.ModerationStatus):RBXScriptSignal
Thuộc Tính
Phương Pháp
GetValidationRules
Nhận dữ liệu liên quan đến các quy tắc mà tài sản phải tuân thủ để vượt qua xác minh UGC.Xác minh là một bước quan trọng trước khi tạo avatar và có nhiều kiểm tra xảy ra, bao gồm giới hạn tam giác khối, kích thước kết cấu, giới hạn kích thước phần cơ thể, vị trí kết nối và nhiều hơn nữa.
Từ điển trả về của các quy tắc xác nhận có dạng sau:
{["MeshRules"] = {["BodyPartMaxTriangles"] = {Enum.AssetType.DynamicHead: number,Enum.AssetType.LeftArm: number,Enum.AssetType.RightArm: number,Enum.AssetType.Torso: number,Enum.AssetType.LeftLeg: number,Enum.AssetType.RightLeg: number,},["AccessoryMaxTriangles"]: number,["MeshVertColor"]: Color3,["CageMeshMaxDistanceFromRenderMesh"]: number,},["TextureRules"] = {["MaxTextureSize"]: number,},["BodyPartRules"] = {[Enum.AssetType.DynamicHead] = {["Bounds"] = {["Classic"] = {["MinSize"]: Vector3,["MaxSize"]: Vector3,},["ProportionsSlender"] = {["MinSize"]: Vector3,["MaxSize"]: Vector3,},["ProportionsNormal"] = {["MinSize"]: Vector3,["MaxSize"]: Vector3,},},["SubParts"] = {["Head"] = {["NeckRigAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},["FaceFrontAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},["HatAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},["HairAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},["FaceCenterAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},},},},[Enum.AssetType.LeftArm] = {["Bounds"] = {["Classic"] = {["MinSize"]: Vector3,["MaxSize"]: Vector3,},["ProportionsSlender"] = {["MinSize"]: Vector3,["MaxSize"]: Vector3,},["ProportionsNormal"] = {["MinSize"]: Vector3,["MaxSize"]: Vector3,},},["SubParts"] = {["LeftHand"] = {["LeftWristRigAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},["LeftGripAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},},["LeftUpperArm"] = {["LeftShoulderRigAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},["LeftShoulderAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},["LeftElbowRigAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},},["LeftLowerArm"] = {["LeftElbowRigAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},["LeftWristRigAttachment"] = {["LowerBound"]: Vector3,["UpperBound"]: Vector3,},},},},...},["AccessoryRules"] = {[Enum.AssetType.HairAccessory] = {["Attachments"] = {{["Size"]: Vector3,["Offset"]: Vector3,["Name"]: string,},},["RigidAllowed"]: boolean,},...}}
Lợi Nhuận
Từ điển các quy tắc xác nhận như được mô tả ở trên.
GenerateAvatar2DPreviewAsync
Tham Số
Lợi Nhuận
GetBatchTokenDetailsAsync
Nhận chi tiết token tạo avatar cho một danh sách token tạo avatar cùng một lúc (token được tạo thông qua quá trình tạo token token).Trả về một array các chi tiết token tạo avatar; mỗi chi tiết token là một từ điển với các trường được chỉ ra trong kết quả ví dụ dưới đây:
{["Name"] = "string",["Description"] = "string",["UniverseId"] = 0,["CreatorId"] = 0,["CreatorType"] = Enum.CreatorType.User,["OnSale"] = true,["Price"] = 0,["OffSaleReasons"] = {"string",}}
Tham Số
Danh sách ID token tạo avatar để có chi tiết.
Lợi Nhuận
Danh sách chi tiết token tạo avatar như được mô tả ở trên.
LoadAvatar2DPreviewAsync
Tham Số
Lợi Nhuận
LoadGeneratedAvatarAsync
Tham Số
Lợi Nhuận
PromptCreateAvatarAsync
Yêu cầu một Player để mua và tạo một avatar từ một HumanoidDescription .Giá của việc tạo ra được quyết định bởi giá được gán cho token tạo avatar.Token tạo avatar này là yêu cầu đối với việc mua và tạo cơ thể và có thể được tạo bằng cách tuân theo quá trình tạo token.
Đối với việc sản phẩmavatar, HumanoidDescription được mong đợi bao gồm các tài sản mới được tạo cho mỗi phần cơ thể 6 (Head, Torso, RightLeg, LeftLeg, RightArm, LeftArm).Tùy chọn, nó cũng có thể bao gồm một phụ kiện mới Hair .
Để hỗ trợ điều này, HumanoidDescription nên bao gồm 6 đứa con (mỗi phần cơ thể một) BodyPartDescription .Đối với mỗi, thuộc tính BodyPartDescription.Instance bao gồm một Folder bao gồm tất cả các MeshPart ví dụ các LeftArm được tạo thành phần thân, ví dụ như một LeftHand thư mục có LeftUpperArm , LeftLowerArm và MeshParts .Thuộc tính BodyPartDescription.BodyPart cũng nên được đặt thành Enum.BodyPart liên quan.
Mỗi phần cơ thể MeshPart sẽ cũng cần bao gồm:
- An EditableImage .
- Một WrapDeformer với một EditableMesh.
Nếu bao gồm một phụ kiện như tóc, HumanoidDescription nên bao gồm một đứa con AccessoryDescription nơi:
- Thuộc tính AccessoryDescription.Instance tham chiếu đến ví dụ Accessory .
- Thuộc tính AccessoryDescription.AccessoryType được đặt thành Enum.AccessoryType liên quan.
Cuối cùng, HumanoidDescription nên bao gồm các thước đo hình người của BodyTypeScale , HeadScale , HeightScale , WidthScale , và ProportionScale .Hãy lưu ý đến các thước đo mà một cơ thể cơ bản được nhập với nhằm chúng phù hợp với các thước đo được cung cấp cho HumanoidDescription .
Tham Số
ID của một token tạo avatar.Token phải hợp lệ trong trường hợp vũ trụ mà phương thức được gọi từ là vũ trụ tương tự mà token được tạo ra.Ngoài ra, người tạo token phải duy trì xác minh ID và Roblox Premium.Để tạo một token để sử dụng trong API này, hãy làm theo quá trình tạo token.
The Player intended to be presented with the creation prompt. Được dự định sẽ được trình bày với lời nhắc tạo.
The HumanoidDescription của avatar dành cho việc sản phẩm.
Lợi Nhuận
Một tuple chứa, theo thứ tự:
Một Enum.PromptCreateAvatarResult được chỉ ra kết quả của lời nhắc tạo.
Một kết quả chuỗi.Trong trường hợp Enum.PromptCreateAvatarResult.Success, điều này sẽ chỉ ra ID gói.Trong trường hợp bất kỳ lỗi enum nào, thông điệp lỗi kết tin nhắnsẽ được chỉ ra.
Kết kết quảchuỗi bắt buộc thứ cấp thứ hai.Trong trường hợp Enum.PromptCreateAvatarResult.Success, điều này sẽ chỉ ra ID trang phục.Trong trường hợp bất kỳ lỗi enum, điều này sẽ là nil .
Mẫu mã
The following code populates a HumanoidDescription in the expected format, prompts for avatar creation, and responds to the result.
local AvatarCreationService = game:GetService("AvatarCreationService")
export type BodyPartInfo = {
bodyPart: Enum.BodyPart,
instance: Instance, --Folder with Created MeshParts
}
export type BodyPartList = { BodyPartInfo }
local function publishAvatar(bodyPartInstances: BodyPartList, player: Player, tokenId: string)
local humanoidDescription = Instance.new("HumanoidDescription")
for _, bodyPartInfo in bodyPartInstances do
local bodyPartDescription = Instance.new("BodyPartDescription")
bodyPartDescription.Instance = bodyPartInfo.instance
bodyPartDescription.BodyPart = bodyPartInfo.bodyPart
bodyPartDescription.Parent = humanoidDescription
end
local pcallSuccess, result, resultMessage = pcall(function()
return AvatarCreationService:PromptCreateAvatarAsync(tokenId, player, humanoidDescription)
end)
if pcallSuccess then
if result == Enum.PromptCreateAvatarResult.Success then
print("Successfully uploaded with BundleId: ", resultMessage)
else
print("Unsuccessfully uploaded with error message:", resultMessage)
end
else
print("Avatar failed to create.")
end
end
ValidateUGCAccessoryAsync
Chỉ studio. Đưa ra Player và Instance cho một Enum.AccessoryType , xác định xem liệu xác minh UGC thông qua.
Tham Số
Sự xác nhận của ví dụ được chạy trên.
Enum.AccessoryType ví dụ, instance mong đợi là. Mong đợi Eyebrow , Eyelash , hoặc Hair .
Lợi Nhuận
Một tuple chứa, theo thứ tự:
- Một boolean chỉ ra nếu xác minh thành công cho phụ kiện.
- Một bảng tùy chọn của các chuỗi. Điều này bao gồm lý do thất bại nếu xác minh không thành công; nếu không, nil nếu xác minh thành công.
ValidateUGCBodyPartAsync
Chỉ studio.Khi được cung cấp Player và Instance cho một Enum.BodyPart , xác định xem liệu xác minh UGC thông qua.Tham số instance được mong đợi là một Folder trong định dạng ví dụ sau với các MeshParts liên quan:
Tuy nhiên, nếu bodyPart mong đợi là Enum.BodyPart.Head , chức năng nhận một số lẻ Head``Class.MeshPart trực tiếp.
Tham Số
Sự xác nhận của ví dụ được chạy trên.
Enum.BodyPart ví dụ, instance dự kiến sẽ là.
Lợi Nhuận
Một tuple chứa, theo thứ tự:
- Một boolean chỉ ra nếu xác minh thành công cho phần cơ thể.
- Một bảng tùy chọn của các chuỗi. Điều này bao gồm lý do thất bại nếu xác minh không thành công; nếu không, nil nếu xác minh thành công.
ValidateUGCFullBodyAsync
Chỉ studio. Đưa ra Player và HumanoidDescription, tất cả các thời điểm trong HumanoidDescription sẽ được xác minh.
The HumanoidDescription được mong đợi bao gồm các ví dụ được thiết lập trên BodyPartDescription con trẻ cho mỗi trong số 6 giá trị Enum.BodyPart yêu cầu.Tùy chọn, nó có thể bao gồm các ví dụ được thiết lập trên AccessoryDescription trẻ em cho Eyebrow , Eyelash , và Hair``Enum.AccessoryType|AccessoryTypes .
Tham Số
HumanoidDescription đại diện cho cơ thể mà quá trình xác minh được thực hiện trên.
Lợi Nhuận
Một tuple chứa, theo thứ tự:
- Một boolean chỉ ra nếu xác minh thành công cho cơ thân.
- Một bảng tùy chọn của các chuỗi. Điều này bao gồm lý do thất bại nếu xác minh không thành công; nếu không, nil nếu xác minh thành công.