Cars 3d/skins specifications

Discuss everything related to custom data creation.

Moderator: NADEO

Posts: 146
Joined: 14 Jun 2010, 17:36

Cars 3d/skins specifications

Post by damien » 29 Aug 2011, 00:06

this is a work in progress.

Note 1: With damage geometries, there is a crash if you have no texture in the skin. the workaround is just to add this texture in the folder

Note 2: At the moment, we've put on hold the support for old 3d skins from TMF.
You have to use the new NadeoImporter.exe to re-create TM2-compatible 3d skins from original assets (3ds files).
We do it at least for the launch period to let car makers decide to import their creations as authors to TM2, and help to have a clean start for them into TM2.

change log:
new optional game update (go to your player page , click "Updates" in the left menu and select "I want optional updates")
- scalable suspensions (as in tmu),
- experimental support for damper compression limit : to use this feature, add a new object on your mesh named "WheelMin" placed at the maxium wheel height your model can support without crossing geometries. only one object for the entire mesh, not one per wheel, this is a global limit.
this option is just a hack to visually move the body up when damper compression is too big.

- NadeoUpdater.exe upated :
fixed wrong transformation in 3ds importer
- NadeoUpdater.exe upated :
import as new mandatory format (mandatory for next version of ManiaPlanet.exe)
- NadeoImporter.exe updated (potential bug fixed)
- NadeoImporter.exe posted
- damage prefix is '_', not '@'
- better material explanation

A vehicle consists in a zip file named <modelname>.zip, that must be placed in the folder Skins/Vehicles/CarCommon in your Maniaplanet's user data folder ({Mes documents}/ManiaPlanet)

The zip file must contains thoses files :
(klaxon, au format .wav)

2.1 Material textures
There are 4 types of materials, defined by a prefix that must be the first letter of the mesh objects. the materials are using multiple textures, as below.
All the material dds must be DXT5, with mipmaps, and with a power of 2 size in x and y.

Skin (prefix 's') :
Material of the car body, shininess/metallic, and without emissible light :
rgb <=> color
alpha <=> shininess : 0 (matt) => 0.5 (shiny) => 1 (shiny metallic) :
rgb <=> damage color
alpha <=> damage opacity :
rgb <=> dirt color
alpha <=> dirt opacity

Details (prefix 'd') :
Material of other parts, shininess, et with emissible light :
rgb <=> color
alpha <=> shininess : 0 (matt) => 1 (shiny) :
rgb <=> light color
alpha <=> light type :
1 => car dashboard and night rear light
0,5 => night front light (strong)
0 => rear stop light (average base intensity, stronger when braking) :
rgb <=> damages color
alpha <=> damage opacity :
rgb <=> dirt color
alpha <=> dirt opacity

Glass (prefix 'g') :
Material of glass parts
rgb <=> color & moldulation (white <=> completely trasparent, black <=> completely opaque)
alpha unused

Wheels (prefix 'w') :
Tire material. shininess (not metallic), without emissible light
rgb <=> color
alpha <=> shininess : 0 (matt) => 1 (shiny) :
rgb <=> damages color
alpha <=> damage opacity :
rgb <=> dirt color
alpha <=> dirt opacity

A texture applied on the ground, under the car, giving the illusion of a global illumination. Combined in realtime with the car shadow.
The fake shadow position and size is computed from the Mesh object 'FakeShad' . must be DXT1, with mipmaps, and with a power of 2 size in x and y.

Important : all the border pixels must be completely white (r g b) = (255 255 255)

The icon displayed in the skin chooser in game must be DXT5, without mipmaps, and with a size 64x64 or 128x128

3. 3d objects

3.1 constraints
Model size :
the models imported must be included in the box Min : (-1.5,-3,-0.2) | Max : (1.5, 3, 2.5)
Vertex count :
MainbodyVeryHigh.solid.gbx | 60000 sommets max
MainbodyHigh.solid.gbx | 20000 sommets max
Mainbody.solid.gbx | 4250 sommets max

