Les map Objects

Écrit le 07/11/2004 par RedEyes
Dernière mise à jour : 05/04/2006

A. Introduction

Vous n'avez pu les rater dans l'aventure solo de Doom3, il s'agit des modèles 3D statique qui servent à agrémenter vos map en details (chaises, tables, extincteur,cannete de soda,, portes, ordinateurs, la majeur partie des élément du décor) vous laurez compris Doom3 ne serai pas aussi puissant graphiquement sans tout ces objets.
De plus! pour certain vous l'aurez remarquez, le moteur physique de doom3 gere les map objects.
Dans cette documentation technique nous allons parler du format LWO, il existe d'autres formats qui sont géré par le moteur de doom3,
nous en verront une rapide description dans le chapitre suivant, d'ailleur nous y voila !

B. Les différents formats de modèle 3d

Le moteur Doom 3 reconnais plusieurs types de format 3d.

Le format LWO
Ce format est lisible sans aucune convertion.

Le format ASE
Un format Ascii qui peut stocker des infomations d'animation telle que les Translation Rotation et Mise a l'échelle.

Le format MD5
Le format propriétaire de ID software qui sert aux modèles 3d animés par un squelette d'animation (Bones).

Le format le plus utilisé dans Doom3 est sans aucun doute le format LWO. Il sert d'objet statique (qui ne bouge pas).

C. Les dimentions

Sachant qu'un info player start (voir le Lexique) mesure 32*32*64 (XYz) dans l'éditeur, pour créer des encadrements des porte (par exemple), il faudrai
utilser des valeurs superieures, afin que le joueur arrive à les passer.

64 unités = 64 mêtres dans lightwave donc

1 unité = 1 mêtre dans Lightwave

Il vous faudrai donc régler vos dimensions dans Lightwave en Mêtre

D. Exemples de budget polygone utilisé dans Doom 3

[list]Terrains 100/1000 polygones
Véhicules 1500/2000 polygones
Portes 200/500 polygones
Chaises 250/400 polygones
Lampes 50/200 polygones
Ordinateurs/Bornes 300/500 polygones
Object Simple et courant 50/100 polygones[/list]

Sont cité ici les budgets polygons des modeles 3D Low polygon des maps objets de Doom3.

E. Modélisation de Map Objects

1. Création du Map Object

Le moteur de Doom3 charge un modèle 3d avec peu de polygones dans le jeux(sisi je vous assure :o)

Tout les Map Objets (objets du décor) de cette production seront modélisé avec le logiciel Lightwave 3d, mais çà tout le monde le sait déja...

Le moteur de Doom3 charge un modèle 3d avec peu de polygones dans les jeux (sisi je vous assure :o)

La première étape consiste donc à modéliser le modèle 3D qui sera chargé dans Doom3.

Un modèle LPM, dont tout les polygones sont convertis en triangles

http://www.game-lab.com/images/tuts/doom3_mapobjs/caisse_s.jpg

Voila pour le moment je pense que personne n'est dépaysé ;]

Continuons par le paramétrage des surfaces de l'objet sous Lightwave. Il nous faudrai ensuite écrire les Shaders.

puisque l'on doit rester dans la simplicité garder les paramatre de surface par default, Cependant il va falloir renommer la Surface.

Nommez la :

models/my_object/divers/caisse_simple 

http://www.game-lab.com/images/tuts/doom3_mapobjs/surface.jpg

Il ne doit y avoir qu'une seule surface par shader. Mais si il doit y avoir plusieurs surface, le nom de la surface doit donc forcement correspondre à celui d'un shader dans un fichier *.mtr.

Notes : Apparement Doom 3 reconnai les attributs des surfaces de lightwave (specular, glossiness reflection) et peut etre d'autres ... (réfraction transparence ?)

Maintenant il va falloir Faire votre dépliage UV , soit par endomorphs soit par les texture guides classiques de Lightwave.
Nommez votre Uv map comme vous le voulez.

Voila qui nous donne celà :

http://www.game-lab.com/images/tuts/doom3_mapobjs/Uvmap.jpg

pour une raison de gain de place et de qualité, j'ai superposé les polygones de mon Objet les uns sur les autres dans mon Uvmap.

Maintenant sauvergardez votre Objet dans le répertoire base/models/my_objects/divers/ ou mod/models/my_objects/divers/
et passons au Texturing

F. Création du Shader (fichier Materials)

Les objets utilisent ce qu'on appelle des Shaders, ils sont définis dans des fichiers du répertoire base/materials de Doom3. Ces derniers sont écrit sous forme de scripts , vous pouvez les éditer avec NotePad.
Ces shader permettent de grosse possibilité et ajoute une autre dimension dans le monde du jeux video
Donc afin d'utiliser les possibilitées de multitexturing (superposition de texture, par exemple), nous allons devoir definir chaque object dans des fichiers materials (Fichier qui porte l'extention *.mtr)

voyont en premier temp comment créer un fichier materials .

1. Création d'un fichier MTR

Créer un nouveau fichier texte avec Notpad et renommez l'extention en *.mtr au lieu de *.txt et le tour est joué.

Placez ce fichier nouvellement créé dans le repertoire base/materials ou Mod/materials

Les materiaux de base utilisent au moins 3 canaux de textures. Nous n'allons pas voir toutes les possibilitées en matiere de texturing dans cette partie de la documentation mais beaucoup de chose sont possible.

2. Définition d'un shader

voici tout d'abord un exemple le shader le plus basique.

http://www.game-lab.com/images/tuts/doom3_mapobjs/shader.jpg

models\my_objects\divers\caisse_simple 
{ 
    diffusemap models\my_objects\divers\caisse_simple_d
}

La première ligne correspond au chemin du modèle 3d LPM par conséquent ceci devient le Nom (identifiant) du Shader.

Ensuite sont définis les différentes textures que compose le shader

ID Software a choisi de rajouter le Suffix "_d" pour reconnaitre la texture principal (couleur) que voici.

http://www.game-lab.com/images/tuts/doom3_mapobjs/texture.jpg

Sauvegardez votre shader dans le répertoire base/materials ou Mod/materials .

G- Charger un Map Object dans DoomEdit

Créez un brush de n'importe quelle taille . Faite un clic à droite puis choissisez Func > func_static

dans la fenètre Inspector allez sur l'onglet "Medias" puis recherchez votre map object dans la liste

http://www.game-lab.com/images/tuts/doom3_mapobjs/media.jpg

Garder l'object sélectionné et passez sur l'onglet "Entity" de la même fenètre.

http://www.game-lab.com/images/tuts/doom3_mapobjs/func_static.jpg

Sur la "Clée" Models Entrez à la main le chemin du MapObject dans la "Valeur", ou cliquez sur le troi petits points en ayant sélectionné le map object dans l'onglet Medias.

Il se peut fortement que le MapObject reste un Brush, dans ce cas une manipulation toute simple s'impose . fait un copier de votre Entité, éffacer celle selectionnée et Coller ce qui est stocker dans le press papier.

Voila le Map Object Chargé dans une Map.

http://www.game-lab.com/images/tuts/doom3_mapobjs/render.jpg