Die meisten Spiele erlauben es den Spielern, ihren eigenen Roblox-Avatar zu verwenden, obwohl einige ein Anpassungssystem im Spiel implementieren, wie die UGC Homestore Vorlage. Andere Spiele nehmen begrenzte Änderungen an den Spieleravatare vor, wie Helme, Flügel oder Accessoires, die zum Genre passen.
Um ein einzigartiges Spiel zu erstellen, das das Aussehen Ihrer Benutzer verändert, können Sie die standardmäßigen Charaktereigenschaften über Avatar-Einstellungen oder eine manuelle Modifizierung des Aussehens anpassen.
Globale Avatar-Einstellungen
Die Datei ⟩ Avatar-Einstellungen in Studio ermöglicht es Ihnen, mehrere globale Eigenschaften des Spielercharakters in Ihrem Spiel schnell festzulegen. Diese Einstellungen gelten global für alle Spielercharaktermodelle, die Ihrem Spiel beitreten. Um spezifische Charaktere, wie Nicht-Spieler-Charaktermodelle, zu ändern, siehe manuelle Modifizierung des Aussehens.
In diesem Fenster können Sie verschiedene Voreinstellungen für Kleidung, Accessoires, Körperteile, Kollisionseigenschaften, Animationen und mehr festlegen. Wenn Sie diese Einstellungen bearbeiten, wird eine Vorschau der angewendeten Einstellungen im Arbeitsbereich angezeigt.
Für weitere Informationen siehe Avatar-Einstellungen.
Manuelle Modifizierung des Aussehens
Charaktermodelle enthalten ein Humanoid-Objekt, das dem Modell spezielle Eigenschaften verleiht, wie Laufen, Springen, Ausrüsten von Gegenständen und Interaktion mit der Umgebung.
Sie können ein Humanoid programmgesteuert modifizieren, indem Sie HumanoidDescription aktualisieren. Dies umfasst Spielercharaktermodelle oder Nicht-Spielercharaktermodelle in Ihrem Spiel.
Sie können die folgenden Charaktereigenschaften in Ihrem Spiel mithilfe von HumanoidDescription anpassen:
| Charaktereigenschaft | Beschreibung |
|---|---|
| Skalierung | Zahlenwerte für physische Eigenschaften height, width, head, body type und proportion. Dies hat keinen Einfluss auf R6-Körperarten. |
| Accessoires | Die Asset-IDs der accessories, die von einem Charakter ausgestattet sind. |
| Klassische Kleidung | Die Asset-IDs der Shirt, Pants und der ShirtGraphic Bildtexturen, die Sie auf den Charakter anwenden können. |
| Körperteil | Die Asset-IDs der Face, Head, Torso, RightArm, LeftArm, RightLeg und LeftLeg Teile eines Charakters. |
| Körperfarben | Die BodyColors der einzelnen Teile des Charakters. |
| Animationen | Die Asset-IDs der Animations, die Sie auf einem Charakter verwenden können. |
Passen Sie einen Charakter mit HumanoidDescription mithilfe der folgenden Schritte an:
- Erstellen Sie eine Beschreibung aus dem Charakter des Benutzers, einer spezifischen Outfit-ID oder einer spezifischen Benutzer-ID.
- Ändern Sie die Beschreibung, um die Eigenschaften anzupassen, die Sie auf den Humanoid Charakter anwenden möchten.
- Wenden Sie die Beschreibung an auf entweder einen einzelnen Charakter, alle Spielercharaktere oder sogar auf alle neu spawnen Charaktere.
HumanoidDescription erstellen
Sie können eine neue HumanoidDescription-Instanz direkt innerhalb der Explorer-Hierarchie oder innerhalb eines Script mit dem folgenden Code erstellen:
Neue HumanoidDescription-Instanz erstellenlocal humanoidDescription = Instance.new("HumanoidDescription")
In den meisten Fällen sollten Sie eine vorhandene HumanoidDescription verwenden, anstatt eine standardmäßige neue HumanoidDescription, indem Sie auf einen vorhandenen Spielercharakter, ein Avatar-Outfit oder eine Benutzer-ID verweisen.
Vom Spielercharakter
Verwenden Sie das folgende Codebeispiel, um eine neue HumanoidDescription basierend auf den aktuellen Eigenschaften des Spielercharakters zu erstellen:
Generieren Sie eine HumanoidDescription aus einem Spielercharakterlocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")local humanoidDescription = Instance.new("HumanoidDescription")if humanoid thenhumanoidDescription = humanoid:GetAppliedDescription()end
Von einem vorhandenen Outfit
Verwenden Sie das folgende Beispiel, um eine HumanoidDescription aus einer Outfit-ID mithilfe von Players.GetHumanoidDescriptionFromOutfitID zu erstellen:
Generieren Sie eine HumanoidDescription aus einer Outfit-IDlocal Players = game:GetService("Players")local outfitId = 480059254local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)
Von einem bestimmten Benutzer
Verwenden Sie das folgende Beispiel, um eine HumanoidDescription aus einer Benutzer-ID mithilfe von Players:GetHumanoidDescriptionFromUserId() zu erstellen:
Generieren Sie eine HumanoidDescription aus einer Benutzer-IDlocal Players = game:GetService("Players")local userId = 491243243local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)
HumanoidDescription ändern
Um HumanoidDescription Eigenschaften anzupassen, setzen Sie sie direkt auf die HumanoidDescription oder verwenden Sie eine angegebene Methode, bevor Sie die HumanoidDescription auf einen Charakter anwenden.
Das folgende Codebeispiel provides Beispiele zum Setzen der verschiedenen Typen von HumanoidDescription Eigenschaften:
Aktualisieren Sie verschiedene HumanoidDescription-Eigenschaftenlocal humanoidDescription = Instance.new("HumanoidDescription")humanoidDescription.HatAccessory = "2551510151,2535600138"humanoidDescription.BodyTypeScale = 0.1humanoidDescription.ClimbAnimation = 619521311humanoidDescription.Face = 86487700humanoidDescription.GraphicTShirt = 1711661humanoidDescription.HeadColor = Color3.new(0, 1, 0)
Mehrere Accessoires setzen
Für gestapelte oder massive Accessoireänderungen können Sie HumanoidDescription:SetAccessories() verwenden, um Accessoire-bezogene Aktualisierungen vorzunehmen. Das folgende Codebeispiel fügt der HumanoidDescription in dieser Reihenfolge einen gestapelten Pullover und eine Jacke hinzu:
Ändern Sie mehrere Accessoires auf einmallocal 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)
HumanoidDescription anwenden
Wenden Sie HumanoidDescription auf spezifische Humanoid Charaktere in Ihrem Spiel mit Humanoid:ApplyDescription() oder Humanoid.LoadCharacterWithHumanoidDescription an.
Auf einen einzelnen Charakter
ApplyDescription() kann jeden Humanoid ansprechen. Verwenden Sie den folgenden Code, um dem Spielercharakter ein neues Paar Sonnenbrillen und einen neuen Torso hinzuzufügen:
Aktualisieren Sie HumanoidDescription für einen bestimmten Spielercharakterlocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal descriptionClone = humanoid:GetAppliedDescription()descriptionClone.Torso = 86500008-- Mehrere Gesichtszubehör-Assets sind in einer durch Kommas getrennten Zeichenfolge erlaubtdescriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"-- Wenden Sie die modifizierte "descriptionClone" auf humanoid anhumanoid:ApplyDescription(descriptionClone)end
Auf alle Spielercharaktere
Verwenden Sie das folgende Beispiel, um eine HumanoidDescription auf alle aktuellen Spieler im Spiel anzuwenden:
Aktualisieren Sie HumanoidDescription für alle aktuellen Spielercharakterelocal Players = game:GetService("Players")for _, player in Players:GetPlayers() dolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid then-- Erstellen Sie eine 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
Auf alle neu spawnen Charaktere
Verwenden Sie das folgende Beispiel, um eine spezifische HumanoidDescription für alle neu spawnen Spielercharaktere festzulegen:
Aktualisieren Sie HumanoidDescription für alle neu spawnen Charaktere
local Players = game:GetService("Players")
-- Stoppen Sie das automatische Spawnen, damit es im "PlayerAdded"-Callback durchgeführt werden kann
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Erstellen Sie eine 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)
-- Charakter mit der HumanoidDescription spawnen
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- Verbinden Sie das "PlayerAdded"-Ereignis mit der Funktion "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Wenn die HumanoidDescription-Instanz im Explorer erstellt und dem Arbeitsbereich zugewiesen wurde, verwenden Sie das folgende Beispiel in einem Script, um auf die Arbeitsbereichsinstanz zuzugreifen:
local Players = game:GetService("Players")
-- Stoppen Sie das automatische Spawnen, damit es im "PlayerAdded"-Callback durchgeführt werden kann
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Charakter mit "workspace.StudioHumanoidDescription" spawnen
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- Verbinden Sie das "PlayerAdded"-Ereignis mit der Funktion "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Geschichtete Kleidung auf Nicht-R15
Eingekäfigte Accessoires, wie gestapelte Kleidung, verwenden WrapTarget und WrapLayer, um sich über ein Ziel Model zu dehnen und zu wickeln. Gestapelte Accessoires können sowohl mit standardmäßigen R15 Roblox-Charakteren als auch mit Nicht-R15-Modellen funktionieren.
Eine benutzerdefinierte Implementierung von gestapelter Kleidung, wie ein Modell, das eine einzigartige Käfig-UV-Karte verwendet, kann nicht hochgeladen und im Marktplatz veröffentlicht werden. Für weitere Informationen siehe Spezifikationen für gestapelte Kleidung.
Ob Sie gestapelte Accessoires auf einem Avatar-R15-Rig implementieren oder ein benutzerdefiniertes Rig verwenden, stellen Sie sicher, dass Ihre Accessoires und Körper die folgenden Anforderungen erfüllen:
- Das Zielmodell, typischerweise der Körper, hat eine WrapTarget-Komponente an den Meshes, über die zusätzliche Modelle wickeln sollen.
- Das Schichtmodell, typischerweise die Kleidung oder das Accessoire, hat eine WrapLayer-Komponente an den Meshes, die das Zielmodell wickeln sollen.
- Der äußere Käfig des Zielmodells und der innere und äußere Käfig des Schichtmodells haben übereinstimmende UV-Karten.
- Die entsprechenden Scheitelpunkte am Zielkäfig sollten die gleichen UVs haben wie die Scheitelpunkte am Schichtkäfig.
- Wenn Ihr Zielmodell nicht R15 ist oder keinen Humanoid enthält, müssen Sie ein Weld-Objekt zum schichtenden MeshPart hinzufügen.
- Das Weld muss Part0 und Part1 eingestellt haben, um das schichtende MeshPart mit der Part-Hierarchie des Modells zu verbinden. Zum Beispiel bezieht sich Part0 auf das Accessoire und Part1 bezieht sich auf das übergeordnete Teil.
- Wenn Ihr Zielmodell sowohl R15 ist als auch über einen Humanoid verfügt, wird dieser Schweiß automatisch erstellt.