Cars 3d/skins specifications
Posted: 29 Aug 2011, 00:06
this is a work in progress.
Note 1: With damage geometries, there is a crash if you have no SkinDamage.dds 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:
27/09/11:
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.
15/09/11
- NadeoUpdater.exe upated :
fixed wrong transformation in 3ds importer
02/09/11
- NadeoUpdater.exe upated :
import as new mandatory format (mandatory for next version of ManiaPlanet.exe)
30/08/11
- NadeoImporter.exe updated (potential bug fixed)
29/08/11
- NadeoImporter.exe posted http://files.maniaplanet.com/tools/NadeoImporter.zip.
- damage prefix is '_', not '@'
- better material explanation
1.Files
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 :
Mainbody.solid.gbx
MainbodyHigh.solid.gbx
MainbodyVeryHigh.solid.gbx
SkinDiffuse.dds
SkinDirty.dds
SkinDamage.dds
DetailsDiffuse.dds
DetailsDirty.dds
DetailsDamage.dds
DetailsIllum.dds
WheelsDiffuse.dds
WheelsDirty.dds
WheelsDamage.dds
Icon.dds
FakeShad.dds
Horn.wav (klaxon, au format .wav)
2.Textures
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
SkinDiffuse.dds :
rgb <=> color
alpha <=> shininess : 0 (matt) => 0.5 (shiny) => 1 (shiny metallic)
SkinDamage.dds :
rgb <=> damage color
alpha <=> damage opacity
SkinDirty.dds :
rgb <=> dirt color
alpha <=> dirt opacity
Details (prefix 'd') :
Material of other parts, shininess, et with emissible light
DetailsDiffuse.dds :
rgb <=> color
alpha <=> shininess : 0 (matt) => 1 (shiny)
DetailsIllum.dds :
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)
DetailsDamage.dds :
rgb <=> damages color
alpha <=> damage opacity
DetailsDirty.dds :
rgb <=> dirt color
alpha <=> dirt opacity
Glass (prefix 'g') :
Material of glass parts
DetailsDiffuse.dds
rgb <=> color & moldulation (white <=> completely trasparent, black <=> completely opaque)
alpha unused
Wheels (prefix 'w') :
Tire material. shininess (not metallic), without emissible light
WheelsDiffuse.dds
rgb <=> color
alpha <=> shininess : 0 (matt) => 1 (shiny)
WheelsDamage.dds :
rgb <=> damages color
alpha <=> damage opacity
WheelsDirty.dds :
rgb <=> dirt color
alpha <=> dirt opacity
2.2 fakeshad.dds
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' .
fakeshad.dds 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)
2.3 Icon.dds
The icon displayed in the skin chooser in game
icon.dds 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 :
Wheels
FRWheel
FLWheel
RRWheel
RLWheel
FLHub
FRHub
RLHub
RRHub
FLGuard
FRGuard
Sub-parts that can open/brake
LDoor
RDoor
Hood
Trunk
Breakable glasses
Sub-parts objects prefixed by 'g' (glass material) are considered as breakable glasses.
gLDoor
gRDoor
gHood
gTrunk (when rear glass is part of the trunk)
gFWShield
gRWShield
Arms/suspensions
FLArmBot
FLArmTop
FLArmDir
FLSusp
FRArmBot
FRArmTop
FRArmDir
FRSusp
RLArmBot
RLArmTop
RLCardan
RLSusp
RRArmBot
RRArmTop
RRCardan
RRSusp
PlaceHolders
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 http://files.maniaplanet.com/tools/NadeoImporter.zip , 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
Note 1: With damage geometries, there is a crash if you have no SkinDamage.dds 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:
27/09/11:
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.
15/09/11
- NadeoUpdater.exe upated :
fixed wrong transformation in 3ds importer
02/09/11
- NadeoUpdater.exe upated :
import as new mandatory format (mandatory for next version of ManiaPlanet.exe)
30/08/11
- NadeoImporter.exe updated (potential bug fixed)
29/08/11
- NadeoImporter.exe posted http://files.maniaplanet.com/tools/NadeoImporter.zip.
- damage prefix is '_', not '@'
- better material explanation
1.Files
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 :
Mainbody.solid.gbx
MainbodyHigh.solid.gbx
MainbodyVeryHigh.solid.gbx
SkinDiffuse.dds
SkinDirty.dds
SkinDamage.dds
DetailsDiffuse.dds
DetailsDirty.dds
DetailsDamage.dds
DetailsIllum.dds
WheelsDiffuse.dds
WheelsDirty.dds
WheelsDamage.dds
Icon.dds
FakeShad.dds
Horn.wav (klaxon, au format .wav)
2.Textures
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
SkinDiffuse.dds :
rgb <=> color
alpha <=> shininess : 0 (matt) => 0.5 (shiny) => 1 (shiny metallic)
SkinDamage.dds :
rgb <=> damage color
alpha <=> damage opacity
SkinDirty.dds :
rgb <=> dirt color
alpha <=> dirt opacity
Details (prefix 'd') :
Material of other parts, shininess, et with emissible light
DetailsDiffuse.dds :
rgb <=> color
alpha <=> shininess : 0 (matt) => 1 (shiny)
DetailsIllum.dds :
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)
DetailsDamage.dds :
rgb <=> damages color
alpha <=> damage opacity
DetailsDirty.dds :
rgb <=> dirt color
alpha <=> dirt opacity
Glass (prefix 'g') :
Material of glass parts
DetailsDiffuse.dds
rgb <=> color & moldulation (white <=> completely trasparent, black <=> completely opaque)
alpha unused
Wheels (prefix 'w') :
Tire material. shininess (not metallic), without emissible light
WheelsDiffuse.dds
rgb <=> color
alpha <=> shininess : 0 (matt) => 1 (shiny)
WheelsDamage.dds :
rgb <=> damages color
alpha <=> damage opacity
WheelsDirty.dds :
rgb <=> dirt color
alpha <=> dirt opacity
2.2 fakeshad.dds
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' .
fakeshad.dds 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)
2.3 Icon.dds
The icon displayed in the skin chooser in game
icon.dds 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 :
Wheels
FRWheel
FLWheel
RRWheel
RLWheel
FLHub
FRHub
RLHub
RRHub
FLGuard
FRGuard
Sub-parts that can open/brake
LDoor
RDoor
Hood
Trunk
Breakable glasses
Sub-parts objects prefixed by 'g' (glass material) are considered as breakable glasses.
gLDoor
gRDoor
gHood
gTrunk (when rear glass is part of the trunk)
gFWShield
gRWShield
Arms/suspensions
FLArmBot
FLArmTop
FLArmDir
FLSusp
FRArmBot
FRArmTop
FRArmDir
FRSusp
RLArmBot
RLArmTop
RLCardan
RLSusp
RRArmBot
RRArmTop
RRCardan
RRSusp
PlaceHolders
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 http://files.maniaplanet.com/tools/NadeoImporter.zip , 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