Je vous résume ici le processus de création d’un modèle de jeu et les outils qu’utilisent les game artists pour réaliser leurs modèles 3D destinée aux jeux vidéo. Vous trouverez la même chose en plus complet, mais en anglais dans mon billet sur les meilleurs tutoriels pour se lancer dans le Game Art 3D.

Les logiciels pour réaliser un modèle de jeu

Pour créer un modèle de jeu vidéo, tout commence, par le logiciel de modélisation qui va permettre de lui donner forme en 3D. Il y a deux approches:

  • l’utilisation d’un logiciel de modélisation polygonale qui permet de déplacer les différents composants des polygones: leurs faces, arêtes et sommets et d’utiliser différentes opérations pour ajouter du volume, découper, etc. On parle de logiciel de modélisation polygonale, c’est adapté pour la réalisation de formes mécanique comme des objets industriels, voitures, accessoires, armes.
  • en utilisant un logiciel de sculpture numérique, vous travaillerez sur votre forme comme si c’était de la pâte à modeler. C’est plus adapté pour la réalisation de forme organique telle que des personnages et créatures, mais aussi pour des petits détails comme des rayures, fissurent, pores de la peau.

Même si la première méthode est utilisée pour la réalisation de pièce mécanique, je parle ici de pièces mécaniques artistiques où il n’y a pas besoin d’entrer des dimensions au millimètre près et qui ont besoin d’être fonctionnel (même s’il faut garder de la cohérence dans le design). Pour ça on utilise plutôt un logiciel de CAO (Conception Assisté par Ordinateur) ou CAD en anglais. Vous pouvez en savoir plus sur la CAO dans mon billet sur l’impression 3D avec Fusion 360.

Certains logiciels permettent de faire les deux, la modélisation polygonale et la sculpture. Je vous recommande Blender qui fait les deux et est gratuit tout en étant l’un des logiciels les plus puissants et le plus populaires parmi les créateurs de jeu vidéo indépendants. Les studios eux utilisent plutôt des logiciels payants (car ils été pendant un moment plus complet que Blender).

Les logiciels de modélisation polygonale

Nous allons voir ici les logiciels de modélisation polygonale qui existent. J’indique en premier le logiciel que je recommande (ce sera toujours Blender) et en second le standard, celui qui est le plus utilisé par les studios de jeux (ne veux pas dire le meilleur).

  • Blender est un logiciel gratuit alors que les autres de cette liste coûtent plusieurs milliers d’euros (à l’exception de Modo et ZBrush), c’est un logiciel populaire avec une grosse communauté de passionnés. Beaucoup d’anciens professionnels du secteur sont passés sur Blender et la tendance ce poursuit, vous pouvez donc discuter avec des utilisateurs de Blender travaillant dans des studios tels que Blizzard, Valve, etc. C’est le logiciel que je vous recommande.
  • Maya est le logiciel le plus utilisé dans les studios de jeux vidéo, très puissant en particulier pour l’animation. Néanmoins, il n’offre aucun avantage par rapport à Blender au niveau des outils disponibles si ce n’est plus de chance de trouver du travail dans le secteur. Si vous souhaitez créer vos propres jeux, Blender fera l’affaire.
  • Modo est l’un des logiciels de modélisation les plus avancés, bien qu’il ne soit peut-être pas le plus rapide pour la modélisation de formes plus basique son plug-in MeshFusion lui permet de combiner des polygones, d’en utiliser pour creuser de la matière et ainsi réaliser des formes très complexes. Il est très apprécié pour la réalisation de modèles de science-fiction.
  • 3ds max était l’outil de création de jeux vidéo qui était de loin le plus utilisé, mais c’était il y a plusieurs années. Après des mises à jour très décevantes, des hausses de prix et l’accumulation de retard en terme de fonctionnalités par rapport à la concurrence et de bugs il a perdu rapidement en popularité. Le logiciel domine toujours dans le secteur de la modélisation architecturale, mais commence à laisser sa place à Maya et Blender dans le domaine du jeu vidéo.
  • ZBrush est un logiciel connu de sculpture, depuis la sortie de sa version 4R7 il est capable d’éditer des polygones, il est parfois plus rapide. Mais son ergonomie n’est pas pensée pour, son apprentissage est difficile et les outils limités.

