3.6.1 – Un exemple, la robe de sorcier de NWN 2
An example, the sorcerer’s robe from NWN 2
Commençons par charger une texture du jeu de base, celle de la robe de sorcière. Si vous vous rappelez ce qui a été vu auparavant c’est le fichier P_HHF_LE_Body06.dds (Corps de cuir n°6 pour femme humaine).
We start by looking at a texture from the game. Remember, we saw previously that it’s the file P_HHF_LE_Body06.dds (Leather armor number 6 for human female)
La première chose qu’on remarque est la disposition bizarre des éléments de texture
Pour comprendre il faut imaginer la texture comme une peau moulante. Le logiciel 3D déplie et découpe le maillage 3D pour en faire une forme 2D. Il fait ensuite correspondre chaque pixel du dessin 2D aux coordonnées 3D du modèle. C’est ce qu’on appelle le UVmapping. Vous avez tous certainement construit un cube en papier ou carton : le dépliage est une UVmap. De même les anciens ‘patrons’ utilisés par vos grands mères pour faire des vêtements étaient des Uvmaps.
Le problème est que dès que le modèle se complexifie un peu, le dépliage suit la même voie.
Examinons donc l’UVmap de notre robe de sorcier dans 3DS Max. On verra plus tard comment faire, examinons juste le résultat pour l’instant :
The first thing that strikes us is the strange look of the texture.
In order to understand you must imagine that the texture is an adjusted skin. Your 3D program unfold and unwrap your 3D model into a 2D shape. Each 3D vertice of the model is linked to a 2D vertice of the texture. It’s called UVmapping.
You may have already built a cube by folding a paper : your unfolded cube can be seen as an UVmap.
The main problem is that the more complex the model is, the hardest it is to unfold it.
So let’s look at the UVmap of our sorcerer’s robe (we will see later how to create it, for the moment we just look at it)
Sur la gauche vous avez l’UVmap dans la fenêtre intitulée Edit UVW, avec en fond d’écran la diffuse map. Sur la droite vous avez le modèle 3D recouvert de sa texture (vue de dos en haut, vue perspective en bas).
J’ai sélectionné à gauche une partie de la ceinture.
-
Les traits rouges vous montrent ou se retrouvent les points sur la vue de dos, ceux en bleu montrent ou ils sont sur la perspective.
-
Les traits verts indiquent la correspondance 2D/3D pour les bracelets.
Quels enseignement à tirer de cette image ?
On the left, in the window titled ‘Edit UVW’, you have the UVmap with it’s texture in the backround. On the right you have the 3D model seen with it’s texture (view from back and view perspective).
I highlighted some parts of the belt :
- red lines indicate where goes the texture at the back of the model. Blue lines indicate are these same parts in the perspective view.
- green lines indicate where are the bracers.
Let’s look at what we can learn from this picture.
3.6.2 – Les coutures
SEAMS
Quand la diffuse map viens envelopper le modèle 3D il y a des coutures. La difficulté est d’arriver à bien placer sur la diffuse map des points qui doivent se rejoindre sur le modèle 3D. Malgré tout le soin qu’on peut apporter à ce détail, c’est toujours une source de petits défauts. On peut contourner cela lors de la création du modèle en plaçant les coutures dans des endroits peu visibles. Par exemple il est préférable de placer les coutures d’un corps sous les bras plutôt que dans le dos ou sur le devant. Malheureusement si vous ne souhaitez pas toucher à la 3D, c’est pas possible. La solution qui vous reste c’est d’essayer d’éviter au maximum les textures qui demandent beaucoup de précision de raccordement (ceux qui ont posé du papier peint avec raccords comprendront facilement)
When the diffuse map wrap our 3D model we have seams. The difficulty is taht we must carefully draw the parts that must be seamed on the 3D model. Even if you pay a great attention to these details you will encounter some small glitches. You can try to avoid it by placing the seams in thye less visible parts. For example, it’s better to place seams of a body under the arms rather than in the back or the front.
Alas, you can’t modify the UVmap without modifying the 3D model. Then a solution is to avoid texture that need many joins. People who have lead in their house wallpaper with joins will understand what I mean 😉
3.6.3 – Les ceintures, bretelles, etc
Les courbes du modèle 3D, se traduisent en ligne brisée sur la diffuse map.
Premier inconvénient : si vous voulez faire une ceinture pour un vêtement près du corps, le tracé de celle ci n’est pas vraiment intuitif, surtout si vous n’avez pas la Uvmap.
Deuxième inconvénient : A la couture, vos lignes ne s’alignent pas forcément. Pire, il se peut qu’elles soient alignées quand le corps est au repos, mais plus quand il bouge. Cela est particulièrement visible sur certains modèles du jeu.
Reprenons notre exemple. On voit que la couture dans le dos n’est pas très gênante, car elle est cachée par une pièce rectangulaire. Mais il faut gérer les coutures sur les épaules (pas trop gênant dans ce cas, mais regardez certains modèles de robes à fines bretelles pour vous rendre compte). La couture des bras n’est pas trop gênante non plus car placée côté du corps, mais la couture des jambes est elle très visible.
Curves on the 3D model translate into broken line on the texture map.
First problem, if you want to design a belt for a cloth it’s not easy to guess how to do the texture, worst if you don’t have the UV map.
Second problem, your lines don’t align allways at the seams. Worst they can be aligned at rest but unaligned when the character moves in game. This is particularily visible with some model from the original game.
Looking back at our example. We understand that the seams in the back is not annoying because it is concealed by another pice of armor. But the shoulder’s seams are visible. This is not a problem with this model, but look at some clothes with thin braces on the shoulder … !
The arm’s seams are not visible, they are between the rams and the body, but the legs’ seams are on the wrong side of the legs and thus very visible in game.
3.6.4 – La symétrie
SYMMETRY
Vous remarquez que les bracelets ne sont dessinés qu’une fois sur la diffuse map. Le logiciel sait gérer la symétrie. C’est ainsi que sur certains modèles du jeu une seule moitié du modèle est représenté sur la diffuse map.
Il n’y a d’ailleurs pas de règle générale : pour certains vêtements du jeu la texture est dessinée complètement, pour d’autre on ne représente qu’une moitié, et enfin on trouve des modèles, tels que la robe que nous examinons, ou la symétrie est partielle.
You notice that the bracers are drawn only once on the diffuse map. The software knows how to manage a symmetry. And so on some game’s models only half of the model is represented on the diffuse map.
There is moreover no main rule: for some game’s clothes the texture is completely drawn, for some other we represent only half of the model, and finally we find some models, such as the sorcerer’s dress we took for our example where symmetry is partial.
3.6.5 – L’UVmap
On verra plus tard comment créer cette UVmap, pour l’instant contentons nous, si nous n’avons pas d’UVmap préexistante, d’essayer de deviner la correspondance entre la texture et le modèle en observant le fichier de texture et la représentation dans le toolset.
Une UVmap stocke les informations qui permettent de faire correspondre un point 2D de la texture à un point 3D du maillage.
Notez que si vous utilisez les excellents modèles de Jester, disponibles sur le NWNVault, les UVmap sont fournies.
We shall see later how to create this UVmap, at the moment let us satisfy, if we have no pre-existent UVmap, to try to guess the correspondence between the texture and the model by observing the texture file and the representation in the toolset.
A UVmap stores the information which allow to make a 2D point of the texture to a 3D point of the meshing correspond.
Note that if you use the excellent models of Jester, available on the NWNVault, the UVmap is supplied.
3.6.6 – La couleur transparente
The transparent color
La couleur transparente est votre amie : tout ce qui est en couleur transparente sur la diffuse map est invisible sur modèle 3D. (Sur Gimp on obtient la couleur transparente en gommant.) Quelques exemples d’utilisation de la couleur transparente. Regardez ces modèles visualisés dans le jeu (note : réalisé à partir du modèle de Jester) :
The transparent color is your friend: all parts which are drawn in transparent color on the diffuse map are invisible on 3D model in game. (With The Gimp we obtain the transparent color by erasing.)
Below are some examples of use of the transparent color. Look at these models displayed in the game (note: realized from the model of Jester):
Sur l’image en dessous vous avez la diffuse map de la robe rouge à gauche, superposées à sa UVmap. Toutes les parties non coloriées en noir ou bleu sont des facettes (poly) du modèle 3D rendues invisible dans le jeu par de la couleur transparente. cela permet d’échancrer le décolleté et les aisselles, et de créer les deux petites fentes en bas de la robe.
Notez au passage comment, lors du ‘repliage’ sur le corps la ceinture en chaine se raccorde, et essayez de voir comment les bretelles de la robe se raccordent sur les épaules. Il faut être précis au pixel !
On the image below you have the diffuse map of the red dress displayed to the left, stacked with its UVmap. All the parts not coloured in black or blue are poly of the 3D model which are invisible in the game due to the use of the transparent color. It allows to do the cleavage , and to create two small cracks at the base of the dress.
Note also how, during the wrapping on the body the belt links, and try to look at how the braces of the dress link on the shoulders. You need to be precise to the pixel!
Le même maillage en jeu, sur lequel l’utilisation de la couleur transparente dans la diffuse map a été poussée plus loin. Regardez notamment la partie située au niveau des hanches
The same model in game with a different texture on which we have a more intensive use of the transparent color.