La modélisation de personnages humains ultra-réalistes est un peu le Graal de l'amateur de 3D. Certains sont suffisamment doués avec leurs outils préférés pour obtenir des résultats satisfaisants, d'autres lorgnent du côté des bibliothèques de modèles préexistants, mais souffrent parfois de modèles pas exactement conformes à leurs souhaits.Avec Makehuman, les amateurs de 3D pourront en quelques clics de souris créer des personnages nus parfaitement conformes à leurs souhaits et anatomiquement réalistes. Les responsables de la modélisation ont pris soin de disposer leurs polygones tout en respectant les masses osseuses et musculaires du corps humain, ce qui facilite grandement le morphing de la forme de base en n'importe quelle autre, dotée de caractéristiques physiologiques plus ou moins prononcées. Makehuman marche clairement sur les plates-bandes de Poser (http://www.e-frontier.com/article/articleview/1156/1/281?sbss=281), de Curious Labs, un célèbre logiciel commercial qui, pour l'instant, conserve une avance confortable grâce à ses 10 ans d'existence continue.
Parmi les fonctionnalités de Makehuman figurent :
- la possibilité de créer des personnages masculins, féminins, androgynes et cousins de l'humanité (humanoïdes de fantasy ou de science-fiction, extraterrestres, mutants, etc.)
- l'autoskinning, qui permet de placer librement les modèles issus de Makehuman dans des poses personnalisées.
- une carte UV haute résolution du corps entier.
- l'export au format
.objde Wavefront.

Fig. 1 : La forme de base de l'humanoïde créé par Makehuman : ce n'est qu'un point de départ.
Le projet Makehuman est né sous la forme d'un script Python pour Blender, écrit par Manuel Bastioni, destiné à créer des variétés infinies de têtes humaines (le script portait alors le nom de Makehead, et se révélait déjà assez ambitieux). Il a ensuite évolué pour permettre le morphing de corps humains entiers, sur la base du maillage réalisé par Enrico Valenza. Ce maillage a finalement été abandonné au profit d'un nouveau maillage, totalement retravaillé pour respecter parfaitement les masses musculaires, offrir des déformations optimales et surtout ne présenter, autant que possible, que des quadrangles (qui se comportent mieux en mode Subsurf de la plupart des modeleurs). Peu de temps après cette évolution majeure (qui a nécessité la re-création de tous les targets – ou morphings – d'origine par une équipe de modeleurs enthousiastes, dont votre serviteur), le script Python pour Blender a été réécrit en C++ pour devenir une application autonome à part entière (en particulier, car les incessantes modifications de l'API Python de Blender rendait un script aussi complexe difficile à maintenir) et offre désormais près de 3000 morphings, dont près de 2500 modélisés par un seul volontaire !
Morphing ou target ?
Ces deux termes sont interchangeables... dans la version Python, les auteurs parlaient uniquement de targets, mais, depuis la version autonome de Makehuman, le terme morphing est de plus en plus employé sans que le terme target soit véritablement et totalement abandonné.
1. Notions de base
Le principe de Makehuman est assez simple : une forme humanoïde est livrée prédéfinie ; elle n'est ni totalement masculine, ni totalement féminine, mais présente des traits communs aux deux genres. Ce qu'il est important de comprendre, c'est que cette forme est définie par des nombres finis de sommets, d'arêtes et de facettes : ces nombres n'évolueront jamais, aussi, ajouter un niveau supérieur de détail aux formes ne sera pas possible à l'intérieur de Makehuman. Toutes les cibles de formes (targets of morphing ou tout simplement targets) se contenteront de déplacer linéairement un sommet depuis sa place initiale vers sa place finale, en fonction du target.
Ainsi, par exemple, dans la Figure 02, nous allons appliquer un target (nose_tip_forward) qui affectera l'extrémité du nez du personnage, allongeant effectivement celui-ci. Le target admettra une valeur allant de 0.00 (forme de nez initiale) à 1.00 (nez allongé au maximum), et, en précisant une valeur intermédiaire, vous pouvez aisément déterminer dans quelle proportion le nez de votre personnage sera plus long que la version de base. Certains targets admettent des valeurs comprises entre -1.00 et +1.00, avec une valeur de départ nulle.
Enfin, pour conclure avec les principes de base, il existe deux types de targets. Le premier, comme nous venons de le voir, concerne les caractéristiques morphologiques de notre humanoïde, tandis que le second concerne la pose de celui-ci. En effet, Makehuman est doté d'un moteur de pose assez puissant qui, sur la base de fonctionnement des targets, permet de donner des positions particulières aux membres (ou n'importe quelle extrémité articulée) de l'humanoïde, dans les limites des possibilités physiques. Ainsi, un coude pourra s'ouvrir et se refermer selon des angles physiquement réalistes. Qui plus est, le moteur de pose entraînera des déformations supplémentaires de l'humanoïde qui refléteront celles des masses musculaires. Par exemple, pliez le bras au niveau du coude, et le biceps se gonflera automatiquement : c'est également le cas avec Makehuman !
Et par combinaison des targets (qui définiront les caractéristiques morphologiques de votre humanoïde) et des poses (qui définiront sa gestuelle), il devient aisé de créer des figures nues qui intégreront vos scènes 3D. Par exemple, l'illustration qui suit a été réalisée grâce à quelques minutes de travail dans Makehuman, et une poignée d'heures pour le développement de la scène dans Blender.
2. Installation
Le site hébergeant le projet est http://www.dedalo-3d.com/index.php, mais on peut tout aussi simplement s'y rendre grâce à l'adresse http://www.makehuman.org. Dans la barre de navigation latérale gauche se trouve une partie consacrée à Makehuman, et, en particulier, figure un lien Download pour
télécharger le logiciel. Makehuman 0.9 est actuellement disponible pour Linux soit sous forme de paquets .deb pour Ubuntu, soit sous forme de sources à compiler soi-même.


