AvatarCreationService

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Assistenza

AvatarCreationService è un servizio che supporta i creatori di avatar degli sviluppatori, fornendo metodi che supportano la richiesta di creazione di avatar da dentro le esperienze.

Sommario

Metodi

Proprietà

Metodi

GetValidationRules

Ottiene dati relativi alle regole a cui le risorse devono attenersi per superare la validazione UGC.La validazione è un passo essenziale prima di creare avatar e ci sono vari controlli che si Si verificano, tra cui i limiti del triangolo mesh, le dimensioni della texture, i limiti delle parti del corpo, le posizioni degli allegamenti e altro ancora.

Il dizionario restituito delle regole di validazione assume la seguente 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,
},
...
}
}

Restituzioni

Dizionario delle regole di validazione come descritto sopra.

GenerateAvatar2DPreviewAsync

Resa

Parametri

avatarGeneration2dPreviewParams: Dictionary
Valore predefinito: ""

Restituzioni

GetBatchTokenDetailsAsync

Resa

Ottiene i dettagli del token di creazione dell'avatar per una lista di token di creazione dell'avatar in una volta (i token vengono generati attraverso il processo di creazione del token token).Restituisce un array di dettagli della creazione di un token di avatar; ogni dettaglio del token è un dizionario con i campi indicati nel risultato di esempio qui sotto:


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

Parametri

tokenIds: Array

L'elenco degli ID di token di creazione dell'avatar per ottenere dettagli.

Valore predefinito: ""

Restituzioni

Array di dettagli del token di creazione dell'avatar come descritto sopra.

LoadAvatar2DPreviewAsync

Resa

Parametri

previewId: string
Valore predefinito: ""

Restituzioni

LoadGeneratedAvatarAsync

Resa

Parametri

generationId: string
Valore predefinito: ""

Restituzioni

PrepareAvatarForPreviewAsync

()
Resa

Parametri

humanoidModel: Model
Valore predefinito: ""

Restituzioni

()

PromptCreateAvatarAsync

Resa

Richiede a Player di acquistare e creare un avatar da un HumanoidDescription .Il prezzo della creazione è determinato dal prezzo attribuito al token di creazione dell'avatar.Questo token di creazione dell'avatar è richiesto per l'acquisto e la creazione del corpo e può essere generato seguendo il processo di creazione del token .

Per la Creazionidell'avatar, si prevede che il HumanoidDescription includa nuove risorse da creare per ciascuna delle 6 parti del corpo ( Head , Torso , RightLeg , LeftLeg , RightArm , LeftArm ).Opzionalmente, può anche includere un nuovo Hair Accessorio.

Per supportarlo, il HumanoidDescription dovrebbe includere 6 BodyPartDescription bambini (uno per ogni parte del corpo).Per ciascuno, la proprietà fa riferimento a un che include tutte le istanze che compongono la parte del corpo, ad esempio una cartella che ha , e .La proprietà BodyPartDescription.BodyPart dovrebbe anche essere impostata sul pertinente Enum.BodyPart.

Ogni parte del corpo MeshPart avrà anche bisogno di includere:

Se includi un accessorio come i capelli, il HumanoidDescription dovrebbe includere un figlio AccessoryDescription in cui:

Infine, il HumanoidDescription dovrebbe includere le scale umanoidi di BodyTypeScale , HeadScale , HeightScale , WidthScale e ProportionScale .Tieni presente le scale con cui un corpo base viene importato in modo che corrispondano alle scale fornite al HumanoidDescription .

Parametri

tokenId: string

L'ID di un token di creazione dell'avatar.Il token deve essere valido in quanto l'universo da cui viene chiamato il metodo è lo stesso universo per cui è stato creato il token.Inoltre, il creatore di token deve mantenere la verifica dell'ID e Roblox Premium.Per creare un token per l'utilizzo in questa API, segui il processo di creazione del token.

Valore predefinito: ""
player: Player

Il Player destinato ad essere presentato con la richiesta di creazione.

Valore predefinito: ""
humanoidDescription: HumanoidDescription

Il HumanoidDescription dell'avatar destinato alla Creazioni.

Valore predefinito: ""

Restituzioni

Un tuple che contiene, in ordine:

Campioni di codice

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

Resa

Solo studio. Dato un Player e Instance per un Enum.AccessoryType , determina se la validazione UGC passa.

Parametri

player: Player

La validazione Player è completata per.

Valore predefinito: ""
accessory: Instance

La validazione dell'istanza è eseguita.

Valore predefinito: ""
accessoryType: Enum.AccessoryType

Enum.AccessoryType l'istanza è prevista essere. Attende Eyebrow , Eyelash o Hair .

Valore predefinito: ""

Restituzioni

Un tuple che contiene, in ordine:

  • Un booleano che indica se la validazione è stata riuscita per l'Accessorio.
  • Un tavolo opzionale di stringhe. Ciò include le ragioni di fallimento se la validazione non è riuscita; altrimenti nil se la validazione è stata positiva.

ValidateUGCBodyPartAsync

Resa

Solo studio.Dato un Player e Instance per un Enum.BodyPart , determina se la validazione UGC passa.Il parametro instance è atteso come Folder in seguito al seguente formato di esempio con pertinenti MeshParts :

Tuttavia, se l'atteso bodyPart è Enum.BodyPart.Head , la funzione prende un singolare Head``Class.MeshPart direttamente.

Parametri

player: Player

La validazione Player è completata per.

Valore predefinito: ""
instance: Instance

La validazione dell'istanza è eseguita.

Valore predefinito: ""
bodyPart: Enum.BodyPart

Enum.BodyPart l'istanza è prevista di essere.

Valore predefinito: ""

Restituzioni

Un tuple che contiene, in ordine:

  • Un booleano che indica se la validazione è stata riuscita per la parte del corpo.
  • Un tavolo opzionale di stringhe. Ciò include le ragioni di fallimento se la validazione non è riuscita; altrimenti nil se la validazione è stata positiva.

ValidateUGCFullBodyAsync

Resa

Solo studio. Dato un Player e HumanoidDescription, tutte le istanze nel HumanoidDescription saranno validate.

Si prevede che il HumanoidDescription includa istanze impostate su BodyPartDescription figli per ciascuno dei 6 valori Enum.BodyPart richiesti.Opzionalmente, può includere istanze impostate su AccessoryDescription bambini per Eyebrow , Eyelash , e Hair``Enum.AccessoryType|AccessoryTypes .

Parametri

player: Player

La validazione Player è completata per.

Valore predefinito: ""
humanoidDescription: HumanoidDescription

HumanoidDescription rappresentando il corpo su cui viene eseguita la validazione.

Valore predefinito: ""

Restituzioni

Un tuple che contiene, in ordine:

  • Un booleano che indica se la validazione è stata riuscita per il corpo.
  • Un tavolo opzionale di stringhe. Ciò include le ragioni di fallimento se la validazione non è riuscita; altrimenti nil se la validazione è stata positiva.

Eventi

AvatarModerationCompleted

Parametri

outfitId: number
moderationStatus: Enum.ModerationStatus