Wygląd postaci

*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.

Większość gier pozwala graczom używać ich własnego awatara Roblox, chociaż niektóre wdrażają system dostosowywania w grze, taki jak szablon UGC Homestore. Inne gry dokonują ograniczonych modyfikacji awatarów graczy, takich jak hełmy, skrzydła lub akcesoria, które pasują do gatunku.

Aby stworzyć unikalną grę, która zmienia wygląd użytkowników, możesz dostosować domyślne właściwości postaci poprzez ustawienia awatara lub ręcznie modyfikować wygląd.

Globalne ustawienia awatara

W Studio, menu PlikUstawienia awatara pozwala szybko ustawić kilka globalnych właściwości postaci gracza w grze. Te ustawienia stosują się globalnie do wszystkich modeli postaci gracza, które dołączają do Twojej gry. Aby modyfikować konkretne postacie, takie jak modele postaci niegracza, zobacz sekcję ręcznie modyfikować wygląd.

W tym oknie możesz ustawić różne presety dla ubrań, akcesoriów, części ciała, zachowania przy kolizji, animacji i innych. Podczas edytowania tych ustawień w przestrzeni roboczej wyświetla się podgląd zastosowanych ustawień.

Aby uzyskać więcej informacji, zapoznaj się z dokumentacją Ustawienia awatara.

Ręcznie modyfikować wygląd

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 modeli postaci graczy lub modeli postaci niegracza w Twojej grze.

Możesz dostosować następujące właściwości postaci w swojej grze, używając HumanoidDescription:

Właściwość postaciOpis
SkalaWartości liczbowe dla cech fizycznych height, width, head, body type i proportion. To nie wpływa na typy ciała R6.
AkcesoriaID zasobów accessories wyposażonych przez postać.
Ubrania klasyczneID zasobów dla obrazów tekstur Shirt, Pants i ShirtGraphic, które można zastosować do postaci.
Część ciałaID zasobów dla części Face, Head, Torso, RightArm, LeftArm, RightLeg i LeftLeg postaci.
Kolory ciałaWłaściwości BodyColors indywidualnych części postaci.
AnimacjeID zasobów Animations, które można użyć na postaci.

Dostosuj postać z użyciem HumanoidDescription, wykonując następujące kroki:

  1. Utwórz opis z postaci użytkownika, konkretnego ID stroju lub konkretnego ID użytkownika.
  2. Modyfikuj opis, aby dostosować właściwości, które chcesz zastosować do postaci Humanoid.
  3. Zastosuj opis na pojedynczej postaci, wszystkich postaciach graczy lub nawet na wszystkich rodzących się postaciach.

Utwórz HumanoidDescription

Możesz utworzyć nową instancję HumanoidDescription bezpośrednio w hierarchii Explorer lub w Script z następującym kodem:

Utwórz nową instancję HumanoidDescription

local humanoidDescription = Instance.new("HumanoidDescription")

W większości przypadków powinieneś użyć istniejącego HumanoidDescription, zamiast domyślnego nowego HumanoidDescription, odwołując się do istniejącej postaci gracza, stroju awatara lub ID użytkownika.


Z postaci gracza

Użyj następującego przykładu kodu, aby utworzyć nową HumanoidDescription na podstawie aktualnych właściwości postaci gracza:

Generuj HumanoidDescription z postaci gracza

local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
local humanoidDescription = Instance.new("HumanoidDescription")
if humanoid then
humanoidDescription = humanoid:GetAppliedDescription()
end

Z istniejącego stroju

Użyj następującego przykładu kodu, aby stworzyć HumanoidDescription z ID stroju przy użyciu Players.GetHumanoidDescriptionFromOutfitID:

Generuj HumanoidDescription z ID stroju

local Players = game:GetService("Players")
local outfitId = 480059254
local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)

Z konkretnego użytkownika

Użyj następującego przykładu kodu, aby stworzyć HumanoidDescription z ID użytkownika przy użyciu Players:GetHumanoidDescriptionFromUserId():

Generuj HumanoidDescription z ID użytkownika

local Players = game:GetService("Players")
local userId = 491243243
local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)

Modyfikuj 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ład kodu przedstawia przykłady ustawiania różnych typów właściwości HumanoidDescription:

Aktualizuj różne właściwości 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)

Ustaw wiele akcesoriów

