AvatarCreationService

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Usługa

AvatarCreationService jest usługą, która wspiera twórców awatarów, zapewniając metody wspierające wskazywanie tworzenia awatara z wnętrza doświadczeń.

Podsumowanie

Metody

Właściwości

Metody

GetValidationRules

Zdobywa dane dotyczące zasad, których aktywa muszą przestrzegać, aby przejść weryfikację UGC.Weryfikacja jest niezbędnym krokiem przed tworzeniem awatarów i istnieje wiele różnych kontroli, które występować, w tym ograniczenia trójkąta siatki, rozmiary tekstur, ograniczenia rozmiaru części ciała, pozycje załączników i wiele więcej.

Zwrócony słownik zasad walidacji przyjmuje następną formę:


{
["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,
},
...
}
}

Zwroty

Słownik zasad walidacji szczegółowo opisany powyżej.

GenerateAvatar2DPreviewAsync

Wynik

Parametry

avatarGeneration2dPreviewParams: Dictionary
Wartość domyślna: ""

Zwroty

GetBatchTokenDetailsAsync

Wynik

Zdobywa szczegóły tokenu tworzenia awatara dla listy tokenów tworzenia awatara naraz (tokeny są generowane za pomocą procesu tworzenia tokenów tokenami).Zwraca listę szczegółów tworzenia awatara; każdy szczegół jest słownikiem z polami wskazanymi w wyniku przykładu poniżej:


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

Parametry

tokenIds: Array

Lista ID tokenów tworzenia awatara, aby uzyskać szczegóły.

Wartość domyślna: ""

Zwroty

Lista szczegółów tokenu tworzenia awatara, jak opisano powyżej.

LoadAvatar2DPreviewAsync

Wynik

Parametry

previewId: string
Wartość domyślna: ""

Zwroty

LoadGeneratedAvatarAsync

Wynik

Parametry

generationId: string
Wartość domyślna: ""

Zwroty

PrepareAvatarForPreviewAsync

()
Wynik

Parametry

humanoidModel: Model
Wartość domyślna: ""

Zwroty

()

PromptCreateAvatarAsync

Wynik

Wymaga od Player kupienia i stworzenia awatara z HumanoidDescription .Cena tworzenia jest określana przez cenę przypisaną do tokenu tworzenia awatara.Ten token tworzenia awatara jest wymagany do zakupu i tworzenia ciała i może być generowany poprzez przestrzeganie procesu tworzenia tokenów.

W przypadku dziełoawatara oczekuje się, że HumanoidDescription obejmuje nowe zasoby, które należy stworzyć dla każdej z 6 części ciała (Head , Torso , RightLeg , LeftLeg , RightArm , LeftArm).Opcjonalnie może również zawierać nowy Hair akcesorium.

Aby to wspierać, HumanoidDescription powinno zawierać 6 dzieci BodyPartDescription (po jednym dla każdej części ciała).Dla każdego, właściwość odnosi się do , która obejmuje wszystkie instancje , które tworzą część ciała, na przykład katalog , który zawiera , i .Właściwość BodyPartDescription.BodyPart powinna również zostać ustawiona na odpowiednią Enum.BodyPart.

Każda część ciała MeshPart będzie również musiała zawierać:

Jeśli włącza się akcesorium, takie jak włosy, HumanoidDescription powinno zawierać dziecko AccessoryDescription, gdzie:

Wreszcie, HumanoidDescription powinno zawierać skale humanoidów BodyTypeScale , HeadScale , HeightScale , WidthScale i ProportionScale .Bądź świadomy skal, z którymi zaimportowano podstawowe ciało, aby pasowały do skal dostarczonych do HumanoidDescription.

Parametry

tokenId: string

ID tokenu tworzenia awatara.Token musi być ważny, ponieważ wszechświat, z którego metoda jest wzywana, jest tym samym wszechświatem, dla którego token został stworzony.Ponadto twórca tokenów musi utrzymywać weryfikację tożsamości i Roblox Premium.Aby utworzyć token do wykorzystania w tym API, postępuj zgodnie z procesem tworzenia tokenów.

