AvatarCreationService

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Service

AvatarCreationService est un service qui soutient les créateurs d'avatars développeurs, en fournissant des méthodes qui supportent l'invitation à la création d'avatar à partir des expériences.

Résumé

Méthodes

Propriétés

Méthodes

GetValidationRules

Obtient des données relatives aux règles auxquelles les ressources doivent adhérer pour passer la validation UGC.La validation est une étape essentielle avant la création d'avatars et il y a plusieurs vérifications qui survernir, y compris les limites du triangle de maillage, les tailles des textures, les limites de la taille des parties du corps, les positions d'attachement et plus encore.

Le dictionnaire de règles de validation retourné prend la forme suivante :


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

Retours

Dictionnaire des règles de validation comme détaillé ci-dessus.

GenerateAvatar2DPreviewAsync

Rendement

Paramètres

avatarGeneration2dPreviewParams: Dictionary
Valeur par défaut : ""

Retours

GetBatchTokenDetailsAsync

Rendement

Obtient les détails du jeton de création d'avatar pour une liste de jetons de création d'avatar à la fois (les jetons sont générés via le processus de création de jeton ).Renvoie une série de détails de création de jeton d'avatar ; chaque détail de jeton est un dictionnaire avec les champs indiqués dans le résultat d'exemple ci-dessous :


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

Paramètres

tokenIds: Array

La liste des ID de token de création d'avatar pour obtenir des détails.

Valeur par défaut : ""

Retours

Liste des détails du jeton de création d'avatar comme décrit ci-dessus.

LoadAvatar2DPreviewAsync

Rendement

Paramètres

previewId: string
Valeur par défaut : ""

Retours

LoadGeneratedAvatarAsync

Rendement

Paramètres

generationId: string
Valeur par défaut : ""

Retours

PrepareAvatarForPreviewAsync

()
Rendement

Paramètres

humanoidModel: Model
Valeur par défaut : ""

Retours

()

PromptCreateAvatarAsync

Rendement

Demande à un Player d'acheter et de créer un avatar à partir d'un HumanoidDescription .Le prix de la création est dicté par le prix attribué au jeton de création d'avatar.Ce jeton de création d'avatar est requis pour l'achat et la création du corps et peut être généré en suivant le processus de création de jeton .

Pour la créationsd'un avatar, on s'attend à ce que le HumanoidDescription inclue de nouvelles ressources à créer pour chacune des 6 parties du corps (Head, Torso, RightLeg, LeftLeg, RightArm, LeftArm).Facultativement, il peut également inclure un nouvel accesoireHair .

Pour soutenir cela, le HumanoidDescription devrait inclure 6 BodyPartDescription enfants (un pour chaque partie du corps).Pour chacun, la propriété réfère à un qui inclut toutes les instances qui composent la partie du corps, par exemple un dossier qui contient , et .La propriété BodyPartDescription.BodyPart doit également être définie sur le Enum.BodyPart pertinent.

Chaque partie du corps MeshPart devra également inclure :

Si vous incluez un accessoire tel que les cheveux, le HumanoidDescription devrait inclure un enfant AccessoryDescription où :

Enfin, le HumanoidDescription devrait inclure les écailles humanoïdes de BodyTypeScale, HeadScale, HeightScale, WidthScale et ProportionScale.Gardez à l'esprit les échelles avec lesquelles un corps de base est importé afin qu'elles correspondent aux échelles fournies à la HumanoidDescription.

Paramètres

tokenId: string

L'ID d'un jeton de création d'avatar.Le jeton doit être valide dans l'univers à partir duquel la méthode est appelée est le même univers pour lequel le jeton a été créé.De plus, le créateur de jeton doit maintenir la vérification de l'ID et Roblox Premium.Pour créer un jeton pour l'utilisation dans cette API, suivez le processus de création de jeton ..

Valeur par défaut : ""
player: Player

Le Player destiné à être présenté avec l'invite de création.

Valeur par défaut : ""
humanoidDescription: HumanoidDescription

Le HumanoidDescription de l'avatar destiné à la créations.

Valeur par défaut : ""

Retours

Un tuple contenant, dans l'ordre :

Échantillons de code

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

Rendement

Studio uniquement. Donné un Player et Instance pour un Enum.AccessoryType, détermine si la validation de l'UGC passe.

Paramètres

player: Player

La validation Player est terminée pour.

Valeur par défaut : ""
accessory: Instance

La validation de l'instance est exécutée.

Valeur par défaut : ""
accessoryType: Enum.AccessoryType

Enum.AccessoryType l'instance est attendue pour être. Attend Eyebrow , Eyelash ou Hair .

Valeur par défaut : ""

Retours

Un tuple contenant, dans l'ordre :

  • Un booléen indiquant si la validation a été réussie pour l'accesoire.
  • Une table facultative de chaînes. Cela inclut les raisons d'échec de la validation si elle a échoué ; sinon nil si la validation a réussi.

ValidateUGCBodyPartAsync

Rendement

Studio uniquement.Donné un Player et Instance pour un Enum.BodyPart , détermine si la validation de l'UGC passe.Le paramètre instance est attendu comme un Folder dans le format d'exemple suivant avec le paramètre pertinent MeshParts :

Cependant, si la valeur attendue bodyPart est Enum.BodyPart.Head , la fonction prend un singulier Head``Class.MeshPart directement.

Paramètres

player: Player

La validation Player est terminée pour.

Valeur par défaut : ""
instance: Instance

La validation de l'instance est exécutée.

Valeur par défaut : ""
bodyPart: Enum.BodyPart

Enum.BodyPart l'instance est attendue pour être.

Valeur par défaut : ""

Retours

Un tuple contenant, dans l'ordre :

  • Un booléen indiquant si la validation a été réussie pour la partie du corps.
  • Une table facultative de chaînes. Cela inclut les raisons d'échec de la validation si elle a échoué ; sinon nil si la validation a réussi.

ValidateUGCFullBodyAsync

Rendement

Studio uniquement. Étant donné un Player et HumanoidDescription, toutes les instances dans le HumanoidDescription seront validées.

On s'attend à ce que le HumanoidDescription inclue des instances définies sur BodyPartDescription les enfants pour chacune des 6 valeurs Enum.BodyPart requises.Facultativement, elle peut inclure des instances définies sur AccessoryDescription enfants pour Eyebrow , Eyelash , et Hair``Enum.AccessoryType|AccessoryTypes .

Paramètres

player: Player

La validation Player est terminée pour.

Valeur par défaut : ""
humanoidDescription: HumanoidDescription

HumanoidDescription représentant le corps sur lequel la validation est exécutée.

Valeur par défaut : ""

Retours

Un tuple contenant, dans l'ordre :

  • Un booléen indiquant si la validation a été réussie pour le corps.
  • Une table facultative de chaînes. Cela inclut les raisons d'échec de la validation si elle a échoué ; sinon nil si la validation a réussi.

Évènements

AvatarModerationCompleted

Paramètres

outfitId: number
moderationStatus: Enum.ModerationStatus