Manuel du Modding pour Armed Assault
Accueil du site > Tutoriels > Un Personnage de A Ã Z > 4. UVEditor

4. UVEditor

lundi 14 janvier 2008, par lodu

Toutes les versions de cet article :

UVEditor : kezako ?

Présentation

L’UVEditor, disponible par le biais de la commande « uv », en haut à droite de la barre d’icônes, sous O2PE (’fig 1), sert à déployer la maille, c’est à dire les polygones d’un modèle, en une série de surfaces planes, sur un format d’image aux dimensions multiples de 2, et dont on se servira comme repère, une fois converti en format d’image« Targa », pour « habiller » notre modèle ; d’une texture créée avec un logiciel adéquat. Voilà, je vous ai tout dit : bonne chance.

Bon, on redevient sérieux et on continue la démonstration... On ouvre donc l’UVEditor en cliquant sur le bouton approprié. Première chose à savoir : les carrés en dégradés de gris, comme celui de l’image ci dessous, correspondent à l’emplacement des textures, en des formats multiples de 2, tels que 128/128, 256/256, 512/512, 1024/1024, etc. Pour une texture en 2048 par 1024, il en faudra donc deux accolés l’un à l’autre, mais nous verrons cela plus en détails dans un petit moment. Nous voyons ensuite, en remontant, une barre horizontale d’icônes, dont la description sommaire des fonctions qui leur sont attachées, est disponible dans le screen ci dessous.

JPG - 156 ko

En ce qui concerne les menus déroulants : deux seulement sont intéressants pour nous.

Le menu UVEditor et le menu filter. La fonction export du menu UVEditor permet d’exporter le maillage que l’on a déployé en un format EMF ou WMF, dont nous verrons le moment venu, comment procéder. Le menu suivant, Filter, permet d’appeler les textures : La fonction que nous utiliseront le plus souvent est celle intitulée « Filter by main texture ».

Les autres menus sont des redites des icônes précédemment décrites, aisément compréhensibles depuis votre lecture du tableau d’icônes.

2_Exemple

Nous allons prendre un modèle, créé par mes soins et qui représente un soldat Chernanien (eh oui ; j’ai déjà un pied dans Arma 2), habillé chaudement avec une tenue d’hiver Soviétique des années 70/80. Voici ce qu’il donne dans O2PE : Ce perso représente le premier lod du modèle, réglé à 1.000. Je pars du principe qu’il a été préalablement convenablement nommé dans ses sélections et que la pondération des vertices du perso a également été bien réalisée.

Pour plus de précisions, voir un autre tutoriel traitant de ces aspects du modding.

Nous allons créer une texture rectangulaire de 2048 pixels par 1024, sur laquelle le corps, en entier, excepté la tête et les mains_qui proviennent du modèle fourni par BIS_, seront déployés en une surface plane.

Pour ce faire, nous passons dans O2PE et nous sélectionnons cette partie en un seul bloc que nous copions(ctrl/c). Nous faisons un clic droit dans la fenêtre des lods et nous en rajoutons un autre, en laissant la valeur donnée par défaut.(2000).

Comme on peut le voir sur l ’image, seul le corps en un seul tenant a été collé (ctrl/v). C’est sur ce lod que nous allons travailler. On sélectionne la partie tunique du perso et l’on cache (ctrl/h) le reste, en ayant au préalable inversé la sélection (ctrl/i).

Sur la tunique restante à l’écran, on passe en vue 3d et on sélectionne le devant de cette tunique, de manière à ce que l’on obtienne un plan dont toutes les faces des polygones aient une inclinaison inférieure à 45 degrés (à vue de nez).

Une fois cela fait, on garde la sélection obtenue, on se met en vue de face comme sur le screen ci dessous.. En dessous de notre modèle apparaît le filaire jaune du premier lod. Si sa vue vous gêne et vous embrouille, vous pouvez le cacher, en revenant au lod 1000 et en faisant (ctrl/a), puis (ctrl/h).

On clique sur l’icône de l’UVEditor et l’on clique sur le bouton « planar mapping », ce qui permet de monter à l’écran de l’UVEditor, la face sélectionnée que l’on a patiemment construite dans O2PE. A ce stade, une remarque s’impose sur l’interdépendance entre ce que l’on fait sous O2PE et son UVEditor.

Ce qui apparaît dans la fenêtre des uv, ressemble à des polygones, mais ce ne sont pas des polygones, bien que l’on puisse les sélectionner, les bouger à plusieurs ou individuellement.

