Nouveautés | Train Réel | Train virtuel | Tutoriaux | Liens

Mon premier projet gmax

Pour cette première vraie leçon, il ne s'agit pas de faire un TGV hyper détaillé. Nous allons faire rouler une boite à chaussures dans MSTS!

Le but est de se familiariser non pas aux outils de modélisation (d'autres rubriques sont consacrées à cette difficile tâche) mais aux fonctions permettant d'exporter un modèle vers le jeu ainsi que les paramétrages de base à configurer avant de commencer tout projet.

1) Configuration de gmax

Il faut avant toute chose régler les unités. MSTS utilise le système métrique. Il faut faire de même dans gmax.

Menu Customize, Unit Setup, cocher Metric puis Meters dans la boite déroulante.
Toujours dans le menu Customize, Preference, dans l'onglet General, régler System Unit Scale à 1 Unit = 1,0 Meters

Cliquer droit sur les boutons de Snap. Dans l'onglet Home Grid, régler Grid Spacing à 1,0m

Appuyer sur le bouton Min/Max Toggle puis cliquer droit sur le nom de la vue (En haut à gauche de la vue). Dans le sous menu Views, sélectionner Top. Vous pouvez aussi appuyer sur "T".
Nous avons donc la vue de dessus en plein écran.

2) Création de la boite

Sélectionner le panneau de commande Créer, en mode géométrie 3D, les Standard Primitives, cliquer sur Box. Développer la barre KeyBoard Entry. Nous allons rentrer tous les paramètres nécessaires à la création de la boite.

Remplir les paramètres comme sur la figure. Cliquer sur Create.

Cela a créé une boite de 15 mètres sur 3 et de 3 mètres de haut flottant 1 mètre au dessus du sol.

Taper "Main" dans le champ Name de la section Name and Color. Le repère de Main doit obligatoirement se trouver à l'origine. Sélectionner le panneau de commande Hierarchy, cliquer sur Affect Pivot Only. Cliquer droit sur le bouton Select and Move et mettre à 0 les trois valeurs du cadre Absolute:World. Le repère de Main se met alors en (0,0,0). Recliquer sur Affect Pivot Only pour le désactiver.

Finalement, la boite est trop longue, nous souhaitons la réduire à 12 mètres de long. Sélectionner le panneau de commande Modifier. On peut directement changer le paramètre Length en y écrivant 12. La boite est redimenssionnée à 12 mètres en longueur.

Cliquer droit sur le nom de la vue et sélectionner le mode d'affichage Smooth + Highlights. En appuyant sur la touche P (vue en perspective) et en pivotant avec le bouton Arc Rotate , on obtient la vue suivante.

 

3) Mise en peinture

MSTS exige que toutes les facettes soient habillées d'une texture *.ace. Cela réclame donc une texture mais aussi des coordonnées de mapping.

Les textures doivent être des fichiers *.bmp ou *.tga de forme carrée de dimension 32*32, 64*64, 128*128, 256*256 ou 512*512. Les fichier *.tga permettent de contenir une couche alpha qui servira de masque de transparence. Nous utiliserons la texture 1proj.ace qui est un simple carré de 128 pixels de côté de couleur brune.

Sélectionner l'objet Main en cliquant dessus. Ouvrir le gestionnaire de matériaux et cliquer sur New. Un matériau apparait nommé par défaut Material #1.

Dans le cadre Texture, cliquer sur Open et choisir la texture 1proj.ace sur le disque dur.

Le cadre Shader peut prendre plusieurs valeurs qui influenceront le comportement du matériau dans le moteur 3D du jeu. Dans MSTS, seuls états peuvent être utilisés. TexDiff est utilisé pour les matériaux opaques. BlendATexDiff est utilisé par les matériaux transparents ou translucides. Le champ Mip LOD Bias est mis à -3. C'est une convention pour le matériel roulant qui permet de retarder l'effet du Mip Mapping de 3 niveaux.

Le champ Lighting Palette permet de donner de la brillance ou de l'autoluminescence au matériau. L'option OptSpecular0 laisse le matériau neutre.

Appuyer sur Put! pour appliquer le matériau à l'objet Main.

Nous allons conserver les coordonnées de mapping automatiquement créés lors de la création de la boite.

 

4) Création des essieux

Nous allons mettre des essieux sous cette boite. Encore une fois, la modélisation sera simpliste: de simples cylindres. Mais leur mise en place se complique.

Cliquer droit sur le nom de la vue. Dans le sous menu Views, sélectionner Left. On peut également accéder à la vue de gauche par le raccourci clavier "L".
Nous avons donc la vue de gauche en plein écran.

