exppad* / blog / Rig de pupille dans Blender

Rig de pupille dans Blender

Exemple d'introduction à l'usage des shape keys et des drivers pour le rig dans Blender

Ce rapide tutoriel présente comment obtenir dans Blender un rig permettant l'effet suivant :

Résultat final

Cet exemple permet notamment de voir les shape keys et les drivers, deux outils extrêmement pratiques et puissants pour le rig.

Le résultat final peut être téléchargé ici : eyerig_final.blend

1. Modélisation

Créer un cercle, l'extruder sur place (E, puis clic droit), réduire la taille de l'extrusion (S), combler l'ouverture (F).

Modélisation

2. Dépliage UV

Tout sélectionner (A, deux fois), déplier (U, Unwrap). Le petit cercle intérieur doit être uniquement noir, et le grand cercle extérieur doit inclure tout l’œil.

Dépliage UV

Ne pas hésiter à passer en affichage de texture, dans la vue 3D :

Paramètres d'affichage

On doit obtenir quelque chose comme ceci :

Textures dans la vue 3D

En changeant la taille du cercle intérieur, on obtient déjà l'effet escompté. On va donc associer cette déformation à la position d'un objet de contrôle.

3. Shape keys

Créer deux shape keys de l’œil, une ouverte et l'autre fermée.

Passer en object mode, dans l'onglet Object Data (maillage), et cliquer sur le symbole Plus dans la liste de Shape Keys. Cliquer une deuxième fois pour créer une seconde clef.

Menu des shape keys

Dès lors, passer en edit mode permet de modifier la shape key sélectionnée. En éditer une des deux pour y dilater la pupille :

Pupilles dilétées

Modifier le paramètre Value de la clef de forme dilatée permet donc maintenant d'alterner entre les versions normales et dilatées de l’œil. On peut ensuite lier ce paramètre à la position d'un objet de contrôle.

4. Driver

Pour créer ce lien, on utilise les drivers. Faire un clic droit sur le champ à contrôler, le champ Value de la clef de forme, puis Add Driver > Manually Create Later (Single).

Ajouter un driver

Créer ensuite un objet, par exemple un cube, qui va servir de contrôle. On ouvre ensuite une fenêtre de courbes, en mode Drivers (en non F-Curve). Sélectionner l'objet de l'oeil, cliquer sur le canal correspondant à la valeur de la clef de forme à laquelle on vient d'ajouter un driver (ici Value (Pupille Dilatée). Plusieurs onglets sont alors disponibles dans le panneau de droite (N). Aller dans l'onglet Drivers.

Fenêtre de drivers

Il est possible qu'un message d'erreur s'affiche, comme sur l'image ci-dessus, indiquant ERROR: Python auto-execution disabled. Pour régler ce problème, aller dans les préférences (Ctrl+Alt+U), onglet File.

Activer les drivers

Retourner ensuite dans la fenêtre de courbe, toujours avec l’œil sélectionné. Configurer la variable var pour pointer vers la position X de l'objet de contrôle (ici Cube). Spécifier ensuite que la valeur de la clef de forme doit être var.

Driver de dilatation

Remarque En choisissant juste var comme expression, la position du contrôle est utilisée telle quelle, et donc ce contrôle doit être entre 0.0 et 1.0 selon l'axe X. Pour que la transition se fasse entre d'autres valeurs, par exemple 5 et 10, la formule serait (var - 5) / (10 - 5).

5. Contraintes

À ce stade, le déplacement du cube doit déjà influer l’œil comme escompté. Afin de nettoyer la scène, commencer par nommer correctement les objets, puis ajouter des contraintes sur le contrôleur :

Contraintes de position

De cette façon, tout déplacement (avec G) de l'objet se fera selon l'axe X et limité entre 0.0 et 1.0.

Il est aussi possible de forcer l'affichage du contrôleur à être en fil de fer :

Contraintes de position

Et même de lui ajouter un cadre, que l'on peut rendre non-sélectionnable :

Contraintes de position

Et voilà ! Les outils vus pour ce petit exemple sont bien sûr réutilisables dans plein d'autres contextes ! Pour rappel, le fichier résultat est disponible en téléchargement ici : eyerig_final.blend

Article publié le 30 Mars 2018 par Élie

Élie Michel


Réactions

Pas de réactions

In order to react, you are invited to use Webmentions or to contact me on Twitter.