AvatarCreationService
*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.
AvatarCreationService é um serviço que suporta criadores de avatar de desenvolvedores, fornecendo métodos que suportam a solicitação de criação de avatar a partir de experiências.
요약
메서드
Obtém dados sobre as regras que os recursos devem respeitar para passar pela 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 só 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 a validação de UGC para um Enum.AccessoryType .
Apenas estúdio. Executa a validação de UGC para um Enum.BodyPart .
Apenas estúdio. Executa validação de UGC para todo o corpo.
이벤트
- AvatarModerationCompleted(outfitId : number,moderationStatus : Enum.ModerationStatus):RBXScriptSignal
속성
메서드
GetValidationRules
Obtém dados sobre as regras que os recursos devem respeitar para passar pela validação do UGC.A validação é um passo essencial antes de criar avatares e existem várias verificações que ocorrem, 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 de regras de validação retornado toma 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,},...}}
반환
Dicionário de regras de validação como descrito acima.
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 do token de criação de avatar; cada detalhe do 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",}}
매개 변수
A lista de IDs de token de criação de avatar para obter detalhes.
반환
Array de detalhes do token de criação de avatar como descrito acima.
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 do 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 criação.
Para criação de avatar, 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 acessório Hair.
Para suportar isso, o HumanoidDescription deve incluir 6 BodyPartDescription crianças (uma para cada parte do corpo).Para cada, a propriedade refere 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 também deve ser definida 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 está 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.
매개 변수
O ID de um token de criação de avatar.O token deve ser válido, pois 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, siga o processo de criação de token token.
O HumanoidDescription do avatar destinado à criação.
반환
Um tuplo 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 secundário opcional de corda.No caso de Enum.PromptCreateAvatarResult.Success, isso indicará o ID da roupa.No caso de qualquer falha de enumeração, isso será nil.
코드 샘플
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 para um Enum.AccessoryType, determina se a validação do UGC passa.
매개 변수
A validação da instância é executada.
Enum.AccessoryType a instância é esperada para ser. Espera Eyebrow , Eyelash ou Hair.
반환
Um tuplo que contém, em ordem:
- Um booleano indicando 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 foi bem-sucedida; caso contrário, nil se a validação foi bem-sucedida.
ValidateUGCBodyPartAsync
Apenas estúdio.Dado um Player e Instance para 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 é , a função toma um singular diretamente.
매개 변수
A validação da instância é executada.
Enum.BodyPart a instância é esperada ser.
반환
Um tuplo que contém, em ordem:
- Um booleano indicando 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 foi bem-sucedida; caso contrário, nil se a validação foi 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 .
매개 변수
HumanoidDescription representando o corpo em que a validação é executada.
반환
Um tuplo 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 foi bem-sucedida; caso contrário, nil se a validação foi bem-sucedida.