Ce sont des coordonnées uv, tout simplement, qui, une fois disposées dans leur espace, gardent en mémoire, directement sur le modèle et en temps réél, la texture sous sous-jacente qui leur sera affectée. En clair : si là ou apparaît cette première sélection, était dessinée un pot de fleur, vous pourriez voir apparaître immédiatement sur le modèle en « vraie » 3d, donc celui dans O2PE, et via bulldozer, un pot de fleur précisément là ou il doit se trouver ; barrant le torse du perso.

Nous verrons plus concrètement, plus tard, tout cela. Avant d’en arriver là, il nous faut disposer ces uv de telle manière, souvenez vous , à remplir un espace de 2048 par 1024 pixels : c’est à dire deux carrés en dégradés de gris, accolés l’un à l’autre. Nous bougeons donc ce pavé de simili polygones, pour le mettre ou nous voulons, pour le moment.

Le curseur se change en losange constitué de quatre flèches noires opposées, ce qui nous indique que nous pouvons garder le bouton droit de la souris appuyé et tirer pour déplacer notre sélection.

Si le curseur se transforme en une pointe noire oblique, nous sommes en édition de vertices et seul un point du maillage, au plus prés de cette flèche oblique sera déplacé, avec le bouton gauche.

Nous pouvons zoomer avec la molette de la souris et déplacer l’ensemble de l’espace de la fenêtre active de l’uv en maintenant simultanément appuyés le bouton droit de la souris et la touche « Alt », à votre main gauche, prés de la barre d’espace.

Nous retournons dans O2PE et nous sélectionnons un des cotés de la tunique, puis nous nous positionnons en vue de coté. Un aperçu en mode de rendu Gouraud, comme l’image de droite, nous permet de voir que notre sélection « n’est pas du bon coté ». En fait, elle ne nous est pas visible depuis cette vue. Ce n’est pas grave, car nous allons y remédier dans l’UVEditor : La première image ci dessus à gauche, représente la sélection « montée » dans l’UVEditor, avec la commande planar mapping, et celle de droite correspond à la même, mais à laquelle nous avons appliquée un « coup de bouton », comme celui représenté au dessus, avec deux triangles verts verticaux opposés.

Il s’agit là d’une fonction miroir, permettant donc de retourner une sélection dans le sens horizontal pour cette icône, et vertical pour l’icône constituée de deux triangles verts opposés horizontaux. Nous passons ensuite à l’autre coté, dans O2PE. Et là, nous constatons que la sélection nous est directement visible en vue de coté. Nous allons la chercher avec « planar mapping » dans l’UVEditor et nous constatons aussitôt qu’elle « regarde dans les yeux » sa concurrente. Il nous reste à appeler le dos et les épaules de cette tunique, selon la méthode précédemment décrite. Là, ce sont les épaules qui sont sélectionnées et, très important, positionnées de telle manière à voir un maximum les polygones sur un plan plat. Donc, en vue de dessus.

(On peut numéroter, dans O2PE, ces différentes sélections, pour mieux s’y retrouver.)

Au final nous avons ceci, disposé aléatoirement dans la fenêtre active de l’UVEditor :

JPG - 63.1 ko

C’est le bazar, pas vrai ?

On va donc remettre de l’ordre là dedans.^^ On entoure les différentes parties et on les rapproche les unes aux autres, de manière à former un ensemble cohérent : les cotés de chaque coté, (comme par hasard), du devant de la tunique, les épaules au dessus du devant et le dos tout à droite de l’ensemble déjà formé.

JPG - 76.5 ko

A ce stade, il faut user également du bouton gauche de la souris pour redimensionner la sélection, grâce aux huit carrés grisés qui l’entoure et qui sont autant de poignées de redimensionnement dans tout les sens.

Le bouton droit de la souris gardé appuyé sur l’un des quatre angles, permet de faire pivoter la sélection.

A noter que l’on peut redimensionner et faire pivoter, tout en gardant les proportions d’origine, tout simplement en gardant la touche "ctrl" enfoncée, tandis que l’on fait les manipulations précédentes.(merci Chris^^). Ensuite, on soude tout cela sans pitié. Il suffit de sélectionner deux points adjacents et de faire (maj/d), comme dans O2PE. Résultat final pour la tunique.

JPG - 109.2 ko

Tout ceci doit ensuite de nouveau être sélectionné et positionné correctement sur la carte.

