Création d'un Avatar en
Modelage Direct

Traduction française de Matthieu autorisée par Thyme
 


Il est vraisemblable que la majeure partie de l'infortmation relative à la création d'un avatar animé en temps réel est considérée comme un secret commercial. A tout le moins, il m'a été très difficile de récolter la plus petite information à ce sujet en me limitant aux logiciels en source ouverte sur le net. Il y a bien Avatar Studio (qui est gratuit, mais non en source ouverte) avec lequel il est très facile de fabriquer des avatars, mais il ne me laisse pas suffisemment de liberté de création.
L'information fournie ici provient donc de mes propres expériences et de mes idées qui ont évolué au cours de nombreuses années. Ce qui est important, avec mon robot qui montre la succession des clics nécessaires du début à la fin, c'est qu'il traite expressément d'un nombre important de ces petits sujets embarrassants qui sont généralement passés sous silence dans les didacticiels théoriques. Sauf s'il existe un didacticiel que je ne connaisse pas, ceci doit donc être le didacticiel en ligne le plus complet qui montre véritablement comment créer en VRML/X3D ou en Pov-Ray un avatar qui ne demande que les techniques les plus directes et un logiciel en source ouverte.

Ce didacticiel est destiné à accompagner la démonstration par le robot immediate avatar demo (démonstration du Modelage Direct de l'avatar)

Cette démo suppose que le contenu du fichier files_for_demos.zip soit désippé manuellement par vos soins et placé dans le répertoire :

My Documents\Seamless3d\Application Data For Seamless3d\For Robot Demos Only

Pour voir la démo elle-même, déplacez la souris dans l'angle haut gauche de l'écran 3D et choisissez :

 

La démo montre toutes les actions à mener pour fabriquer un modèle prêt à l'animation.

Note du traducteur : Le robot de démonstration est un programme extraordinaire. Ce n'est pas un film, il effectue réellement ce qu'il montre, au fur et à mesure que le curseur de la souris se déplace tout seul, clique, clique-et-tire les parties nécessaires et les ajoute là où il le faut, modifie les paramètres dans les tableaux... et enregistre finalement le résultat du travail accompli.
      Maintenant, dites-vous bien que vous pouvez regarder avec attention un pianiste aussi talentueux qu'amical jouer devant vous les douze études d'exécution transcendante de Franz Liszt, cela ne vous fera progresser en rien dans l'étude du piano...
      Exercez-vous, aussi maladroitement que ce soit, et vous apprendrez. Lisez et relisez le présent didacticiel, ce n'est que lorsque vous saurez bien "qui fait quoi", que l'observation attentive du robot démonstrateur vous aidera à remettre un ordre exact dans vos idées fraîchement acquises. Méditez chacune des étapes, puis regardez le robot accomplir avec adresse des gestes dont vous avez déjà compris le sens.
      Enfin et surtout, n'hésitez pas à revoir plusieurs fois la même étape : il suffit de cliquer Play (exécutez) à nouveau sans incrémenter l'opération. Voir, voir et revoir... c'est tout le secret. Fin de note.

Modelage Direct (Immediate Editing)

Immediate editing (modelage direct) est le terme spécifique de Seamless3d pour exprimer clairement le fait que vous n'utiliserez pas les Noeuds constructeurs (build nodes) pour construire vos propres formes.

Les Noeuds constructeurs de Seamless3d génèrent des formes en faisant usage de formules mathématiques, alors qu'avec le Modelage Direct vous construisez directement vos propres formes en tractant les sommets des triangles directement à la souris. Du fait que le Modelage Direct utilise au minimum les artifices de l'ordinateur, elle fait généralement usage d'un grand nombre de clics, en revanche elle permet de travailler de façon beaucoup plus intuitive, elle fait beaucoup moins appel à votre intellect, elle vous autorise donc enfin à travailler utilement tout en écoutant, par exemple, une agréable musique.

Techniquement, il y a peu à dire sur le Modelage Direct. Tout ce qu'il y a à faire consiste à partir d'une forme déjà toute faite et tracter [NDT : ce mot tracter au lieu de tirer pour évoquer la procédure de traction décrite dans d'autres didacticiels] ... et tracter les sommets pour en changer l'aspect. La coloration des sommets est aussi simple à exécuter que la traction. Il est ainsi possible de commencer à tout petits pas en effaçant des triangles puis en joignant des sommets, toujours en Modelage Direct. Mais aussi simple que cela soit, il y a tout de même des limites à ce que l'on peut faire. C'est un peu comme peindre ou dessiner, en ce que cela demande beaucoup de temps, de pratique, d'expérience, pour développer le talent nécessaire, bien plus que d'importantes connaissances techniques.

Un puriste du Modelage Direct partirait sûrement d'un seul triangle et le diviserait à l'infini pour aboutir à un avatar complet. Cependant, ce didacticiel propose de commencer avec des Noeuds constructeurs RingBuild (construire un anneau) ne serait-ce que pour disposer de triangles tout faits, et parce que les Noeuds RingBuild sont aussi intuitifs et simples à utiliser que le Modelage Direct, et qu'ils vont nous économiser beaucoup de temps au démarrage. Quand ils auront servi utilement, on les effacera tout en laissant dans les Parties (converties en Parties bleues pour être précis) ces triangles tout prêts pour le Modelage Direct.

L'Idée de Base

Un squelette de Parties vide tout fait est d'abord importé, c'est à dire installé avec des Noeuds miroirs en référence aux Parties, de sorte que le côté gauche de l'avatar puisse être créé à partir du côté droit.
Les triangles constitutifs du torse, de la tête, des bras et des jambes proviennent au début de Noeuds RingBuild (construction d'un anneau). On se sert de la souris pour tracter les points de contrôle de chaque "anneau" et une image (photo ou dessin) en arrière plan sert de "carton" pour guider le dessin de l'avatar à créer. (Comprendre "carton" au sens de ce mot en matière de tapisserie).
Quand les triangles sont installés par les Noeuds constructeurs la Parties blanches sont converties en Parties bleues de sorte que le Modelage Direct puisse commencer pour joindre et peindre les sommets et ajouter à la forme les détails utiles.
Les Pivot points (points de flexion) sont déplacés vers les articulations de façon à pouvoir ultérieurement animer l'avatar.
Des accessoires, tels que la chevelure, sont importés.

Combien de temps faut-il ?


Le Robot achève le présent avatar complet en trois heures et vingt minutes. Cela peut sembler très long. Bien entendu, le Robot exécute ses mouvements assez lentement, et sans touches de raccourci, de sorte que beaucoup d'opérations pourraient être menées à bien plus rapidement par une main humaine. Ceci dit, vous ne devriez pas trop espérer aller vous-même plus vite que le Robot, parce que le Robot, lui, n'hésite jamais, il suit pas à pas les séquences préalablement décrites.
Le but de ce didacticiel est de vous proposer quelque chose qui ressemble plus au dessin ou à la peinture, avec la même liberté de création. Je ne puis imaginer un meilleur argument que celui qui consiste à comparer le Modelage Direct avec l'usage des crayons ou des brosses, elle n'est en rien plus difficile, elle demande le même temps qu'il en faudrait pour acquérir le talent et l'expérience du travail artistique. Si vous savez déjà peindre ou dessiner, vous pourrez partir bille en tête puisque votre talent personnel vous permet dès maintenant de juger efficacement des proportions.

Beaucoup de gens pensent que l'art 3d demande plus de travail que l'art 2d. Je ne crois pas beaucoup à cette affirmation. Réfléchissez au temps qu'il vous faudrait pour peindre une image de l'avatar tel que créé par le Robot, pensez à toutes les ombres que l'ordinateur met en place pour vous à chaque image, et réfléchissez plus encore au nombre de photos que vous pouvez prendre dans tous les sens à partir d'un avatar 3d une fois qu'il est réalisé, sous différents angles, sous différents éclairages, sans jamais avoir jamais à repeindre quoi que ce soit à nouveau en repartant de la feuille blanche. Pensez aussi à la facilité avec laquelle on peut changer un vêtement ou n'importe quel accessoire. Vous n'aurez jamais à reconstruire un avatar à zéro à chaque fois, et dès que vous en avez fabriqué un vous le conservez, tant il est facile de le perfectionner. Grâce à le Modelage Direct vous pouvez progressivement changer un avatar jusqu'à ce qu'il devienne un avatar entièrement neuf, avec une apparence parfaitement originale, vous pouvez aussi échanger des vêtements, et même des Parties du corps, éventuellement tirées d'autres avatars, que vous les ayez créés vous même, ou que vous les ayez trouvés dans une bibliothèque en source ouverte.

Départ

Lancer le Robot de demonstration :

immediate avatar demo (démonstration de l'avatar en Modelage Direct)

Tous les titres des opérations de la demo robotisée sont présentés ci-dessous en gras, le numéro de l'opération étant suivi du titre lui-même. Tous les commentaires concernant cette opération figurent sous le titre.

Note du traducteur : pour faciliter l'usage du logiciel original (Seamless3d en anglais) les titres sont conservés tels quels, suivis d'une traduction en italiques.

0. Create A New Seamless File (Créer un nouveau fichier Seamless)


1. Import Mirrored Empty Skeleton (Importer un squelette vide en miroir)
On commence par ce squelette de Parties vides.
Les noms de Parties qui commencent par l_ (pour left gauche) sont les Parties gauches et les noms de Parties qui commencent par r_ (pour right droite) sont les Parties droites. Pour éviter de donner deux noms à une même Partie, La Partie bras, par exemple, est désignée par le nom de l'articulation (épaule) qui la rattache à la Partie antécédente.

Part Includes Partie y compris
shoulder upper arm épaule bras
elbow forearm coude avant bras
wrist hand poignet main
hip thigh hanche cuisse
knee shin & calf genou jambe
ankle foot cheville pied


Le squelette vide utilisé pour cette démo contient un Noeud MirrorGroup (groupe miroir) contenant des Noeuds MirrorEdit (Modelage en miroir) qui sont munis de références aux Noeuds Parties. Ces Noeuds MirrorEdit indiquent quelles sont les Parties qui vont reproduire en miroir les tractions de sommets dans la direction X.
Si un Noeud MirrorEdit fait référence à deux Parties symétriques telles que l_shoulder et r_shoulder (épaule gauche et épaule droite) par exemple, chaque fois qu'un sommet sera tracté dans une des deux Parties, le sommet correspondant de l'autre Partie sera tracté en miroir de la même façon.
Lorsqu'un Noeud MirrorEdit ne fait référence qu'à une seule Partie telle que la tête, chaque fois qu'un sommet est tracté dans cette partie, c'est le sommet correspondant du côté opposé, mais dans la même Partie, qui est lui-même tracté en miroir.

En plus de refléter en miroir les tractions de sommets, les Noeuds MirrorEdit agissent sur les Noeuds RingBuild (Constructeur d'anneau), sur le déplacement des Pivot points (points de flexion), la coloration des sommets et des triangles, et bien d'autres fonctions encore.

2. Import Background Guide (importer les cartons d'arrière plan)

Il peut être utile d'installer une photo ou un dessin dans la fenêtre 3d pour guider la main pendant la traction des sommets vers la forme désirée. Ici, nous importons six photos, chacune contenue dans un Noeud Seamless avec sa propre et unique orientation, installées pour former l'intérieur d'un cube. Les Noeuds Seamless utilisés pour contenir ces cartons (les photos) ont leur champ ignoreWireFrame (ignorer la vue fil de fer) coché de sorte que les cartons apparaissent complets même lorsque le modèle est en mode fil de fer. Ces Noeuds Seamless sont tous contenus dans un Noeud NoOutputGroup (Groupe non exportable) de sorte que les cartons ne soient pas exportés en même temps que l'avatar.

Pour que les dimensions des cartons ne soient pas déformées par la perspective (pas d'erreur de parallaxe) en fonction de leur distance aux triangles sur lesquels on travaille, le mode perspective doit être off (arrêt) .

3. Make Edge Vertices Bright Red (Mettre les sommets des bords en rouge vif)

Alors que les sommets en couleurs claires sont bien plus visibles sur un fond noir en mode fil de fer (c'est l'apparence typique) il est évident que nous verrons bien mieux notre modèle sur un fond blanc. C'est pourquoi Seamless est muni d'une bascule fond noir fond blanc. Toutefois, puisqu'on ne peut mettre pas en forme comme cela un modèle lorsqu'on utilise un "carton" photo, il est préférable de régler le champ ambiantIntensisty (lumière ambiante) à 1 0 0 (rouge) de façon telle que les sommets situés sur les bords du modèle apparaissent toujours en rouge vif, en contraste avec la teinte généralement foncée des bords de l'image photo du carton.

4. Build Leg Rings (Construire les anneaux des jambes)

Cette opération prend à peu près dix minutes. Tout ce qui s'y fait se ressemble, on tracte des sommets.

Pour ajouter un Noeud RingBuild (Constructeur d'anneau) pour la jambe choisir (clic) la partie l_hip (hanche gauche) puis cliquer le bouton dans la barre d'outils principale. Ceci ajoute un Noeud RingBuild au Noeud Seamless qui fait référence à cette Partie l_hip (hanche gauche).

Le Noeud RingBuild (Constructeur d'anneau) est initialement réglé à 2 anneaux de sommets formant un cylindre. On oriente ce cylindre tête en bas en utilisant le champ rotation du Noeud RingBuild (touche ctrl enfoncée) pour que tous les anneaux incrémentent en ordre indicé (chaque anneau est indicé de 0 au nombre d'anneaux moins un) du haut de la jambe vers le bas. Ceci sera très important dans une étape ultérieure où les anneaux jouxtant une articulation devront tourner d'une fraction de la rotation totale pour un rendu très doux des jointures articulaires.

Pour le dernier anneau (l'extrémité du pied), les champs scaleX et scaleZ (échelle X et échelle Z) sont directement fixés à 0 pour que ce dernier anneau, d'un diamètre nul, devienne un simple sommet et non plus un anneau de sommets.

Avant d'ajouter l'ensemble des anneaux destinés au membre inférieur gauche, il est bon d'installer ceux du genou et de la hanche, ensuite seulement tous les autres entre ces deux points. Cette procédure présente l'avantage de laisser à l'ordinateur le soin de calculer des distances régulières entre les nouveaux anneaux.

Tous ces anneaux sont installés pour le membre entier, pied compris, alors qu'ils ont été spécifiés appartenir à la hanche gauche. Lors d'une étape ultérieure les anneaux du membre inférieur devront être transférés à la Partie appropriée. Il faut conserver présente à l'esprit l'idée que nous construisons cette jambe avec l'intention de pouvoir l'animer, il doit donc exister un nombre suffisant d'anneaux au niveau des articulations, pour qu'elles puissent ployer en douceur. C'est ma raison pour laquelle vous voyez insérer un nombre remarquable d'anneaux nouveaux autour du genou.

Pour plus d'informations sur ce Noeud, voir RingBuild.

5. Build Torso, Neck & Head Rings (Construire les anneaux du torse, du cou et de la tête)

Cette opération prend huit minutes à mener à bien.

Nous allons voir comment les Noeuds MirrorEdit (Modelage en miroir) influencent les Noeuds RingBuild (Constructeur d'anneau). Le fait de tracter un point de contrôle gauche entraîne le point de contrôle droit à se déplacer par sympathie.

Dans cette opération, le champ locationXZ est décoché sauf lorsque l'on tracte un point des anneaux du torse ou de la tête du côté en vue.

D'autres anneaux seront ajoutés plus tard pour le bassin, lorsque l'on alignera les anneaux du bassin avec ceux des hanches.

A mesure que l'on construit les anneaux du torse, du cou et de la tête, on conserve en tête quels anneaux appartiennent à quelle Partie, de façon à avoir une idée de la façon dont on les animera.

6. Set Leg Staves to 14 (Régler à 14 les colonnes de la jambe)

Nous voulons munir notre modèle de jambes bien lisses, mais 16 colonnes sont plus qu'il n'en faut si l'on considère que le torse comportera aussi 16 colonnes, tout en étant un objet bien plus large qu'une jambe. C'est à cette étape que l'on change de 16 à 14 les nombre des colonnes du membre inférieur parce qu'il nous faut un 4 dans le nombre des colonnes pour apercevoir facilement où se situent les points de contrôle du RingBuild (Constructeur d'anneau) des anneaux non en cours de travail (en inspectant les sommets générés de la Partie concernée en mode fil de fer). Toutefois, passer de 16 à 14 colonnes amincit la jambe, il convient donc d'augmenter légèrement les composantes X et Y pour compenser.

7. Align Pelvis Rings to Hip (Aligner les anneaux du bassin sur les hanches)

On ajoute cinq anneaux au bassin et on les tracte pour qu'ils s'alignent avec les sommets de la jambe là où la jambe sera jointe au bassin.

8. Round Pelvis Base (Arrondir la base du bassin)

Il faut ici un petit effort d'imagination parce que le "carton" (la photo) ne nous fournit pas avec exactitude la forme de notre imaginaire bassin, là où les jambes doivent être raccordées. Il faudra effacer la plupart des triangles sur le côté du bassin, pour laisser la place à la jointure des jambes, tout en dessinant une forme convenable sur ce côté, puisqu'elle déterminera aussi l'aspect de l'avant et de l'arrière du bassin et que nous voulons en même temps parvenir à joindre la hanche de façon fluide.


9. Match Hip Tangent to Pelvis
(Orienter la hanche tangente au bassin)

Une vue latérale appropriée permet de tracter les anneaux de la hanche de façon à les rendre tangentiellement adaptés au bassin.

10. Build Arm Rings (Construire les anneaux du bras)

11. Widen Arm Base Rings (Elargir les anneaux de la base du bras)

On ne peut pas unir la base du bras au torse à cette étape de façon aussi facile que nous l'avons fait pour unir la hanche et le bassin, mais nous utiliserons une autre technique dans une opération ultérieure pour obtenir une jointure bien lisse. Cette technique comportera la projection des sommets de l'anneau de la base du bras sur la surface du polygone du torse. Pour cela, les anneaux de la base du bras sont élargis dès l'étape actuelle pendant que les Parties restent des Parties blanches (c'est à dire, avant que les Noeuds RingBuild ne soient effacés).

12. Build Index Finger Rings (Doigts : Construction des anneaux de l'index) )

13. Build Middle Finger Rings (Construction des anneaux du medius)

Plutôt que de repartir à zéro avec un nouveau Noeud RingBuild pour le medius, on recopie le précédent Noeud RingBuild de l'index pour dessiner le medius. Economie de temps. Pour copier un Noeud on fait comme pour copier un fichier dans Windows Explorer, on tient la clé Ctrl tout en tractant le Noeud vers un nouvel emplacement, de façon à obtenir une "copie de" plutôt qu'un "déplacement".

14. Build Ring Finger Rings (Construire les anneaux de l'annulaire)

Juste Ciel ! Il risque d'y avoir confusion entre l'usage d'un Noeud RingBuild (Constructeur "d'anneaux") pour ce doigt (celui où l'on porte une alliance) et son nom d'annulaire. La procédure reste la même que pour le médius.

15. Build Pinky Finger Rings (Construire les anneaux du petit doigt)

16. Build Thumb Rings (Construire les anneaux du pouce)

17. Build Breast Rings (Construire les anneaux de la poitrine)

Nous constatons qu'un des anneaux est très proche de l'anneau de base de la poitrine, parce que chaque fois que l'on doit souder des triangles qui présentent une orientation très différente de l'un au suivant, il en résulte des ombrages indésirables à la jointure. Un sommet ne peut ombrer en effet deux triangles convenablement si les triangles qui partagent les sommets à réunir ont des orientations trop différentes. On surmonte le problème en augmentant la densité des sommets dans ces régions spécifiques de sorte que la variation d'orientation soit plus graduelle.

18. Build Mouth Rings (Construire les anneaux de la bouche)

La traction des points de contrôle du Noeud RingBuild avec autant d'anneaux peut devenir très lente, on insère donc temporairement un Noeud ExitBuild (Sortie de construction) devant les Noeuds RingBuild existants. Aucune construction ne se fait plus après un tel Noeud et cela libère beaucoup de puissance CPU (unité centrale) pour les Noeuds RingBuild que l'on va ajouter maintenant. Ceci est l'exact équivalent de mettre sur arrêt tous les Noeuds RingBuild qui suivaient le Noeud ExitBuild. C'est la seule façon d'accélérer le processus de Modelage sans acheter un ordinateur plus puissant.

19. Build Nose Rings (Construire les anneaux du nez)

20. Build Eye Crater Rings (Construire les anneaux des paupières)

21. Specify Ownership For Torso, Neck & Head (Spécifier l'appartenance du torse, du cou et de la tête)

Les Noeuds RingBuild peuvent spécifier l'appartenance des anneaux à certaines Parties par référence à une liste indicée de Parties, puis en notant dans le champ ownership le nombre des anneaux de chaque Partie.
Pour le Noeud RingBuild du torse, du cou et de la tête, par exemple, après les indices, les nombres suivants sont indiqués dans la colonne ownership devant liste de Parties correspondantes :


index ownership part Partie
0 7 pelvis bassin
1 1 tummy0 ventre0
2 1 tummy1 ventre1
3 1 tummy2 ventre2
4 5 thorax thorax
5 1 neck0 cou0
6 1 neck1 cou1
head tête


Note du traducteur : bien entendu, le tableau de Seamless3d ne comporte que trois colonnes, j'ai ajouté la quatrième pour la traduction.
Note (de Thyme) : La dernière Partie référencée par le Noeud RingBuild considère que l'appartenance (ownership) du reste non spécifié des anneaux la concerne, de sorte qu'il n'est plus nécessaire de renseigner son champ ownership.

22. Verify Ownership A (Vérifier l'appartenance A)

23. Verify Ownership B (Vérifier l'appartenance B)

24. Specify Ownership For Leg (Spécifier l'appartenance du membre inférieur)

 

index ownership part Partie
0 1 pelvis bassin
1 7 l_hip hanche gauche
2 9 l_knee genou gauche
l_ankle cheville gauche


25. Specify Ownership For Arm (Spécifier l'appartenance pour le bras)

index ownership part Partie
0 4 l_thorax thorax gauche
1 8 l_shoulder épaule gauche
2 7 l_elbow coude gauche
l_wrist poignet gauche

26. Specify Ownership For Index Finger (Spécifier l'appartenance à l'index)

index ownership part Partie
0 2 l_index1 index1 gauche
1 1 l_index2 index2 gauche
l_index3 index3 gauche
 

27. Specify Ownership For Middle Finger (Spécifier l'appartenance pour le medius)  

index ownership part Partie
0 2 l_middle1 medius1 gauche
1 1 l_middle2 medius2 gauche
l_middle3 medius3 gauche

28. Specify Ownership For Ring Finger (Spécifier l'appartenance pour l'annulaire)

index ownership part Partie
0 2 l_ring1 annulaire1 gauche
1 1 l_ring2 annulaire2 gauche
l_ring3 annulaire3 gauche

29. Specify Ownership For Pinky Finger (Spécifier l'appartenance pour le petit doigt)

index ownership part Partie
0 2 l_pinky1 petit doigt1 gauche
1 1 l_pinky2 petit doigt2 gauche
l_pinky3 petit doigt3 gauche

30. Specify Ownership For Thumb (Spécifier l'appartenance pour le pouce)

index ownership part Partie
0 1 l_thumb1 pouce1 gauche
1 2 l_thumb2 pouce2 gauche
l_thumb3 pouce3 gauche


Note du traducteur, rappel : bien entendu, les tableaux de Seamless3d ne comportent que trois colonnes, j'ai ajouté la dernière pour traduction.

31. Convert White Parts to Blue (Convertir les Parties blanches en Parties bleues)

Les Noeuds constructeurs tels que RingBuild ne peuvent construire de triangles que pour les Parties blanches. Toutefois, pour le Modelage en direct nous devons les convertir en Parties bleues (ImmediatePart). La commande qui convertit les Parties efface du même coup les Noeuds constructeurs.

32. Remove Background Guide (Enlever le "carton" d'arrière plan)

Le carton d'arrière plan (la photo ou le dessin) doit être enlevé parce qu'il va se mettre en travers du travail en cours. On pourrait le conserver plus longtemps, ou encore le re-importer plus tard s'il le fallait. Un carton peut être très utile pour vérifier les proportions exactes, mais par ailleurs il peut limiter la liberté de l'artiste et sa créativité, il convient donc de n'en pas être trop dépendant.

33. Delete Pelvis Triangles for Hip (Effacer des triangles pour la hanche)

durée, à peu près 2 minutes et 45 secondes

34. Join Vertex (Joindre les sommets)

Pour joindre un sommet à un autre, cliquer pour le choisir le sommet dont on veut conserver la position et le copier. L'autre sommet est alors choisi (cliqué) et le bouton de jointure de sommets est cliqué pour joindre ces deux sommets ensemble. On peut se servir des raccourcis clavier, R pour recopier et J pour joindre, ce qui accélère significativement le processus. On choisit toujours un sommet en cliquant dessus. Si on maintient la touche Ctrl pendant ce temps, on évite de déplacer le sommet par inadvertance. .

Note du traducteur : cela n'a l'air de rien, mais relisez trois fois à haute voix le paragraphe ci-dessus (c'est moi qui ai souligné en rouge). Rien n'est plus stupide que de déplacer un sommet "par inadvertance" ! Fin de note.
35. Continue to Join Hip to Pelvis (Joindre la hanche au bassin)

36. Quick Triangle (Triangle rapide)

On peut créer rapidement un triangle à partir d'un sommet copié et du côté choisi d'un triangle (Note : les points rouge et vert d'un triangle définissent le côté choisi) en cliquant le bouton ou en frappant le raccourci clavier Q.

Note du traducteur : Le paragraphe utile (ô combien) de "Navigation dans Seamless3d" est recopié directement ici:
Choisir un Triangle/le côté d'un Triangle
Chaque fois qu'un sommet est choisi, un triangle l'est aussi. Ce triangle choisi est marqué de trois points rouge, vert et bleu. Toutefois, choisir un triangle par l'un de ses sommets n'est pas vraiment une méthode fiable, parce qu'on ne peut jamais être sûr du triangle qui sera choisi dès qu'un sommet appartient à plusieurs triangles adjacents.
Pour choisir un triangle en toute confiance, cliquer "dans" le triangle tout en pressant la clé Alt. Si l'on prend soin de cliquer dans le triangle, mais près d'un de ses côtés, c'est ce côté qui deviendra le côté choisi.
Si l'un des sommets du triangle choisi est cliqué, le triangle choisi le restera (et non pas un autre triangle adjacent qui partagerait un sommet cliqué avec lui). Ce comportement permet de choisir facilement un sommet donné dans un triangle quand ce sommet est très proche d'un autre sommet. Fin de citation.
Ce qui n'empêche pas de consulter le lien suivant. Fin de note.
Voir Choix d'un Triangle/côté d'un Triangle


37. Continue to Join Hip to Pelvis
(Poursuivre la jonction de la hanche au bassin)

38. Split Triangle (Couper en deux un triangle)

Pour diviser un triangle on le clique avant de cliquer le bouton division de triangle. (Ou bien, touche S).

Le triangle a été divisé au milieu du côté choisi (entre point rouge et point vert). Si ce côté choisi se trouve être aussi le côté d'un triangle adjacent, il sera lui-même coupé en deux à partir de ce côté là.

39. Continue to Join Hip to Pelvis
(Poursuivre la jonction de la hanche au bassin)

40. Delete Left Half of Pelvis (effacer la moitié gauche du bassin)

41. Create Bikini Bottom (créer le bas du bikini)

42. Swap Triangle Divide (Echanger la division entre deux triangles)

Deux triangles adjacents forment un quadrilatère, la "division" est une diagonale. On a souvent besoin d'échanger cette diagonale contre l'autre. Cliquer cette diagonale pour la choisir, puis le bouton et ce sera fait.

Pour plus d'information sur la division des triangles, voir : Changer la division entre deux triangles (c'est dans "Commandes directes").

43. Paint Bikini Bottom (Peindre le bas du bikini)

On donne a un seul sommet la couleur voulue pour le bikini avec les boutons de la barre d'outils . Puis ce sommet est recopié et on l'utilise pour coller la couleur dans chaque triangle.

44. Add Extra Triangle Row For Bottom (Ajouter une rangée de triangles supplémentaires pour le bas)

Cette opération montre comment on peut ajouter une rangée de triangles de plus en divisant une rangée de triangles le long du bord horizontal et en échangeant ensuite les limites diagonales des triangles néoformés.

45. Continue to Create Bikini Bottom
(Continuer la création du bikini)

46. Refine Leg Join (Fignoler la jointure de la jambe)

47. Mould Breast to Thorax Surface (Mouler la poitrine sur le thorax)

Les sommets de l'anneau de triangles de base de la poitrine sont préparés pour reposer exactement sur la surface des polygones du thorax, par projection de ces sommets (de l'anneau de triangles de base) sur les triangles du thorax.
La commande de projection des sommets choisis provoque leur contact sur le point que vous pouvez voir sur (ou sous) le polygone. Par conséquent, il convient de fixer d'abord une orientation de la vue 3d telle que l'on puisse voir ces sommets au dessus de la surface des polyones là où il le faut avant de les projeter. Cette commande peut sembler fastidieuse pour le robot dans la mesure où il projette les points un à un en utilisant la barre d'outils. Toutefois, si l'on se sert du raccourci clavier pour exécuter la même commande (F4 = Sommet Suivant, P = Projection) les 12 sommets seront confortablement projetés en moins de 5 secondes.

Note du traducteur : Ce paragraphe 47 est présenté ici avec une grande simplicité. Les connaisseurs y reconnaîtront pourtant ce qui fait la parfaite originalité du logiciel de Thyme : cette jonction se fera (49) Seamless (sans coutures) !

48. Delete Thorax Triangles for Breast
(Effacer les triangles du thorax pour laisser place à la poitrine)

Remarquez comment on peut le faire en mode sans fil de fer, en effaçant d'abord 4 points autour de la poitrine puis en la cachant.

49. Join Breast to Thorax (Joindre la poitrine au thorax)

50. Mould Shoulder to Thorax (Mouler l'épaule au thorax)

51. Delete Thorax Triangles for Shoulder Join (Effacer les triangles du thorax pour la jointure de l'épaule)

52. Join Shoulder to Thorax (Joindre l'épaule au thorax)

53. Create Bikini Top (Créer le haut du bikini)

54. Check & Fix Ownership Strays (Vérifier et corriger les appartenances perdues)

Des sommets d'appartenance fautive peuvent apparaître lorsqu'on divise des triangles à la limite de deux Parties. C'est pour cela qu'il convient de vérifier les sommets et de les transférer éventuellement vers la Partie intéressée. Pour modifier l'appartenance d'un seul sommet, il faut recopier d'abord la Partie propriétaire en la cliquant dans l'arbre logique puis en choisissant paste ownership (coller l'appartenance) . Au lieu de choisir la Partie dans l'arbre logique pour en recopier le statut de propriétaire, le Robot choisit un sommet appartenant à cette Partie pour choisir la Partie elle-même. Cela peut rendre le collage de l'appartenance d'une Partie à un sommet plus rapide, surtout si on se sert des raccourcis clavier (R = copier, Alt o = Transférer un seul sommet) et c'est également utile pour accomplir cette opération alors que l'arbre logique n'est pas affiché.

Noter qu'une Partie n'est à copier qu'une seule fois pour un nombre quelconque de sommets à transférer à cette Partie.

55. Smooth Out Breast Join
(Adoucir l'implantation de la poitrine)

56. Color Skin For All Parts (Colorier la peau des différentes Parties)

Pour changer la couleur de la peau, on colle la couleur choisie avec la commande pour colorier les triangles blancs en "couleur peau".

57. Copy Left Side to Right Side (Recopier le côté gauche vers le côté droit)

La commande copier et coller La Partie en miroir, symétrique est utilisée pour créer le côté droit du modèle, c'est la copie miroir du côté gauche existant, celle qui contieant les bras et les jambes, le bassin et le thorax déjà préparés.

Le Noeud MirrorEdit (Modelage en miroir) contenu dans le MirrorGroup (Groupe miroir) qui fait rérérence aux Parties choisies spécifie comment cette tâche doit être accomplie :
Si le Noeud MirrorEdit contient 2 Parties, il recopiera tous les triangles de la Partie non choisie dans la Partie qui l'a été.
Si le Noeud MirrorEdit ne contient qu'une Partie, le côté gauche de cette Partie sera recopié dans son côté droit. Tous les triangles du côté droit sont effacés avant que les triangles recopiés n'y soient reportés en miroir.

58. Join Broken Vertices (Joindre les sommets rompus)
La commane "joindre les sommets proches dans les Parties visibles" est utilisée pour raccorder les sommets qui ont été rompus au cours de la procédure de création du côté droit à partir du côté gauche.

Il convient de cacher la bouche pour éviter que les lèvres supérieure et inférieure ne soient collées au cours de cette manoeuvre.

59. Remove Unwanted Creases (Enlever les froissements indésirables)

Bien que les sommets du milieu du bassin soient maintenant unis à la suite de l'opération précédente, un froissement peut se voir à la limite. Comme nous avons affaire à des polygones qui imitent une surface lisse, certaines ombres indésirables peuvent être tolérées, mais il existe un moyen d'améliorer cet ombrage de façon significative. On le fait en tractant ici ou là certains sommets pour donner de la continuité aux courbures. C'est un peu de sorcellerie à mettre en oeuvre par essais et erreurs pour y réussir. On peut aussi tenter "l'échange de triangles divisés" pour voir si ces triangles seront mieux ombrés ainsi dans ces surfaces un peu complexes.

60. Move the Pivot Points
(Déplacer les points de flexion)

Les Pivot points (points de flexion) des Parties sont déplacés afin de montrer l'endroit où ces Parties filles font charnière sur leur ancêtre (pour l'animation). Cette charnière, ou point de flexion, est représentée par une petite bille jaune dans la fenêtre 3d. Le Robot utilise le bouton pour commencer le travail dans chaque Partie, et pour diriger le point de flexion vers le centre de gravité de tous les sommets de la Partie concernée. Ensuite il utilise les boutons pour amener le point de flexion exactement à sa destination finale.
Comme la plupart des autres boutons de déplacement (sans rotation) ils incrémentent et décrémentent de un centimètre, ou de un millimètre quand la clé Ctrl est maintenue enfoncée.

Les Noeuds MirrorEdit agissent sur cette commande.

61. Set Vertex Weights
(Régler le poids des sommets)

Il est possible d'indiquer qu'un anneau de sommets doit tourner d'une certaine fraction de la rotation totale d'une Partie. C'est cela qui permet de rendre plus lisse l'articulation lors de la flexion d'un membre, plus lisse qu'il ne serait possible si tous les anneaux tournaient ensemble du même mouvement.

La fraction dont un anneau (un groupe de sommets) tourne dans une Partie est fixée dans le champ weight (poids). Par exemple 1 égale une rotation complète et .5 égale la moitié de la rotation.

Le champ coordGroup (groupe de coordonnées) spécifie combien de sommets figurent dans l'anneau de sorte qu'ils correspondent au nombre de colonnes fixées par le Noeud RingBuild (constructeur d'anneau) qui construit la jambe.

C'est ce Noeud RingBuild qui garantit la consistance de l'ordre des sommets.

Par exemple, les 10 premiers sommets qui concernent l'épaule seront indicés de 0 à 9, l'anneau suivant sera indicé de 10 à 19, l'anneau suivant de 20 à 29 et ainsi de suite (incrémentation par dizaines puisqu'on avait fixé à 10 colonnes le Noeud RingBuild qui fabrique le bras).

En revanche il n'y a aucun besoin de fixer une rotation à 1, puisque, si aucune indication n'existe pour un sommet il effectuera une rotation complète. Pour l'épaule par exemple, nous fixerons seulement les trois premiers anneaux de sommets pour les quatre groupes différents. Le premier anneau tournera d'un quart de la rotation complète (poids fixé à .25) l'anneau suivant tournera de deux quarts (poids = .5) le suivant de trois quarts (poids = .75) laissant le reste effectuer une rotation complète (4 quarts).

 

Shoulder (épaule)
index weight coordGroup
0 .25 10
1 .5 10
2 .75 10
Hip (hanche)
index weight coordGroup
0 .33333 14
1 .66666 14
Elbow (coude)
index weight coordGroup
0 .33333 10
1 .66666 10

Knee (genou)
index weight coordGroup
0 .33333 14
1 .66666 14
Wrist (poignet)
index weight coordGroup
0 .5 10
Ankle (cheville)
index weight coordGroup
0 .5 14




 

 

 

 

 

 

 

 

 

Note : un Noeud MirrorEdit (Modelage en miroir) qui fait référence à deux Parties fera correspondre les champs weight (poids) et coordGroup (groupe de coordonnées) des Parties correspondantes si quelques uns de ces champs étaient modifiés.


62. Square Head

Avant de projeter un accessoire facial quelconque sur les polygones de la tête, la forme de la tête doit être remodelée légèrement vers le haut pour la rendre un peu plus réaliste.

63. Colour Lips
(Coloration des lèvres)

64. Soften Lip Border (Adoucir le contour des lèvres)
Dans l'opération précédente, des triangles entiers on été coloriés avec le bouton  
.

Pour l'anneau de triangles le plus externe, seuls les sommets intérieurs de ces triangles devraient recevoir la couleur des lèvres avec le bouton afin d'obtenir une limite plus douce et plus naturelle avec la peau.

65. Project Mouth on to Head Surface (Projeter la bouche sur la surface de la tête)

66. Project Nose on to Head Surface (Projeter le nez sur la surface de la tête)

67. Project Eye Crater on to Head Surface (Projeter les paupières sur la surface de la tête)

68. Trim & Join Face (Retailler la face et y réunir les différentes parties ajoutées, bouche, paupières.)

69. Tug Mouth, Front View (Tracter la bouche, vue frontale)

70. Refine Triangle Structure for Face (Fignoler les triangles de la face)

Ceci comporte l'augmentation du nombre des triangles du menton en dédoublant les rangées de triangles existantes.

71. Insert Eyebrow (Ajouter un sourcil)

72. Mirror Right Side of Head (Créer la moitié droite de la tête par copie en miroir de la moitié gauche)

Pour la suite, on ne veut pas joindre tous les sommets de la bouche qui sont proches les uns des autres, la bouche est donc cachée avant le clic du bouton "joindre les sommets proches" dans toutes les parties.

73. Join Head (Joindre la tête)

Après cette opération nous disposons de tous les triangles nécessaires à la tête. A partir de maintenant le travail consistera à tracter des sommets pour modifier à volonté la forme de la face. Les sommets peuvent être tractés afin de donner un grand choix de visages différents sans aucun besoin de changer la façon dont les triangles ont été construits.

74. Join Mid Mouth Vertices
(Joindre les sommets au milieu de la bouche)

Nous n'avons pas pu joindre ces sommets avec la commande "joindre les sommets proches" nous devons maintenant les réunir un par un.

Regardez bien comment le Robot prend soin de ne pas réunir la lèvre supérieure à la lèvre inférieure là où elles sont en contact en choisissant les triangles avant de choisir les sommets.

75. Sink In Eye Craters
(Remodeler les paupières)

Ce serai bien si c'était possible de remodeler les paupières par traction de sommets selon une vue latérale parce que cela n'affecterait que la coordonnée Z des sommets ce qui est tout ce qui nous importe à cette étape. Toutefois la vue latérale n'est pas bien agréable pour travailler et les paupières sont remodelées selon une autre procédure. On les regarde selon une orientation différente, de façon à bien apercevoir l'ensemble des sommets. On peut tout de même changer leur coordonnée Z. Tracter selon cette orientation plus facile entraîne la modification des coordonnées X et Y, mais cette erreur sera corrigée lors de l'opération suivante.

76. Repair Eye Crater, Front View
(Réparer les paupières, vue frontale)

Cette opération non seulement corrige les erreurs de la précédente, mais aussi prépare la forme des paupières pour l'opération suivante.

77. Project Inner Most Ring on to Eyeball (Projeter l'anneau le plus central sur le globe oculaire)

78. Tug Mouth, Side View (Tracter la bouche, vue latérale)

79. Tug Mouth, Near Front View (Tracter la bouche, vue "presque" frontale)

Quand on tracte un sommet en vue d'une efficacité maximum, on voudrait pouvoir le faire également selon une orientation à angle droit de celle sur laquelle on travaille. Cela permettrait de tracter en 3 dimensions en ne travaillant que sur deux orientations. A partir de maintenant nous désignerons cette seconde orientation "la vue complementaire".
Tous les sommets constitutifs de la bouche sont visibles sur une vue frontale, mais il n'en va pas de même sur une vue latérale (qui serait donc la "vue complémentaire").

A cause de cela, le Robot va tracter tous les sommets de la bouche (exceptés ceux du milieu, qui ne peuvent être tractés sous un autre angle que latéral) depuis une vue "presque" frontale, pour que les mêmes sommets puissent être accédés facilement par la vue complémentaire.

80. Tug Mouth, Near Side View
(Tracter la bouche, vue "presque" latérale)

Les mêmes sommets sont tractés après installation de la vue complémentaire de celle de l'opération précédente. Cette vue complémentaire s'installe avec les boutons .

81. Work More on Eye Craters (Travail supplémentaire sur les paupières)

82. Tug Upper Head, Near Side View (Tracter le haut de la tête, vue presque latérale)

83. Tug Upper Head, Near Front View (Tracter le haut de la tête, vue presque frontale)

Vue complémentaire de la précédente.

84. Tug Upper Head, Front View (Tracter le haut de la tête, vue frontale)

85. Tug Upper Head, Side View (Tracter le haut de la tête, vue latérale)

Vue complémentaire de la précédente.

86. Tug Chin (Tracter le menton)

87. Tug Chin, Complementary View (Tracter le menton, vue complémentaire)

Cette opération complète la forme de la tête. Une main humaine ne devrait pas espérer y parvenir avec un nombre si limité de tractions. Il est nécessaire de bien observer cette tête sous différents angles et à différentes distances pour en pouvoir bien apprécier les proportions et comment les différents éléments s'harmonisent tout au long de cette procédure de modelage.

88. Add Eye Liner

89. Prevent Eyeballs Popping Out of Head
(Empêcher les yeux de sortir de la tête)

Lorsque l'on examine les yeux, il est bien possible qu'ils ne soient pas recouverts par le bord des paupières comme voulu. En effet l'anneau le plus intérieur des paupières est exactement à la même hauteur que le globe oculaire, c'est ainsi que nous l'avons laissé après la projection de cet anneau sur l'oeil. Si nous reculons un peu l'oeil, disons de 2 ou 3 millimètres comme le fait le robot dans cette opération, il semblera parfait sauf que, si nous zoomons à quelque distance nous commencerons à voir les yeux sortir à nouveau de la tête. La valeur du zoom à partir de laquelle cela se voit dépend largement du modèle de carte video dont on dispose ainsi que des réglages de cette carte. Pour des applications statiques telles que le Pov-Ray (technique de pistage de rayons) cela n'est pas un problème du tout mais pour les applications en temps réel (Vrml, X3D) et à moins de vouloir voir la tête de près il faudra faire autre chose.
Un remède simple consiste à reculer les yeux plus encore (bien plus que 2 millimètres) mais un autre problème survient si les yeux semblent maintenant beaucoup trop enfoncés dans la tête, ce qui de plus ne les empêche toujours pas d'en sortir aussi sur les côtés. Une meilleure solution pourrait consister à retailler les yeux pour qu'ils ne dépassent pas en arrière des paupières, mais cette fois nous ne pourrons plus animer les yeux. Tout dépend alors de savoir si c'était vraiment nécessaire pour une application en temps réel. Dans la Réalité Virtuelle personne ne se soucie en général de l'animation des yeux. La solution par conséquent consistera à importer directement des yeux déjà retaillés et de les tracter pour convenir à cet avatar. Ces yeux seront aussi tirés en avant de 2 millimètres pour coller exactement aux paupières.
Avec ce compromis, il nous est encore possible d'animer les yeux pour des scènes en plan rapproché en important à nouveau les yeux originaux non retaillés et en les reculant de 2 millimètres comme avant.

En se servant du LOD Vrml/X3D (Level Of Distance, niveau de distance) il doit être possible d'avoir deux jeux d'yeux pour le rendu en temps réel et de les remplacer automatiquement l'un par l'autre en fonction de la distance d'observation, toutefois je n'ai pas essayé de mettre cette idée en oeuvre.

90. Add Blush to Cheeks (Ajouter du rouge aux joues)

Avant de coller le rouge aux sommets de la joue, cliquer le bouton "Joindre les couleurs assorties pour tous sommets reunis" .

Ceci évitera le problème qui est visible dans l'image gauche suivante et qui survient quand on change la couleur d'un sommet.

 

 

Ce que nous voulons c'est que tous les triangles constitutifs de la joue partagent la même couleur pour chaque sommet de façon que, si l'on change celle d'un sommet, il en résulte ce que nous voyons dans la figure de droite.

Pour plus d'information au sujet de la rupture ou de la réunion des composantes couleur des sommets, voir : Briser leur lien ou Joindre des sommets


91. Import Hair (Importer une perruque)

92. Import Shoe (Importer des chaussures)

93. Paint Shoe Straps (Peindre les lanières de chaussures)

94. Attach Strap to Sole (Rattacher lanières et semelles)

95. Copy Left Foot to Right (Recopier le pied gauche à droite)

96. Build Belly Button Rings (Créer les anneaux du nombril)

Cette opération a été laissée à cette étape tardive parce qu'elle n'est pas obligatoirement nécessaire. Par exemple, si des sommets sont tractés à partir du thorax pour devenir des vêtements qui cachent le nombril, nous n'avons aucun besoin d'en constituer un.
Cette opération montre cependant comment il est toujours possible d'ajouter des anneaux de sommets via un Noeud constructeur après l'achèvement d'un avatar. S'il fallait ajouter une nouvelle Partie contenant les anneaux de sommets du nombril à titre de partie fille d'une Partie ventre existante, les points de contrôle 3d du Noeud RingBuild (constructeur d'anneaux) ne pourraient être mis en place à un endroit qui aurait un sens pour nous. Nous pourrions utiliser les champs en revanche pour contrôler ces anneaux, cependant nous allons ajouter une nouvelle Partie à titre de jumelle du bassin (de façon que cette Partie ne soit pas translatée par un champ de translation dans la hiérarchie des Parties) et nous transfèrerons ultérieurement les sommets vers une Partie qui soit dynamiquement transférée (une Partie fille du bassin) de façon à pouvoir utiliser les points de contrôle correspondants pour le Noeud RingBuild.

97. Paste tummy0 Ownership into Belly Button (Coller l'appartenance du nombril au ventre0 )

Puisque la plupart des sommets appartiendront au tummy0 (ventre0), ces sommets sont transférés vers cette Partie en utilisant la commande de transfert d'une Partie entière. Ceci laisse vide la Partie "A" de sorte qu'on pourrait l'effacer après cette opération. Toutefois, il faudrait alors penser à effacer d'abord le Noeud MirrorEdit (Modelage en miroir). .

98. Paste pelvis Ownership into Lower Vertices (Coller l'appartenance des sommets inférieurs au Bassin )

99. Paste tummy1 Ownership into Higher Vertices (Coller l'appartenance des sommets supérieurs au Bassin )

100. Mirror Right Side of Tummy (Recopie en miroir du côté gauche au côté droit du ventre)

 




 
Copyright © 2000-2007 Graham Perrett thyme@seamless3d.com
traduction en français de Matthieu