AvatarCreationService

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
บริการ

AvatarCreationService เป็นบริการที่สนับสนุนผู้สร้างอวตารนักพัฒนา โดยให้วิธีที่สนับสนุนการเรียกใช้การสร้างอวตารจากภายในประสบการณ์

สรุป

วิธีการ

คุณสมบัติ

วิธีการ

GetValidationRules

รับข้อมูลเกี่ยวกับกฎที่สินทรัพย์ต้องปฏิบัติตามเพื่อผ่านการตรวจสอบ UGCการตรวจสอบเป็นขั้นตอนที่จำเป็นก่อนที่จะสร้างอวตารและมีการตรวจสอบหลายอย่างที่เกิดขึ้นรวมถึงขีดจํากัดมุมเมช, ขนาดของเทกเจอร์, ขนาดส่วนของร่างกาย, ตําแหน่งของอุปกรณ์เสริม และอื่นๆ

สารบัญการตรวจสอบที่ส่งคืนมีรูปแบบดังต่อไปนี้:


{
["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,
},
...
}
}

ส่งค่ากลับ

สารานุกรมของกฎการตรวจสอบตามรายละเอียดด้านบน

GenerateAvatar2DPreviewAsync

ผลตอบแทน

พารามิเตอร์

avatarGeneration2dPreviewParams: Dictionary
ค่าเริ่มต้น: ""

ส่งค่ากลับ

GetBatchTokenDetailsAsync

ผลตอบแทน

รับรายละเอียดโทเค็นการสร้างอวตารสำหรับรายการโทเค็นการสร้างอวตารในครั้งเดียว (โทเค็นจะถูกสร้างผ่านกระบวนการสร้างโทเค็น )ส่งคืนรายละเอียดของโทเค็นการสร้างอวตารหลายรายการ; แต่ละรายละเอียดโทเค็นเป็นสารานุกรมที่มีช่องที่ระบุในผลลัพธ์ตัวอย่างด้านล่าง:


{
["Name"] = "string",
["Description"] = "string",
["UniverseId"] = 0,
["CreatorId"] = 0,
["CreatorType"] = Enum.CreatorType.User,
["OnSale"] = true,
["Price"] = 0,
["OffSaleReasons"] = {
"string",
}
}

พารามิเตอร์

tokenIds: Array

รายการ ID ของโทเค็นการสร้างอวตารเพื่อรับรายละเอียด

ค่าเริ่มต้น: ""

ส่งค่ากลับ

รายละเอียดของโทเค็นการสร้างอวตารที่ระบุไว้ด้านบน

LoadAvatar2DPreviewAsync

ผลตอบแทน

พารามิเตอร์

previewId: string
ค่าเริ่มต้น: ""

ส่งค่ากลับ

LoadGeneratedAvatarAsync

ผลตอบแทน

พารามิเตอร์

generationId: string
ค่าเริ่มต้น: ""

ส่งค่ากลับ

PrepareAvatarForPreviewAsync

()
ผลตอบแทน

พารามิเตอร์

humanoidModel: Model
ค่าเริ่มต้น: ""

ส่งค่ากลับ

()

PromptCreateAvatarAsync

ผลตอบแทน

ขอให้ Player ซื้อและสร้างอวตารจาก HumanoidDescriptionราคาของการสร้างถูกกำหนดโดยราคาที่กำหนดให้กับโทเค็นการสร้างอวตารโทเค็นการสร้างอวาตาร์นี้จำเป็นสำหรับการซื้อและสร้างร่างกายและสามารถสร้างได้โดยปฏิบัติตามกระบวนการสร้างโทเค็น token creation

การสร้างสรรค์, HumanoidDescription คาดว่าจะรวมทรัพยากรใหม่ที่จะสร้างสำหรับแต่ละส่วนของร่างกาย 6 ( Head , Torso , RightLeg , LeftLeg , RightArm , LeftArm )ตัวเลือกนอกจากนี้ยังสามารถรวมอุปกรณ์เสริมใหม่ Hair ได้

เพื่อสนับสนุนสิ่งนี้ HumanoidDescription ควรรวมเด็ก 6 BodyPartDescription คน (หนึ่งสำหรับแต่ละส่วนของร่างกาย)สำหรับแต่ละ, คุณสมบัติ BodyPartDescription.Instance อ้างถึง Folder ซึ่งรวมถึงทั้งหมดของ MeshPart ตัวอย่างที่ทำให้เป็นส่วนหนึ่งของร่างกาย, ตัวอย่างเช่น ไดเรกทอรี LeftArm ที่มี LeftHand , LeftUpperArm และ LeftLowerArm``Class.MeshPart|MeshParts .คุณสมบัติ BodyPartDescription.BodyPart ควรตั้งเป็น Enum.BodyPart ที่เกี่ยวข้องด้วย

แต่ละส่วนของร่างกาย MeshPart จะต้องรวมถึง:

หากรวมอุปกรณ์เสริมเช่นผม HumanoidDescription ควรรวมเด็ก AccessoryDescription โดยมี:

สุดท้าย HumanoidDescription ควรรวมมิติมนุษย์ของ BodyTypeScale , HeadScale , HeightScale , WidthScale และ ProportionScaleโปรดใส่ใจกับเครื่องชั่งที่ร่างฐานถูกนำมาใช้เพื่อให้ตรงกับเครื่องชั่งที่ให้ไว้กับ HumanoidDescription

พารามิเตอร์

tokenId: string

รหัสประจำตัวของโทเค็นการสร้างอวตารโทเค็นต้องถูกต้องในที่จักรวาลที่เรียกวิธีการจากเป็นจักรวาลเดียวกันที่โทเค็นถูกสร้างขึ้นนอกจากนี้ ผู้สร้างโทเค็นต้องรักษาการตรวจสอบรหัสประจำตัวและ Roblox Premiumเพื่อสร้างโทเค็นสำหรับการใช้งานใน API นี้ ให้ทำตามขั้นตอนการสร้างโทเค็น สร้างโทเค็น

