DOCUMENTATION RELATED
Since it already exists an official documentation coming from Developers theirself, here i will list those concerning all around the import.
Refresh the page, if the web page is empty, sometimes, it doesn’t load it.
Some pages, if you visit their whole documentation, are still underconstructions, a message will inform you.
Official Maniaplanet Documentation
https://doc.maniaplanet.com/customization/importer
https://doc.maniaplanet.com/customization/importer/import-a-character-skin
https://doc.maniaplanet.com/customization/importer/import-an-item
https://doc.maniaplanet.com/customization/importer/import-a-mesh
https://doc.maniaplanet.com/customization/importer/import-a-font
https://doc.maniaplanet.com/nadeo-importer/getting-started
https://doc.maniaplanet.com/nadeo-importer/import-a-mesh
https://doc.maniaplanet.com/nadeo-importer/how-to-make-a-specularmap-diffusemap-for-objects
https://doc.maniaplanet.com/nadeo-importer/how-to-make-a-normalmap
https://doc.maniaplanet.com/nadeo-importer/how-to-set-up-custom-lights
NadeoImporter : http://files.v04.maniaplanet.com/setups/NadeoImporter_2019_10_09.zip
Convert Assistant : http://vinummusik.de/Maxi031/ConvertAssistant/Download.html
GETTING STARTED
I’m autodidact about it, i learnt at the beggining thanks to a video tutorial from the player “Kana”.
In parallel, i learnt at a certain level Blender which allows to create your own 3D model.
I mainly did Items and Lights even if i would like to know more about Skins for example but i’m really laking of time.
I will not really explain the whole method to do an item here, maybe later in the futur and in a video.
It exists already some tutorials about it, that you can find in Tutorial Listing.
Import stuffs on Maniaplanet is pretty large, it’s a full domain, people at video games are paid to work at that.
So it would be too long to explain how a 3D software works for example.
The best for you would be to start slowly yourself.
Understand what we can get from the game, read the Maniaplanet documentation, watch tutorials, download and install at the right place files.
It will already save you time to start by being organized.
First of all, you have to download the Importer and Sample files from Nadeo. And put them where they recommend it.
After that, you can download Convert Assistant. And put where you want in your computer, i personally put it in Users\Documents\ManiaPlanet.
At this step, you have to link Convert Assistant to Nadeo Importer.
CONVERT ASSISTANT
Convert assistant is a tool developed by the community, that i personally always used, and which allow you to save time at the importation process, when you have to convert a .fbx file for example to a Nadeo one like .Item.Gbx
It has a better interface than Nadeo Importer and allows to import tons of files with a few clicks.
So normally, when you open it for the first time, it should ask you about to find and select Nadeo Importer, so if you followed properly the previous step, you should reminder where Nadeo Importer is findable.
If you missed to select it properly, in Convert Assistant just go to Options > Change Importer Location then select it again.
Now click to “Objects” menu then check “Overwrite Item xml” and “Overwrite Mesh xml”.
In Convert Assistant, 2 folders are important to know, meshParamTemplates and xmlItemTemplates.
If you look directly in Convert Assistant, you have 2 selectable menus Item xml template and Mesh xml template, those are directly links with folders ennounced previously.
You can already see that some .xml are available like for example DefaultTemplate for Item, LinkedMaterialTemplate for Mesh.
From the Sample folder that we downloaded before, we will get more .xml
You have to check what it interests yourself, you can take them all, is it as you want. Then put them into the right Convert Assistant folder.
Restart Convert Assistant, then you should see them appear in the selectable menus right now.
Convert Assistant is now ready with a list of existing .xml samples as start.
XML FILES from HelpTips.txt
I drop you here the HelpTips.txt from Convert Assistant concerning the item xml files
You don’t have everything here, you should look for the proper section for that
item-type-(Text:StaticObject, DynaObject) This is type of item you are converting, or use $Type and convert assistant will do it
item-collection-(Text:Common, SMCommon, Storm, Canyon, Stadium, Valley) Here you write the name of the game this item is for, or use $Collection and convert assistant will do it
moveshape-type-(Text) Put mesh here
moveshape-file-(Text) Here goes location of the shape file created previously with importer, or use $ShapeFile and convert assistant will do it
mesh-file-(Text) Here goes location of the mesh file created previously with importer, o ruse $MeshFile and convert assistant will do it
gridsnap-hstep-(Number) This is how many X steps to take when moving item in editor
gridsnap-vstep-(Number) This is how many Y steps to take when moving item in editor
levitation-vstep-(Number) This is how many Z steps to take when moving item in editor
levitation-ghostmode-(true,false) allows to place your item anywhere in the mapeditor avoiding any collisions with existing block
options-manualpivotswitch- (true,false) no need to explain
pivot-position-(3 Numbers separated by space) x z y location of the item pivot, item is positioned at mouse cursor based on this pivot, and rotated around it
DYNAMIC ITEM
In that example, we will use the SampleArmor from NadeoImporterSamples.
So get the SampleArmor.Item.xml and put it in xmlItemTemplates folder coming from Convert Assistant.
Do the same for the .Mesh, put SampleArmor.MeshParams.xml to meshParamTemplates
The SampleArmor.FBX is your model file, that one is used to be droped directly into Convert Assistant for the importation.
You can try it, then press the “Convert Button”.
Be sure than the “More Info” button be displayed.
The 3 first line should be Green which means, no error at this point, but the last 4 th line should be Red. So here there is an error that they never fixed.
Let’s go to fix it !
You have a button aside of each .xml , it open the file for all eventual editions.
Don’t forget to save after each changes.
So we will edit first the SampleArmor.Item.xml :
at the line <Mesh File=”Meshes/SampleArmor.Mesh.gbx”/>
change to <Mesh File=”SampleArmor.Mesh.gbx”/>
You can try now, to Convert again, and everything should be green, which means, the Item has been imported with success.
You can check it ingame if you want, but not everything is perfect. The icon will not appears.
So what is advice you is to have that :
MAINFOLDER | SUBFOLDER | SUBFOLDER |
YourFolderItem >>> | Icon Folder >>> | the .tga icon |
Texture Folder >>> | all .tga textures | |
the .fbx file |
With that order, Icon and Texture will work properly.
Try yourself with the SampleArmor as example.
If you want to know a bit more about the Item.xml, you should check that official page > https://doc.maniaplanet.com/customization/importer/import-an-item
How it goes with Blender ?
You can check and learn from the .fbx sample file.
For that, open Blender, then import the .fbx
If you develop level of your Object, you will find the _TDSNI_Armor Material
_TDSNI_ here is model of material used TDSNI. You can find each texture of it in the Texture Folder.
The name “Armor” just after _TDSNI_ is important to name it as your texture.
By using the prefix of the Material, it avoid you to declare it in the mesh.xml
In case in the .fbx file, the name of your Material is for example Armor without the prefix, you will have to declare in the mesh.xml
Look at the section TAGS & ATTRIBUTES MESH.XML for more information about Materials / Textures.
TAGS & ATTRIBUTES ITEM.XML
Here you have all Tags & Attributes coming from the official documentation for the Item.xml and concerning Dynamic Item.
- <Phy>
- <DynaPointModel> : this tag allow the object to move according to the “point dynamics” (a ball not rolling).
attributes :- Center : relative center of the dynamic point
- Radius : fake ball radius in meters
- Restitution : restitution coef, between 0 and 1
- Friction : friction coef, between 0 and 1
- GravityCoef : coef to make objects fall faster or slower
- <DynaPointModel> : this tag allow the object to move according to the “point dynamics” (a ball not rolling).
-
- <TriggerShape> : the shape (currently AABB only) that will be used for object interaction. when a player touches this box, a event will be sent to the script.
- Type : currently only AABB
- Min : min coord of AABB (in case of AABB)
- Max : max coord of AABB (in case of AABB)
- <TriggerShape> : the shape (currently AABB only) that will be used for object interaction. when a player touches this box, a event will be sent to the script.
- <Vis>
- <Mesh> : the displayed mesh.
- File : the mesh filename. ex : <Mesh File=”SampleArmor.Mesh.gbx”/>
Tips : Is it possible to call it <Mesh File=”$Name + .Mesh.gbx”/> , in that way you will never be concerned to change it yourself, it will automatically get it from the name from the .fbx
- File : the mesh filename. ex : <Mesh File=”SampleArmor.Mesh.gbx”/>
- <Mesh> : the displayed mesh.
-
- <LightBallSimple> : a simple light following the dynamic object.
attributes :- Radius : radius in meters
- sRgb : color in sRgb
- Pos : relative position of the light, vector in meters
- <LightBallSimple> : a simple light following the dynamic object.
-
- <LocAnimSimple> : simple rotation+translation animation (used for pickups). attributes :
- RotPeriod rotation period in milliseconds
- TransPeriod translation period milliseconds
- TransY translation distance in meters
- <LocAnimSimple> : simple rotation+translation animation (used for pickups). attributes :
Example from the SampleArmor Item.xml (A pick up Armor Item Rotating)
<Item Type=”DynaObject” Collection=”SMCommon” AuthorName=”NadeoSamples”>
<Phy>
<TriggerShape Type=”AABB” min=”-0.4 0 -0.4″ max=”0.4 0.8 0.4″/>
</Phy>
<Vis>
<Mesh File=”SampleArmor.Mesh.gbx”/>
<LightBallSimple Radius=”2″ sRgb=”0 1 0″ Pos=”0 0.3 0″/>
<LocAnimSimple RotPeriod=”1000″ TransPeriod=”1000″ TransY=”0.1″/>
</Vis>
You have also access to Placement parameters, which are general Tag and Attributes, not only for what we learn, i invit you to check the chapter 3 of that page https://doc.maniaplanet.com/customization/importer/import-an-item
TAGS & ATTRIBUTES ITEM.XML
I don’t know exactly why, and until where the relation between item.xml and mesh.xml is possible but you have to know that you can have a dynamic item, with a static mesh.
From tests i did, while you item is dynamic, you will not have any collision, you will only have the triggering box that you have declared.
The fact to have the possibility to use a static mesh allows to have more Materials available like the TDOBSN, which allows you to have Transparency in your item.
I tested myself TDSNI as dyna mesh, which say in the official documentation, we can have transparency but it never works for me. So just try “Static” instead of “Dyna”, you can look lower which materials are available to you.
That’s also a reason why i’m sharing you here tested that i did. I spend many times to figure out what is working or not, even if i didn’t test everything. Only for what i was working for.
Static items are the most simple to create, but here the real capital gain is we are able to have a Dynamic Item with a transparent mesh, a triggering area for any events from the code which is nice.
Summary of Textures available :
Diffuse : {BaseTextureName}_D.tga 24bits, RGB (32bits binary alpha if using Opacity)
Specular : {BaseTextureName}_S.tga 24bits, FIE (Fresnel, Intensity, Exponent)
Normal : {BaseTextureName}_N.tga 24bits, NxNyNz
SelfIllum : {BaseTextureName}_I.tga 24Bits, RGB (selfillum)
Energy : {BaseTextureName}_E.tga 24bits, greyscale (0=> no energy 1=> full energy) (colorized by gameplay)
TeamMask : {BaseTextureName}_M.tga 24bits, binary mask (black => not colorizable, white=>colorizable)
Dynamic mesh material models :
TDSNI : Diffuse / Specular / Normal / SelfIllum
TI : SelfIllum
TDSNE : Diffuse / Specular / Normal / Energy
TE : Energy
Static mesh material models :
TDSN : Diffuse / Specular / Normal
TDOSN (100% or 0% Opacity) : DiffuseOpacity (alpha channel needed) / Specular / Normal
TDOBSN (All % Opacity possible) : DiffuseOpacity (alpha channel needed) / Specular / Normal
TDSNE :Diffuse / Specular / Normal / Energy
TDSNI : Diffuse / Specular / Normal / SelfIllum
TDSNI_Night : Diffuse / Specular / Normal / SelfIllum (night only)
Character mesh material models :
TDSNEM :Diffuse / Specular / Normal / Energy / TeamMask
TE : Energy
TDOSN (100% or 0% Opacity) : DiffuseOpacity (alpha channel needed) / Specular / Normal
TDOBSN (All % Opacity possible) : DiffuseOpacity (alpha channel needed) / Specular / Normal (i personally didn’t test it, but it probably works)
TDOS : DiffuseOpacity (alpha channel needed) / Specular
MATERIAL PHYSICSID LIST
I invit you to look to the chapter 3.2 of the official documentation to have the list of Materials available :
https://doc.maniaplanet.com/customization/importer/import-a-mesh
TUTORIAL LISTING
Tutorial “Create a Character” series by Benjiken
Create a Character #1 – Importing a Character
Create a Character #2 – Texturing and Materials
Create a Character #2.1 – Editing Textures in GIMP
Create a Character #3 – Rigging and Painting
Create a Character #3.1 – Modifying a Rig
Create a Character #4 – Exporting
Create a Character #4.1 – Animations in MotionBuilder
Tutorial “Custom Items” series by Crash
Custom Items | #1 Preparing
Custom Items | #2 Ingame Material
How to make “custom items” in with Blender by Kana