Sélectionner le panneau de commande Créer, en mode géométrie 3D, les Standard Primitives, cliquer sur Cylinder. Cliquer sur l'écran et déplacer la souris en maintenant le doigt appuyé. Un disque se forme. Dans le panneau de contrôle, la valeur du champ Radius varie en fonction de la position de la souris. Relâcher le doigt et continuer de déplacer la souris, le rayon du cylindre est fixé mais la valeur du champ Height varie. Cliquer n'importe sur l'écran. Ecrire les valeurs suivantes dans les champs de la section Parameters:

Radius = 0,5m, Height = 2m, Height Segments = 1, Cap Segments = 1, Sides = 12 et cocher Smooth.

Taper "Wheels11" dans le champ Name de la section Name and Color.

Pour positionner l'essieu, le sélectionner et cliquer sur Align puis cliquer sur l'objet Main. Une boite s'affiche. Aligner le centre de Wheels11 sur le centre de Main suivant les axes X et Z. Recommencer en alignant cette fois le maximum de Wheels11 sur le minimum de Main suivant l'axe Y. On obtient la vue ci-contre.

Cliquer droit sur le bouton Select and Move . Taper -4 en X dans le cadre Offset:Screen. Cliquer sur le bouton Array . Une boite de dialogue s'ouvre.

Dans le tableau Array Transformation, on tape 8 dans la colonne X, à la ligne Move. On laisse le reste tel quel. Dans le tableau Array Dimension, on laisse la puce 1D cochée mais on écrit 2 dans le champ Count. Cliquer sur Ok. Renommer le deuxième essieu "Wheels21".

On a juste fait une copie de l'essieu 8 mètres plus loin sur l'axe X. Mais l'outil Array permet de réaliser des réseaux d'objets bien plus complexes.

On obtient la vue ci-contre.

Nous n'avons pas dessiné les cylindres dans la même vue que la boite. Leurs repères ne sont donc pas alignés sur le repère World. C'est embêtant car les essieux ne tourneront pas suivant le bon axe. Sélectionner un essieu. Dans le panneau Hierarchy , section Adjust Transform, cliquer sur le bouton Reset Tranform. Le repère s'aligne sur le repère World.

 

5) Hiérarchie

Se mettre en mode Select and Link . Sélectionner un essieu, cliquer et sans lâcher le clic, tirer un lien vers l'objet Main. Lâcher le bouton de la souris. L'essieu est désormais un enfant de Main. Faire de même avec le second essieu.

Revenir en mode Select object puis ouvrir le dialogue Select by Name .
Dans ce dialogue, cocher l'option Display Subtree. On voit apparaitre la hiérarchie des objets telle qu'on vient de la créer.

Ouvrir le gestionnaire de matériaux , sélectionner Main et cliquer sur Get!. Le matériau Material #1 réapparait. Sélectionner chaque essieu et cliquer sur Put!. Tous les objets sont texturés. Nous pouvons exporter le wagon vers MSTS.

 

6) Export vers MSTS

Avant tout, pensez à sauvegarder le projet avant d'entrer dans le LOD Manager. Il est parfois instable.

Sélectionner l'objet Main en cliquant dessus. Ouvrir le menu Train Simulator, LOD Manager, appuyer sur le +. L'arborescence s'affiche. Main est la racine et les deux essieux sont les enfants. Dans le champ LOD Distance, taper 2000. C'est la distance à partir de laquelle le modèle sera visible dans le jeu. On peut par exemple utiliser un modèle à 2000 mètres, un second à 1000 m, puis un suivant à 500 m, à 100 m...etc de plus en plus détaillés. Cela permet de soulager la carte graphique du PC en utilisant des objets lointains simples et à peine visibles. Mais ce sera pour une autre leçon!

Cliquer sur File, puis sur Export to .S. Sauvegarder dans le fichier boite.s. Le fichier 3D est prêt mais il manque d'autres fichiers utiles pour MSTS.

Le fichier *.sd est le fichier 3D étendu. Il contient des informations concernant le comportement de l'objet dans l'environnement 3D. Le seul champ utile pour du matériel roulant est le ESD_Bounding_Box. il définit une boite parallélépipèdique englobant le wagon qui est utilisée dans les calculs de collision. Il faut y paramètrer les dimensions maxi du wagon.

Le fichier *.wag (ou *.eng pour les engins moteurs) contient des données techniques utilisées par le simulateur.

Sans entrer dans le détail, voici les deux fichiers utilisés: boite.sd, boite.wag.
Ces deux fichiers, les fichier boite.s et 1proj.ace sont placés dans un sous répertoire du répertoire Trainset de MSTS

Voici le résultat!