AvatarCreationService
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
AvatarCreationService adalah layanan yang mendukung pencipta avatar pengembang, menyediakan metode yang mendukung prompting pembuatan avatar dari dalam pengalaman.
Rangkuman
Metode
Mendapatkan data mengenai aturan yang aset harus patuhi untuk lulus validasi UGC.
Mendapatkan detail token pembuatan avatar untuk daftar token pembuatan avatar sekaligus.
- PromptCreateAvatarAsync(tokenId : string,player : Player,humanoidDescription : HumanoidDescription):Tuple
Meminta Player untuk membeli dan membuat avatar dari HumanoidDescription .
- ValidateUGCAccessoryAsync(player : Player,accessory : Instance,accessoryType : Enum.AccessoryType):Tuple
Hanya studio. Menjalankan validasi UGC untuk Enum.AccessoryType .
Hanya studio. Menjalankan validasi UGC untuk Enum.BodyPart .
Hanya studio. Menjalankan validasi UGC untuk seluruh tubuh.
Acara
- AvatarModerationCompleted(outfitId : number,moderationStatus : Enum.ModerationStatus):RBXScriptSignal
Properti
Metode
GetValidationRules
Mendapatkan data mengenai aturan yang aset harus patuhi untuk lulus validasi UGC.Validasi adalah langkah penting sebelum membuat avatar dan ada berbagai pemeriksaan yang terjadi, termasuk batas segi tiga mesh, ukuran tekstur, batas bagian tubuh, posisi lampiran, dan banyak lagi.
Diksiaris yang dikembalikan dari aturan validasi mengambil bentuk berikut:
{["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,},...}}
Memberikan nilai
Daftar peraturan validasi sebagai terperinci di atas.
GenerateAvatar2DPreviewAsync
Parameter
Memberikan nilai
GetBatchTokenDetailsAsync
Mendapatkan rincian token pembuatan avatar untuk daftar token pembuatan avatar sekaligus (token dibuat melalui proses pembuatan token.Kembalikan array rincian pembuatan token avatar; setiap rincian token adalah kamus dengan bidang yang ditunjukkan dalam hasil contoh di bawah ini:
{["Name"] = "string",["Description"] = "string",["UniverseId"] = 0,["CreatorId"] = 0,["CreatorType"] = Enum.CreatorType.User,["OnSale"] = true,["Price"] = 0,["OffSaleReasons"] = {"string",}}
Parameter
Daftar ID token pembuatan avatar untuk mendapatkan rincian.
Memberikan nilai
Array dari rincian token pembuatan avatar seperti yang dijelaskan di atas.
LoadAvatar2DPreviewAsync
Parameter
Memberikan nilai
LoadGeneratedAvatarAsync
Parameter
Memberikan nilai
PromptCreateAvatarAsync
Meminta Player untuk membeli dan membuat avatar dari HumanoidDescription .Harga dari penciptaan ditentukan oleh harga yang diberikan ke token penciptaan avatar.Token pembuatan avatar ini diperlukan untuk pembelian dan penciptaan tubuh dan dapat dihasilkan dengan mengikuti proses pembuatan token token.
Untuk kreasiavatar, HumanoidDescription diharapkan untuk menyertakan aset baru yang akan dibuat untuk masing-masing dari 6 bagian tubuh ( Head , Torso , RightLeg , LeftLeg , RightArm , LeftArm ).Opsi, ini juga dapat termasuk aksesori baru Hair .
Untuk mendukung ini, HumanoidDescription harus termasuk 6 BodyPartDescription anak (satu untuk setiap bagian tubuh).Untuk masing-masing, properti merujuk pada yang mencakup semua instansi yang membentuk bagian tubuh, misalnya folder yang memiliki , , dan .Properti BodyPartDescription.BodyPart juga harus ditetapkan ke Enum.BodyPart yang relevan.
Setiap bagian tubuh MeshPart juga perlu termasuk:
- An EditableImage .
- Sebuah WrapDeformer dengan EditableMesh.
Jika termasuk aksesori seperti rambut, HumanoidDescription harus termasuk anak AccessoryDescription di mana:
- Properti AccessoryDescription.Instance merujuk pada instansi Accessory.
- Properti AccessoryDescription.AccessoryType diatur ke Enum.AccessoryType yang relevan.
Akhirnya, HumanoidDescription harus termasuk skala humanoid dari BodyTypeScale , HeadScale , HeightScale , WidthScale , dan ProportionScale .Perhatikan skala yang diimpor dengan tubuh dasar sehingga mereka cocok dengan skala yang disediakan ke HumanoidDescription .
Parameter
ID dari token penciptaan avatar.Token harus valid dalam bahwa alam semesta di mana metode dipanggil adalah alam semesta yang sama di mana token dibuat.Selain itu, pembuat token harus mempertahankan verifikasi ID dan Roblox Premium.Untuk membuat token untuk digunakan dalam API ini, ikuti proses pembuatan token.
The Player dimaksudkan untuk dipresentasikan dengan prompt penciptaan.
The HumanoidDescription dari avatar yang dimaksudkan untuk kreasi.
Memberikan nilai
Sebuah tuple yang berisi, dalam urutan:
Sebuah Enum.PromptCreateAvatarResult menunjukkan hasil perintah penciptaan.
Hasil string.Dalam kasus Enum.PromptCreateAvatarResult.Success, ini akan menunjukkan ID bundel.Dalam kasus gagal enum, ini akan menunjukkan pesan kesalahan yang dihasilkan.
hasilstring opsional kedua.Dalam kasus Enum.PromptCreateAvatarResult.Success, ini akan menunjukkan ID pakaian.Dalam kasus kegagalan enum apa pun, ini akan menjadi nil .
Contoh Kode
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
Hanya studio. Diberikan Player dan Instance untuk Enum.AccessoryType , menentukan apakah validasi UGC lulus.
Parameter
Validasi instansi dijalankan.
Enum.AccessoryType instans diharapkan menjadi. Mengharapkan Eyebrow , Eyelash , atau Hair .
Memberikan nilai
Sebuah tuple yang berisi, dalam urutan:
- Boolean yang menunjukkan apakah validasi berhasil untuk aksesori.
- Meja opsional string. Ini termasuk alasan gagal jika validasi gagal; jika validasi berhasil, nil jika validasi berhasil.
ValidateUGCBodyPartAsync
Hanya studio.Diberikan Player dan Instance untuk sebuah Enum.BodyPart , menentukan apakah validasi UGC lulus.Parameter instance diharapkan sebagai Folder dalam format contoh berikut dengan relevan MeshParts :
Namun, jika yang diharapkan bodyPart adalah Enum.BodyPart.Head , fungsi mengambil tunggal Head``Class.MeshPart langsung.
Parameter
Validasi instansi dijalankan.
Enum.BodyPart instansi diharapkan menjadi.
Memberikan nilai
Sebuah tuple yang berisi, dalam urutan:
- Boolean yang menunjukkan apakah validasi berhasil untuk bagian tubuh.
- Meja opsional string. Ini termasuk alasan gagal jika validasi gagal; jika validasi berhasil, nil jika validasi berhasil.
ValidateUGCFullBodyAsync
Hanya studio. Diberikan Player dan HumanoidDescription , semua instansi di HumanoidDescription akan diuji.
The HumanoidDescription diharapkan untuk termasuk instans yang ditetapkan pada anak BodyPartDescription untuk masing-masing dari 6 nilai Enum.BodyPart yang diperlukan.Opsi, ini dapat termasuk instans yang ditetapkan pada AccessoryDescription anak untuk Eyebrow , Eyelash , dan Hair``Enum.AccessoryType|AccessoryTypes .
Parameter
HumanoidDescription mewakili tubuh yang dijalankan validasi.
Memberikan nilai
Sebuah tuple yang berisi, dalam urutan:
- Boolean yang menunjukkan apakah validasi berhasil untuk tubuh.
- Meja opsional string. Ini termasuk alasan gagal jika validasi gagal; jika validasi berhasil, nil jika validasi berhasil.