Les logiciels de sculpture

  • Blender est aussi très puissant pour la sculpture 3D surtout grâce à son algorithme appelé « Dyntopo » qui lui permet de reconstruire la topologie en temps réel, ainsi vous ne manquez jamais de faces pour sculpter vos détails. Combiné à ses nombreux outils de modélisation polygonale cela en fait le logiciel le plus polyvalent.
  • ZBrush est utilisé dans pratiquement tous les jeux vidéo, il est performant, il peut afficher des milliards de faces et à un nombre important d’outils de sculpture. Malheureusement, son interface est déroutante, il n’est pas ergonomique et intuitif, il vous sera difficile de trouver une fonction sans passer par un tutoriel. Il dispose lui aussi d’outil de reconstruction de la topologie, mais il est moins efficace que Dyntopo car il ne reconstruit pas la topologie localement et en temps réel.
  • Mudbox n’a pas reçu de mise à jour majeure suite à son rachat par Autodesk. Le logiciel perd énormément d’utilisateurs, il est bien plus intéressant de se former à ZBrush pour travailler. Blender qui est gratuit permet d’en faire bien plus que Mudbox.

Les étapes de création d’un modèle 3D

High poly/low poly modeling

En 3D vous commencerez par un modèle détaillé qu’on appelle « High Poly » (beaucoup de polygones si on traduit), mais cela dépend du genre de jeu parfois on fait directement le low poly. Le high poly va contenir beaucoup de détails: des rayures, les pores de la peau, des angles endommagés et des petits objets tels que des vis un peu partout. Après vous devez reconstruire par dessus une version avec moins de faces, plus facile à afficher en grand nombre, et il faut penser aux ordinateurs les moins puissants. On appelle cette étape la « retoplogie » parce qu’on reconstruit la topologie des faces. Certains utilisent un algorithme appelé la Decimation qui va générer automatiquement une version avec moins de polygones en préservant un maximum de détails, pour les personnages auquel il faut articuler des bras, réaliser des expressions de visage on préfère le faire manuellement.

À partir de ces deux versions, vous allez générer (le baking) des textures spéciales qui vont simuler les reliefs. Tous les détails de votre high poly, toutes les vis, les rayures seront visibles sur votre low poly comme s’il était vraiment en 3D alors qu’en fait tout sera plat. Avec cette technique vous pourrez ajouter une infinité de détails tout en sauvant beaucoup de mémoire à l’ordinateur, en fait la qualité des détails seront dépendants de la qualité de votre high poly et de la résolution de la texture, si la texture est petite les détails seront flous. Mais pour pouvoir projeter les textures sur votre low poly il va falloir passer par l’étape qu’on appelle « UV Mapping ».

UV Mapping

Le modèle low poly doit être déplié en 2D, ça semble compliqué, mais c’est en réalité très simple à faire. Il vous faudra marquer les « seams » (coutures). Imaginez que chaque seam est une zone de découpe au ciseau que vous indiquez à votre logiciel de 3D, à force de le découper vous finirez par mettre à plat des surfaces. Il faut faire attention à ce que les seams ne soient pas visibles et trop nombreux, car ils sont visibles une fois texturé. Avoir des seams trop nombreux est négatif pour les performances. Pour les formes angulaires et cubiques, vous pourrez utiliser des outils de dépliage automatique.

La version dépliée en 2D va vous permettre de projeter la texture dessus. Il faudra que les polygones soient le plus rapproché, le plus compacte possible pour augmenter la densité en pixel, on appelle ça le Texel.

Map baking

Je vous en parlais, le baking consiste à projeter les informations 3D du modèle high poly lourde en mémoire sur un modèle low poly.

  • Blender Cycles baking vous permet de faire du baking de qualité en utilisant la carte graphique et préinstallé dans Blender.
  • Substance Painter est le standard dans le domaine, il permet de faire du baking puis importe automatiquement les maps sur le low poly pour vous permettre de réaliser vos textures directement grâce à ses nombreux outils.
  • XNormal et un logiciel gratuit, c’est un standard pour la réaliser de modèles stylisés, il a été pendant plusieurs années une référence avant l’arrivé de Substance Painter qui est beaucoup plus récent.