Aby dokonać zmian w akcesoriach warstwowych lub zbiorczych, możesz użyć HumanoidDescription:SetAccessories(), aby zaktualizować akcesoria. Poniższy przykład kodu dodaje warstwowy sweter i kurtkę w tej kolejności do HumanoidDescription:

Zmień wiele akcesoriów jednocześnie

local 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 określonych postaci Humanoid w swojej grze za pomocą Humanoid:ApplyDescription() lub Humanoid.LoadCharacterWithHumanoidDescription.

Na pojedynczej postaci

ApplyDescription() może celować w dowolny Humanoid. Użyj następującego kodu, aby dodać nową parę okularów przeciwsłonecznych i nowy tors do postaci gracza:

Aktualizuj HumanoidDescription dla konkretnej postaci gracza

local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local descriptionClone = humanoid:GetAppliedDescription()
descriptionClone.Torso = 86500008
-- Dozwolone są wiele zasobów akcesoriów w ciągu oddzielonym przecinkami
descriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"
-- Zastosuj zmodyfikowany "descriptionClone" do humanoida
humanoid:ApplyDescription(descriptionClone)
end

Na wszystkich postaciach graczy

Użyj następującego przykładu kodu, aby zastosować HumanoidDescription do wszystkich aktualnych graczy w grze:

Aktualizuj HumanoidDescription dla wszystkich aktualnych postaci graczy

local Players = game:GetService("Players")
for _, player in Players:GetPlayers() do
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- 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)
humanoid:ApplyDescription(humanoidDescription)
end
end

Na wszystkich rodzących się postaciach

Użyj następującego przykładu kodu, aby ustawić konkretną HumanoidDescription dla wszystkich rodzących się postaci graczy:

Aktualizuj HumanoidDescription dla wszystkich rodzących się postaci

local Players = game:GetService("Players")
-- Zatrzymaj automatyczne rodzenie, aby można je było przeprowadzić w zwrotnym wywołaniu "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)
-- Rodzaj postaci z HumanoidDescription
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- Połącz zdarzenie "PlayerAdded" z funkcją "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)

Jeśli instancja HumanoidDescription została utworzona w Explorer i przypisana do przestrzeni roboczej, użyj następującego przykładu kodu w Script, aby uzyskać dostęp do instancji przestrzeni roboczej:


local Players = game:GetService("Players")
-- Zatrzymaj automatyczne rodzenie, aby można je było przeprowadzić w zwrotnym wywołaniu "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Rodzaj postaci z "workspace.StudioHumanoidDescription"
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- Połącz zdarzenie "PlayerAdded" z funkcją "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)

Ubrania warstwowe na nie-R15

Akcesoria w klatkach, takie jak ubrania warstwowe, używają WrapTarget i WrapLayer, aby rozciągać i owijać nad celem Model. Akcesoria warstwowe mogą działać zarówno z standardowymi postaciami R15 Roblox, jak i modelami nie-R15.

Własna implementacja ubrań warstwowych, np. model używający unikalnej mapy UV klatki, nie może być przesyłana i publikowana na Marketplace. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją specyfikacji ubrań warstwowych.

Niezależnie od tego, czy implementujesz akcesoria warstwowe na rigach awatara R15, czy używasz własnego rig, upewnij się, że Twoje akcesoria i ciała zawierają następujące elementy:

  • Model docelowy, zazwyczaj ciało, ma komponent WrapTarget na siatkach, które dodatkowe modele mają zakładać.
  • Model warstwowy, zazwyczaj ubranie lub akcesorium, ma komponent WrapLayer na siatkach, które mają owijać model docelowy.
  • Zewnętrzna klatka modelu docelowego oraz wewnętrzna i zewnętrzna klatka modelu warstwowego mają dopasowane mapy UV.
    • Odpowiednie wierzchołki na klatce docelowej powinny mieć te same UV, co te wierzchołki na klatce warstwowej.
  • Jeśli Twój model docelowy nie jest R15 lub nie zawiera Humanoid, musisz dodać obiekt Weld do warstwowej MeshPart.
    • Weld musi mieć Part0 i Part1 ustawione, aby połączyć warstwowy MeshPart z hierarchią Parts modelu. Na przykład Part0 odnosi się do akcesorium, a Part1 odnosi się do rodzica Part.
  • Jeśli Twój model docelowy jest zarówno R15, jak i zawiera Humanoid, to złączenie jest tworzone automatycznie.
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.