Static-Mesh
Qu'est-ce qu'un Static-Mesh
Les Static-Meshes sont des pièces de géométrie utilisées comme décorations. Ils peuvent prendre n'importe quelle forme et texture, et son facilement faisable à partir d'un brush. Bien qu'ils puissent être créés sous UnrealEd, plusieurs problèmes liés à l'éclairage rendent plus pratique de le créer sous Maya ou 3DSMax. Les Static-Meshes apparaissent en maillage vert en wireframe et dans les vues 2d.
La Triangulation
Lorsqu'un Static-Mesh est créé, que ce soit à partir d'UnrealEd lui-même ou depuis un autre programme, sa conversion en Static-Mesh s'accompagne de triangulation : chaque face est divisée en triangles pour éviter des problèmes liés à la position de certains vertices. En effet, pour prendre un exemple simple, imaginons un simple brush en forme de cube, NON TRIANGULE, et déplaçons un seul de ses vertices :
Cela se voit très mal sur l'image, mais si vous avez fait de la géométrie une seule fois dans votre vie, vous verrez qu'entre le vertex déplacé (celui qui est en bas à gauche) et celui qui est à l'opposé (en haut à droite), une autre arrête semble s'être formée. Inutile de vous le dire, si vous poursuivez dans cette voie, au fur et à mesure que la géométrie se compliquera, le rebuild du niveau va s'emballer et vous donner n'importe quoi, comme vous l'aurez mérité. Pour éviter ce problème (qui peu causer la disparition de certaines faces), les Static-Meshes sont triangulés : sur un brush en forme de cube, il y a bien entendu six faces en forme de carrés. Sur un Static-Mesh, ce même objet aura deux fois plus de faces : chaque carré sera divisé en deux triangles. Cela joue aussi un rôle capital pour l'éclairage comme nous allons le voir ou de suite.
L'éclairage d'un Static Mesh
La triangulation joue un rôle essentiel pour les Static-Meshes qui reçoivent de la lumière : pour un brush, l'utilisation de lightmaps rend les choses simples : lors du rebuild, le moteur calcul la quantité et la couleur de la lumière qui touche chaque point de chaque face de chaque brush. Une fois ceci fait, il créé une texture géante sur laquelle il place toutes ces données sous forme d'aplats de couleurs. Pour les Static-Meshes c'est différent, plus compliqué à gérer par le mappeur, mais plus facile à faire pour le moteur. Seuls les vertices sont pris en compte.
En effet, au lieu de calculer la lumière sur chaque point de chaque surface, le moteur ne calcul la quantité et la couleur de la lumière arrivant sur les sommets d'un Static-Meshes et étale ensuite la lumière en dégradé vers les autres sommets. En conséquence, si vous avez une grande planche carré dont les quatre sommets sont placés dans des murs et ne reçoivent donc aucune lumière, votre planche restera noire, quelque soit l'intensité ou le nombre de lumières que vous placerez dans votre pièce. Pour palier à cela, il est mieux de trianguler soi-même les objets avant de les convertir en Static-Meshes. Sinon, le moteur découpera les faces en triangles lui-même et par défaut, cela donnera un découpage de très mauvaise qualité.
Améliorer la Triangulation
Pour bien trianguler un Static-Mesh, il faut savoir découper les faces des objets dans votre programme 3D. Si vous le créez depuis UnrealEd, il faut savoir utiliser l'Outil de Découpe. Lorsque votre objet présente des faces carrées, il est tentant pour se simplifier la vie de découpage ou simplement cette face en deux triangles égaux en découpant d'un sommet au sommet opposé comme ceci :
On pourrait se contenter de ça et s'imaginer que ca suivra tout seul comme l'administration napoléonienne en son temps, mais de la même façon que l'administration susnommée, la pratique vous prouvera que cette manière de procéder est vouée à l'échec sur le long-terme : qu'avez vous fait ? Vous avez découpé une face en deux. Mais finalement, si la face avait été carrée, votre Static Mesh aurait eu le même problème que vous aurez maintenant : si vous l'éclairez mais que ses quatre extrémités ne reçoivent pas de lumières, il restera noir. L'intérêt de la triangulation est avant tout de bien subdiviser : l'idée c'est que le centre de la table devra comporter au moins un vertex pour que le résultat soit passable, aussi au lieu de diviser la planche en deux, il faudra la diviser en quatre et un sommet sera donc créé au centre, à l'intersection des coupures en diagonales :
Désormais, même si les quatre coins de votre planche sont dans le noir, la table pourra quand même être illuminée de manière correcte grâce à ce sommet supplémentaire.
Savoir utiliser les Static Meshes
Le Static Mesh est peut-être très pratique, mais soyons franc : l'abus en est mauvais pour la santé : si vous convertissez toute votre map en Static Mesh, vous ne pourrez pas apporter de grandes modifications à la map vu que par définition, un Static Mesh est "Statique". De plus, si vous avez juste besoin d'une planche vite-fait, un brush donnera un meilleur résultat et évitera les bugs de lumière. Malgré tout, les Static Mesh seront utiles quand vous utiliserez cinquante fois le même pilier dans le même couloir. De plus, le fait qu'ils ne causent aucun découpage BSP les rend plus léger à charger et les rend invulnérable aux trous BSP, Solides Fantômes et autres Hall Of Mirror qui si ils sont amusants se révèleront vite être une plaie.
A L'inverse, ne meublez pas votre map entièrement à l'aide d'un seul package d'une dizaine de Static-Meshes, où la répétition risque de se voir, à moins que vous ayez beaucoup de chance. De plus, il y aura toujours des gens pour vous dire que "ca fait tapisserie" : ils veulent dire que les Static-Meshes que vous avez mis sur les murs sont là uniquement pour faire joli. C'est un commentaire courant et pourtant assez stupide vu que dans les faits, pratiquement tout ce que vous mettrez dans votre map sera là pour faire joli. Contentez-vous dans ces cas-là de supprimer une partie de ces Static-Meshes et de les remplacer par d'autre de manière à ce que la répétition soit moins visible.
On peut illustrer ces propos par un screen de ce genre :
C'est Karalen, une map de deathmatch 1vs1 ou 2vs2, réalisée en 3 jours par votre serviteur pour utiliser un package de Static Mesh à fond. A vous de décider si ca en jette ou si c'est trop, les avis son partagés...