AvatarCreationService

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Hizmet

AvatarCreationService geliştirici avatar yaratıcılarını destekleyen bir hizmettir ve deneyimlerden avatar oluşturma isteğini destekleyen yöntemler sağlar.

Özet

Yöntemler

Özellikler

Yöntemler

GetValidationRules

Varlıkların UGC doğrulamasını geçmek için uyması gereken kurallarla ilgili veri alır.Avatar oluşturmadan önce doğrulama önemli bir adımdır ve mesh üçgen sınırları, dokunma boyutları, vücut parça boyut sınırları, bağlantı pozisyonları ve daha fazlası dahil olmak üzere çeşitli kontroller meydana gel.

Geçerlilik kurallarının döndürülen sözlüğü aşağıdaki formu alır:


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

Dönüşler

Ayrıntılı olarak yukarıda belirtilen geçerlilik kuralları sözlüğü.

GenerateAvatar2DPreviewAsync

Bekletir

Parametreler

avatarGeneration2dPreviewParams: Dictionary
Varsayılan değer: ""

Dönüşler

GetBatchTokenDetailsAsync

Bekletir

Tek seferde bir avatar oluşturma jetonu listesi için avatar oluşturma jetonu detaylarını alır (jetonlar jeton oluşturma süreci aracılığıyla oluşturulur).Bir dizi avatar oluşturma jeton detayı döndürür; her jeton detayı aşağıdaki örnek sonucunda belirtilen alanlara sahip bir sözlüktür:


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

Parametreler

tokenIds: Array

Ayrıntıları almak için avatar oluşturma jetonu ID'lerinin listesi.

Varsayılan değer: ""

Dönüşler

Yukarıda açıklanan avatar oluşturma jeton detaylarının bir dizi.

LoadAvatar2DPreviewAsync

Bekletir

Parametreler

previewId: string
Varsayılan değer: ""

Dönüşler

LoadGeneratedAvatarAsync

Bekletir

Parametreler

generationId: string
Varsayılan değer: ""

Dönüşler

PrepareAvatarForPreviewAsync

()
Bekletir

Parametreler

humanoidModel: Model
Varsayılan değer: ""

Dönüşler

()

PromptCreateAvatarAsync

Bekletir

Bir Player 'dan bir avatar satın alıp oluşturmak ve bir HumanoidDescription 'dan almak için bir talep gönderir.Yaratmanın fiyatı, avatar yaratma jetonuna atfedilen fiyata bağlıdır.Bu avatar oluşturma jetonu, vücudun satın alınması ve yaratılması için gereklidir ve token oluşturma süreci izlenerek üretilebilir.

Avatar yaratımiçin, HumanoidDescription 6 vücut parçası için yeni oluşturulacak yeni varlıkları içermesi beklenir (Head , Torso , RightLeg , LeftLeg , RightArm , LeftArm ).Opsiyonel olarak, yeni bir Hair aksesuar da içerebilir.

Bunu desteklemek için, 6 çocuğu (her vücut parçası için bir tane) içermelidir ().Her biri için, özelliği tüm vücut parçasını oluşturan tüm örneklerini içeren bir referans verir, örneğin bir klasörü, , ve örnekleri .BodyPartDescription.BodyPart özelliği de ilgili Enum.BodyPart olarak ayarlanmalıdır.

Her vücut parçası MeshPart da içermelidir:

Saç gibi bir aksesuar dahil ediliyorsa, HumanoidDescription çocuk içermelidir AccessoryDescription nerede:

Son olarak, HumanoidDescription insansız ölçeklerini içermelidir BodyTypeScale , HeadScale , HeightScale , WidthScale ve ProportionScale.Bir temel vücut ile ithal edilen ölçeklerin, HumanoidDescription sağlanan ölçeklerle eşleştiğinden emin olun.

Parametreler

tokenId: string