Fig. 3 : Exemple d'application d'une pose, avec déformation réaliste des masses musculaires (le biceps se gonfle à mesure que le bras se referme)

Fig. 4 : Exemple d'image d'heroic fantasy rapidement composée grâce à Makehuman et Blender : le dernier repos d'un guerrier Haut Elfe
2.1 Installation sous Ubuntu
Sous Ubuntu, trois paquets sont nécessaires pour faire fonctionner Makehuman.
animorph1_0.2-1_i386.deb: ce paquet contient le moteur de morphing développé par Andreas Volz.makehuman_0.9-1_i386.deb: ce paquet contient le cœur des fonctionnalités de Makehuman, en particulier tous les targets.mhgui1_0.1-1_i386.deb: ce paquet concerne l'interface graphique du projet.
Il y a également deux paquets à destination des développeurs, mais qui ne sont pas nécessaires à l'installation ; ce sont : animorph-dev_0.2-1_i386.deb et mhgui-dev_0.1-1_i386.deb.
L'ordre d'installation est important, car il faut installer en priorité animorph, puis seulement après makehuman et enfin mhgui. Pour l'installation, vous utiliserez votre gestionnaire de paquets préféré : Synaptic pour Ubuntu, Adept pour Kubuntu ou tout simplement la console. Dans ce dernier cas, téléchargez les paquets .deb mentionnés précédemment et stockez-les dans un répertoire nommé mh_install (par exemple ; évitez de les stocker dans un répertoire nommé makehuman pour éviter de mélanger les choses par la suite). Puis, dans une console, vous taperez successivement :
$ sudo dpkg --unpack animorph1_0.2-1_i386.deb $ sudo apt-get install -f $ sudo dpkg --unpack makehuman_0.9-1_i386.deb $ sudo apt-get install -f $ sudo dpkg --unpack mhgui1_0.1-1_i386.deb $ sudo apt-get install -f
Makehuman présente la possibilité de réaliser des rendus depuis sa propre interface, sans avoir à exporter votre humanoïde dans une application tierce au préalable. Dans ce cadre, il repose sur le moteur de rendu externe Aqsis, qui permet notamment la création de shaders réalistes ainsi que l'usage du subsurface scattering qui donne tout son réalisme aux peaux humaines. Sous Ubuntu, vous utiliserez comme précédemment votre gestionnaire de paquets pour installer Aqsis et sa dépendance aqsis-libsc2a, ou utiliserez à nouveau la console :
$ sudo apt-get install aqsis
2.2 Installation pour les autres distributions
Il n'y a pour l'instant pas de paquets officiels pour les autres distributions qu'Ubuntu et ses dérivés. Pour installer Makehuman, il est alors nécessaire de télécharger les sources suivantes :
animorph-0.2.tar.gzmakehuman-0.9.tar.gzmhgui-0.1.tar.gz
et de les décompacter dans un endroit approprié. Si vous avez installé gcc et make sur votre système, les simples commandes suivantes, dans une console, permettront de compiler et installer Makehuman sur votre ordinateur :
$ ./configure $ make $ sudo make install
Si Aqsis n'est pas disponible pour votre distribution, vous pouvez le télécharger sur http://www.aqsis.org.
3. L'interface
L'interface de Makehuman se révèle simple et rapide à l'usage, mais n'est pas la plus facile à appréhender sans explication ou sans expérimentation initiales. Sans être cryptique, l'iconographie utilisée n'est pas particulièrement explicite, mais se veut conceptuelle et moderne. Très grossièrement, on peut découper l'interface en 5 parties :
- Le menu supérieur : il s'agit de la barre orange tout en haut de la fenêtre, qui permet d'accéder aux différentes fonctionnalités générales de Makehuman, comme faire un rendu, charger ou sauvegarder des morphologies ou des poses, ainsi que, bien sûr, d'afficher les icônes contrôlant la morphologie de l'humanoïde, ses détails ou ses poses.
- La barre d'aide : il s'agit cette fois de la barre orange tout en bas de la fenêtre, qui renseigne l'utilisateur sur l'usage de telle ou telle icône, mais aussi indique, pour chaque target, le nom complet de celui-ci, ce qui est parfois utile pour sélectionner un target plutôt qu'un autre.
- L'écran central : c'est ici qu'il est possible de visualiser en 3D grâce à l'OpenGL le résultat de vos expérimentations. Les flèches directionnelles permettent de translater l'humanoïde dans la vue, tandis que les flèches du pavé numérique permettent de le faire tourner. Les touches [+] et [-] du pavé numérique permettent de zoomer (avant et arrière) sur la vue, tandis que les touches [1], [3] et [7] affichent respectivement le personnage en vue de face, de côté et de dessus. Il est également possible d'utiliser la souris (bouton gauche activé) pour faire pivoter le personnage, ainsi que la molette pour zoomer.