Texturing

Texturer c’est ajouter de la couleur à vos polygones, ils peut être peint, utiliser les maps bakées, utiliser des photographies ou mélanger toutes ces techniques.

  • Blender permet de peindre à la main des textures cartoon, vous pouvez aussi utiliser 3D Coat. Avec le nouveau viewport de Blender EEVEE vous pourrez peindre des textures PBR.
  • Substance Painter permet de peindre des textures PBR directement sur le modèle à partir des maps bakés.
  • Quixel Suite génère des textures réalistes basées sur des scans de matériaux à partir de vos maps bakés. Idéale si vous recherchez le photoréalisme, mais offre moins de contrôle que Substance Painter. Le logiciel tourne sur Photoshop il vous faudra additionner une licence de se dernier ce qui au final si vous ne l’utilisez pas peut rendre Quixel assez onéreux.
  • Quixel Megascan contient une base de données très fournie des scan PBR haute résolution à utiliser. Ainsi que des scans d’objets 3D idéales pour vos environnements.

A lire: La création de textures pour les jeux vidéo stylisés avec Blender

Le moteur de jeu

Choisir son moteur

Il faut ensuite réunir les modèles 3D dans le moteur de jeux pour créer le monde interactif et assembler toutes les modèles 3D, les matériaux, les textures, créer l’éclairage. On fait alors appel à des programmeurs et des level designers qui viennent récupérer les modèles souvent réalisés en blocs comme des puzzles par l’artiste 3D.

Il y a différents moteurs de jeux les deux plus connus sont:

  • Unity: le logiciel domine sur la plate-forme mobile Android et iOS, 34 % des jeux sortis sur mobile ont été réalisés depuis ce moteur (et actuellement une majorité des jeux sont réalisés avec) c’est pourquoi la majorité des tutos vous apprendront à l’utiliser et à créer des jeux mobiles qui comptent plus d’utilisateurs que Windows. C’est aussi le logiciel le plus utilisé en game jam et le plus enseigné. Le moteur est puissant et très optimisé il permet de réaliser des jeux qui ne demandent que très peu de ressources. Son module de programmation est orienté objet et permet de programmer en C# et JavaScript, la documentation qui va avec est très complète. Il intègre les matériaux PBR et des fonctionnalités avancées d’éclairage.
  • Unreal Engine c’est l’un des plus avancés (il intègre bien sûr le PBR) et il est « presque » gratuit (5 % des argents générés par les ventes du jeu sont reversés à l’éditeur d’Unreal si les revenus sont supérieurs à 3000 dollars). Ce moteur est très populaire et beaucoup de jeux AAA (jeux à gros budget) sont réalisés avec, mais il reste absent dans le domaine du jeu mobile avec environ 2 % des jeux réalisés avec. Depuis la version 4 et sa « gratuité » le logiciel connait une croissance fulgurante parmi les développeurs de jeux vidéo indépendants. Son système de programmation permet de créer des scripts sans écrire de ligne de code à partir d’une interface visuelle composée de nodes (des bloques) que l’ont attache entre eux pour créer un circuit logique, ce système s’appelle Blueprint.

Si vous ne pouvez pas lancer Unreal téléchargez ceci: Visual C++ Redistributable Packages for Visual Studio 2013

Shading et éclairage

C’est là qu’on distingue un jeu next gen, le shading définit le comportement du matériau, s’il doit paraitre métallique ou plastique, transparent. Le comportement réaliste d’un matériau est avant tout défini par un bon éclairage. Le shading et l’éclairage se font dans un moteur de jeu. Depuis quelque temps les artistes 3D ne jurent que par une chose le « PBR » pour Physically Based Rendering donc utiliser un logiciel de texturing qui permet un affichage du PBR est un plus.

Un logiciel permet de voir à quoi va ressembler leur modèle de jeu sans même l’exporter dans le moteur en se servant de Blender EEVEE ou Marmoset Toolbag 2 qui permettent de changer l’éclairage et de réaliser des rendus (les rendus sont des screenshots puisque c’est en temps réel).

Le PBR comment ça marche ?

