Quick tutorial on how to import protection models. Once you understand the logic of MXB, you will be able to mod everything. Trust me, it's the same procedure all the time.
Table of contents:
Create a new folder in
modsriderprotections and call it whatever you want
Get the stock neckbrace files (just so you have it all in one place)
rider\protections\neckbrace and move the content into your new folder you just made
and rename the
neckbrace.ini to the same name as your folder (in that case
rider.zip back to
MyCoolProtection.ini and change the
name = entry to the display name of your mod (in that case My Cool Protection)
Your files are prepared, start the game and you will see a new entry in the protections tab.
No, we're not talking about the Honda Racing Team nor the rockwell hardness of materials. .HRC files are the files which PiBoSo games need to know which model should be taken when, that said: it controls the visualization of a model, switches to a different model on distance (LODs) for performance saving.
The CFG files are general configuration files, in that case it's GFX.cfg which "only" tells the game which graphical configuration the item needs.
Both files can be opened with notepad (double click and select Notepad, or right click - open with - Notepad).
The GFX.cfg tells the game which quality model it should take. Since we have the possibility to use HRC files for LOD controlling, we stick to it.
The neckbrace.hrc has a bit more content. Level0 - Level2 is the Level of Detail and the
switch = tells the game when it should switch from LOD0 to LOD1 or LOD2. That said, our best quality model switches at 0, so when close up we see the highest quality option of our model, whereas level1 and level2 switch at 20 or 80 and visualize a lower quality model in order to save performance and the need of unecessary calculations of details, which you can't see in distance anyways.
For this tutorial we're not going to use LODs and we will rename the HRC and change contents of both.
protection.hrc (this is not necessary but I feel comfier that way, since sometimes you won't do neckbraces but full chest guards or similiar).
protection.edf (where the EDF comes from explained shortly)
Open the GFX.cfg and change
I use Blender for this but it should work with any 3d modeling tool you know.
First I start by creating an empty with plain axes (it doesn't matter) at 0 0 0.
I use an empty as parent in order to keep things better organized, do how you like.
Since I don't have a proper model, I simply create a Torus to show you how things work.
I resize it to something that's obviously a bit smaller than the default Torus.
Rename the Empty to
protection and parent the Mesh (shift + left mouse drag) to the Empty.
Prepare your model and assign materials to it and for a first test, simply hit
File - Export - FBX and change the
Path Mode to
Absolute. This works more often and with less errors for me than Copy. Sometimes I use Copy first to store all my textures into one folder, but afterwards I replace the textures with the ones of the .fbm folder and export it in Absolute Mode again.
Save it in your source folder.
Now we need to open FBX2EDF
There we click on
Load and select our exported
Then we need to create a new text file and rename it to
export.ini and paste the code into it.
Don't worry I got you, download it here. (or take a look into the example zip on top of the tutorial)
or copy that:
[Hierarchy] split = 1 rotation = 180 90 0 protection = FullPathToSourceFolderOrTheItemsFolderToSaveSomeCopyPaste\protection.edf
Then we have to paste the full path to the export.ini into the
We have nothing to recalculate but keep that in mind: always use recalculate
Wait for the Ending Log message
Et voilá, your FBX has been converted to EDF and is now usable in the game. Move the .EDF into your protection's folder and replace it.
While making screenshots I've used the source folder at first, but I changed the path in the ini to use the MyCoolProtection folder instead, so I don't have to copy paste it everytime. You will convert it some times more. Many times more.
So this obviously looks wrong. The default rotation in the export.ini is not correct, as Blender and MX Bikes have some axis flipped (Blender Z is MX Bikes Y most of the time).
We're going to change the rotation values in the export.ini to these, leaving the blender source untouched:
Save the export.ini
Bingo. Now we need to find the correct Z in Blender. Only move the mesh, not the parent! MX Bikes will decide where the parent
protection will go to, because we said in the
protection = the thing to move. Since the mesh is parented to the empty
protection, it will automatically be moved with it. That said, your empty will always get moved to the rider's initial protection coordinate which is somewhere in his stomach.
Rescale the mesh, move the mesh and we should be good to go.
That looks fine.
I've used a Z location of , that should to the trick so far. And I've also rotated the mesh by 25° in Y, but this depends on the initial model.
Ignore the blue and green arrows, they should only help to understand we're talking in 3d coordinates.
The red arrow is the actual Z of blender, moving the mesh 0.2m into Z+, we're somewhere at the rider's neck, exactly where we wanted to be.
Finding the perfect spot is a hit and miss and you have to test it step by step, rescale the mesh, move the mesh, export, convert, reload the protection in game (simply switch protections, there's no need for a reboot of the game!) and move on.
This is basically how importing a simple model into MX Bikes works. The same system is being re-used for boots, helmets, cameras, bikes ect., sometimes there's more dependencies needed, but all in all this is the first steps.