Fig. 5 : L'interface de Makehuman au démarrage
- Le panneau latéral gauche : son contenu est variable selon le mode de fonctionnement choisi de Makehuman, mais ce sont des sous-catégories générales qui (à l'exception des somatotypes, par exemple) qui donnent accès à diverses collections de targets.
- Le panneau latéral droit : c'est ici qu'apparaissent les collections de targets qu'il est possible d'appliquer à l'humanoïde.
Le menu supérieur est également divisé en deux zones, avec des icônes de taille différente. Les plus petites, à gauche, donnent accès à des fonctions générales de Makehuman :
: cette icône permet de quitter l'application.
: cette icône affiche/masque la grille de l'écran central.
: cette icône affiche dans le menu latéral droit la liste des morphings utilisés ainsi que la valeur employée, avec possibilité de modifier celle-ci.
: cette icône permet de faire un rendu de prévisualisation de votre humanoïde avec Aqsis.
: cette icône permet, dans l'écran central, d'afficher/masquer les arêtes du maillage de l'humanoïde.
: cette icône permet d'afficher le splash screen de Makehuman, présentant notamment les crédits.

Fig. 6 : Les crédits complets de Makehuman 0.9.0
Les plus grandes icônes, au centre, donnent accès aux fonctionnalités spécifiques de Makehuman. Certaines sont en cours de développement et sont désactivées (les icônes ne sont alors pas fonctionnelles), comme par exemple le module des vêtements, du contrôle des expressions, d'asymétrie ou encore de chevelure.
: cette icône permet d'invoquer la console de Makehuman qui permet de saisir le chemin et le nom d'un groupe de réglages (body settings) précédemment sauvegardés au format .bs. [Entrée] pour valider l'opération, et [Echap] pour refermer la console. Vous pouvez indifféremment récupérer une liste de morphings (avec les valeurs appropriées) ou une pose, en fonction du mode dans lequel vous vous trouvez lorsque vous invoquez cette fonction.
: cette icône permet d'invoquer la console de Makehuman et d'y saisir le nom d'un groupe de réglages (body settings) sous lequel sauvegarder votre travail actuel au format .bs. [Entrée] pour valider l'opération, et [Echap] pour refermer la console. Vous pouvez indifféremment sauvegarder une liste de morphings (avec les valeurs appropriées) ou une pose, en fonction du mode dans lequel vous vous trouvez lorsque vous invoquez cette fonction.
: cette icône permet d'exporter l'humanoïde (avec ses caractéristiques morphologiques propres ainsi que sa pose) au format .obj de Wavefront, très bien accepté par la plupart des logiciels de modélisation 3D du marché, tant libres que propriétaires. [Entrée] pour valider l'opération, et [Echap] pour refermer la console.
Votre dossier personnel de stockage
À l'installation, un répertoire makehuman/ est créé à la racine de votre répertoire personnel. Il contient notamment les sous-répertoires mybs/, myobjs/, myposes/ et rendering/ qui contiennent respectivement les fichiers de body settings que vous avez sauvegardés, les modèles au format .obj que vous avez exportés, les poses que vous avez sauvegardées, et enfin les rendus effectués.
: cette icône permet de contrôler la morphologie de l'humanoïde, mais, de façon encore expérimentale, offrira la possibilité de contrôler l'âge de celui-ci à l'aide d'un simple curseur, de proposer des gabarits de personnages standards, etc.
: cette icône permet de contrôler les détails morphologiques de l'humanoïde, région par région de son corps. Cette liste ne vise qu'à fournir des morphings réalistes.
: cette icône a la même vocation que la précédente, à ceci prêt qu'elle vise à donner à l'humanoïde des attributs inhumains ou fantaisistes, comme par exemple des oreilles d'elfe, un groin d'orque ou des formes de crâne extraterrestres.
: cette icône permet d'activer les morphings de pose de l'humanoïde. Comme précédemment, les poses se contrôlent région par région.
: cette icône permet d'effectuer le rendu, à l'aide d'Aqsis, de l'humanoïde créé. Pour l'instant, Makehuman n'offre pas la possibilité de modifier l'éclairage ou les matériaux du modèle, mais les développeurs y travaillent.

Fig. 7 : Exemple de rendu à l'aide de morphings de fantasy, dans la pose par défaut, d'une créature inhumaine
4. Travailler avec Makehuman
Même s'il demeure incomplet au niveau de ses fonctionnalités, Makehuman est enfin robuste et prêt à être exploité, que ce soit par des amateurs enthousiastes ou des professionnels pressés. Après avoir installé le logiciel, vous le lancerez à partir de la console grâce à la commande :$ makehuman
et aboutirez à son interface par défaut, telle que présentée en Figure 5.
4.1 Travail sur la morphologie de l'humanoïde

Fig. 8 : Les somatotypes et autres paramètres affectant l'allure du personnage
Par défaut, l'interface démarre sur la détermination des somatotypes de l'humanoïdes. Derrière ce nom compliqué se cachent en fait trois familles artificielles de morphologies, sachant qu'il est très rare qu'un individu n'appartienne strictement qu'à l'une d'elle. Les trois familles sont les suivantes, dans leur ordre d’apparition dans l’interface :
- ECTO pour ectomorphe : définit des individus à la morphologie allongée, délicate, et peu musclée ;
- MESO pour mésomorphe : définit des individus grands, musclés et robustes ;
- ENDO pour endomorphe : définit des individus gros, lourds et potelés.
Chaque somatotype se voit attribuer trois morphings qu'il est possible de paramétrer individuellement, et qui
affectent respectivement les bras, le tronc et les jambes. Pour obtenir des morphologies convaincantes, il vous faudra donc réfléchir à l'allure générale de votre humanoïde et appliquer les somatotypes appropriés. N'oubliez pas qu'un personnage peut appartenir à plusieurs somatotypes à la fois. Il est donc utile de se livrer à des expérimentations sur l'allure de
votre création.
Usage des morphings
La façon d'appliquer un morphing est consistante dans toute l'application. Chaque morphing se voit attribuer une icône le symbolisant, et, en-dessous de celle-ci, se trouve une valeur numérique, allant généralement de 0.000 (morphing inactif) à 1.000 (morphing poussé à l'extrême de ce qui a été modélisé). Pour modifier la valeur du morphing, il suffit de cliquer sur une icône et, tout en maintenant le bouton gauche de la souris pressé, de déplacer la souris vers la gauche pour diminuer la valeur, ou vers la droite pour l'augmenter.

Fig. 9 : Exemples de morphings pouvant affecter la région nasale
Lorsqu'un morphing est appliqué, sa valeur d'usage apparaît en rouge dans la liste. Malgré la mise en couleur rouge des régions affectées, les icônes ne sont pas toujours parfaitement explicites. Il est alors utile de regarder le nom complet du target dans la barre d'aide pour se faire une idée de son usage.
Dans cette section, se définissent également des prototypes de personnages, pour l'instant regroupés dans des catégories floues. Ainsi, Charact1 regroupe des morphings permettant de donner à vos personnages des visages masculins ethniques très différents : têtes africaines, asiatiques, amérindiennes, européennes. Charact2 définit des morphings féminins, corps et visages ethniques compris. Fantasy1 regroupe des têtes de toons, des proportions de comics ou des personnages de fantasy (elfe, sorcière, goule...). Enfin, le bouton Reset est particulièrement intéressant, puisqu'il permet de réinitialiser votre humanoïde à sa forme de démarrage.
4.2 Définition des détails corporels réalistes
Les prototypes et les somatypes présentés précédemment peuvent tous être réalisés à l'aide des
targets définis dans cette section. Comme indiqué dans l'encadré, les valeurs des targets employés apparaissent en rouge, ce qui permet de repérer rapidement ceux qui ont été employés, et de corriger leurs valeurs individuelles pour qu'elles correspondent au mieux à vos attentes.

Fig. 10 : Le panneau de contrôle région par région des détails corporels réalistes
En cliquant sur l'un des ronds rouges du panneau latéral gauche, vous faites apparaître dans le panneau latéral droit une collection de morphings qu'il est possible d'appliquer. Pour l'instant, si vous désirez une figure humanoïde parfaitement symétrique, il vous faut répliquer les mêmes valeurs de targets d'un côté et de l'autre. Mais rappelez-vous qu'une symétrie parfaite n'existe pas dans la nature, et que, jouer avec d'éventuelles dissymétries permet d'ajouter du réalisme à des personnages autrement trop lisses et trop parfaits pour être crédibles. Dans le menu supérieur, se trouve un bouton pour l'instant inactif : Asymmetry. Dans le futur, il devrait permettre de forcer la symétrie des personnages (permettant ainsi de ne les construire que sur un côté unique) et peut-être d'induire des dissymétries aléatoires modérées pour rompre avec le caractère artificiel de vos humanoïdes.
Créer de nouveaux targets
Cela est tout à fait possible, à condition de retenir la règle de base : vous n'avez pas le droit de supprimer ou d’insérer de nouveau sommet, ni d'altérer les arêtes et facettes existantes (par suppression ou reconstruction). Vous pouvez toutefois librement les déplacer (méthode du vertex pushing) pour modeler les formes souhaitées. Les modeleurs du projet Makehuman travaillent avec Blender, et ils fournissent un script Python permettant de générer le target correspondant aux déplacements effectués aux sommets du maillage : cherchez le script Maketarget sur la page suivante : projects.blender.org/frs/?group_id=16&release_id=280. Une documentation basique sur l'usage de ce script se trouve ici : www.dedalo-3d.com/public/dev/articles/06_01_31_maketarget_1_1_intro_EN.pdf.
4.3 Définition des détails corporels fantaisistes

Fig. 11 : Le panneau de contrôle région par région des détails corporels fantaisistes
Les développeurs ont préféré séparer clairement les targets réalistes des targets fantaisistes, afin de faciliter la création de concepts, de la part des utilisateurs de Makehuman. Leur fonctionnement ne diffère en rien de celui de la catégorie précédente. Leur objectif vise à la création de créatures proches de l'humanité, mais néanmoins inhumaines ou extraterrestres.
4.4 Le module de pose
Le module de pose a été développé conjointement avec le moteur musculaire de Makehuman. Il est possible d'imprimer à chaque articulation des rotations réalistes par rapport à leur pendant réel, et les masses musculaires vont se déformer proportionnellement selon qu'elles se détendent ou se contractent pour permettre le mouvement. La programmation dans le moteur musculaire a demandé un temps de développement considérable. Même si toutes les déformations ne sont pas encore parfaites, elles n'en sont pas moins à un niveau quasi-professionnel.


Fig. 12 : Linterface de sélection des articulations à poser
Fig. 13 : Exemples de contrôleurs de pose
L'interface de contrôle des poses est simple et fonctionnelle ; vous choisissez une articulation ou un os en cliquant dessus avec le bouton gauche de la souris dans le panneau latéral gauche, et des targets de pose font leur apparition dans le panneau latéral droit. En fonction du type d'articulation, ces targets admettent des valeurs comprises entre 0.00 et 1.00 ou entre -1.00 et 1.00.
Conclusion
Nous venons simplement de survoler les capacités de Makehuman, sans pour autant entrer dans les détails quant à son fonctionnement. Mais vous devriez désormais avoir l'autonomie nécessaire pour créer des concepts époustouflants de héros, anti-héros, humanoïdes fantastiques ou extraterrestres. Très peu de temps est nécessaire à l'apprentissage du logiciel, mais il vous faudra sans doute plus de temps pour créer un personnage intéressant et le mettre dans une pose crédible et naturelle.
Parmi les améliorations que l'on pourrait souhaiter, figurent le zoom automatique de la vue 3D sur le target en cours d'édition, afin de doser au mieux la valeur de target conforme à nos souhaits. Un point regrettable est la carte UV du modèle de base. Elle gaspille pas mal d'espace et n'est pas facile à éditer en raison des coutures pas toujours heureuses et rendant, en particulier, difficile l'usage de photographies comme sources de texture.

Fig. 14 : La carte UV du modèle de base
Un bon point, en revanche, est la fourniture de quelques cartes UV (notamment couleur et relief) au sein d'une archive disponible, mais pour laquelle peu de publicité a été faite. Pour les télécharger,
rendez-vous sur http://sourceforge.net/project/showfiles.php?group_id=150931 et téléchargez le MakeHuman skin shader ; il s'agit du fichier Mhskin-01-beta qui contient le shader pour Aqsis de la peau de l'humanoïde, mais ses cartes peuvent être réemployées dans n'importe quelle application les gérant.
Parmi les autres petits défauts à corriger, la présence d'un target pour nantir l'humanoïde d'attributs masculins anatomiquement corrects est très appréciée. Mais il n'y a rien qui concerne l'appareil génital féminin, alors que les deux étaient disponibles dans l'ancienne version de Makehuman (la version en Python sur la base du maillage d'Enrico Valenza). Enfin, bien sûr, cette version de Makehuman nous laisse sur notre faim, en présentant les icônes pour gérer les fonctionnalités manquantes que sont l'asymétrie, les vêtements et les cheveux, des sujets " chauds " dans ce domaine de création d'humains paramétriques, qui sont aujourd'hui en cours de développement et ne devraient malheureusement pas apparaître dans un avenir proche dans une future version du logiciel. Enfin, quelques améliorations sont à attendre au sujet du module pose, car il n'est pas possible de les réinitialiser comme c’est le cas pour les autres targets.
Mais, malgré tout, même si le projet est encore jeune, il est très prometteur et parfaitement fonctionnel : il devrait déjà rendre d'immenses services à tous les amateurs, et significativement aider les professionnels qui ne remplaceront toutefois pas encore Poser par Makehuman à moins d'être très motivés.
Liens
Site du projet : www.makehuman.org
Forum du projet : www.dedalo-3d.com/public/forum/index.php
Télécharger le script Maketarget pour Blender : projects.blender.org/frs/?group_id=16&release_id=280
Técharger le shader de peau pour Aqsis (contenant les cartes UV pré-peintes) : sourceforge.net/project/showfiles.php?group_id=150931


