Repository navigation
Modelisation
Pour ce projet, j'ai eu besoin d'apprendre la modélisation 3D et pour cela j'ai utilisé Blender, un logiciel de création 3D permettant la création de A à Z d'un modèle 3D allant jusqu’à la création d'un décors entier 3D.
Lors de cet apprentissage j'ai eu l'occasion d'apprendre le modeling, la création de la forme désirée a partir d'un forme de base, le sculpting, la création d'une forme désirée en sculptant dans une forme, le shading, l'application d'un shader donnant une couleur et une texture à l’objet souhaité et l'UV editing permettant de mapper une image 2D servant de texture sur une surface 3D
Avant de commencer je vais me permettre de vous montrer l'interface de Blender de sorte a expliquer son utilisation et ses fonctionnalités.

Lorsque l'on souhaite modifier une forme via le modeling, cette dernière peut être modifiée via plusieurs façon. Étant dans un univers 3D on sait que chaque forme possède des faces appelées faces, composée par des arrêtes appelées edges, composées par 2 points appelées vertices
Cette sélection nous permet donc de voir les vertices, les edges ou les faces de notre objets et donc de les modifier, il peut arriver de changer de mode de sélection en fonction de ce que l'on souhaite réaliser.
Étant dans un domaine en 3 dimensions, il nous faut savoir nous repérer, c'est pour cela que nous avons cette girouette nous permettant de connaitre les positions de l'axes x (représenté par un axe rouge), y (représenté par un axe vert) et z (représenté par un axe bleu). Il nous est également possible d'adopter le champs de vision d'un axes de sortes a en voir que 2 et donc a modifier par exemples des éléments sur ces 2 axes seulement.
Lorsque l'on sélectionne un objet ou une partie de ce même objet Blender nous propose une interface rétractable regroupant: la position de l'objet ou la position de l'élément de l'objet sélectionné (locale ou globale), la rotation de l'objet ou de l'élément ainsi que sa taille. Ces valeurs peuvent être modifiées aisément sans avoir besoin de retourner dans le compartiment des valeurs de l'objet.
Pour se repérer dans un projet complexe il est utile d'avoir une arborescence de projet contenant moult objets stockables dans des collections, ceci est fort utile pour stocker des "backups" de certains éléments qui vont être modifiés, ces dossier peuvent être cachés et ne plus être visible dans l'éditeur de sorte a avoir un espace de travail épuré.
Le Répère est un objets servant de point d'origine pour certaines actions comme créer un nouvel objet. Ce dernier sera matérialisé à la position du repère. Il sert également a diverses fonctionnalités que nous aborderont plus tard.
Chaque objet dispose d'une origine (symbolisé par un point orange), lorsque un déplacement ou une rotation d'un objet est effectué, elle a pour origine de modification l'origine de l'objet.
Le modifier Miror sert à créer une copie parfaite avec l’objet en pleine symétrie en fonction d’un axe ou plusieur axe avec comme centre l’origine de l’objet ou même un autre objet.
Le modifier Subdivision Surface permet de sectionner les faces des objets en plusieures itérations mais également en arrondissant les formes au même passage. Il suffit d’effectuer un Shift+E sur les edges qu’on a besoin de garder “non arrondi” si on désire garder une forme spéciale ou non.
Le modifier Decimate réduit le nombre de vertices et de faces d’un objet tout en essayant de garder sa même forme.
Le modifier "Boolean" s'applique sur un objet et demande un autre objet de référence, ces 2 derniers vont devoir réagir entre eux en fonction des 3 options proposées, intersect permettant de ne garder que les endroits d'intersection entre les 2 objets, union permettant de faire une fusion des 2 objets et différence permettant de retirer les endroits d'intersection entre les 2 objets.
Via la commande ALT+Z, il est possible de voir a travers les objets, ceci peut être utile pour voir les vertices a l'intérieur des objets, ou difficiles a voir.
Il existe plusieurs modes de travail, certain pour manipuler les objets comme le "modeling" (système de modélisation standard) ou le "sculpting" (système de modélisation utilisé comme pour sculpter des formes). D'autres modes de travails servent pour de multiples situations: créations de textures (shading), peindre des textures (texture painting), gérer les animations (animation) etc. Pour ce projet nous avons utilisé seulement: layout, uv editing et shading.
Le mode snap agit comme un aimant, une fois l'option activée, il est possible de déplacer des objets ou des parties d'objets de sorte a ce qu'ils puissent se coller a des formes, d'autres objets ou d'autres surfaces.
Lorsque cette option est activée, il est possible de modifier des parties d'objets de sorte a ce que tout les élément près de la zone générée avec une taille modulable via la molette suivent la modification effectuée.
L'outil spin permet une rotation d'un objet autour du repère en créant un nombre d'itération prédéfinie de ce même objet.
La base de ce travail repose sur la création des objets 3Ds. Pour cela on utilise le mode de travail layout qui a la même utilité que le mode de travail modeling.
Pour l'arme a feu, il a fallu une arme en premier lieu symétrique, pour cela on utilise un modifier qui s'appelle "Mirror", ce dernier permet d'effectuer une symétrie sur un axe précis. Par la suite, rien n'est compliqué, il a suffit de partir sur une base de cube coupée en 2 de sorte a ce que l'autre coté soit le miroir et d'ensuite le prolonger et changer la forme de sorte a pouvoir créer l'arme a feu.
Pour le cannon il me suffit d'ajouter un cilindre que je vais devoir accrocher au reste de l'arme. Pour cela nous avions eu une première approche qui est de sélectionner les 2 models et effectuer la commande Ctrl+J. Cependant, cette option fusionne mal les 2 objets, cette fusion ne supprime pas les éléments qui vont s'imbriquer à l'intérieur d'un des objets, ce qui crée des vertices en plus ne servant à rien et cela n'est pas optimisé pour être ensuite importé dans le jeu.
Pour cela nous allons utiliser, le modifier "Boolean" sur l'arme a feu avec comme objet de cible le viseur, ce dernier possède 3 options, intersect, union et différence. Nous allons utiliser l'option union qui va fusionner les 2 formes choisies en changeant leur disposition de sorte a ne pas avoir de vertices en trop à l'intérieur de l'objet.
Pour le viseur, nous nous sommes contenté de créer la forme souhaitée mais il fallait faire en sorte a ce que ce nouvel objet fusionne avec l'objet de l'arme grace au modifier "Boolean" en option union.
Le pilier est sans doute le model le plus complexe du jeu car ce dernier est composé d’un grand nombre d’éléments fusionnés, la difficulté à été surtout de le rendre beau mais surtout peu demandant pour le jeu.
La structure est très simple. En effet cette dernière n’est qu’un cube aplatit puis extrude du bas vers le haut avec des variations de largeur. Cependant des éléments du pilier se trouve être incurvé, cet effet a été possible grâce au modifier “subdivision surface” cependant le pilier s’est retrouvé avec beaucoup plus de vertices que prévu. Étant une forme simple, il était facile de la régler avec l’option auto merge me permettant de supprimer les vertices inutiles et placés en trop.
La forme du socle en diamant n’a pas été complexe, l’utilisation du modifier boolean a suffit a le créer aisément. La complexité s’est trouvé dans le fait de le fixer au pilier. En effet le déplacer à la main aurait généré un travail peu professionnel. Il m’a fallu donc changer l’origine de mon objet au centre de la face que je voulais coller au piler pour ensuite utiliser l’outil snap qui m’a permis d’accrocher mon socle sur le pilier à la hauteur de mon choix et surtout avec le bon angle. Par la suite il m’a fallu utiliser l'outil spin pour créer une itération a 90° autour du pilier pour créer une forme sur le coté et ensuite utiliser le modifier Miror de sorte à le placer sur les 4 faces du pilier.
Le crane à été de loin la forme la plus complexe. Pour cela il m’a fallu créer un model par défaut qui est celui d’une tête de singe (blender peut se montrer… particulier). Cette même tête une fois coupée en 2 avec la bouche et les oreilles retirées ainsi qu’avec le modifier miror, a été une base solide pour créer le crane. Par la suite il m’a suffit d’utiliser la fonctionnalité Étireur de l’infini pour le modeler comme mon bon plaisir. Une fois les formes réalisées du haut du crane, je crée des dents avec pour base une sphère et je fusionne les éléments. Cependant lors du processus, j’ai utilisé de nombreux modifiers Subdivision surface ce qui a créé un objet possédant une trop grande quantité de vertices. L’objet étant bien trop complexe l’option merge together n’était pas envisageable. Donc j’ai utilisé le modifier decimate qui a l’inverse de Subdivision Surface, va réduire le nombre de vertices au minimum possible en gardant le plus possible la forme souhaitée, les vertices sont cependant posés de manière quelque peu aléatoire mais cela ne pose pas de réel problème vu que cet objet restera un élément de décors et ne subira pas d’animations.
Le porte flamme possède la forme singulière de la flèche, cette dernière est tout bonnement réalisée en 2D puis extrude en 3D. Cette technique est très régulièrement utilisée dans la création de modèles 3D
La porte au fond du jeu n’est pas du tout complexe loin de là, c’est juste un objets auquel on aurait appliqué le modifier miror.
Puisque les modèles sont réalisé il nous faut lui attribuer une texture, pour cela 2 options s'offrent a nous: prendre des textures déjà disponible sur le web, ces dernières sont libre de droit et gratuites mais il est difficiles de les manier comme a notre bon plaisir, ou créer nos propres textures procédurales, cette méthode est complexe et demande un apprentissage sur les nodes textures de blender. Nous allons prendre cette dernière option.
Pour le jeu nous utilisons 3 textures: des briques et 2 textures de pierres, une lisse (stone) et une granuleuse (sandstone).
Dans cette partie, nous allons vous expliquer comment fonctionne le principe de shading dans blender.
Avant de créer une texture, il nous faut faire le shading qui seront en format BSDF. Ces dernières possèdes des valeurs spécifiques tel que sa couleur, son metalness et sa roughness ainsi que son normal.
Metalness, étant compris entre 0 et 1 permet de savoir si notre shading se rapproche plus d'une couleur terne s'apparentant a du plastique (proche du 0) ou d'une couleur métalique (proche du 1).
Roughness, étant compris entre 0 et 1 permet de savoir si notre shading reflète la lumière, cette dernière dépend de notre metalness, plus ce dernier est proche du 1, plus les changements de la roughness seront visible. Plus la roughness se rapproche du 1, plus elle réfléchira la lumière.
Normal influençent la façon dont la lumière interagit avec les surfaces pour créer des effets d'ombre et de lumière. Un bon réglage des normals est essentiel pour obtenir un rendu réaliste, car il affecte directement le shading et la perception des formes dans la scène 3D.
Pour faire les shading, il m'a fallu comprendre les nodes a utiliser.
La Color Ramp dans Blender permet de créer un dégradé de couleurs entre deux ou plusieurs points, que l'on peut utiliser pour contrôler et personnaliser la transition des couleurs sur un matériau. Elle est souvent utilisée pour ajuster les effets de texture, comme les ombres ou la diffusion, en fonction de valeurs telles que la position, la lumière ou d'autres paramètres.