Bir avatar oluşturma jetonunun kimliği.Jeton, yöntemin çağrıldığı evrenin aynı evren olduğundan geçerli olmalıdır, için token oluşturuldu.Ayrıca, jeton yaratıcısı kimlik doğrulamasını ve Roblox Premium korumalıdır.Bu API'de kullanım için bir jeton oluşturmak için, jeton oluşturma sürecini takip edin.

Varsayılan değer: ""
player: Player

Oluşturma istemiyle birlikte sunulması gereken Player .

Varsayılan değer: ""
humanoidDescription: HumanoidDescription

yaratımiçin tasarlanan avatarın HumanoidDescription 'si.

Varsayılan değer: ""

Dönüşler

Sırayla içeren bir tupl:

Kod Örnekleri

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

Bekletir

Sadece stüdyo. Bir ve için verildiğinde, UGC doğrulaması geçerse belirler.

Parametreler

player: Player

Player doğrulama tamamlandı için.

Varsayılan değer: ""
accessory: Instance

Instans doğrulaması yapılır.

Varsayılan değer: ""
accessoryType: Enum.AccessoryType

Enum.AccessoryType örnek bekleniyor. Bekleniyor Eyebrow , Eyelash veya Hair .

Varsayılan değer: ""

Dönüşler

Sırayla içeren bir tupl:

  • aksesuariçin doğrulamanın başarılı olup olmadığını gösteren bir boolean.
  • Opsiyonel bir dize tablosu. Bu, doğrulama başarısız olduğunda başarısızlık nedenlerini içerir; başarılı olduğunda ise nil doğrulama başarılı olduğunda.

ValidateUGCBodyPartAsync

Bekletir

Sadece stüdyo.Bir ve için verildiğinde, UGC doğrulaması geçerse belirler. parametri, ilgili ile aşağıdaki örnek biçimiyle beklenir:

Ancak, beklenen bodyPart eğer Enum.BodyPart.Head ise, işlev tek bir Head``Class.MeshPart doğrudan alır.

Parametreler

player: Player

Player doğrulama tamamlandı için.

Varsayılan değer: ""
instance: Instance

Instans doğrulaması yapılır.

Varsayılan değer: ""
bodyPart: Enum.BodyPart

Enum.BodyPart örnek bekleniyor.

Varsayılan değer: ""

Dönüşler

Sırayla içeren bir tupl:

  • Vücut parçası için geçerliğin başarılı olup olmadığını gösteren bir mantık değeri.
  • Opsiyonel bir dize tablosu. Bu, doğrulama başarısız olduğunda başarısızlık nedenlerini içerir; başarılı olduğunda ise nil doğrulama başarılı olduğunda.

ValidateUGCFullBodyAsync

Bekletir

Sadece stüdyo. Bir Player ve HumanoidDescription verildiğinde, HumanoidDescription 'daki tüm örnekler doğrulanacaktır.

The 6 gerekli değerler için her bir çocuğa yüklenen örnekleri içermesi bekleniyor.Opsiyonel olarak, AccessoryDescription çocuklar için ayarlanan örnekleri içerebilir Eyebrow , Eyelash ve Hair``Enum.AccessoryType|AccessoryTypes .

Parametreler

player: Player

Player doğrulama tamamlandı için.

Varsayılan değer: ""
humanoidDescription: HumanoidDescription

HumanoidDescription doğrulamanın yürütüldüğü vücutu temsil ediyor.

Varsayılan değer: ""

Dönüşler

Sırayla içeren bir tupl:

  • vücutiçin geçerliğin başarılı olup olmadığını gösteren bir mantık değeri.
  • Opsiyonel bir dize tablosu. Bu, doğrulama başarısız olduğunda başarısızlık nedenlerini içerir; başarılı olduğunda ise nil doğrulama başarılı olduğunda.

Etkinlikler

AvatarModerationCompleted

Parametreler

outfitId: number
moderationStatus: Enum.ModerationStatus