AvatarCreationService
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
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
Proprietà
Metodi
Ottiene dati relativi alle regole a cui le risorse devono attenersi per superare la validazione UGC.
Ottiene i dettagli del token di creazione dell'avatar per una lista di token di creazione dell'avatar in una volta.
- PromptCreateAvatarAsync(tokenId : string,player : Player,humanoidDescription : HumanoidDescription):Tuple
Richiede a Player di acquistare e creare un avatar da un HumanoidDescription .
- ValidateUGCAccessoryAsync(player : Player,accessory : Instance,accessoryType : Enum.AccessoryType):Tuple
Solo studio. Esegue la validazione UGC per un Enum.AccessoryType .
Solo studio. Esegue la validazione UGC per un Enum.BodyPart .
Solo studio. Esegue la validazione UGC per un intero corpo.
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
Parametri
Restituzioni
GetBatchTokenDetailsAsync
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
L'elenco degli ID di token di creazione dell'avatar per ottenere dettagli.
Restituzioni
Array di dettagli del token di creazione dell'avatar come descritto sopra.
LoadAvatar2DPreviewAsync
Parametri
Restituzioni
LoadGeneratedAvatarAsync
Parametri
Restituzioni
PromptCreateAvatarAsync
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:
- An EditableImage .
- Un WrapDeformer con un EditableMesh.
Se includi un accessorio come i capelli, il HumanoidDescription dovrebbe includere un figlio AccessoryDescription in cui:
- La proprietà AccessoryDescription.Instance fa riferimento all'istanza Accessory.
- La proprietà AccessoryDescription.AccessoryType è impostata sul rilevante Enum.AccessoryType.
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
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.
Il Player destinato ad essere presentato con la richiesta di creazione.
Il HumanoidDescription dell'avatar destinato alla Creazioni.
Restituzioni
Un tuple che contiene, in ordine:
Un Enum.PromptCreateAvatarResult che indica il risultato della richiesta di creazione.
Un risultato di stringa.Nel caso di Enum.PromptCreateAvatarResult.Success , questo indicherà l'ID del bundle.Nel caso di qualsiasi errore enum, questo indicherà il Messaggiodi errore risultante.
Un Risultatodi stringa opzionale secondario.Nel caso di Enum.PromptCreateAvatarResult.Success , questo indicherà l'ID dell'outfit.Nel caso di qualsiasi enumerazione di fallimento, questo sarà nil .
Campioni di codice
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 studio. Dato un Player e Instance per un Enum.AccessoryType , determina se la validazione UGC passa.
Parametri
La validazione dell'istanza è eseguita.
Enum.AccessoryType l'istanza è prevista essere. Attende Eyebrow , Eyelash o Hair .
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
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
La validazione dell'istanza è eseguita.
Enum.BodyPart l'istanza è prevista di essere.
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
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
HumanoidDescription rappresentando il corpo su cui viene eseguita la validazione.
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.