Bonjour à tous,
Aujourd’hui, je vais aborder un sujet que je n’ai encore jamais traité : la topologie. Et plus particulièrement celle qui concerne les articulations, du coude par exemple.

Disclamer : Ceci n’est pas un tutoriel, ni une liste de bonnes pratiques. Il s’agit uniquement de quelques travaux/recherche que j’ai effectué. Il existe sans doute d’autres manières de faire, peut être (sous doute) plus efficace que ce que je vais montrer/proposer ici.

Ceci étant dit, voilà de quoi il s’agit : J’ai suivi plusieurs pistes, afin d’obtenir une articulation cohérente d’un cylindre. Celui-ci peut se plier dans un seul sens, jusqu’à 150° environ. Il peut donc s’apparenter à un coude.

Situation de base

Il s’agit d’un simple cylindre coupé à mi-hauteur, avec 2 os, et un Weight Paint basique.

On peut le voir, le résultat est … médiocre.

Préservation du volume

La 1ère chose à faire est de cocher Volume Preservation dans le modificateur Armature.

Le résultat s’améliore légèrement, même si on est encore loin du compte :

Changer la topologie

Dans l’étape suivante, j’ai modifié le maillage du cylindre, afin d’avoir une déformation qui se limite à la zone de pliure, en rajoutant simplement 2 loopcuts.

Maintenant, on a effectivement une déformation qui se limite à la zone qui nous intéresse, une perte de volume beaucoup moins importante. Mais on se retrouve avec des intersections de face lorsque l’angle est important :

Modifier encore la topologie

J’ai ensuite modifié la topologie, afin d’éviter les intersections.

Le principal inconvénient est que maintenant, l’articulation est optimisé pour se plier dans un seul sens. Ce qui est le cas du coude.

On a encore des problèmes d’intersections, mais l’étape suivante va corriger en partie ce souci :

Ajout du SubSurf

J’ai ensuite ajouté un modificateur SubSurf sur la maillage.

On commence ici à avoir des intersections limitées :

Ajout de Shape Keys

Pour limiter l’intersection, j’ai ensuite rajouté une shape key, qui sera activé par un driver selon la rotation de l’articulation :

Cette fois-ci, on n’a plus d’intersections. Par contre, l’articulation se retrouve “palmée” :

Pour éviter ce phénomène “palmé”, on peut jouer sur la valeur drivé du shapekey. Je ne vais pas le faire de suite, mais testé d’abord une autre modification.

Déplacer l’armature

Sans modifier le weight paint, j’ai ensuite déplacé la position des os (en mode Edit, donc) pour les rapprocher de l’intérieur de l’articulation.

Voilà ce que ça donne (sans le shapekey de l’étape précédente) :

Mix des deux méthodes

A partir, des deux méthodes précédentes (avoir les os rapprochés de l’intérieur de l’articulation, et shapekey), on obtient de résultat suivant :

On retrouve l’articulation palmée, même accentuée par rapport à tout à l’heure. Il est donc temps de régler correctement le driver.

Ajuster le driver

Comme dit au dessus, il faut ajuster la plage de rotation de l’articulation qui influence le driver, ou bien diminuer la valeur du driver.

On a maintenant un résultat acceptable :

Ajouter un autre shapekey

Niveau intérieur de l’articulation, on a maintenant une pliure convenable, mais côté extérieur, on a quelque chose de beaucoup trop arrondi. Regardez votre coude, vous verrez :)

Je vais donc rajouter un deuxième shapekey, afin de faire ressortir l’os du coude. On conserve bien entendu le premier.

Voici le résultat final :

Conclusion

Voici donc mes différents tests. Le fichier complet est disponible en téléchargement ici : Articulations

Comme dit plus haut, ceci est uniquement un test. Je n’ai jamais appliqué cette technique en production.