AvatarCreationService

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Serviço

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

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

Rendimentos

Parâmetros

avatarGeneration2dPreviewParams: Dictionary
Valor Padrão: ""

Devolução

GetBatchTokenDetailsAsync

Rendimentos

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

tokenIds: Array

A lista de IDs de token de criação de avatar para obter detalhes.

Valor Padrão: ""

Devolução

Array de detalhes do token de criação de avatar como descrito acima.

LoadAvatar2DPreviewAsync

Rendimentos

Parâmetros

previewId: string
Valor Padrão: ""

Devolução

LoadGeneratedAvatarAsync

Rendimentos

Parâmetros

generationId: string
Valor Padrão: ""

Devolução

PrepareAvatarForPreviewAsync

()
Rendimentos

Parâmetros

humanoidModel: Model
Valor Padrão: ""

Devolução

()

PromptCreateAvatarAsync

Rendimentos

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:

Se incluir um acessório como cabelo, o HumanoidDescription deve incluir uma criança AccessoryDescription onde:

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

tokenId: string

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.

Valor Padrão: ""
player: Player

O Player destinado a ser apresentado com o prompt de criação.

Valor Padrão: ""
humanoidDescription: HumanoidDescription

O HumanoidDescription da avatar destinada à criações.

Valor Padrão: ""

Devolução

Um tuple que contém, em ordem:

Amostras de código

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

Rendimentos

Apenas estúdio. Dado um Player e Instance por um Enum.AccessoryType , determina se a validação do UGC passa.

Parâmetros

player: Player

A validação Player é concluída para.

Valor Padrão: ""
accessory: Instance

A validação da instância é executada.

Valor Padrão: ""
accessoryType: Enum.AccessoryType

Enum.AccessoryType a instância é esperada para ser. Espera Eyebrow , Eyelash ou Hair .

Valor Padrão: ""

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

Rendimentos

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

player: Player

A validação Player é concluída para.

Valor Padrão: ""
instance: Instance

A validação da instância é executada.

Valor Padrão: ""
bodyPart: Enum.BodyPart

Enum.BodyPart a instância é esperada para ser.

Valor Padrão: ""

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

Rendimentos

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

player: Player

A validação Player é concluída para.

Valor Padrão: ""
humanoidDescription: HumanoidDescription

HumanoidDescription representando o corpo em que a validação é executada.

Valor Padrão: ""

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.

Eventos

AvatarModerationCompleted

Parâmetros

outfitId: number
moderationStatus: Enum.ModerationStatus