AvatarCreationService
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
AvatarCreationService es un servicio que soporta creadores de avatares de desarrolladores, proporcionando métodos que admiten la solicitud de la creación de avatares desde dentro de las experiencias.
Resumen
Métodos
Obtiene datos sobre las reglas que los activos deben cumplir para pasar la validación de UGC.
Obtiene los detalles del token de creación de avatar para una lista de tokens de creación de avatar a la vez.
- PromptCreateAvatarAsync(tokenId : string,player : Player,humanoidDescription : HumanoidDescription):Tuple
Solicita a Player que compre y cree un avatar desde un HumanoidDescription .
- ValidateUGCAccessoryAsync(player : Player,accessory : Instance,accessoryType : Enum.AccessoryType):Tuple
Solo estudio. Ejecuta la validación de UGC para un Enum.AccessoryType .
Solo estudio. Ejecuta la validación de UGC para un Enum.BodyPart .
Solo estudio. Ejecuta la validación de UGC para todo el cuerpo.
Eventos
- AvatarModerationCompleted(outfitId : number,moderationStatus : Enum.ModerationStatus):RBXScriptSignal
Propiedades
Métodos
GetValidationRules
Obtiene datos sobre las reglas que los activos deben cumplir para pasar la validación de UGC.La validación es un paso esencial antes de crear avatares y hay varias comprobaciones que producirse, incluidos los límites de triángulo de malla, los tamaños de textura, los límites de tamaño de parte del cuerpo, las posiciones de los accesorios y más.
El diccionario devuelto de reglas de validación toma la siguiente forma:
{["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,},...}}
Devuelve
Diccionario de reglas de validación como se detalla anteriormente.
GenerateAvatar2DPreviewAsync
Parámetros
Devuelve
GetBatchTokenDetailsAsync
Obtiene los detalles del token de creación de avatar para una lista de tokens de creación de avatar a la vez (los tokens se generan a través del proceso de creación de tokens ).Devuelve un array de detalles de creación de avatar; cada detalle de token es un diccionario con los campos indicados en el resultado de ejemplo a continuación:
{["Name"] = "string",["Description"] = "string",["UniverseId"] = 0,["CreatorId"] = 0,["CreatorType"] = Enum.CreatorType.User,["OnSale"] = true,["Price"] = 0,["OffSaleReasons"] = {"string",}}
Parámetros
La lista de ID de token de creación de avatar para obtener detalles.
Devuelve
阵列 de detalles de creación de token de avatar como se describe anteriormente.
LoadAvatar2DPreviewAsync
Parámetros
Devuelve
LoadGeneratedAvatarAsync
Parámetros
Devuelve
PromptCreateAvatarAsync
Solicita a Player que compre y cree un avatar desde un HumanoidDescription .El precio de la creación se dicta por el precio atribuido al token de creación de avatar.Esta ficha de creación de avatar es requerida para la compra y creación del cuerpo y se puede generar siguiendo el proceso de creación de fichas de.
Para la creacionesde avatares, se espera que el HumanoidDescription incluya nuevos recursos a crear para cada una de las 6 partes del cuerpo (Head , Torso , RightLeg , LeftLeg , RightArm , LeftArm).Opcionalmente, también puede incluir un nuevo accesorio Hair.
Para apoyar esto, el HumanoidDescription debe incluir 6 BodyPartDescription niños (uno por cada parte del cuerpo).Para cada uno, la propiedad se refiere a una que incluye todas las instancias que componen la parte del cuerpo, por ejemplo, una carpeta que tiene , y .La propiedad BodyPartDescription.BodyPart debe establecerse también al Enum.BodyPart relevante.
Cada parte del cuerpo MeshPart también deberá incluir:
- An EditableImage .
- Un WrapDeformer con un EditableMesh.
Si se incluye un accesorio como el pelo, el HumanoidDescription debe incluir un hijo AccessoryDescription donde:
- La propiedad AccessoryDescription.Instance se refiere a la instancia Accessory.
- La propiedad AccessoryDescription.AccessoryType se establece en el relevante Enum.AccessoryType.
Por último, el HumanoidDescription debe incluir las escalas humanoides de BodyTypeScale , HeadScale , HeightScale , WidthScale , y ProportionScale .Tenga en cuenta las escalas con las que se importa un cuerpo base para que coincidan con las escalas proporcionadas al HumanoidDescription.
Parámetros
El ID de una creación de token de avatar.El token debe ser válido en que el universo al que se llama el método es el mismo universo para el que se creó el token.Además, el creador de tokens debe mantener la verificación de ID y Roblox Premium.Para crear una token para su utilización en esta API, sigue el proceso de creación de fichas.
El Player destinado a presentarse con el asistente de creación.
El HumanoidDescription de la avatar destinado a la creaciones.
Devuelve
Un túnel que contiene, en orden:
Un Enum.PromptCreateAvatarResult que indica el resultado de la solicitud de creación.
Un resultado de cadena.En el caso de Enum.PromptCreateAvatarResult.Success , esto indicará la ID del paquete.En el caso de cualquier fallo enumerado, esto indicará el mensaje de error resultante.
Un resultado de cadena opcional secundario.En el caso de Enum.PromptCreateAvatarResult.Success, esto indicará la ID del atuendo.En el caso de cualquier fallo enumerado, este será nil .
Muestras de código
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
Solo estudio. Dado un Player y Instance por un Enum.AccessoryType , determina si pasa la validación de UGC.
Parámetros
Se ejecuta la validación de la instancia.
Enum.AccessoryType se espera que la instancia sea. Espera Eyebrow , Eyelash o Hair .
Devuelve
Un túnel que contiene, en orden:
- Un booleano que indica si la validación tuvo éxito para el accesorio.
- Una tabla opcional de cadenas. Esto incluye razones de fallo si la validación no tuvo éxito; de lo contrario, nil si la validación tuvo éxito.
ValidateUGCBodyPartAsync
Solo estudio.Dada una Player y Instance por un Enum.BodyPart , determina si pasa la validación de UGC.El parámetro instance se espera como un Folder en el siguiente formato de ejemplo con relevancia MeshParts :
Sin embargo, si el esperado es , la función toma un singular directamente.
Parámetros
Se ejecuta la validación de la instancia.
Enum.BodyPart se espera que la instancia sea.
Devuelve
Un túnel que contiene, en orden:
- Un booleano que indica si la validación tuvo éxito para la parte del cuerpo.
- Una tabla opcional de cadenas. Esto incluye razones de fallo si la validación no tuvo éxito; de lo contrario, nil si la validación tuvo éxito.
ValidateUGCFullBodyAsync
Solo estudio. Dado un Player y HumanoidDescription, todas las instancias en el HumanoidDescription se validarán.
Se espera que el HumanoidDescription incluya instancias establecidas en BodyPartDescription hijos para cada uno de los 6 valores requeridos Enum.BodyPart.Opcionalmente, puede incluir instancias establecidas en AccessoryDescription hijos para Eyebrow , Eyelash , y Hair``Enum.AccessoryType|AccessoryTypes .
Parámetros
HumanoidDescription representando el cuerpo en el que se ejecuta la validación.
Devuelve
Un túnel que contiene, en orden:
- Un booleano que indica si la validación tuvo éxito para el cuerpo.
- Una tabla opcional de cadenas. Esto incluye razones de fallo si la validación no tuvo éxito; de lo contrario, nil si la validación tuvo éxito.