3.2 objects
3dsmax users , don't forget to reset Xform before defining pivots
All objects composing the car must start with the corresponding material prefix.

Damaged versions of objects : use the same name, and add '_' before
the damaged objects must have the same number of vertices than the non-damaged ones. and the vertex indexs must correspond. the best way to achieve this is to start from the undamaged mesh, an to "damage" the vertexs.

some objects have a special behavior :

Sub-parts that can open/brake

Breakable glasses
Sub-parts objects prefixed by 'g' (glass material) are considered as breakable glasses.
gTrunk (when rear glass is part of the trunk)


these objects aren't displayed, they are only here to define positions and/or sizes.
LightFProj position used to define front light projection
FakeShad position and size x/z used to define fake shadow projection
RLLight position of rearlights for lighttrails
RRLight idem

4. Import
4.1 Command line
download , extract the .exe and place it in your game exe folder.
You must execute 'NadeoImporter.exe CarSkin <SourceFolder> <SkinName>
<SourceFolder> is the name of the folder in {My documents}\ManiaPlanet\ where you've put all the files to import.
<SkinName> is the name of the imported car as displayed in in the in-game skin chooser.

You have to create the {My documents}\ManiaPlanet\temp folder and {My documents}\ManiaPlanet\Skins\Vehicles\CarCommon for NadeoImporter to work.

The supported 3d file formats are .3ds and .dae (dae = collada. experimental support, worked with our pipeline, but very sensitive to input)

4.2 Check
In ManiaPlanet => Profile => VehicleProfile, you can select the car you've imported.
Hotkeys allow you to debug and check the car.
Press the 'h' key to see the list of available commands

Posts: 484
Joined: 15 Jun 2010, 11:17
Location: FR - Grenoble

Re: Specifications WIP

Post by SadHik » 29 Aug 2011, 10:16

:yes: people at maniapark will be happy, let the story begin :pop:

Posts: 484
Joined: 15 Jun 2010, 11:17
Location: FR - Grenoble

Re: Specifications WIP

Post by SadHik » 29 Aug 2011, 18:14

i opened a thread for bug reports on maniapark : ... =5&t=19119

seems like it doesn't work well, i can't test it myself but many people are trying to import models currently :pil

User avatar
Posts: 26
Joined: 05 Aug 2011, 07:51
Location: Moscow, Russia

Re: Specifications WIP

Post by chazcatrix » 17 Sep 2011, 08:29

Are we allowed to post questions here to include stuff that's not obvious, but important? If not, feel free to remove this post ;)

Some things that bug me:
  • Door/Trunk/Hood pivot axis for rotation (because the pivot position is obvious :D )?
  • Does the damage calculate from default car's hitboxes or custom (e.g. what happens if we swap the hood and trunk)?
    FakeShad position and size x/z used to define fake shadow projection
  • How do we set FakeShad's size: scale percentage or bounding box? If the scale, then what's the 100% size for it (in original TM it was slightly smaller than 6x4)?

User avatar
Posts: 75
Joined: 24 Mar 2012, 10:56
Location: Germany,NRW

Re: Cars 3d/skins specifications

Post by SoraTWE » 04 May 2012, 10:42

dont know where to post..
it would really be awesome if we could open the doors and hoods in another direction,would be cool if this would work with rotating pivot only,for example cars with wing doors etc..
also if you take a look at your 3d model then in the car selection,and you choose the midpoly,we have an error message : MainBodyVeryHigh : too many vertices in quality 2.. it seemes the maximum for VeryHigh is only 20000 but mostly you have much more at VeryHigh Quality..
mustnt be now the update,but I hope you guys fix this for maniaplanet 2.0^^ :D

User avatar
Posts: 734
Joined: 03 Nov 2011, 17:16
Location: Russia

Re: Cars 3d/skins specifications

Post by Harrison_rus » 01 Aug 2012, 19:11

