3. I - PRINCIPE
PAGE
3
Le changement de carrosserie est géré par le
jeu comme un changement de peinture.
Vous allez simplement créer votre voiture dans
un programme de modélisation 3D, en respec-
tant les contraintes ci-après, puis vous l'expor-
tez au format .3DS, ensuite, grâce à un petit
convertisseur intégré dans le launcher, vous en
ferez un fichier avec l'extension .solid.gbx qui
sera utilisé par le jeu à la place du fichier origi-
nal.
Pour des raisons de gameplay, les surfaces de
collision de la voiture ne sont pas modifiables,
quelque soit la géométrie affichée.
Les noms et formats de fichiers doivent être
respectés afin de garantir le bon fonctionne-
ment du modèle.
En cas d’erreur, le jeu renverra un message lors
du choix du modèle dans le profil, et le vehicule
ne pourra être utilisé.
4. II - FICHIERS
22..11 - FFORMAT
PAGE
4
Layers :
Les layers sont des textures qui peuvent être
rajoutées sur le modèle après l’avoir repeint
dans le Painter.
Le plus utilisé est le Prelight, qui ombre la voi-
ture, et donne l’illusion d’une illumination glo-
bale.
Les layers sont des archives zippées séparées
du modèle, qui se placent dans le dossier
.../TrackmaniaNations/Gamedata/Painter/Layer
s/StadiumCar/nomdulayer.zip.
Fichier texte :
Un fichier texte au format readme.txt peut être
ajouté à l’archive du véhicule, afin de préciser
des infos sur l’auteur ou le modèle 3D.
Pour être fonctionnelle, une archive de layer
doit contenir ces fichiers :
- Layer.dds
- Icon.dds
L’utilisation des layers et du Painter est expli-
quée dans la notice du jeu.
L’import d’un modèle dans le jeu se fait en
créant une archive zippée (nomdumodele.zip)
contenant les fichiers qui composent le véhi-
cule. Ces fichiers doivent avoir un nom et un
format précis pour être reconnus et fonction-
nels.
L’archive au format .zip sera placée sans être
décompressée dans le répertoire :
.../TrackmaniaNations/Gamedata/Skins/Vehicul
es/StadiumCar/nomdumodele.zip.
Pour être entièrement fonctionnelle, une
archive de modèle doit contenir ces fichiers :
- Mainbody.solid.gbx (cf. Chap 4)
- MainbodyHigh.solid.gbx (cf. Chap 4)
- Diffuse.dds (cf. Chap 3)
- Details.dds (cf. Chap 3)
- Pilot.dds (cf. Chap 3)
- Icon.dds (cf. Chap 3)
- ProjShad.dds (cf. Chap 3)
- Horn.wav (klaxon, au format .wav)
22..22 - FFICHIERS ADDITIONNELS
5. III - MATERIAUX
33..11 - TTYPES
PAGE
5
dFLWheel
dFLHub
sFLWheel
Il existe 4 types de matériaux, correspondant à
des shaders :
Skin (s) : Texture de carroserie. Brillance et
réflexion déterminée par la couche Alpha. Fait
appel au fichier diffuse.dds.
- taille puissance de 2 (taille de la skin)
- DXT5 (Alpha)
- AVEC mipmaps
Details (d) : Texture des parties brillantes et non
réfléchissantes (pneus, antenne, joints...). La
brillance est définie par la couche Alpha. Fait
appel au fichier details.dds.
- DXT5 (Alpha)
- AVEC mipmaps
Glass (g) : Texture de verre. Utilise les coordon-
nées de mapping sur le details.dds. La transpa-
rence est définie par la couleur et la couche
Alpha.
Pilot (p) : Texture de la tête du pilote. Fait appel
au fichier pilhead.dds, au format DXT5.
- taille puissance de 2 (taille de la skin),
- DXT5 (Alpha)
- AVEC mipmaps
gBody
sBody
dBody
Pour attribuer un matériau à un objet, il faut
rajouter la lettre correspondant au shader
devant son nom, exemple :
Materiau Skin sur Jante = s + XXWheel
L’objet se nommera sXXWheel.
Materiau Details sur Pneu = d + XXWheel
L’objet se nommera dXXWheel.
Remarque : Pour toutes les textures au format
.dds, les mipmaps doivent être générés, sinon
le modèle ne fonctionnera pas (message d’er-
reur).
33..22 - AATTRIBUTION
6. III - MATERIAUX
33..33 - AAUTRES TEXTURES
PAGE
6
Ombre projetée (ProjShad.dds) :
Il s’agit d’une texture appliquée sur la route,
sous la voiture, donnant l’illusion d’une illumina-
tion globale. Elle s’ajoute à l’ombre projetée par
le lowpoly.
Sa position est déterminée par l’objet ProjShad
(cf. Chap 4).
- taille puissance de 2 (128 ou 256, carrée ),
- DXT1 (NoAlpha)
- AVEC mipmaps
attention : bien faire attention à ce que tous
les pixels des 4 bords soient BLANCS (255
255 255)
Icônes (Icon.dds) :
Les icônes du vehicule sont au format .dds
- 64x64 ou 128x128
- DXT5 (Alpha)
- sans mipmaps
Layers (Layer.dds) :
layer Details
- taille puissance de 2 (32x1024, 512x512,
etc... 2 4 8 16 32 64 128 256 512 1024 2048)
(taille de la skin),
- DXT5 (Alpha)
- sans mipmaps
layer PreLight
- taille puissance de 2 (32x1024, 512x512,
etc... 2 4 8 16 32 64 128 256 512 1024 2048)
(taille de la skin),
- DXT1 (NoAlpha)
- sans mipmaps
Icônes layers (Icon.dds) :
- 64x64 DXT5(Alpha) ou DXT1 (NoAlpha)
- sans mipmaps
ProjShad.dds
Projshad
y
x
z
y
x
z
7. IV - STRUCTURE
44..11 - CCONTRAINTES ::
PAGE
7
Nombre de sommets / niveau de détail :
L’archive du modèle (cf. Chap 2) doit contenir 2
niveaux de détail du vehicule. Les fichiers
exportés sont nommés comme ci-contre et ne
doivent pas dépasser un nombre maximal de
sommets, sous peine de ne pas être reconnus
par le jeu (message d’erreur).
Les suspensions, le système de transmission,
les mouvements de la tête du pilote et des
garde-boue ne sont pas pris en charge sur le
modèle basse résolution.
Nombre d’objets :
Le véhicule est composé d’objets auxquels sont
attribués un nom et un matériau. Ces sous-
objets composant le véhicule sont utilisables en
nombre limité selon le niveau de détail du
modèle.
Nombre maximal de primitives :
High poly : 40 objets/materiaux
Low poly : 11 objets/materiaux
MainbodyHigh.solid.gbx | 20000 sommets
Version haute résolution (high poly) du modèle.
Utilisé pour la vue par défaut du joueur, et pour
les adversaires, suivant la configuration du
joueur (cf. notice du jeu).
Mainbody.solid.gbx | 3600 sommets
Version basse résolution (low poly) du modèle.
Sert à afficher les véhicules adverses lors de
parties multijoueurs ou durant les replays, afin
d’améliorer les performances (cf. notice du
jeu). Génère l’ombre dynamique.
High poly
MainbodyHigh.solid.gbx
Low poly
Mainbody.solid.gbx
20 000 vertex max.
40 primitives max.
3600 vertex max.
11 primitives max.
Taille du modèle :
Les modèles importés dans le jeu doivent res-
pecter des cotes maximales. Celles-ci sont
comprises dans une boite dont les coordonnées
sont les suivantes :
Min : (-1.5,-3,-0.2) | Max : (1.5, 3, 2.5)
Si le modèle dépasse une des dimensions, le
jeu renverra un message d’erreur, et le modèle
ne fonctionnera pas.
y
x
z
y
x
z
3
2.7
6
8. IV - STRUCTURE
44..22 - OOBJETS // PPART LIST ::
PAGE
8
gBody
sBody
dBody
y
x
z
dFRWheel
dRRWheel
dRLWheel
dFLWheel
y
x
z
AVANT
FRONT
ARRIERE
REAR
Body :
Le Body est l’ensemble des parties fixes du
véhicule. Il est en général composé de 3 objets
distincts, comprenant les vitres, la carosserie et
les détails. Vous pouvez rajouter des parties
supplémentaires, dans la limite du nombre
d’objets acceptés par le jeu (cf. Chap 4.1).
Les materiaux des objets sont déterminés par le
préfixe de l’objet (cf. Chap 3).
Les points de pivots des objets sont aux coor-
données X=0, Y=0, Z=0.
Wheels :
Les roues sont disposées où vous le souhai-
tez, mais pour mieux correspondre au modèle
du jeu et aux collisions du modèle original, il
est conseillé de se fier à l’emplacement des
roues du template 3D fourni (cf. annexe A).
Elles doivent être nommées comme sur l’illus-
tration ci-contre, et leur pivot centré sur leur
centre de gravité. Leur préfixe détermine le
materiau (cf. Chap 3). Vous pouvez séparer les
materiaux de la jante et du pneu en créant 2
objets nommés dXXWheel et sXXWheel.
La voiture est décomposée en sous-objets,
dont les noms et emplacements définissent leur
comportement dans le jeu. Certaines parties
sont fixes, d’autres réagissent en fonction du
déplacement de la voiture (tête du pilote, roues,
système de suspension.)
Les objets doivent porter les noms spécifiés ci-
dessous. Les points de pivot des parties fixes
(carosserie, détails, vitres...) doivent impérati-
vement avoir des coordonnées nulles (0, 0, 0).
Utilisateurs de 3D Max, n’oubliez pas le reset X-
Form avant de définir vos pivots.
9. IV - STRUCTURE
PAGE
9
dRRArmTop
dRRSusp
dRRCardan
dRRArmBot
dRRHub
Arrière droite
Rear right
dFRHub
dFRArmTop
sFRGuard
dFRArmDir
dFRArmBot
dFRSusp
Avant droite
Front right
dRLArmBot
dRLCardan
dRLHub
dRLSusp
dRLArmTop
Arrière gauche
Rear left
dFLArmBot
sFLGuard
dFLArmDir
dFLArmTop
dFLHub
dFLSusp
Avant gauche
Front left
Les éléments de suspension et de transmission
sont décomposés en objets séparés, gérés par
le jeu grâce à leurs points de pivots et leurs
appellations.
Pour que les suspensions soient prises en
compte par le jeu, le HUB doit être présent sur
chaque roue. Les gardes-boue ne sont en
revanche “utilisables” qu’à l’avant (ceux de l’ar-
rière sont rattachés au HUB et ne suivent pas la
rotation des roues sur l’axe Z).
Comme expliqué dans le chapitre III, la pre-
mière lettre désigne le materiau affecté à l’objet. AVANT
FRONT
ARRIERE
REAR
y
x
z
Transmission / Suspensions :
10. IV - STRUCTURE
PAGE
10
Arrière droite
Rear right
y
x
z
y
x
z
y x
z
y x
z
y
y
x
x
z
z
y
x
z
y
x
z
y y
y
y
y
x
x
x
x
x
z
z
z
z
z
Avant droite
Front right
Arrière gauche
Rear left
y
x
z
y
x
z
y
z
x
y
z
x
y
z
x
y
z
x
Avant gauche
Front left
y
x
z
y
x
z
y
x
z
y
y
z
z
x
x
y
z
x
y
z
x
Les points de pivots des composants doivent
impérativement être orientés comme sur les
illustrations suivantes. Si ce n’est pas le cas,
leur comportement ingame ne sera pas correct,
ou ne sera pas visible du tout.
Les gardes-boue sont une partie qui tourne
avec les roues sur l’axe Z en plus de suivre leur
mouvement le long de cet axe. Les mâchoires
de freins peuvent être modélisées dessus, en
plus du moyeu. Les gardes-boue arrière, s’ils
sont mobiles, devront appartenir au HUB.
Pour plus d’infos, consulter l’annexe A. AVANT
FRONT
ARRIERE
REAR
y
x
z
Transmission / Suspensions (suite) :
11. IV - STRUCTURE
PAGE
11
Placeur de feu arriere :
Un phare rouge s’allume lors du freinage.
Ce phare est positionné grâce à un placeur
invisible nommé LightR. Il peut être situé n’im-
porte où, et son fonctionnement est géré par le
jeu.
Placeur de l’ombre de la voiture :
Lorsque vous jouez, votre véhicule projette
deux ombres.
La première est automatiquement générée par
le jeu grâce au modèle 3D de votre véhicule.
L’autre est une texture simulant l’illumination
globale. Il s’agit d’une texture (ProjShad.dds)
qui est appliquée sous la voiture (cf. Chap 3).
Elle est placée grâce à un objet invisible
ProjShad dont les coordonnées sont nulles.
LightR
y
x
z
y
x
z
ProjShad.dds
Projshad
y
x
z
y
x
z
Tête du pilote :
Dans Trackmania Nations, la tête du pilote est
un objet à part entière, mobile, et pouvant pos-
séder sa propre texture (cf. Chap 3).
L’objet PilHead est placé où vous le souhaitez.
Son point de pivot détermine ses mouvements.
Celui-ci est placé au niveau de son articulation. y
x
z
pPilHead
y
x
z
12. ANNEXES
TTEMPLATE 33D
PAGE
12
Vous trouverez dans le template 3D tous les
objets en versions schématisées, afin de faire
correspondre plus facilement votre modèle aux
critères d’import.
IINNOVER
N’hésitez pas à expérimenter : certains mem-
bres du forum ont régulièrement des idées nou-
velles sur les techniques de texturing et de
modelling. Steph10 a récemment montré com-
ment réaliser des chromes en superposant plu-
sieurs couches de glass opaque, vous pouvez à
présent les adapter aux roues de TMN !
Les possibilités sont grandes, partagez vos
connaissances ;)