AvatarCreationService
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
AvatarCreationService é um serviço que suporta criadores de avatar de desenvolvedores, fornecendo métodos que suportam a solicitação da criação de avatar a partir de dentro das experiências.
Resumo
Métodos
Obtém dados sobre as regras que os recursos devem respeitar para passar na validação do UGC.
Obtém os detalhes do token de criação de avatar para uma lista de tokens de criação de avatar de uma vez.
- PromptCreateAvatarAsync(tokenId : string,player : Player,humanoidDescription : HumanoidDescription):Tuple
Solicita a um Player para comprar e criar um avatar a partir de um HumanoidDescription .
- ValidateUGCAccessoryAsync(player : Player,accessory : Instance,accessoryType : Enum.AccessoryType):Tuple
Apenas estúdio. Executa validação de UGC para um Enum.AccessoryType .
Apenas estúdio. Executa validação de UGC para um Enum.BodyPart .
Apenas estúdio. Executa a validação de UGC para todo o corpo.
Eventos
- AvatarModerationCompleted(outfitId : number,moderationStatus : Enum.ModerationStatus):RBXScriptSignal
Propriedades
Métodos
GetValidationRules
Obtém dados sobre as regras que os recursos devem respeitar para passar na validação do UGC.A validação é um passo essencial antes de criar avatares e existem várias verificações que ocorrer, incluindo limites de triângulo de malha, tamanhos de textura, limites de tamanho de parte do corpo, posições de anexo e muito mais.
O dicionário retornado de regras de validação assume a seguinte 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,},...}}
Devolução
Dicionário de regras de validação como detalhado acima.
GenerateAvatar2DPreviewAsync
Parâmetros
Devolução
GetBatchTokenDetailsAsync
Obtém os detalhes do token de criação de avatar para uma lista de tokens de criação de avatar de uma vez (os tokens são gerados através do processo de criação de token token.Retorna um conjunto de detalhes de token de criação de avatar; cada detalhe de token é um dicionário com os campos indicados no resultado de exemplo abaixo:
{["Name"] = "string",["Description"] = "string",["UniverseId"] = 0,["CreatorId"] = 0,["CreatorType"] = Enum.CreatorType.User,["OnSale"] = true,["Price"] = 0,["OffSaleReasons"] = {"string",}}
Parâmetros
A lista de IDs de token de criação de avatar para obter detalhes.
Devolução
Array de detalhes do token de criação de avatar como descrito acima.
LoadAvatar2DPreviewAsync
Parâmetros
Devolução
LoadGeneratedAvatarAsync
Parâmetros
Devolução
PromptCreateAvatarAsync
Solicita a um Player para comprar e criar um avatar a partir de um HumanoidDescription .O preço da criação é determinado pelo preço atribuído ao token de criação de avatar.Este token de criação de avatar é necessário para a compra e criação do corpo e pode ser gerado seguindo o processo de criação de tokens de.
Para criaçõesavatar, o HumanoidDescription é esperado para incluir novos recursos a serem criados para cada uma das 6 partes do corpo (Head, Torso, RightLeg, LeftLeg, RightArm, LeftArm).Opcionalmente, também pode incluir um novo Hair acessório.
Para suportar isso, o HumanoidDescription deve incluir 6 BodyPartDescription filhos (um para cada parte do corpo).Para cada, a propriedade refere-se a um que inclui todas as instâncias que compõem a parte do corpo, por exemplo, um pasta que tem , e .A propriedade BodyPartDescription.BodyPart deve ser definida também para o relevante Enum.BodyPart.
Cada parte do corpo MeshPart também precisará incluir:
- An EditableImage .
- Um WrapDeformer com um EditableMesh.
Se incluir um acessório como cabelo, o HumanoidDescription deve incluir uma criança AccessoryDescription onde:
- A propriedade AccessoryDescription.Instance refere-se à instância Accessory.
- A propriedade AccessoryDescription.AccessoryType é definida para o relevante Enum.AccessoryType.
Finalmente, o HumanoidDescription deve incluir as escalas humanóides de BodyTypeScale , HeadScale , HeightScale , WidthScale e ProportionScale .Tenha cuidado com as escalas com as quais um corpo base é importado para que elas correspondam às escalas fornecidas ao HumanoidDescription.
Parâmetros
O ID de um token de criação de avatar.O token deve ser válido na medida em que o universo de onde o método é chamado é o mesmo universo para o qual o token foi criado.Além disso, o criador do token deve manter a verificação de ID e Roblox Premium.Para criar um token para utilização nesta API (Interface de Programação para Aplicações), siga o processo de criação de token token.
O HumanoidDescription da avatar destinada à criações.
Devolução
Um tuple que contém, em ordem:
Um Enum.PromptCreateAvatarResult indicando o resultado do prompt de criação.
Um resultado de string.No caso de Enum.PromptCreateAvatarResult.Success, isso indicará o ID do pacote.No caso de qualquer falha enumerada, isso indicará a mensagem de erro resultante.
Um resultado de corda opcional secundário.No caso de Enum.PromptCreateAvatarResult.Success, isso indicará o ID da roupa.No caso de qualquer falha de enumeração, isso será nil .
Amostras 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
Apenas estúdio. Dado um Player e Instance por um Enum.AccessoryType , determina se a validação do UGC passa.
Parâmetros
A validação da instância é executada.
Enum.AccessoryType a instância é esperada para ser. Espera Eyebrow , Eyelash ou Hair .
Devolução
Um tuple que contém, em ordem:
- Um booleano que indica se a validação foi bem-sucedida para o acessório.
- Uma tabela opcional de strings. Isso inclui razões de falha se a validação não tiver sido bem-sucedida; caso contrário, nil se a validação tiver sido bem-sucedida.
ValidateUGCBodyPartAsync
Apenas estúdio.Dada uma Player e Instance por um Enum.BodyPart , determina se a validação do UGC passa.O parâmetro instance é esperado como um Folder em seguinte formato de exemplo com relevante MeshParts :
No entanto, se o esperado for , a função toma um singular diretamente.
Parâmetros
A validação da instância é executada.
Enum.BodyPart a instância é esperada para ser.
Devolução
Um tuple que contém, em ordem:
- Um booleano que indica se a validação foi bem-sucedida para a parte do corpo.
- Uma tabela opcional de strings. Isso inclui razões de falha se a validação não tiver sido bem-sucedida; caso contrário, nil se a validação tiver sido bem-sucedida.
ValidateUGCFullBodyAsync
Apenas estúdio. Dado um Player e HumanoidDescription, todas as instâncias no HumanoidDescription serão validadas.
O HumanoidDescription é esperado para incluir instâncias definidas em BodyPartDescription filhos para cada um dos 6 valores Enum.BodyPart.Opcionalmente, pode incluir instâncias definidas em AccessoryDescription filhos para Eyebrow , Eyelash e Hair``Enum.AccessoryType|AccessoryTypes .
Parâmetros
HumanoidDescription representando o corpo em que a validação é executada.
Devolução
Um tuple que contém, em ordem:
- Um booleano que indica se a validação foi bem-sucedida para o corpo.
- Uma tabela opcional de strings. Isso inclui razões de falha se a validação não tiver sido bem-sucedida; caso contrário, nil se a validação tiver sido bem-sucedida.