ค่าเริ่มต้น: ""
player: Player

The Player มีจุดมุ่งหมายที่จะถูกนำเสนอด้วยแจ้งคำสั่งสร้าง

ค่าเริ่มต้น: ""
humanoidDescription: HumanoidDescription

The HumanoidDescription การสร้างสรรค์

ค่าเริ่มต้น: ""

ส่งค่ากลับ

ลิสต์ที่มีอยู่ในลำดับ:

  • An Enum.PromptCreateAvatarResult บ่งบอกถึงผลลัพธ์ของการแจ้งให้สร้าง

  • ผลการค้นหาEnum.PromptCreateAvatarResult.Success จะระบุรหัสบันเดิลในกรณีที่เกิดความล้มเหลวของรายการใดๆ จะระบุถึงข้อความผลลัพธ์ของข้อผิดพลาด

  • ผลการค้นหาEnum.PromptCreateAvatarResult.Success จะระบุรหัสชุดในกรณีที่เกิดความล้มเหลวในรายการใดๆ จะเป็น nil

ตัวอย่างโค้ด

The following code populates a HumanoidDescription in the expected format, prompts for avatar creation, and responds to the result.

PromptCreateAvatarAsync

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

ผลตอบแทน

สตูดิโอเท่านั้น ให้ Player และ Instance สําหรับ Enum.AccessoryType ตรวจสอบว่าการตรวจสอบ UGC ผ่านหรือไม่

พารามิเตอร์

player: Player

การตรวจสอบ Player สําเร็จแล้ว

ค่าเริ่มต้น: ""
accessory: Instance

การตรวจสอบสถานะของตัวอย่างจะดำเนินการแล้ว

ค่าเริ่มต้น: ""
accessoryType: Enum.AccessoryType

Enum.AccessoryType ตัวอย่างคาดว่าจะเป็น คาดว่า Eyebrow , Eyelash หรือ Hair .

ค่าเริ่มต้น: ""

ส่งค่ากลับ

ลิสต์ที่มีอยู่ในลำดับ:

  • เป็นไบนารีที่ระบุว่าการตรวจสอบสําเร็จสําหรับอุปกรณ์เสริมหรือไม่
  • ตารางตัวเลขที่เลือกได้ ซึ่งรวมถึงเหตุผลในการล้มเหลวหากการตรวจสอบไม่สําเร็จ; มิฉะนั้น nil หากการตรวจสอบประสบความสําเร็จ

ValidateUGCBodyPartAsync

ผลตอบแทน

สตูดิโอเท่านั้นให้ Player และ Instance สำหรับ Enum.BodyPart ตรวจสอบว่าการตรวจสอบ UGC ผ่านหรือไม่พารามิเตอร์ instance คาดว่าจะเป็น Folder ในรูปแบบตัวอย่างต่อไปนี้ที่มีความเกี่ยวข้อง MeshParts :

อย่างไรก็ตาม หากคาดว่า bodyPart คือ Enum.BodyPart.Head ฟังก์ชันจะรับเฉพาะ Head``Class.MeshPart โดยตรง

พารามิเตอร์

player: Player

การตรวจสอบ Player สําเร็จแล้ว

ค่าเริ่มต้น: ""
instance: Instance

การตรวจสอบสถานะของตัวอย่างจะดำเนินการแล้ว

ค่าเริ่มต้น: ""
bodyPart: Enum.BodyPart

Enum.BodyPart ตัวอย่างที่คาดว่าจะเป็น

ค่าเริ่มต้น: ""

ส่งค่ากลับ

ลิสต์ที่มีอยู่ในลำดับ:

  • เป็นไบนารีที่ระบุว่าการตรวจสอบสําเร็จสําหรับส่วนของร่างกายหรือไม่
  • ตารางตัวเลขที่เลือกได้ ซึ่งรวมถึงเหตุผลในการล้มเหลวหากการตรวจสอบไม่สําเร็จ; มิฉะนั้น nil หากการตรวจสอบประสบความสําเร็จ

ValidateUGCFullBodyAsync

ผลตอบแทน

สตูดิโอเท่านั้น ให้ Player และ HumanoidDescription ทุกตัวอย่างใน HumanoidDescription จะได้รับการตรวจสอบ

คาดว่า HumanoidDescription จะรวมตัวอย่างที่กําหนดไว้ใน BodyPartDescription เด็กสําหรับแต่ละของ 6 ค่า Enum.BodyPart ที่จําเป็นตัวเลือกได้รวมถึงตัวอย่างที่ตั้งบนเด็ก , และ สำหรับ และ

พารามิเตอร์

player: Player

การตรวจสอบ Player สําเร็จแล้ว

ค่าเริ่มต้น: ""
humanoidDescription: HumanoidDescription

HumanoidDescription แทนร่างกายที่ใช้สำหรับการตรวจสอบ

ค่าเริ่มต้น: ""

ส่งค่ากลับ

ลิสต์ที่มีอยู่ในลำดับ:

  • บูลีนที่ระบุว่าการตรวจสอบสําเร็จสําหรับร่างกายหรือไม่
  • ตารางตัวเลขที่เลือกได้ ซึ่งรวมถึงเหตุผลในการล้มเหลวหากการตรวจสอบไม่สําเร็จ; มิฉะนั้น nil หากการตรวจสอบประสบความสําเร็จ

อีเวนต์

AvatarModerationCompleted

พารามิเตอร์

outfitId: number
moderationStatus: Enum.ModerationStatus