Converting your own wheels in NFS MW
Hi everyone. In this blog I'll tell you how to convert your own wheel pack into the game.
This method is better suited for replacing all wheels, but you can also replace only the ones you need (more on that a bit below). Shall we get started?)
1. Getting started
What do we need?
- NFS MW Modtools
- A geometry compiler for creating GEOMETRY.BIN plus sample models and the required files
- Zmodeler 1.0.7 (with the mwr plugin installed) and 2.0.8 (for importing GEOMETRY.BIN of the stock wheels)
- 3Ds Max, or another program for working with 3D models that can export to a format supported by Zmodeler (it's preferable to export to the OBJ format)
- Adobe Photoshop with the DDS plugin
- NFS TexEd
it's also desirable to have experience with models and converting cars into NFS MW
To convert wheels from other games you can do without 3Ds Max.
The DDS plugin for Adobe Photoshop can be downloaded from the official website
Setting up the programs:
Install photoshop and the dds plugin for it.
Install Zmodeler 1.0.7. Unpack NFSMW-Modtools. There you will see several folders; let's figure out what's stored in them:
- The zmodeler folder contains a filter for Zmodeler. It must be copied into the Filters folder of the installed program (only for version 1.0.7);
- The ferrari360 folder contains the example files of the Ferrari Spider 360 car imported by Arushan;
- The bin folder contains all the main programs used for importing new cars into NFS MW.
We'll only need the plugin.
2. Preparing the model
The game's wheel models are divided by categories (manufacturers), each category contains from 3 to 6 wheels, and each wheel in turn has 4 sizes: from 17 inches to 20 inches. Let's get acquainted with the names of the parts (wheels):
5Zigen wheels
5ZIGENSTYLE0*S25Q
* = from 1 to 5
ADR wheels
ADRSTYLE0*S25Q
* = from 1 to 5
BBS wheels
BBSSTYLE0*S25Q
* = from 1 to 6
Enkei wheels
ENKEISTYLE0*S25Q
* = from 1 to 4
Konig wheels
KONIGSTYLE0*S25Q
* = from 1 to 3
Lowen Hart wheels
LOWENHARTSTYLE0*S25Q
* = from 1 to 3
Racing Hart wheels
RACINGHARTSTYLE0*S25Q
* = from 1 to 4
O.Z. wheels
OZSTYLE0*S25Q
* = from 1 to 5
Roja wheels
ROJASTYLE0*S25Q
* = from 1 to 3
Volk wheels
VOLKSTYLE0*S25Q
* = from 1 to 3
S - this is the wheel size, from 17 to 20
Q - this is the level of detail, from A (the highest, with the most detailed wheels) to D (the lowest, with correspondingly less detailed wheels).
Example of finished names:

I strongly recommend making all sizes and levels of detail; if you don't feel like bothering but really want to show off, you can create a file xlink.txt and write the creation of copies in it, for example to create levels of detail (in this case all lods (levels of detail) will be copied from the highest one):
5ZIGENSTYLE011725B=5ZIGENSTYLE011725A
5ZIGENSTYLE011725C=5ZIGENSTYLE011725A
5ZIGENSTYLE011725D=5ZIGENSTYLE011725A
Or to create sizes (copying the model from a 19-inch wheel to an 18-inch one. In the game the wheels will be identical):
LOWENHARTSTYLE021825A=LOWENHARTSTYLE021925A
Materials
The material names for each wheel type must differ, to avoid one texture being applied to several different wheels. The name format depends on your imagination; the main thing is that it's convenient to recognize and assign materials. Names must consist exclusively of Latin letters, digits and the underscore sign . For example:
BBSSTYLE01RIM
TIRE
WORK1
work_paint etc.
To change a material's name or simply view the list of materials in Zmodeler 1, press the English letter E on the keyboard. A window like this will appear:

The wheel model must be positioned like this:

In the right or left view, the center of the wheel must coincide with the center of the intersection of the X and Y axes; in the top view, the outer edge of the wheel rim must touch the X axis.
There is also a limit on the polycount (number of polygons) of each part, i.e. one model must not have more than 22k polygons; if it does, the compiler simply won't compile GEOMETRY.BIN.
After you've finished working with the model, export it to the mwr format. Open the model in Zmodeler 1.0.7, click File - Export, choose a convenient place to save, enter a name and select the mwr format. Save.

Textures
Unfortunately, no way has yet been found to create your own textures.bin with your own textures, so textures will have to be replaced in the original file.
Each wheel model has 2 textures: the texture itself and a mask, like with vinyls, for applying paint:


Image 1 - this is the wheel texture
Image 2 - this is the mask. The white part is what will be painted in the game, the black part is what will remain untouched as in the first texture.
You can make the mask fully white (then the wheel will be painted entirely) or black (then the paint won't work).
The tire texture can be contained in the texture with the wheel or separately (for example, it can be imported into GLOBAL/GlobalB.lzc/2 archive/PC_LOAD). For such textures it's better to make the mask along the tire's contour black.
Saving and importing textures:
Textures must be saved in the format DDS ARGB. In the DDS plugin settings it looks something like this:

After you've saved the textures, we proceed to importing them into the textures.bin file. Launch the NFS TexED program and open the file /CARS/WHEELS/textures.bin. The program will load all the textures; select the one we need (for example, we want to import a texture for the RACINGHART_STYLE04 wheels), click Texture - Import and in the window that appears select our texture. Similarly for the mask (textures with the prefix _INNER, _INN and their variations). After importing, click Archive - Save. The program can be closed.

Note: Some textures, due to their long names, may not contain _INNER; it's quite easy to tell which is which: a black-and-white texture is a mask, a colored texture is the wheel's own texture. The main thing is not to mix up the textures!
3. Converting
Before directly converting the model, you need to prepare the text files matlist and xlink. We talked about xlink above, let's focus on matlist. matlist is a file in which the shader and texture are assigned to a material. Example:
FN01RC=REGPAINTBLACK/5ZIGENSTYLE02WHEEL
FN01RCPLASTIC=DULLPLASTIC/5ZIGENSTYLE02WHEEL
Let's figure out what's what:
FN01RC - this is a material in Zmodeler
REGPAINTBLACK - this is a shader for the material (to give it a particular effect). The full list of shaders can be found <a href="https://nfs.place/readarticle.php?articleid=160" target="blank">here, in the section dedicated to shaders
5ZIGENSTYLE02_WHEEL - the wheel texture in the textures.bin file
Note: For the paint to work with the ability to choose between matte, chrome or glossy finishes, I recommend using the MAGSILVER, MAGGUNMETAL or MAGCHROME shader for the wheel.
After creating matlist and xlink you can proceed directly to converting. Create a text file with the following contents:
@echo off
title "WHEELS"
echo =====================================================
echo Compiling Model...
echo =====================================================
mwgc -nowait -xname "" -matlist "matlist.txt" -xlink "xlink.txt" -source "1.mwr" -target "GEOMETRY.BIN"
pause
exit
Save it and change the format to bat. Run it and a window like this should appear:

After the line Press any key to continue... appears, press any key and the window will close automatically. Now GEOMETRY.BIN has appeared in the folder with the files. Copy it to the folder /CARS/WHEELS with replacement (make a backup beforehand). Launch the game and check the result:

Special thanks:
ASC - for the edited geometry compiler
ODiLiSk - for the car conversion tutorial
and also to everyone who helped create and test the wheel pack
This article is exclusive to NFS.PLACE!