It is not understood how to use ... (As always, the instructions for dummies not included ....) Having tried all sorts of options, nothing worked. How do I write?

Posts: 267
Joined: 25 Nov 2011, 18:55
Location: 29646 Bispingen

Re: Cars 3d/skins specifications

Post by BK-ZD50 » 24 Jul 2013, 09:08

Hello forum^^,
can i make the car parts with vertex groups?
Or must i do a seperat object for the conversion?
Can i use Bones?

I make a Car with Blender^^

User avatar
Posts: 62
Joined: 22 Feb 2012, 04:00

Re: Cars 3d/skins specifications

Post by Suma » 12 Oct 2013, 12:07

We would need some update of the documentation here, in the NadeoImporter thread the mode CarSkin isn't mentioned or explained at all.

Extracting the available parameters I found out this up to now:
Syntax : NadeoImporter CarSkin
{Skins/FolderName} clear, should be something like Skins/Import/YourCarsFolderName
[/MaxSize=xxx] not required, stops the importer if your model breaks the limits, though what is atm the MaxSize?
[/HqDds] HighQualityDDS - what does it do in details?
[/LogMeshStats] Stats, sounds clear, I use it at items, though I don't get any output displayed here.
[/SkelGeneric] no idea
[/SkelSocketPrefix="x"] no idea
[/SkelRootName="xxx"] no idea

My other point is that I ask myself why CarSkin stays with DAE/3DS import if everything else in the Importer is running through FBX which works very nice for me also with Blender.

Whould it be a big deal to open NadeoImporter CarSkin for the FBX format?

I can't find a way around a very strange 90° rotation (front half of the car is underground, back is up in the air) on Blender DAE export which I can see in the model editor Debug mode, although I imported a 3DS file produced by a friend with 3DS Max, which was working last year on TMU. Beside that I expect that this problem would not occure with FBX, I'd also have a lot more options on export to fix it.

Last the name spaces: I see that LightRL & LightRR got renamed to RLLight & RRLight, additional "lighttrails" seams to be a new feature.

What happened to LightFL1, LightFL2 & LightFL3? Renamed? Obsolete?

TIA for any informations :)

User avatar
Posts: 377
Joined: 17 Jul 2011, 00:55

Re: Cars 3d/skins specifications

Post by maxi031 » 12 Oct 2013, 15:06

Everything in [ ] is optional, so you can, but you dont have to use it.
In { } is must have.

[/MaxSize] is max resolution texture importer will generate, so if your texture is 2048/2048 and you set MaxSize to 1024/1024, importer will export your texture in 1024/1024.

[/HqDds] note sure but it is probably for texture compression.

[/SkelGeneric], [/SkelSocketPrefix="x"], [/SkelRootName="xxx"] - those looks like typo, they belong to the Skin not cars.
My specs:
MOBO: MB AM3+ 970 Gigabyte GA-970A-DS3P
CPU: AM3+ AMD FX-8320E
GPU: Nvidia GeForce GTX750-Ti ASUS 2GB DDR5
RAM: DDR3 8GB 1866MHz Kingston HyperX
SSD: SATA3 120gb SanDisk
OS: Ubuntu 19.04

User avatar
Posts: 790
Joined: 15 Jun 2010, 18:02

Re: Cars 3d/skins specifications

Post by Electron » 21 Jan 2015, 11:26

Are the reference data from the first posting and this tutorial from the doc wiki still up to date?

Is there a sample project for a TrackMania 3D car model available?

Is there a way to check if a given 3D car model is compatible with TM2?

I need to use some models that includes 3 Gbx files besides the texture files:
MainBodyHigh.solid. gbx
MainBody.solid. gbx
But all current models from Maniapark includes only a Model.Pack.Gbx besides the textures. Does this indicate that the models I have are outdated?

Post Reply

Return to “Title Pack & Custom Data Creation”

Who is online

Users browsing this forum: No registered users and 4 guests