AvatarCreationService

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Layanan

AvatarCreationService adalah layanan yang mendukung pencipta avatar pengembang, menyediakan metode yang mendukung prompting pembuatan avatar dari dalam pengalaman.

Rangkuman

Metode

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

Hasil

Parameter

avatarGeneration2dPreviewParams: Dictionary
Nilai Default: ""

Memberikan nilai

GetBatchTokenDetailsAsync

Hasil

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

tokenIds: Array

Daftar ID token pembuatan avatar untuk mendapatkan rincian.

Nilai Default: ""

Memberikan nilai

Array dari rincian token pembuatan avatar seperti yang dijelaskan di atas.

LoadAvatar2DPreviewAsync

Hasil

Parameter

previewId: string
Nilai Default: ""

Memberikan nilai

LoadGeneratedAvatarAsync

Hasil

Parameter

generationId: string
Nilai Default: ""

Memberikan nilai

PrepareAvatarForPreviewAsync

()
Hasil

Parameter

humanoidModel: Model
Nilai Default: ""

Memberikan nilai

()

PromptCreateAvatarAsync

Hasil

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:

Jika termasuk aksesori seperti rambut, HumanoidDescription harus termasuk anak AccessoryDescription di mana:

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

tokenId: string

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.

Nilai Default: ""
player: Player

The Player dimaksudkan untuk dipresentasikan dengan prompt penciptaan.

Nilai Default: ""
humanoidDescription: HumanoidDescription

The HumanoidDescription dari avatar yang dimaksudkan untuk kreasi.

Nilai Default: ""

Memberikan nilai

Sebuah tuple yang berisi, dalam urutan:

Contoh Kode

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

Hasil

Hanya studio. Diberikan Player dan Instance untuk Enum.AccessoryType , menentukan apakah validasi UGC lulus.

Parameter

player: Player

Validasi Player selesai untuk.

Nilai Default: ""
accessory: Instance

Validasi instansi dijalankan.

Nilai Default: ""
accessoryType: Enum.AccessoryType

Enum.AccessoryType instans diharapkan menjadi. Mengharapkan Eyebrow , Eyelash , atau Hair .

Nilai Default: ""

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

Hasil

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

player: Player

Validasi Player selesai untuk.

Nilai Default: ""
instance: Instance

Validasi instansi dijalankan.

Nilai Default: ""
bodyPart: Enum.BodyPart

Enum.BodyPart instansi diharapkan menjadi.

Nilai Default: ""

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

Hasil

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

player: Player

Validasi Player selesai untuk.

Nilai Default: ""
humanoidDescription: HumanoidDescription

HumanoidDescription mewakili tubuh yang dijalankan validasi.

Nilai Default: ""

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.

Acara

AvatarModerationCompleted

Parameter

outfitId: number
moderationStatus: Enum.ModerationStatus