Votre modèle 3D contient généralement:

  • Base Color/Albedo: ce sont les couleurs de la texture. Contrairement à l’ancienne technique appelée Diffuse, le Base Color ou Albedo contient uniquement les couleurs brutes, elle ne contient aucune information d’éclairage (les modèles de Dota 2 utilisent une Diffuse map qui contient de faux éclairages, du coup le modèle perd en réalisme si l’éclairage varie, mais dans le jeu l’éclairage vient toujours du dessus donc ce n’est pas un problème). Elle peut contenir des informations de zones sombres pour mettre en volume votre modèle on appel ça l’Ambiant Occlusion, mais cela est souvent calculé en temps réel pour permettre une interaction entre les modèles, grâce à l’algorithme de GTAO (le plus puissant) ou de SSAO.
  • Metallic/Metalness: c’est le type de matériaux, à 0 ce sont les matériaux diélectriques en gros tout ce qui n’est pas métallique. À 1 c’est du métal (sans aucune couche par dessus comme de la peinture ou beaucoup de poussière), ils sont très réfléchissant, leur réflexion est aussi colorée. On ne met pas de valeur entre, c’est pourquoi si vous connectez une texture elle aura des informations de noir (valeur 0) ou blanc (valeur 1) mais pas de nuances de gris. L’apparence est ensuite ajustée avec les deux paramètres qui suivent.
  • Specular: c’est l’intensité de la lumière reflétée, bien que cette option existe vous ne devez pas y toucher, il faut laisser sa valeur à 0.5 car cela correspond à la spécularité d’un objet avec un Index of Refraction (IOR) de 1.5 qui est très majoritairement utilisé (1.450 souvent). Avec du fresnel les surfaces en vue de face sont moins réfléchissantes que celles avec un angle vers l’extérieur, c’est le cas pour tous les objets diélectriques donc tout ce qui n’est pas métallique.
  • Roughness/Smoothness: c’est l’état de la surface si elle doit être polie ou rugueuse. 0 donnera une surface lisse avec des reflets clairs et 1 un reflet flou à tel point qu’il n’y a plus aucun reflet. Vous pouvez utiliser une texture en nuance de gris. Le fresnel impact le roughness.
  • Transparence et réfraction: vous pouvez créer de la glasse avec de la transpance, il faudra aussi régler la réfraction. Par exemple regarder au travers de l’eau crée un effet loupe et des déformations.
  • Emissive (optionnelle): une partie du modèle qui émet de la lumière, idéal pour créer des effets de néons. Vous pouvez aussi l’utiliser pour générer du rim light, un éclairage autour du modèle ou plutôt sur les formes qui ne sont pas en face de la caméra pour contraster le modèle. C’est le cas par exemple dans Super Mario Galaxy.
  • Normal map: une texture avec les détails du high poly bakés.
  • Ambient Occlusion: il est important de ne pas utiliser l’ambient occlusion avec l’albedo mais à part, vous trouverez une option pour l’importer, celle-ci deviendra presque invisible face à un éclairage direct intense comme dans le monde réel. Vous pouvez le combiner avec de l’ambient occlusion temps réel pour en générer entre les modèles 3D.
  • Cavity map: cela ne fait pas vraiment partie du shading PBR, elle est utilisée pour les petits détails qui souvent ne génèrent pas de géométrie visible sur le low poly et qui donc ne peuvent pas générer d’Ambiant Occlusion temps réel, mais aussi pour contraster votre image on combine parfois l’Albedo avec une Cavity map en ajustant son opacité, un contraste élevé pourra donné un effet peint à la main pour un jeu stylisé (cartoon).

Pour en savoir plus je vous recommande cette vidéo d’Andrew Price (Blender Guru): https://youtu.be/4H5W6C_Mbck?t=15m40s

Le logiciel Quixel Suite 2 vous propose des centaines de matériaux déjà créés scannés du monde réel qui vous donneront des résultats réalistes.

Pour bien comprendre le PBR voici un lien utile: Introduction to Materials in UE4.

L’éclairage

