La plupart des jeux permettent aux joueurs d'utiliser leur propre avatar Roblox, bien que certains mettent en œuvre un système de personnalisation in-game comme le modèle UGC Homestore. D'autres jeux effectuent des modifications limitées des avatars des joueurs, telles que des casques, des ailes ou des accessoires qui correspondent au genre.
Pour créer un jeu unique qui modifie l'apparence de vos utilisateurs, vous pouvez personnaliser les propriétés de caractère par défaut via les paramètres d'avatar ou en modifiant manuellement l'apparence.
Paramètres d'avatar globaux
Dans Studio, Fichier ⟩ Paramètres d'avatar vous permet de définir rapidement plusieurs propriétés globales du personnage joueur dans votre jeu. Ces paramètres s'appliquent globalement à tous les modèles de personnages joueurs rejoignant votre jeu. Pour modifier des personnages spécifiques, comme des modèles de personnages non joueurs, consultez modifier manuellement l'apparence.
Dans cette fenêtre, vous pouvez définir divers presets pour les vêtements, les accessoires, les parties du corps, le comportement des collisions, les animations et plus encore. Lorsque vous éditez ces paramètres, un aperçu des paramètres appliqués s'affiche dans l'espace de travail.
Pour plus d'informations, consultez Paramètres d'avatar.
Modifier manuellement l'apparence
Les modèles de personnages contiennent un objet Humanoid qui confère au modèle des caractéristiques spéciales, telles que marcher, sauter, équiper des objets et interagir avec l'environnement.
Vous pouvez modifier programatiquement un Humanoid en mettant à jour HumanoidDescription. Cela inclut des modèles de personnages joueurs ou des modèles de personnages non joueurs dans votre jeu.
Vous pouvez ajuster les propriétés de caractère suivantes dans votre jeu en utilisant HumanoidDescription :
| Propriété du personnage | Description |
|---|---|
| Échelle | Valeurs numériques pour les traits physiques height, width, head, body type et proportion. Cela n'affecte pas les types de corps R6. |
| Accessoires | Les ID des actifs de accessories équipés par un personnage. |
| Vêtements classiques | Les ID des actifs des textures d'image Shirt, Pants, et ShirtGraphic que vous pouvez appliquer au personnage. |
| Partie du corps | Les ID des actifs des parties Face, Head, Torso, RightArm, LeftArm, RightLeg et LeftLeg d'un personnage. |
| Couleurs du corps | Les BodyColors des parties individuelles du personnage. |
| Animations | Les ID des actifs des Animations que vous pouvez utiliser sur un personnage. |
Personnalisez un personnage avec HumanoidDescription en suivant les étapes suivantes :
- Créer une description à partir du personnage de l'utilisateur, d'un ID d'Outfit spécifique ou d'un ID d'utilisateur spécifique.
- Modifier la description pour personnaliser les propriétés que vous souhaitez appliquer au Humanoid du personnage.
- Appliquer la description soit à un seul personnage, à tous les personnages joueurs ou même à tous les personnages en cours de spawn.
Créer HumanoidDescription
Vous pouvez créer une nouvelle instance de HumanoidDescription directement dans la hiérarchie Explorer ou dans un Script avec le code suivant :
local humanoidDescription = Instance.new("HumanoidDescription")Dans la plupart des cas, vous devriez utiliser une HumanoidDescription existante plutôt qu'une nouvelle HumanoidDescription par défaut en faisant référence à un personnage joueur existant, un outfit d'avatar ou un ID d'utilisateur.
À partir du personnage joueur
Utilisez l'exemple de code suivant pour créer une nouvelle HumanoidDescription basée sur les propriétés actuelles du personnage joueur :
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
local humanoidDescription = Instance.new("HumanoidDescription")
if humanoid then
humanoidDescription = humanoid:GetAppliedDescription()
endÀ partir d'un outfit existant
Utilisez le code exemple suivant pour créer un HumanoidDescription à partir d'un ID d'outfit en utilisant Players.GetHumanoidDescriptionFromOutfitID :
local Players = game:GetService("Players")
local outfitId = 480059254
local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)À partir d'un utilisateur spécifique
Utilisez le code exemple suivant pour créer un HumanoidDescription à partir d'un ID d'utilisateur en utilisant Players:GetHumanoidDescriptionFromUserId() :
local Players = game:GetService("Players")
local userId = 491243243
local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)Modifier HumanoidDescription
Pour personnaliser les propriétés de HumanoidDescription, définissez-les directement sur le HumanoidDescription ou utilisez une méthode spécifiée avant d'appliquer le HumanoidDescription à un personnage.
L'exemple de code suivant fournit des exemples de définition des différents types de propriétés de 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)Définir plusieurs accessoires
Pour des changements d'accessoires en couches ou en vrac, vous pouvez utiliser HumanoidDescription:SetAccessories() pour effectuer des mises à jour liées aux accessoires. L'exemple de code suivant ajoute un pull en couches et une veste dans cet ordre à un HumanoidDescription :
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)Appliquer HumanoidDescription
Appliquez HumanoidDescription à des personnages Humanoid spécifiques dans votre jeu avec Humanoid:ApplyDescription() ou Humanoid.LoadCharacterWithHumanoidDescription.
Sur un seul personnage
ApplyDescription() peut cibler n'importe quel Humanoid. Utilisez le code suivant pour ajouter une nouvelle paire de lunettes de soleil et un nouveau torse au personnage joueur :
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local descriptionClone = humanoid:GetAppliedDescription()
descriptionClone.Torso = 86500008
-- Plusieurs actifs d'accessoire pour le visage sont autorisés dans une chaîne séparée par des virgules
descriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"
-- Appliquer le "descriptionClone" modifié au humanoid
humanoid:ApplyDescription(descriptionClone)
endSur tous les personnages joueurs
Utilisez le code exemple suivant pour appliquer un HumanoidDescription à tous les joueurs actuels dans le jeu :
local Players = game:GetService("Players")
for _, player in Players:GetPlayers() do
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Créer une 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
endSur tous les personnages en cours de spawn
Utilisez le code exemple suivant pour définir un HumanoidDescription spécifique pour tous les personnages joueurs en cours de spawn :
local Players = game:GetService("Players")
-- Arrêter le spawn automatique afin qu'il puisse être effectué dans le rappel "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Créer une 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)
-- Spawn le personnage avec la HumanoidDescription
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- Connecter l'événement "PlayerAdded" à la fonction "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)Si l'instance de HumanoidDescription a été créée dans l'Explorer et parentée à l'espace de travail, utilisez le code exemple suivant dans un Script pour accéder à l'instance de l'espace de travail :
local Players = game:GetService("Players")
-- Arrêter le spawn automatique afin qu'il puisse être effectué dans le rappel "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Spawn le personnage avec "workspace.StudioHumanoidDescription"
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- Connecter l'événement "PlayerAdded" à la fonction "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)Accessoires en couches sur non-R15
Les accessoires en cage, comme les accessoires en couches, utilisent WrapTarget et WrapLayer pour s'étirer et s'enrouler autour d'un Model cible. Les accessoires en couches peuvent fonctionner à la fois avec des personnages R15 Roblox standard et des modèles non-R15.
Une mise en œuvre personnalisée d'accessoires en couches, comme un modèle utilisant une carte UV de cage unique, ne peut pas être téléchargée et publiée sur le Marketplace. Pour plus d'informations, consultez Spécifications des accessoires en couches.
Que vous mettiez en œuvre des accessoires en couches sur un rig R15 d'avatar ou utilisiez un rig personnalisé, assurez-vous que vos accessoires et vos corps incluent ce qui suit :
- Le modèle cible, typiquement le corps, a un composant WrapTarget sur les maillages que les modèles supplémentaires doivent envelopper.
- Le modèle de superposition, typiquement les vêtements ou accessoires, a un composant WrapLayer sur les maillages destinés à envelopper le modèle cible.
- La cage extérieure du modèle cible, et la cage intérieure et extérieure du modèle de superposition ont des cartes UV correspondantes.
- Les sommets correspondants sur la cage cible doivent avoir les mêmes UV que ces sommets sur la cage de superposition.
- Si votre modèle cible n'est pas R15, ou n'inclut pas de Humanoid, vous devez ajouter un objet Weld à la MeshPart de superposition.
- Le Weld doit avoir Part0 et Part1 définis pour lier la MeshPart de superposition à la hiérarchie Part du Modèle. Par exemple, Part0 fait référence à l'accessoire et Part1 fait référence à la Part parente.
- Si votre modèle cible est à la fois R15 et inclut un Humanoid, ce weld est créé automatiquement.