La plupart des jeux permettent aux joueurs d'utiliser leur propre avatar Roblox, bien que certains mettent en œuvre un système de personnalisation dans le jeu comme le modèle UGC Homestore. D'autres jeux apportent des modifications limitées aux 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 par défaut du personnage via les paramètres d'avatar ou en modifiant manuellement l'apparence.
Paramètres globaux de l'avatar
Le menu Fichier ⟩ Paramètres d'avatar de Studio 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, tels que des modèles de personnages non-joueurs, consultez modifier manuellement l'apparence.
Dans cette fenêtre, vous pouvez définir divers préréglages pour les vêtements, les accessoires, les parties du corps, le comportement de collision, les animations, et plus encore. Lors de l'édition de 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 programmétiquement un Humanoid en mettant à jour HumanoidDescription. Cela inclut les modèles de personnages joueurs ou les modèles de personnages non-joueurs dans votre jeu.
Vous pouvez ajuster les propriétés suivantes du personnage dans votre jeu en utilisant HumanoidDescription :
| Propriété du personnage | Description |
|---|---|
| Échelle | Valeurs numériques pour les traits physiques hauteur, largeur, tête, type de corps et proportion. Cela n'affecte pas les types de corps R6. |
| Accessoires | Les ID d'actif des accessoires équipés par un personnage. |
| Vêtements classiques | Les ID d'actif des textures d'image Shirt, Pants et ShirtGraphic que vous pouvez appliquer au personnage. |
| Partie du corps | Les ID d'actif des parties Visage, Tête, Torse, BrasDroit, BrasGauche, JambeDroite et JambeGauche d'un personnage. |
| Couleurs du corps | Les BodyColors des parties individuelles du personnage. |
| Animations | Les ID d'actif des Animations que vous pouvez utiliser sur un personnage. |
Personnalisez un personnage avec HumanoidDescription en suivant les étapes suivantes :
- Créez une description à partir du personnage de l'utilisateur, d'un ID d'Outfit spécifique ou d'un ID d'utilisateur spécifique.
- Modifiez la description pour personnaliser les propriétés que vous souhaitez appliquer au personnage Humanoid.
- Appliquez la description sur un seul personnage, tous les personnages joueurs, ou même sur tous les personnages qui apparaissent.
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 au lieu d'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 d'exemple suivant pour créer une 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 d'exemple suivant pour créer une 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 masse, 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'accessoires de 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 d'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 qui apparaissent
Utilisez le code d'exemple suivant pour définir un HumanoidDescription spécifique pour tous les personnages joueurs qui apparaissent :
local Players = game:GetService("Players")
-- Arrêter le spawn automatique pour pouvoir le faire 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)
-- Faire apparaître le personnage avec la HumanoidDescription
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- Connecter l'événement "PlayerAdded" à la fonction "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)Si l'instance HumanoidDescription a été créée dans l'Explorer et parentée à l'espace de travail, utilisez le code d'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 pour pouvoir le faire dans le rappel "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Faire apparaître 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 avec à la fois des personnages joueurs 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 d'avatar R15, ou que vous utilisiez un rig personnalisé, assurez-vous que vos accessoires et corps incluent les éléments suivants :
- Le modèle cible, généralement le corps, a un composant WrapTarget sur les maillages que d'autres modèles sont censés envelopper.
- Le modèle de superposition, généralement les vêtements ou les 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 de la Partie du Modèle. Par exemple, Part0 fait référence à l'accessoire et Part1 fait référence à la Partie parente.
- Si votre modèle cible est à la fois R15 et inclut un Humanoid, ce weld est créé automatiquement.