Większość doświadczeń pozwala graczom używać własnych awatarów Roblox, chociaż niektóre implementują system dostosowania wewnątrz gry, taki jak szablon UGC Homestore. Inne doświadczenia wprowadzają ograniczone zmiany w awatarach graczy, takie jak hełmy, skrzydła lub akcesoria, które pasują do gatunku.
Aby stworzyć unikalne doświadczenie, które zmienia wygląd Twoich użytkowników, możesz dostosować domyślne właściwości postaci za pomocą ustawień awatara lub ręcznego dostosowania wyglądu.
Globalne ustawienia awatara
Opcja Plik ⟩ Ustawienia awatara w Studio umożliwia szybkie ustawienie kilku globalnych właściwości postaci gracza w Twoim doświadczeniu. Ustawienia te stosują się globalnie do wszystkich modeli postaci graczy, którzy dołączają do Twojego doświadczenia. Aby zmodyfikować konkretne postacie, takie jak modele postaci niezależnych, zobacz ręczne dostosowanie wyglądu.
W tym oknie możesz ustawić różne presety dotyczące ubrań, akcesoriów, części ciała, zachowania kolizji, animacji i więcej. Podczas edytowania tych ustawień w roboczym obszarze wyświetlany jest podgląd zastosowanych ustawień.
Aby uzyskać więcej informacji, zobacz Ustawienia awatara.
Ręczne dostosowanie wyglądu
Modele postaci zawierają obiekt Humanoid, który nadaje modelowi specjalne cechy, takie jak chodzenie, skakanie, zakładanie przedmiotów i interakcja z otoczeniem.
Możesz programowo modyfikować Humanoid, aktualizując HumanoidDescription. Dotyczy to zarówno modeli postaci gracza, jak i modeli postaci niezależnych w Twoim doświadczeniu.
Możesz dostosować następujące właściwości postaci w swoim doświadczeniu za pomocą HumanoidDescription:
| Właściwość postaci | Opis |
|---|---|
| Skala | Wartości numeryczne dla cech fizycznych wysokość, szerokość, główka, typ ciała oraz proporcje. Nie wpływa na typy ciała R6. |
| Akcesoria | Identyfikatory zasobów akcesoria zakładane przez postać. |
| Ubrania klasyczne | Identyfikatory zasobów dla Shirt, Pants i ShirtGraphic, których tekstury można zastosować do postaci. |
| Część ciała | Identyfikatory zasobów dla Twarz, Głowa, Tułów, Prawa ręka, Lewa ręka, Prawa noga oraz Lewa noga części postaci. |
| Kolory ciała | BodyColors indywidualnych części postaci. |
| Animacje | Identyfikatory zasobów dla Animacji, które można użyć na postaci. |
Dostosuj postać za pomocą HumanoidDescription, wykonując następujące kroki:
- Utwórz opis na podstawie postaci użytkownika, konkretnego identyfikatora stroju lub konkretnego identyfikatora użytkownika.
- Zmień opis, aby dostosować właściwości, które chcesz zastosować do postaci Humanoid.
- Zastosuj opis do jednej postaci, wszystkich postaci graczy lub nawet do wszystkich postaci pojawiających się.
Utwórz HumanoidDescription
Możesz stworzyć nową instancję HumanoidDescription bezpośrednio w hierarchii Eksploratora lub w Script używając następującego kodu:
Utwórz nową instancję HumanoidDescriptionlocal humanoidDescription = Instance.new("HumanoidDescription")
W większości przypadków powinieneś użyć istniejącego HumanoidDescription zamiast domyślnej nowej HumanoidDescription, odwołując się do istniejącej postaci gracza, stroju awatara lub identyfikatora użytkownika.
Z postaci gracza
Użyj poniższego przykładowego kodu, aby stworzyć nową HumanoidDescription na podstawie aktualnych właściwości postaci gracza:
Generuj HumanoidDescription z postaci graczalocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")local humanoidDescription = Instance.new("HumanoidDescription")if humanoid thenhumanoidDescription = humanoid:GetAppliedDescription()end
Z istniejącego stroju
Użyj poniższego przykładowego kodu, aby stworzyć HumanoidDescription z identyfikatora stroju, korzystając z Players.GetHumanoidDescriptionFromOutfitID:
Generuj HumanoidDescription z identyfikatora strojulocal Players = game:GetService("Players")local outfitId = 480059254local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)
Z konkretnego użytkownika
Użyj poniższego przykładowego kodu, aby stworzyć HumanoidDescription z identyfikatora użytkownika, korzystając z Players:GetHumanoidDescriptionFromUserId():
Generuj HumanoidDescription z identyfikatora użytkownikalocal Players = game:GetService("Players")local userId = 491243243local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)
Zmodyfikuj HumanoidDescription
Aby dostosować właściwości HumanoidDescription, ustaw je bezpośrednio na HumanoidDescription lub użyj określonej metody przed zastosowaniem HumanoidDescription do postaci.
Poniższy przykładowy kod ilustruje różne typy właściwości HumanoidDescription:
Aktualizuj różne właściwości HumanoidDescriptionlocal humanoidDescription = Instance.new("HumanoidDescription")humanoidDescription.HatAccessory = "2551510151,2535600138"humanoidDescription.BodyTypeScale = 0.1humanoidDescription.ClimbAnimation = 619521311humanoidDescription.Face = 86487700humanoidDescription.GraphicTShirt = 1711661humanoidDescription.HeadColor = Color3.new(0, 1, 0)
Ustaw wiele akcesoriów
Dla warstwowych lub zbiorowych zmian akcesoriów możesz użyć HumanoidDescription:SetAccessories(), aby wprowadzić zmiany związane z akcesoriami. Poniższy przykładowy kod dodaje warstwowy sweter i kurtkę w tej kolejności do HumanoidDescription:
Zmień wiele akcesoriów jednocześnielocal humanoidDescription = Instance.new("HumanoidDescription")local accessoryTable = {{Order = 1,AssetId = 6984769289,AccessoryType = Enum.AccessoryType.Sweater},{Order = 2,AssetId = 6984767443,AccessoryType = Enum.AccessoryType.Jacket}}humanoidDescription:SetAccessories(accessoryTable, false)
Zastosuj HumanoidDescription
Zastosuj HumanoidDescription do konkretnych postaci Humanoid w Twoim doświadczeniu za pomocą Humanoid:ApplyDescription() lub Humanoid.LoadCharacterWithHumanoidDescription.
Na pojedynczej postaci
ApplyDescription() może dotyczyć dowolnego Humanoid. Użyj poniższego kodu, aby dodać parę nowych okularów przeciwsłonecznych i nowy tułów do postaci gracza:
Aktualizuj HumanoidDescription dla konkretnej postaci graczalocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal descriptionClone = humanoid:GetAppliedDescription()descriptionClone.Torso = 86500008-- Dozwolone są wiele zasobów akcesoriów na twarz w ciągu ciągu rozdzielonym przecinkiemdescriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"-- Zastosuj zmodyfikowany "descriptionClone" do humanoidahumanoid:ApplyDescription(descriptionClone)end
Na wszystkich postaciach graczy
Użyj poniższego przykładowego kodu, aby zastosować HumanoidDescription do wszystkich aktualnych graczy w grze:
Aktualizuj HumanoidDescription dla wszystkich aktualnych postaci graczylocal Players = game:GetService("Players")for _, player in Players:GetPlayers() dolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid then-- Utwórz HumanoidDescriptionlocal humanoidDescription = Instance.new("HumanoidDescription")humanoidDescription.HatAccessory = "2551510151,2535600138"humanoidDescription.BodyTypeScale = 0.1humanoidDescription.ClimbAnimation = 619521311humanoidDescription.Face = 86487700humanoidDescription.GraphicTShirt = 1711661humanoidDescription.HeadColor = Color3.new(0, 1, 0)humanoid:ApplyDescription(humanoidDescription)endend
Na wszystkich pojawiających się postaciach
Użyj poniższego przykładowego kodu, aby ustawić konkretną HumanoidDescription dla wszystkich pojawiających się postaci graczy:
Aktualizuj HumanoidDescription dla wszystkich pojawiających się postaci
local Players = game:GetService("Players")
-- Zatrzymaj automatyczne pojawianie się, aby można było to zrobić w funkcji "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Utwórz HumanoidDescription
local humanoidDescription = Instance.new("HumanoidDescription")
humanoidDescription.HatAccessory = "2551510151,2535600138"
humanoidDescription.BodyTypeScale = 0.1
humanoidDescription.ClimbAnimation = 619521311
humanoidDescription.Face = 86487700
humanoidDescription.GraphicTShirt = 1711661
humanoidDescription.HeadColor = Color3.new(0, 1, 0)
-- Spawnowanie postaci z HumanoidDescription
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- Połącz zdarzenie "PlayerAdded" z funkcją "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Jeśli instancja HumanoidDescription została stworzona w Eksploratorze i przypisana do obszaru roboczego, użyj poniższego przykładowego kodu w Script, aby uzyskać dostęp do instancji obszaru roboczego:
local Players = game:GetService("Players")
-- Zatrzymaj automatyczne pojawianie się, aby można było to zrobić w funkcji "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Spawnowanie postaci z "workspace.StudioHumanoidDescription"
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- Połącz zdarzenie "PlayerAdded" z funkcją "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Odzież warstwowa na non-R15
Akcesoria w klatkach, takie jak odzież warstwowa, używają WrapTarget oraz WrapLayer, aby rozciągać i owijać się wokół określonego Model. Akcesoria warstwowe mogą działać zarówno z standardowymi awatarami R15 Roblox, jak i modelami non-R15.
Niestandardowa implementacja odzieży warstwowej, na przykład modelu używającego unikalnej mapy UV klatki, nie może być przesyłana i publikowana na rynku. Aby uzyskać więcej informacji, zobacz specyfikacje odzieży warstwowej.
Niezależnie od tego, czy implementujesz akcesoria warstwowe na rig R15 awatara, czy korzystasz z niestandardowego rig, upewnij się, że Twoje akcesoria i ciała zawierają następujące elementy:
- Docelowy model, typowo ciało, ma komponent WrapTarget na siatkach, wokół których ma owijać się dodatkowe modele.
- Model warstwy, typowo odzież lub akcesorium, ma komponent WrapLayer na siatkach, które mają owijać się wokół modelu docelowego.
- Zewnętrzna klatka modelu docelowego oraz wewnętrzna i zewnętrzna klatka modelu warstwy mają odpowiednie mapy UV.
- Odpowiednie wierzchołki na klatce docelowej powinny mieć te same UV, co te wierzchołki na klatce warstwy.
- Jeśli Twój model docelowy jest zarówno R15, jak i zawiera Humanoid, to złącze jest tworzone automatycznie.