Pour ce faire on clique sur l’icône « fit picture », qui recadre le carré en dégradé de gris de base, dans lequel il faut placer notre sélection uv de la tunique, en gardant à l’esprit que la hauteur du carré sera de 1024 pixels.

JPG - 81.5 ko

Les ajustements se font à l’oeil et il ne faut pas hésiter à zoomer pour approcher au plus prés de la ligne de pointillés qui délimite notre carte à venir.

Nous continuons avec le reste du corps du personnage pour finalement obtenir ceci :

JPG - 189.4 ko

L’ensemble de la carte tient donc sur deux « carreaux » symbolisant, pour l’instant, notre dimension recherchée de 2048 par 1024 pixels. Comme dit précédemment, il faut au moins qu’un élément du maillage uv touche, au plus prés possible, le bord de la carte matérialisé par les pointillés.

Avant de continuer, il faut s’assurer qu’il n’y a que le maillage déployé de présent, tant dans O2PE que sur l’UVEditor, pour éviter des bizarrerie dans les dimensions. (d’où l’utilité de créer un lod juste pour les parties dont on veut déployer les uv).

A ce stade, nous avons le choix entre deux méthodes, toutes deux empiriques, pour enregistrer notre travail avec la fonction export.

Méthode numéro 1

On passe ensuite à l’enregistrement de la carte, en un format EMF, qui est un fichier Enhanced Metafiles, permettant de récupérer des informations particulières, comme celles sur lesquelles nous sommes en train de plancher.

Nous faisons, dans l’UVEditor : UVEditor/export et s’ouvre alors la fenêtre suivante : Nous cochons l’option du bas « specify dimension, avec les valeurs de 2048 pour Width et 1024 pour height. Je ne traduis pas, vous avez compris.

Dans le champ type je laisse le format EMF, dans celui du nom du fichier, je tape ce que je veux, en l’occurrence « test UV », je choisis le chemin d’enregistrement au dessus de tout cela et je fais enregistrer, bien sur.

J’ouvre ensuite mon logiciel 2d, ici PSP version 6, et j’ouvre le fichier. L’application, tatillonne comme un douanier, me renvoie une fenêtre à remplir avant de faire quoi que ce soit : Il ne faut surtout pas cliquer sur ok, mais redéfinir les valeurs à notre convenance, comme ceci : Il faut penser aussi à décocher l’option « garder la proportion d’origine », sans cela nous allons avoir une texture étirée en 4093 par 1023... Ceci fait, on clique sur ok et on obtiens bien une texture en 2048 par 1024.

JPG - 175.9 ko

On reste dans paint shop pro, ou l’outil Draw de Open Office, qui peut ouvrir les EMF et WMF et les exporter en TGA , et on enregistre cette texture en un format qu’ O2PE n’aura aucun mal à reconnaître : Tga ou Targa.

On fait une copie de ce fichier Tga dans le dossier « data » du perso sur lequel nous avons travaillé, on sélectionne dans O2PE, le modèle que l’on a « UVétisé », on presse l’icône représentant un triangle vert, seul, qui nous fait monter à l’écran une boite de dialogue pour l’application des textures.

Dans cette boite, nous cherchons notre texture « test UV.Tga », puis nous cliquons sur OK, en bas à gauche et attendons que la conversion du « Tga » vers un format « .paa » soit terminée.

Pour finir, on clique une fois sur le bouton « Apply », à droite de la boite de dialogue.

Il arrive parfois, cependant, que l’on soit obligé d’ajuster un peu les UV dans l’UVEditor, en allant chercher la texture dans le menu déroulant « Filters » Ce qui donne ceci :

JPG - 155.7 ko

Voici, par exemple, un cas fréquent : on a beau avoir spécifié les bonnes dimensions dans les différentes boites de dialogue, on retrouve les dimensions non désirées, telle celles de 4093 par 1023....

Je pense, après de multiples essais, que l’UVEditor est configuré par défaut, et par ses concepteurs, de telle manière que la base de travail corresponde à un seul des carreaux présent sur l’interface, dés son ouverture.

J’en suis même désormais convaincu, depuis que je me suis aperçu que le modèle de démonstration fourni par BIS, est régi par les mêmes principes.

Quand on l’ouvre dans l’UVEditor, on se rend compte que les textures du BISsoldier sont toutes regroupées en un seul carré, mêmes celles qui seront rectangulaires dans leur application sur le personnage...

