L'agence
WanadevStudio
Les étapes de création d’un personnage de jeu vidéo
À la veille de la sortie de Propagation Stage 3, prenons un moment pour découvrir Michel, boss de fin du nouvel épisode de la saga Propagation et de comment il a été créé et modélisé.
Créer des personnages de jeux : les étapes
Aujourd’hui on va comprendre comment on fabrique les personnages de jeu vidéo. Il y a un point commun entre Nathan Drake d'Uncharted, Kratos de God of war ou encore Michel, le boss final du stage 3 de notre jeu Propagation. Ils ont tous les trois été fabriqués avec une méthode précise que je vais tenter de vous expliquer dans cet article.
Je n’ai pas prévu d’être très technique, mais je propose une vision d’ensemble accessible à tous pour avoir un aperçu général.
Cette méthode est prévue pour la création de modèles réalistes qui ont besoin de détails. Pour des éléments stylisés il existe d’autres techniques dont je ne vais pas parler. Je vais donc illustrer cette méthode avec notre Michel national. Il ne faut pas se fier à sa petite bouille trop mignonne, il peut mordre. Car ce personnage sort du jeu Propagation, un lieu d’horreur rempli de zombies et il va vous faire vivre un cauchemar si vous vous en approchez.
@ Pourquoi Michel ? Aucune idée. C'est le nom de code spontané qui est sorti, et qui est resté en interne.
C’est quoi un modèle 3D ?
Un modèle 3D c’est en gros un ensemble de points, placés dans un espace 3D et liés entre eux, formant des polygones, et ces polygones liés entre eux ça fait une forme 3D. Si on ajoute des textures, on peut lui donner des couleurs, des petits reliefs et des accroches de couleur particulières. C’est tout ce dont on a besoin pour notre personnage.
Pour fabriquer tout ça, voici l’ordre généralement utilisé. Ordre qui peut changer selon les méthodes de travail et les styles graphiques:
- On fabrique un modèle haute définition
- On fabrique un modèle basse définition
- On procède à la projection du HD sur la basse définition (c’est le moment le plus important)
- On fabrique les textures
- On le fait bouger
Quels logiciels on utilise pour faire ça ?
Il y en a tout plein de différents, chacun spécialisé dans son domaine. Chez Wanadev on utilise les trois suivants :
- Zbrush pour le sculpt du modèle haute définition.
- Blender pour le modèle basse définition.
- Substance painter pour le baking et fabriquer les textures.
1 - High poly
On appelle High Poly le modèle haute définition. Tout simplement parce qu’il y a un nombre incroyablement grand de polygones. Un sculpt assez lourd peut aller jusqu'à plusieurs dizaines de millions de polygones.
Le principe du sculpt du high poly, c’est de modéliser toutes les formes. Que tous les volumes fonctionnent sans texture. Les plis de vêtements? c’est de la modélisation. Les rides ? C’est de la modélisation. Les poils de barbe ? Oui oui, c’est de la modélisation 3D. La seule limite, c’est ce que peut encaisser la puissance de l’ordinateur. Mais le logiciel est optimisé pour gérer beaucoup (vraiment beaucoup beaucoup) de polygones.
On peut les fabriquer de plusieurs manière : Le sculpt ou ou le subdivision modeling.
Le principe du sculpt c’est d’avoir une topologie dynamique: un coup de pinceau et on ajoute ou on supprime des polygones. C’est comme ça qu’on a fabriqué le high poly de Michel.
Le subdivision modeling, c’est une méthode classique pour des objets assez géométriques. On fabrique une base légère et on ajoute des subdivisions de polygones.
Le high poly de Michel
Une chose importante c’est de commencer par avoir des références. C’est très difficile de sculpter de nulle part, sans modèle ni inspiration.
Pour Michel, on est allé fouiller du côté de Resident Evil, pour avoir une sorte de monstre quadrupède humanoïde.
En analysant aussi un peu d’anatomie humaine, on peut repérer les volumes des muscles humains et les transposer sur une créature.
Le principe du sculpt, qu’il soit sur de l’argile sur des pixels, est toujours le même : On fait d’abord la mise en place des grands volumes, puis les moyens et enfin les petits détails.
Et voilà on a un modèle haute définition de Michel.
2 - Low poly
Le modèle low poly est le modèle que l’on va utiliser dans le jeu vidéo. Bien que les machines d’aujourd’hui sont puissantes, le nombre de polygone est limité.
^ Si un high poly flirte avec les millions de polygones, le low poly en revanche est bien restreint, en moyenne 30000 ou 40000 polygones pour un personnage entier.
La disposition de ces polygones, ce qu’on appelle le maillage est assez important. L’exemple juste au dessus est explicite : plein de maillages pour une seul et même forme, quelle est la meilleure ?
Ça dépend si le personnage est animé ou non. S’il est animé, les lignes des quads (face à 4 côtés) doivent suivre les courbes des volumes selon une logique précise. L’animation déforme le maillage, ce dernier doit être adapté en fonction des mouvements possibles.
Si l’objet est inanimé, alors la topologie ne sert que l’expression du volume.
Pour créer le modèle low poly, on utilise le modèle high poly et on effectue ce qu’on appelle une retopologie. Et il y a deux manières de le faire :
- On le fait à la main grâce à des outils de retopologie
- On le génère avec des algorithmes
Les deux solutions ont leur lot d’avantages et d’inconvénients. La meilleure des solutions étant la méthode manuelle pour un meilleur contrôle du maillage, au détriment d’un travail chronophage. Michel a donc environ 30000 polygones. C’est un peu dense, mais on va le voir de près, c’est nécessaire d’avoir du détail.
Les UV
Pour pouvoir faire des textures, on doit déplier notre modèle. Lui faire un patron pour que la texture (une simple image) s’applique dessus.
@ Pour être un peu technique, chaque point du modèle peut vivre dans deux environnements. Un en 3D avec les axes X, Y et Z, puis un autre en 2D avec les axes U et V. Chaque face va donc récupérer les pixels de la texture présente sur les UV pour les afficher dans l’environnement 3D.
3 - Le baking
Le baking ? késako ? Le baking est la phase où l’on va projeter les détails du high poly, sur le low poly. On met les deux modèles, le lourd et le léger, l’un sur l’autre, et chaque face du modèle low poly va “prendre en photo” le modèle high poly.
Les “photos” prises par le low poly, il y en a plusieurs et ce sont ces “photos” qui vont nous servir à créer les textures. La plus importante, c’est la normal map. Cette image particulière bleutée donne les informations des petits reliefs. Sans ajouter de polygones, elle donne l’impression de bosses ou de creux. Voici la normal map calculée par le low poly de Michel.
@ Pour être un peu technique, l’image est composée de rouge de vert et de bleu, correspondant aux 3 axes de la 3d, ce qui permet de calculer les déformations à la surface du modèle.
^ Il y a d’autres images qui ont été calculées pendant le baking. Comme l’occlusion ambiante, l’épaisseur du modèle ou encore la courbure les volumes. Comme dit plus haut, ces images vont permettre de faire des textures, en les utilisant comme masques.
L’image suivante montre le modèle low poly de michel, avec la normal map. Voyez comme il y a plein de petits reliefs juste avec un modèle low poly:
4- La création de textures
Maintenant on n’a plus besoin du high poly, puisqu’on en a tiré les détails sur des images. Grâce à elles on va pouvoir générer des textures:
^ Substance Painter fonctionne comme Photoshop, avec plusieurs calques les un sur les autres, que l’on peint directement sur le modèle low poly. Par exemple, on dit : “met un matériau rouille uniquement sur les parties fines du modèle”. Ou encore “met de la poussière dans les creux”.
Combinés les uns aux autres pour Michel, les matériaux donnent ceci :
Après avoir travaillé les différentes matières, on exporte les différentes textures.
Chaque textures agit différemment :
- Color (Couleur du modèle)
- Roughness (Réfléchissant ou mat)
- Normal map (les petits reliefs)
- Height (hauteur des reliefs)
- Opacity (opacité du modèle)
- Emissive (Endroits où il y a une émission de couleur)
- Metallic (la matière est elle faite de métal ?)
Ce sont donc ces textures qu’on applique sur le modèle low poly dans le jeu. Il y a beaucoup de textures pour avoir un rendu complexe, donc réaliste.
5- Et pour l’animation ?
^ L’animation c’est un monde à part. Un asset 3D, il faut le considérer comme une poupée immobile. Un objet 3D ce ne sont finalement que des points placés dans un environnement 3D.
Pour faire bouger mon personnage, il lui faut un squelette. Et c’est le squelette qui va bouger. Voici le squelette de Michel :
Chaque point de la modélisation est assigné à un (ou plusieurs) os. C’est comme ça que les points bougent. Par exemple sur Michel, on peut voir en rouge la zone du bras qui est assignée à l’os de l’avant bras. Ce qui est en vert, ce sont les points qui ne sont pas totalement assignés à l’os, qui sont moins influencés.
Ensuite, pour animer ce squelette, on crée ce qu’on appelle un rig. Ce sont des outils d’aide à l’animation, des contrôleurs pour ne pas avoir à bouger manuellement les os du squelette. Par exemple, sur cette chauve souris, les contrôleurs en rouge et en bleu ne sont pas des os, mais des manettes pour faciliter l’animation.
Et voilà. Michel est prêt. Bon courage à ceux qui vont devoir l’affronter ;) !
Chez Wanadev nous adorons les défis technique, si vous avez envie d'échanger on serait ravis de vous rencontrer !
Commentaires
Delvart
Il y a 5 ans