On combine ces différents types d’éclairage:

  • Dynamique: un éclairage simple, direct (sans rebond de la lumière sur les murs) et temps réel qui génère des ombres.
  • Statique: un éclairage plus détaillé, plus réaliste (mais qui perd en réalisme si des éléments bougent, car l’éclairage est figé) qui sera baké sur une texture. On va pour ça réunir plusieurs UVs de plusieurs objets sur une même texture on appel ça un « Atlas » pour générer une texture de l’éclairage qu’on appel « Lightmap ». Le tout sera affiché par-dessus l’albedo pour assombrir des couleurs ou les éclaircir.
  • Global Illumination temps réel et reflets: il est possible d’avoir un éclairage de qualité en temps réel grâce à l’utilisation de « probes » qui réalisent un cache de l’illumination indirect (aussi appelé « Irradiance ») et capture les reflets. C’est utile pour les assets en mouvement. Il existe les light probes ce sont des petites sphères invisibles placées dans la scène qui récupèrent les informations de l’éclairage direct et indirect à l’endroit où elle est placée Si par exemple une pièce contient un mur rouge d’un côté et un vert de l’autre, l’éclairage indirect va diffuser de la lumière rouge du côté du mur rouge. En ajoutant un asset dans la scène, il va récupérer les informations de couleurs du probes le plus proche, ainsi en le rapprochant du mur rouge il va devenir rouge, puis en le déplaçant vers le vert il deviendra vert. Il y a aussi les réflexions probes qui génère ce qu’on appel un cubemap ou spheremap, c’est en quelque sorte une photographie à 360 dégrées des éléments autour du probe qui sera ensuite visible sur tous vos polygones réfléchissants. Comme vous vous en doutez, la qualité de la réflexion dépend du placement des réflexions probes, il faut pratiquer pour bien savoir comment les utiliser. Parfois les reflection probes sont remplacés par le Screen Space Reflection (SSR) qui génère des reflets basés sur la vue caméra, donc regarder une surface directement fera disparaitre les reflets comme vous pouvez le voir ici: https://www.youtube.com/watch?v=WLGoL9Ha5J4&feature=youtu.be&t=3m3s

Comprendre l’utilisation des lights probes dans Unity: https://www.youtube.com/watch?v=_N7JYrFFxMM Comprendre comment placer les light probes: https://docs.unity3d.com/Manual/class-LightProbeGroup.html

L’échelle de l’objet doit être correct dès l’exportation pour que l’éclairage se comporte correctement vous ne devez pas le rescale dans Unreal. Par défaut, si vous utilisez Blender, l’échelle est bien plus petite que dans Unreal, vous devrez changer son échelle en « Edit Mode » ou en object mode en appliquant le scale pour le laisser à 1 (Ctrl + A). Ce tutoriel vous explique comment régler Blender pour que ces unités soit les même qu’Unreal: Unreal Engine 4 Support Twitch Broadcast: Blender and UE4

Ensuite viennent les effets de Post Processing tel que le Bloom (éblouissement), l’éclairage volumétrique (zone d’éclairage au travers le brouillard), brouillard, lens flare (scintillement), motion blur (flou de mouvement), depth of field (flou de profondeur), color grading/tonemapping (l’écran par défaut n’affiche que des luminosités de 0 à 1 alors qu’elles sont infinies, du coup certains éléments sont complètement blanc et tous les détails ne sont plus visibles. Cet effet va prendre le point le plus clair et le mettre à 1 et ainsi pouvoir afficher une nuance de luminosité. Un effet à utiliser tout le temps surtout avec le Bloom. Je vous conseille de lire ce billet sur Filmic: https://zestedesavoir.com/billets/1851/filmic-blender/) ou encore l’anti-aliasing (lignes moins pixelisées) et filtre anisotropic (textures moins floues avec la perspective).

Le déploiement du jeu

C’est l’étape finale, la création d’un exécutable pour lancer le jeu. Avant même le développement du jeu, il est important de définir les plates formes sur lequel le jeu sera jouable, pour adapter le gameplay et contrôle, mais surtout les ressources nécessaires pour le faire tourner. Si le jeu doit être disponible sur la plate forme Android ou iOS et que vous visez des tablettes et smartphones bas de gamme, il vous sera nécessaire d’éviter le plus possible le calcul temps réel et d’utiliser l’éclairage statique, d’éviter de gros calculs de la physique, de post-processing et de surveiller le polycount (nombre de polygones) et la résolution des textures.