Le Bump dans Blender simule des détails de surface, comme des bosses ou des creux, en modifiant la façon dont la lumière interagit avec une surface sans changer sa forme réelle. Cela permet de créer des textures plus complexes et réalistes sans augmenter le nombre de polygones d'un objet. Il est possible d'augmenter la puissance de cette enffet en augmentant la strength.

La Musgrave Texture dans Blender est un type de texture procédurale qui génère des motifs complexes et organiques, comme des terrains, des nuages ou des bruits naturels. Elle permet de créer des effets de surface variés et détaillés, en ajustant des paramètres tels que l'échelle, le contraste, et le type de bruit.

La Noise Texture dans Blender est une texture procédurale qui crée un motif aléatoire de points, souvent utilisé pour ajouter des irrégularités ou du détail à un matériau. Elle sert à générer des effets comme du grain, de la rugosité ou des variations subtiles dans les surfaces pour rendre les objets plus réalistes.

La Voronoi Texture dans Blender génère un motif de cellules ou de "taches", basé sur des points répartis de manière aléatoire, rappelant des motifs naturels comme des veines de marbre ou de la peau de reptile. Elle est utilisée pour créer des textures organiques et variées, avec des paramètres ajustables pour contrôler la taille et l'apparence des cellules.

Le Texture Coordinate dans Blender fournit les informations sur la position des textures sur un objet, déterminant comment elles sont appliquées et orientées. Il permet de choisir différents types de coordonnées, comme UV, objet, ou monde, pour mieux contrôler l'apparence et l'alignement des textures sur les surfaces 3D.