Wartość domyślna: ""
player: Player

The Player przeznaczony do prezentacji z powiadomieniem o tworzeniu

Wartość domyślna: ""
humanoidDescription: HumanoidDescription

The HumanoidDescription z awatara przeznaczone do dzieło.

Wartość domyślna: ""

Zwroty

Tuple zawierający, w kolejności:

Przykłady kodu

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

Wynik

Tylko studio. Biorąc pod uwagę Player i Instance dla Enum.AccessoryType, określa, czy przejdzie weryfikacja UGC.

Parametry

player: Player

Weryfikacja Player jest zakończona dla.

Wartość domyślna: ""
accessory: Instance

Weryfikacja instancji jest uruchomiona.

Wartość domyślna: ""
accessoryType: Enum.AccessoryType

Enum.AccessoryType oczekuje się, że instancja będzie. Oczekuje Eyebrow , Eyelash lub Hair .

Wartość domyślna: ""

Zwroty

Tuple zawierający, w kolejności:

  • Boolean wskazujący, czy weryfikacja zakończyła się sukcesem dla akcesorium.
  • Opcjonalny stół ciągów. Obejmuje powody awarii, jeśli weryfikacja nie powiodła się; w przeciwnym razie nil jeśli weryfikacja powiodła się sukcesem.

ValidateUGCBodyPartAsync

Wynik

Tylko studio.Biorąc pod uwagę Player i Instance dla Enum.BodyPart, określa, czy przejdzie weryfikacja UGC.Parametr instance oczekuje się jako Folder w następującym formacie przykładu z odpowiednim MeshParts :

Jeśli jednak oczekiwany bodyPart jest Enum.BodyPart.Head , funkcja bierze pojedynczą Head``Class.MeshPart bezpośrednio.

Parametry

player: Player

Weryfikacja Player jest zakończona dla.

Wartość domyślna: ""
instance: Instance

Weryfikacja instancji jest uruchomiona.

Wartość domyślna: ""
bodyPart: Enum.BodyPart

Enum.BodyPart oczekuje się, że instancja będzie.

Wartość domyślna: ""

Zwroty

Tuple zawierający, w kolejności:

  • Boolean wskazujący, czy weryfikacja zakończyła się sukcesem dla części ciała.
  • Opcjonalny stół ciągów. Obejmuje powody awarii, jeśli weryfikacja nie powiodła się; w przeciwnym razie nil jeśli weryfikacja powiodła się sukcesem.

ValidateUGCFullBodyAsync

Wynik

Tylko studio. Biorąc pod uwagę Player i HumanoidDescription, wszystkie instancje w HumanoidDescription zostaną zweryfikowane.

Oczekuje się, że HumanoidDescription będzie zawierać instancje ustawione na BodyPartDescription dzieciach dla każdej z 6 wymaganych wartości Enum.BodyPart.Opcjonalnie może obejmować instancje ustawione na AccessoryDescription dzieciach dla Eyebrow , Eyelash i Hair``Enum.AccessoryType|AccessoryTypes .

Parametry

player: Player

Weryfikacja Player jest zakończona dla.

Wartość domyślna: ""
humanoidDescription: HumanoidDescription

HumanoidDescription reprezentujący ciało, na którym wykonywana jest walidacja.

Wartość domyślna: ""

Zwroty

Tuple zawierający, w kolejności:

  • Boolean wskazujący, czy weryfikacja zakończyła się sukcesem dla ciało.
  • Opcjonalny stół ciągów. Obejmuje powody awarii, jeśli weryfikacja nie powiodła się; w przeciwnym razie nil jeśli weryfikacja powiodła się sukcesem.

Zdarzenia

AvatarModerationCompleted

Parametry

outfitId: number
moderationStatus: Enum.ModerationStatus