Il est cependant facile de remédier à ce fâcheux incident. Pour ce faire, il suffit de positionner le curseur de la souris sur « la poignée » de gauche, à mi chemin de la hauteur, et de repousser, en gardant appuyé le bouton gauche de notre mouse,(comme indiqué en bleu sur le screen suivant) jusqu’à ce que le maillage UV épouse parfaitement le dessin sous jacent de la texture.

On fait de même dans la hauteur, à laquelle il manque un pixel pour être correcte : 1023 au lieu de 1024, et l’on obtient ceci :

JPG - 229.6 ko

Notre texture est désormais bien appliquée. Il suffit, pour s’en convaincre, de passer sous bulldozer et d’admirer le travail.

Méthode numéro 2

La seconde méthode consiste a, une fois arrivé au positionnement voulu dans l’UVEditor, et dans un format rectangulaire, de tous les éléments UV composant le corps de notre personnage, de « compresser » l’ensemble, avant de l’exporter en EMF.

On se retrouve, à l’issue de la manipulation, avec un maillage UV ressemblant à ceci : J’ai dessiné en bleu sur le screen la « poignée » qui m’a permis de parvenir à ce résultat : repousser cette dimension 2048, qui tenait sur deux carrés, en une contenance d’un seul carreau.

Je conseille de rechercher la bonne dimension, dés à présent, avant de réellement enregistrer notre travail. Pour ce faire, on fait quand même export et on regarde ce qui s ’affiche dans le panneau des dimensions : Comme on peut le voir sur ce screen, les dimensions par défaut sont de 2048 par 2048.

Nous allons tout de suite changer cela en rentrant la valeur de 1024 dans le champ « Height », de manière à retrouver les dimensions rectangulaires qui nous interressent. Nous récupérons ensuite notre texture en format EMF à l’aide de PSP, et nous retrouvons les bonnes dimensions dans la boite de dialogue qui s’affiche : Si tel n’était pas le cas, il suffirait de décocher l’option « garder les proportions d’origine », et de rentrer à la main les bonnes dimensions ; en général cela se joue sur un ou deux pixels. 1025 au lieu de 1024, ou 2046 au lieu de 2048, etc.

On peut aussi définir plus précisément les dimensions directement sur le maillage UV, en tirant, repoussant, au bord extrême de la carte , d’un ou deux pixels et en s’aidant du zoom, et en faisant de fréquentes vérifications, via la boite de dialogue « export », pour ajuster notre format au pixel prés, avant de vraiment enregistrer, une fois satisfait, au format EMF.

L’avantage de cette dernière série d’ajustements est évidente quand on convertit tout cela en format Tga : pas besoin d’y toucher, les dimensions sont juste comme il faut.

3_Finitions

Nous rouvrons le modèle dans O2 et, comme décrit dans la méthode numéro 1, assignons la texture au personnage. Il est judicieux, là aussi, de vérifier dans l’UVEditor, si tout est OK. On fait f2 et cela ouvre un petit champ contenant le nom de la texture : il suffit de cliquer dessus pour celle ci épouse le maillage UV, en l’étirant au bon format, c’est à dire en 2048 par 1024.

JPG - 238.6 ko

Si d’aventure, en zoomant, on s’aperçoit que la texture nécessite des ajustements d’un ou deux pixels en décalage, tant sur la gauche, la droite, qu’en haut ou en bas : et bien il suffit de s’y mettre.^^

Quand nous sommes certains d’en avoir terminé avec cet ensemble de polygones, nous les copions et les collons dans le lod 1,000, en lieu et place du même ensemble, et seulement celui là, bien entendu.

Pour en terminer avec cette texture, il me faut simplement vous dire que le format TGA est aisément récupérable par PSP, bien sur, mais également par Photoshop ou The Gimp, ou tout autre programme équivalent ; de façon à le convertir en un format supportant les calques ; étape indispensable pour la réalisation d’une texture de qualité.

Il suffit, ensuite, à chaque modification de la texture (si, si, c’est fréquent^^), de repasser par la boite de dialogue des textures , pour appliquer la nouvelle mouture en TGA, automatiquement convertie en un format « paa » par O2PE.

Suite au prochain numéro

Plus prosaïquement, nous traiterons de la suite à donner à ce premier lod., pour faire les suivants de manière logique.. Surtout, il ne faut pas détruire le lod 2,000, car nous allons partir de lui pour la suite de notre modèle...


Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | SPIP