Un squelette est une hiérarchie utilisée pour définir les os (parfois appelés articulations) dans un maillage squelettique. Ces os imitent en quelque sorte un véritable squelette biologique grâce à leur position et au contrôle de la déformation des personnages.
Dans l'Unreal Engine, les squelettes sont utilisés pour stocker et associer les données d'animation, la hiérarchie globale du squelette et les séquences d'animation. Il est également possible de partager les ressources de squelette via diverses méthodes, de façon à échanger des animations et des données supplémentaires entre différents squelettes.
Dans ce document, nous vous expliquons commet créer et utiliser les squelettes.
Conditions préalables
Votre projet contient un acteur de maillage squelettique ou vous disposez d'un personnage FBX surfacé à importer dans l'Unreal Engine.
Créer des squelettes
La principale méthode pour créer un squelette consiste à importer un personnage FBX surfacé, qui est ensuite converti en maillage squelettique dans l'Unreal Engine. Lorsque vous importez un maillage squelettique, dans la fenêtre Options d'importation FBX, si vous ne définissez pas le champ Squelette, une ressource de squelette sera automatiquement créée en fonction du personnage surfacé qui est importé.
Après avoir importé votre personnage, la ressource de squelette est créée avec d'autres ressources de maillage squelettique.
Vous pouvez également créer une copie d'un squelette à partir de n'importe quel maillage squelettique ; pour cela, faites un clic droit dessus dans le navigateur de contenu et sélectionnez Squelette > Créer un squelette. Vous créez ainsi un nouveau squelette associé à un maillage existant. Dans le cas où ce maillage est déjà associé à un autre squelette, il se liera au nouveau squelette et à toutes les animations correspondantes.
Double-cliquez sur la ressource de squelette pour ouvrir l'éditeur de squelette.
Informations sur l'arborescence de squelette
Les os et autres éléments disponibles dans l'arborescence de squelette peuvent s'afficher différemment en fonction de plusieurs facteurs.
| Icon | Description |
|---|---|
Os normal ayant une incidence sur les vertex du maillage squelettique | |
Os du squelette actuel sans incidence sur les vertex du maillage squelettique Ces os sont généralement utilisés de manière auxiliaire, par exemple pour fixer des armes ou des accessoires ; il est toutefois possible de les animer. | |
Un connecteur, c'est-à-dire un point statique servant de point d'attache décalé pour les os | |
Un os virtuel, c'est-à-dire un os qui suit les transformations d'un autre os, mais dans un espace d'os différent. Ce type d'os, qui permet de bloquer les mouvements articulaires indésirables, est utilisé conjointement avec la cinématique inverse. | |
Os présent dans le squelette, mais qui n'est pas utilisé par le maillage squelettique actuel Ce cas de figure peut se présenter si vous avez fusionné des squelettes, ou si vous prévisualisez sur ce squelette différents LOD qui n'utilisent pas certains os. |
Stockage de données d'animation
En plus de contrôler l'animation, les squelettes dans l'Unreal Engine stockent des données propres à l'animation. Lorsque vous créez des données à partir de ces sources, notamment une notification d'animation dans une séquence d'animation, elles sont ajoutées au squelette en tant que données partagées.
Les squelettes stockent les types de données d'animation suivants :
Pour consulter ces données dans des panneaux d'outils dédiés, cliquez sur Fenêtre dans le menu Éditeur de squelette, puis activez un ou plusieurs de ces panneaux.
Partager des squelettes
L'une des principales caractéristiques des ressources de squelette est qu'elles peuvent être partagées par plusieurs maillages squelettiques, à condition que ceux-ci reposent sur la même hiérarchie de squelette générale. Pour que le partage fonctionne correctement, les noms et l'ordre hiérarchique de vos os doivent donc être cohérents.
Par exemple, un membre est composé de trois os dans un maillage squelettique. Les os sont nommés 1, 2 et 3 :
Pour partager ce squelette avec un autre maillage squelettique, vous ne devez pas changer les noms ni modifier l'ordre des os. Le deuxième maillage squelettique peut toutefois contenir des os ajoutés a posteriori ou en tant qu'éléments périphériques à la hiérarchie. Chaque fois que des données d'animation sont reçues pour un os qui n'est pas inclus dans le maillage squelettique, elles sont ignorées.
Dans ce cas, votre nouvelle hiérarchie est semblable à l'image ci-dessous. Ici, bien que le deuxième maillage squelettique comporte des os supplémentaires, la hiérarchie originale du premier maillage squelettique est conservée.
Néanmoins, pour que les deux maillages squelettiques utilisent la même ressource de squelette, vous ne devez pas renommer les os ni en modifier l'ordre hiérarchique. Si un deuxième maillage squelettique utilise une hiérarchie d'os et une structure d'affectation de noms différentes, vous devez créer une nouvelle ressource squelettique.
Si vous insérez un os dans la hiérarchie sans en modifier l'ordre, vous pouvez partager le squelette sans problème. Cependant, dans la plupart des cas, l'os supplémentaire peut provoquer des décalages de transformation involontaires dans votre squelette. Il est recommandé d'éviter cet écueil.
En tenant compte de ces règles de partage, il existe plusieurs façons de partager des squelettes entre des maillages squelettiques dans l'Unreal Engine. Celles-ci sont présentées ci-dessous.
Fusionner lors de l'importation
La première méthode de partage des squelettes est appliquée lors du processus d'importation FBX. Lorsque vous importez votre nouveau maillage squelettique (avec des os supplémentaires et périphériques conformes aux règles ci-dessus), vous pouvez sélectionner un squelette à partir d'un maillage squelettique existant dans votre projet. L'Unreal Engine fusionne alors les squelettes, en ajoutant tous les nouveaux os à la hiérarchie. En outre, les proportions de votre squelette sont définies par le maillage squelettique d'origine à partir duquel il a été créé.
Si vous importez un squelette qui est radicalement différent du squelette que vous tentez de fusionner et qui enfreint les règles de partage, un message d'erreur s'affiche :
Dans ce cas, envisagez de créer une nouvelle ressource de squelette pour le maillage squelettique que vous importez au lieu de le fusionner avec une ressource existante.
Lorsque vous affichez votre squelette fusionné, ces os supplémentaires apparaissent dans votre hiérarchie, mais ils ne sont visibles et actifs que pour le maillage squelettique auquel ils sont destinés.
Squelettes compatibles
En outre, les squelettes peuvent partager de manière non destructive des ressources d'animation en définissant d'autres squelettes compatibles. Les squelettes compatibles peuvent partager des séquences d'animation, des montages, des blueprints d'animation et plus encore.
Pour définir un autre squelette comme étant compatible pour un personnage, ouvrez la ressource de squelette du personnage dans l'éditeur de squelette, puis ouvrez le gestionnaire de reciblage en cliquant sur le bouton dans la barre d'outils.
Dans le gestionnaire de reciblage, recherchez la section Gérer les squelettes compatibles du panneau Sources de reciblage, puis cliquez sur Ajouter un squelette pour sélectionner une autre ressource de squelette dans votre projet à l'aide du menu contextuel.
Il est dès lors possible de partager les animations à partir du squelette ajouté à la liste Gérer les sources compatibles.
La compatibilité du squelette est bidirectionnelle. Si vous configurez le squelette 1 pour être compatible avec le squelette 2, le squelette 2 sera alors également compatible avec le squelette 1.
La création et la gestion d'un système de squelettes compatibles peuvent être un moyen efficace d'optimiser le nombre de ressources d'animation dont votre projet a besoin pour animer plusieurs personnages. Cependant, pour utiliser le système de squelettes compatibles, tous les personnages doivent disposer de structures hiérarchiques de squelettes et de conventions d'affectation de noms pratiquement identiques. En outre, tous les personnages doivent avoir des proportions de maillage similaires pour obtenir des résultats appropriés.
Pour partager des animations entre divers personnages ayant la même structure de squelette, mais différentes proportions, consultez la page Animation Retargeting (Reciblage d'animation).
Pour générer de nouveau les séquences d'animation pour fonctionner avec des personnages dont le squelette est radicalement différent, consultez la documentation IK Rig Retargeting (Reciblage du système de CI.
Fonctionnalités du squelette
Dans l'Unreal Engine, les squelettes prennent en charge de nombreuses fonctionnalités de fixation, de fusion, etc. Consultez les pages suivantes pour en savoir plus sur ces fonctionnalités :
Animation Retargeting
Describes how retargeted animations can be used with multiple Skeletal Meshes, allowing you to share animations.
Blend Masks and Blend Profiles
Exclude Bones or change their individual blend speed by using Blend Masks and Blend Profiles.
Skeletal Mesh LODs
Generate and modify LODs for Skeletal Meshes using the Skeletal Mesh Reduction Tool
Modification de squelette
Créer et modifier des ressources de squelette à l'aide des outils d'édition de squelette
Skeletal Mesh Sockets
Create attachment points within your Skeletal Mesh using Sockets.
Virtual Bones
Resolve layered animation problems by using Virtual Bones with IK.