Donner des cheveux mobiles à un personnage généré
Par Oleg Sidorkin, CTO et cofondateur de Cinevva
Un personnage généré peut avoir une coiffure convaincante sans pour autant posséder des cheveux capables de bouger indépendamment. Le résultat peut être une surface unique, un ensemble de fines cartes ou des éléments déconnectés. Aucune de ces représentations n’indique à un simulateur où commence une mèche, dans quelle direction elle pousse ni comment elle doit se courber.
Notre précédente expérience sur les cheveux partait d’avatars riggés par des artistes et d’une queue de cheval sélectionnée. Cette fois, nous avons commencé avec des maillages capillaires réutilisables et notre personnage grenouille. La question était plus fondamentale : pouvons-nous ajuster une coiffure, tracer des courbes guides utiles à travers celle-ci et maintenir leurs racines attachées pendant l’animation ?
Sur 46 coiffures, le prototype actuel extrait 10 467 guides candidats et trouve des connexions au cuir chevelu pour 10 346 d’entre eux, soit 98,84 %. Il s’agit d’un résultat d’ancrage, et non d’un taux de réussite de 98,84 % pour obtenir un mouvement naturel des cheveux.
Essayez le maillage et ses guides
La démo se charge immédiatement. Choisissez une Coiffure, puis utilisez Inspection des cheveux pour basculer entre le maillage d’origine, le maillage accompagné des guides et les guides seuls. Faites glisser l’aperçu pour tourner autour du modèle ; examinez aussi bien l’arrière que l’avant. Choisissez une Animation pour vérifier si l’ancrage suit le personnage en mouvement.
Les courbes cyan sont connectées au cuir chevelu. Les courbes orange ont été rejetées. « Afficher les racines proposées » révèle les points d’ancrage suggérés. Long01 constitue un bon exemple dense ; les variantes de tresses françaises illustrent la difficulté de relier des fragments distincts. Téléchargez les courbes guides pour examiner leurs points et leurs métadonnées d’ancrage.
Les coiffures lâches compatibles utilisent désormais un adaptateur expérimental vers le solveur capillaire partagé présenté dans notre article précédent. Il sélectionne jusqu’à 24 chaînes guides, crée des articulations et attribue au maillage visible ainsi qu’à la superposition des guides les mêmes poids de skinning. La calotte reste fixée ; les régions non prises en charge restent liées à la tête. Les coiffures courtes dépourvues de guides lâches compatibles conservent un ancrage rigide. Deux exemples de tresses françaises gardent leur traitement expérimental distinct par chaînes d’articulations. Changer de vue d’inspection n’interrompt pas la lecture.
Ajuster d’abord, puis établir l’ancrage
Nous avons rassemblé 46 coiffures CC0 issues de collections MakeHuman, de variantes de dreadlocks et de ressources Quaternius. Chaque option comporte un lien vers sa source dans la démo ; le catalogue des ressources et l’inventaire des licences en préservent la provenance. Il s’agit de maillages réutilisables, et non d’une bibliothèque de mèches riggées de manière uniforme.
Le premier placement a échoué de façon évidente : les cheveux se retrouvaient derrière la tête de la grenouille. La mise à l’échelle fondée sur les boîtes englobantes avait aligné les objets sans identifier le cuir chevelu visé. Notre passe d’ajustement estime désormais le sommet de la coiffure source, l’aligne sur la surface de la tête cible et repousse vers l’extérieur les parties supérieures des cheveux qui pénètrent une enveloppe approximative de la tête.
Cette approche est similaire à la séparation des étapes que nous avons utilisée dans l’article sur les vêtements : placer une ressource, ajuster sa forme, l’attacher à un rig et lui donner un mouvement secondaire sont des tâches distinctes. Une racine doit rester sur le cuir chevelu, tandis que les longueurs doivent conserver la forme de la coiffure au lieu de s’effondrer sur le corps.
La grenouille est volontairement difficile : elle possède une tête large, des yeux proéminents et des proportions non humaines. Le masque actuel du cuir chevelu supérieur et arrière est déduit spécifiquement pour ce personnage. Il ne s’agit pas d’un détecteur automatique de cuir chevelu pour n’importe quel modèle généré. Certaines coiffures masquent encore le visage ou présentent des proportions inadaptées.
Tracer des chemins à travers la surface existante
Nous construisons un graphe de connectivité à partir de chaque maillage capillaire. Les sommets coïncidents séparés par des coutures UV sont soudés pour cette analyse ; le maillage source affiché reste inchangé. Dans chaque composante connexe, nous recherchons des chemins de surface allant d’une racine candidate initiale vers des extrémités distinctes, puis nous lissons et rééchantillonnons ces chemins pour former des courbes.
Pour deux sommets adjacents
Cette construction par plus court chemin suit la surface du maillage. Elle ne détermine pas le sens de pousse biologique. La racine initiale proposée au point le plus haut n’est qu’une hypothèse ; la proximité du cuir chevelu peut ensuite entraîner l’inversion d’une courbe. Une carte plane fournit souvent un chemin utile, tandis qu’une calotte fermée ou une boucle déconnectée est beaucoup plus ambiguë.
Il s’agit de courbes guides candidates, et non de cheveux individuels reconstitués. Une carte peut représenter de nombreux cheveux visibles, et un chemin de surface peut croiser le flux prévu. Une couverture cyan dense peut sembler impressionnante tout en masquant des directions incorrectes. L’inspection visuelle reste donc nécessaire.
Faire suivre aux racines le cuir chevelu réel
Une extrémité de guide est associée à un triangle admissible du cuir chevelu. Si elle en est trop éloignée, nous rejetons la connexion plutôt que de l’étirer arbitrairement jusqu’à la tête. Les racines acceptées stockent les indices des sommets du triangle et leurs poids barycentriques.
Pour les sommets de triangle
Les poids restent fixes tandis que les sommets du triangle se déplacent avec le skin. Le simple parentage de l’ensemble de l’affichage à la tête avait laissé jusqu’à 0,657 mm de dérive des racines dans notre vérification échantillonnée avec l’animation Walk. Le suivi de l’ancrage stocké sur le triangle a réduit cette erreur à la précision numérique : moins de
Il s’agit d’un contrôle de cohérence numérique selon la convention métrique de la scène. Cela ne garantit ni une ligne d’implantation visuellement correcte, ni un dégagement suffisant par rapport à la surface sur toute la courbe, ni une stabilité pour toutes les animations.
Relier les fragments sans masquer l’incertitude
Certaines coiffures sont constituées de nombreux éléments déconnectés. Un fragment éloigné du cuir chevelu peut prolonger une mèche déjà attachée. Nous testons les deux orientations et ne le relions à un guide accepté que lorsque les extrémités sont proches et que leurs directions concordent.
La règle de raccordement actuelle utilise une distance maximale de 25 mm et un produit scalaire des tangentes supérieur à 0,5, selon l’échelle de cette scène. Seuls les chemins déjà attachés peuvent devenir parents, ce qui évite les cycles. La longueur des courbes, le nombre de points et le nombre de passes de raccordement sont limités. Ces seuils sont des choix de prototype, pas des paramètres capillaires universels.
Les raccordements ajoutent 1 851 connexions à l’ensemble accepté. La variante de tresse française passe de 136 guides directement attachés à 509 guides tous connectés ; la tresse ébouriffée atteint 512 guides sur 519. Les sept fragments restants demeurent orange. Une connexion doit néanmoins être examinée : la proximité géométrique ne prouve pas que deux éléments appartiennent à la même mèche.
Explorer la couverture mesurée
Recherchez une coiffure ou affichez uniquement celles qui comportent des guides rejetés. Les liens ouvrent la vue d’inspection interactive correspondante. Ces chiffres proviennent de l’audit enregistré des 46 coiffures et ne constituent pas un score physique calculé en continu.
46 of 46 styles · saved audit
Télécharger l’ensemble complet des résultats d’ancrage.
Les 46 coiffures se sont chargées sans erreur du navigateur pendant l’audit. L’extraction a omis 90 sommets dans trois maillages Elvs. Quatre tests ciblés vérifient la connectivité, le signalement des omissions, la possibilité de reconstruire les ancrages au cuir chevelu, le raccordement des fragments et le rejet des fragments éloignés. Les vues pour ordinateur et mobile de 390 pixels ont été inspectées ; la page mobile ne présentait aucun débordement horizontal.
Les résultats évaluent cette bibliothèque ajustée à cette grenouille. Ils ne couvrent pas une géométrie générée arbitraire, toutes les poses, l’autocollision ni l’exportation vers un autre moteur.
Que reste-t-il à faire pour obtenir une véritable physique capillaire ?
Les guides actuels fournissent des racines et des chemins candidats. Un premier adaptateur réutilise désormais notre solveur existant à pas fixe pour les ressorts, la forme au repos et les contacts. Sur Long01, il lie 18 204 des 39 804 sommets du maillage à 24 chaînes ; dans le test contrôlé, un point échantillonné des cheveux lâches s’est déplacé de 13,6 mm par rapport à la tête. Cela valide une déformation secondaire, mais pas un mouvement naturel ni une animation sans collision. Le maillage et la superposition utilisent le même champ de skinning. Il reste nécessaire d’obtenir une direction fiable, des poids cohérents sur chaque mèche et des vérifications couvrant une large gamme de mouvements.
Les prochaines étapes consistent à examiner les racines et raccordements de fragments ambigus, à améliorer la sélection des guides et les poids sans créer de déchirures entre des mèches distinctes, puis à valider les contacts avec le corps pendant le mouvement. L’autocollision demandera encore du travail. L’exportation et le rechargement devront également préserver ces liaisons.
Pour les personnages générés, remplacer une surface capillaire distincte constitue un point de départ pratique. Un maillage fusionnant la tête et les cheveux ajoute un prérequis : identifier la région capillaire et établir un cuir chevelu exploitable sous celle-ci. Notre expérience avec la grenouille ne résout pas ce problème de segmentation.
Nous disposons maintenant d’un résultat intermédiaire inspectable : un maillage ajusté, des chemins candidats explicites, des ancrages de surface mobiles et des rejets visibles. La prochaine amélioration devra donner à ces chemins un comportement convaincant, et non simplement augmenter le nombre de courbes cyan.