Join the NFS5 modding discord server for help and general talking!
Step 3: Unzip the toolpack, you should see something like this:
You need to install the CRP filter for Zmodeler 1.07b, which is located in nfs5 toolpack\Modelling.
All you need to do is copy the contents of the System32 folder to this directory if you are on a 64 machine: C:\Windows\SysWOW64.
TIP: if you have a hard time seeing the screenshots, right click on them and press "open picture in new tab".
Once you are done setting up zmodeler, choose the car you want to make.
There are a couple options: making your own models or converting models from other games to nfs5.
If you want to make your own models, or want help with learning zmodeler here is a great tutorial: http://www.zmodeler2.com/docs/program/fulltutor/intro.html
If you want to do conversions from other games - mod websites are a great place to find them. I recommend using NFS4 mods, since they usually have a similar polygon count to regular NFS5 cars, make sure to use a good model that doesent look too boxy or very pixelated. Make sure the exterior and interior is connected nicely!!
BEWARE: some of the models interiors can be very low poly, so check that, dont be like me.
(Make sure to get in contact with the creator of the mod OR if the mod creator is no longer on the internet, credit them.)
BEFORE BETTING STARTED: I highly advise people who havent used zmodeler to READ THE HELP FILE by opening zmodeler, clicking on HELP on the top of the screen, then reading the About Zmodeler, Getting Started, Interface Overview, Files and Filters and Working in Zmodeler sections.
Step 1: Once you have gotten the car that you want: you need to extract the model, which is simple when it comes to NFS4 mods.
You have to install NFS Wizard, which you can get here: https://www.nfsaddons.com/downloads/nfshs/tools/2857/nfs-wizard-v05079.html
Step 2: Extract the zip file of the NFS4 mod car, then open NFS Wizard.
Step 3: Open the .VIV file inside the extracted folder with NFS Wizard.
It should look something like this:
The 3d model files are the .FCE files.
We only need the CAR.FCE and CAR00.TGA file which we will need later.
Step 4: Go back to NFS Wizard, left click on CAR.FCE, then export it to the export folder template. Do the same for CAR00.TGA.
Step 5: Open Zmodeler and import CAR.FCE.
Say press no when it asks to load damaged parts.
Step 6: Go to the side of the screen and press:
Select/All
Then right click, the car should become red.
Step 7: Go to the right of the screen and press:
Modify/Mirror, this will mirror our car, go to the top of the screen, press H (horizontal), go to the bottom right of the screen and press SEL (selection).
Once you did that, hover over the RIGHT view and click, the car should mirror itself horizontally.
Step 8: Go to Modify/Reorient and click on any view, this is to reorient the polygons the right way after mirroring.
Step 9: Go to Modify/Move, press V (vertical), go to either the RIGHT or FRONT view and drag the car upwards until the bottom of the wheels touch this axis, dont be afraid to move the views around or zoom in to get it right.
Step 10: Because zmodeler does not mirror the axis together with the car, you will have to select every single object, click SEL, go to Display/Local axis/Reset, then clicking on any view, goign to Display/Center axis and clicking again.
The CRP filter for Zmodeler uses these object names:
body (the main body of the car)^
hood (the hood, move the local axis and the hood will open around this point in the game)^
trunk (the trunk, move the local axis and the hood will open around this point in the game)^
interior (the interior, typically mapped to Int_1 so it's not shiny) (optional for cars without interior)
doorL (The RIGHT door, the game flips everything horizontally, so doorL is actually the RIGHT door)^
doorR (The LEFT door, the game flips everything horizontally, so doorR is actually the LEFT door)^
wheelFL (The FRONT-RIGHT wheel, the game flips everything horizontally, so wheelFL is actually the wheelFR)
wheelFR (The FRONT-LEFT wheel, the game flips everything horizontally, so wheelFR is actually the wheelFL)
wheelRL (The REAR-RIGHT wheel, the game flips everything horizontally, so wheelRL is actually the wheelRR)
wheelRR (The REAR-LEFT wheel, the game flips everything horizontally, so wheelRR is actually the wheelRL)
Just put an underscord name after each of these, except for bounding planes, damaged parts and lights.
Example: body_rightmirrror, body_leftmirror.
Use the following chart to rename your parts:
Parts marked with the ^ sign can be named anything you want, these are just examples to avoid confusion. Parts marked WITHOUT the ^ sign must be named like the chart below, but can have anyting you want after an underscore. For Example, wheelFL can also be called wheelFL_main
:OS = body_spoiler ^
:HLFW = wheelFL
:HRFW = wheelFR
:HLRW = wheelRL
:HRRW = wheelRR
:OLB = disc1 ^ (I recommend deleting)
:ORB = disc2 ^ (I recommend deleting)
:ORM = mirror1 ^
:OLM = mirror2 ^
:OC = interior ^
:OH = driver_head ^
:OD = driver_body ^
:ODL = extraparts (or delete them)
:HB = body ^
If you see parts that are different from this just rename them to what they are, something like: body_spoiler
The object bar should look something like this:
We do not need the brake discs and driver, because CRP filter does not support drivers or brakes.
Step 1: Simply click on the drag selection tool on the top of the screen and delete the brake discs, make sure to be in polygon and selection mode.
For the front discs: simply delete them off the object list.
Step 2: For the driver: delete the head off the object list, then hide everything except the torso which is connected to the steering wheel.
Step 3: Go to the top view, select the wheel with the drag select tool, dont be afraid if you selected some of the driver, just click on Select/Single and deselect those polies.
Step 4: Now just go to Create/Objects and press Detach, click on any view (make sure you are in SEL mode), type in "steer" and press okay, you will now have 2 objects- the steering wheel and the torso of the driver, delete the torso and youre done.
Step 1:
Bounding planes are basically what interacts with the enviroment. They are planes with 2 polygons each, each bounding plane is an object.
Without bounding planes your car will just fall through the ground.
To get started, make a cube that fits around you car, do that by scaling it (DONT FORGET MIRRORS AND DEPTH!)
Once you are done, I like to copy the cube 5 times in the object bar, naming them each like this:
~right
~left
~top
~front
~back
~bottom
Once you have 6 cubes named like this, hide everything except one and remove all the polygons EXCEPT the side that the cubed is named after.
Do this for all cubes.
IF YOU SEE THE TIRES IN WHILE DOING THE BOTTOM PLANE, YOU HAVE TO RAISE THE CAR UP
Step 2: Once you are done- unhide the bottom plane and scale it so that the corners are in the middle of the tires, this will prevent skid marks from looking akward. If the rear tires are more out than the front ones, scale the rear vertices in the side view while in MUL mode until the vertices are in the middle of the tires.
Step 3: Move the bottom plane vertically until it matches up with the axis.
Step 1: Select your main body and start selecting the door 1 poly by 1 poly (make sure you are not in MUL mode). DONT MISS ANY POLIES, any polies you missed will float once you open the door in game.
Once you've selected the polies, just detach them.
REMEMBER: since NFS5 mirrors the models- you have to name the right door DOORR and the left door DOORL.
Step 2: Once you have done one door you have to do the other one.
Simply select the same polies, but on the other side, make sure you select the exact same ones, then its the same as the other door.
You can use a picture of the real car with its doors open as a reference.
Step 3: Select the interior and select all the door polygons, make sure you select every one.
Do this for both sides of course
Step 4: Fill in the gap between the interior and exterior. Make sure you have both the interior and exterior selected and in vertices mode. Go to Create/Faces/Single and connect these together. If they dont snap together, go to the top of the screen and press vertices snapping and no depth snapping.
Step 5: Select the polygons that you just created, detach them, duplicate the object, mirror it and reorient the mirrored object, this will mirror the object on both sides, then merge both objects to the interior, then go to Surface/Normals/Calculate and click on the interior.
Step 6: Select the interior in polygon mode, go to Select/UV Mapped, right click, then go to Select/Inverse and right click.
We want to UV map this, so go to Surface/Mapping/Assign UV and change one of the views to the UV mapper. Just find the colour of the rest of the interior and you should be good.
Step 7: Repeat step 4, 5 and 6, but this time fill in the gap between the interior and exterior doors.
Step 6: We want to make a hood, so start off by selecting the hoods polygons, then detach it and name the object "hood".
Step 7: You will be left with something like this: a hole.
We need to fill it in with an engine. You will have to add an engine texture to the car, so search for the engine of the car and create a 256x256 texture. If you plan to add a trunk, leave space for it as well. Save the texture as a 24 bit BMP so you wouldnt have to convert it later. Save the file in the export template folder in the INT_3 folder and replace the 0000.bmp file.
Step 8: Once you have a texture you can start making the engine. I like to make a simple plane and fill in the gaps. Make sure the engine plane doesent collide with the interior or other objects. You only need to do 1 side, then you can mirror it later. If the plane is on the floor, raise it with the move tool in vertices mode.
Step 8: Select your newly made polies, detach them, duplicate the object, mirror one side, reorient it and unite the 2 sides together, name the object something like int_engine. If it doesent mirror for some reason, save your car and reboot zmodeler. Once you did that go to Sufrace/Normals/Calculate and click on the object.
Step 8: Go to vertices mode, select your engine, go to MUL mode. Now unite the vertices in the middle by selecting them and pressing U on your keyboard, make sure both sides are red before pressing U.
Step 9: Add your engine texture to a new material and UV map the engine.
Go to the Material Editor, click on the default material, press LOAD on Primary Material and select your engine texture.
Now just go to the top view and UV map your engine. Make sure to have all polygons selected and SEL mode on. Dont be afraid to flip the object in the UV mapper to make things work. REMEMBER, CRP filter flips the model, so flip your UV map too!
Step 10: The trunk. Simply repeat steps 6, 7, 8 and 9, except this time with the trunk. Name your detached object "trunk". TIP: for things like logos, use the drag selection tool and hold the shift button. Make sure to load your new version of the texture in the Material Editor.
Step 11: Once you're done with everything, we need to make our doors, hoods and trunks to open nicely, right now with no changes the doors, trunks and hoods will open weirdly. All these things rotate off their axis, we need to change the axis' location so that everything rotates correctly.
First off lets do the hood and trunk, hide everything except the hood or trunk and go to Display/Local axis/Move. Now go to the side view and move your axis until its in the point from where the hood rotates (look at the picture for a reference)
Do the same for the trunk.
Step 11.5: If you have a spoiler or other object connected to the hood/trunk, use Display/Local axis/Copy, then click on the trunk/hood, then on the spoiler/other object.
(REMEMBER TO RENAME YOUR SPOILERS/OTHER TO HAVE HOOD OR TRUNK BEFORE THE NAME).
Step 12: Set the axis for doors. Do the same as for hoods and trunks, but this time go into the top view and set it there as well. I recommend doing the exterior door first.
Step 13: Copy and paste the axis from the exterior to the interior and mirror by going to Display/Local axis/Copy, hiding every object except for the things that are supposed to move, then clicking on the object that has the axis already set, then clicking on the object that does not have the axis set.
(REMEMBER TO RENAME YOUR MIRRORS TO HAVE DOORL OR DOORR BEFORE THE NAME).
Step 14: Copy and paste the axis from 1 door to the other, then go to the side view, select only the door that you copied TO, go to depth mode and move your axis in place.
Step 15: Repeat step 13, but for the other door.
Step 7: Select all your non- shiny parts, go to the Material Editor, go to EXT_1 and press Assign to selection.
Step 1:
NFS5 uses BMP files that have seperate files for alpha maps. .TGA files have both the alpha map and texture in 1 file, so you will have to seperate them, I will show you how to do this in photoshop.
Open CAR00.TGA in photoshop or your program of choice.
Step 2: Open the Channel viewer and hide every single channel except for Alpha 1.
Step 4: Once you have changed the colours, create a new 256x256 file, press CTRL+A on your modified alpha map, then copy and paste it onto your new file.
Step 5: Go to CAR00.TGA and delete the Alpha 1 channel, then save the image as 0000.BMP in the folder:
NFS5 toolpack\*your car*\mycar_00 EXTENV_1 and EXT_1
Make sure the .BMP is 24 bit.
Step 6: Go to your new 256x256 file where you copied your alpha map and set it to an indexed image, make sure you set the Pallete to Exact.
Step 7: Save your alpha map as 0000-a.bmp in the same folder as your main texture, make sure you export it as an 8 bit bmp.
Step 8: (optional if you dont have hoods and trunks): Open 0000-a in your INT_3 folder and fill it completelly with white (#ffffffffff) since we dont want interior colours in our engine and trunk. Then save.
Step 9: Create the .FSH files. Do this by going to any of your texture folders and opening index.fsh.
Windows will ask for a program to open .FSH files with, so go to: NFS5 toolpack\FSHTOOL and double clicking on fshtool.exe.
A window like this should pop up:
Just press enter.
Step 10: Create copies of mycar_00.fsh, mycar_01.bmp and mycar_03.bmp and replace "mycar" with the name of your car, dont use spaces.
Step 1: First we need to understand how materials work in this game.
Materials should be named in this format:
A_B
A- Material name. B- Texture number
Material names can be:
EXTENV (a shiny material usually used for the exterior of the car)
EXT (using a normal .TPG file, it uses the same texture as EXTENV, but with no shines)
INT (interior texture, same properties as EXT)
WHEEL (used for wheels, same properties as EXT)
WINDOW (used for windows, same properties as EXTENV)
An object cannot have more than 1 material, so lets seperate everything, starting with windows.
Select windows and detach them from the main body (ignore doors for now if you have seperated doors).
Name the object something like body_windows.
Step 1.1: If you have seperated doors: select one of the doors, select the window and detach it.
Name it something like doorr_window/doorl_window.
Step 1.2: Repeat step 1.1 for the other door.
Step 1.3: Go to Display/Local axis/Copy, click on the door, then on the window, this will copy the axis and will make the window move together with the door.
Do this for both doors.
Step 2: Select and detach any parts that are not meant to shine (things like the bottom of the car). Name the object something like body_underbody.
Step 3:
If you DONT have hoods or trunks: go to the Material Editor and create a copy of Textured Material: \car00.tga.
Name the default material: WINDOW_5, name one of the materials: EXTENV_1 and name the last material: EXT_1.
If you DO have hoods or trunks: go to the Material Editor and create 2 copies of Textured Material: \car00.tga.
Name the default material: INT_3, name one of the materials: EXTENV_1, name the other: EXT_1 and name the last one: WINDOW_5.
Step 4: Select Window_5, press on the car00 button, press Add, go to: the export folder template\WINDOW_5.
Create a copy of 0000.BMP and move it somewhere else, rename the copy and load it.
Step 5: Select both regular and door windows if you have them, go to the Material Editor, go to WINDOW_5 and press Assign to selection.
Now go to polygon mode, select all polygons, go to Surface/Mapping/Reset UV and click on any view.
Step 6: Go to Surface/Mapping/Assign UV, go to the front view, click and assign the UV in such a way that theres a gradient in the window.
Step 1: In order to make damage look good on your car, you will have to split the main parts of your car into pieces.
I like splitting the main body into 6 parts, each part will have a copy, with damage effects applied on it.
Start by splitting the main body using the detach tool. While selecting- make sure you dont select any parts you dont want deformed. Name the parts conveniently, so it will be easier later.
I don't recommend adding damagable roofs, since it will be hard to make them work because of the double sided interior lining.
Step 2: Create copies of every single piece you've split up and add a % under them
Step 3: The fun part :D
Warp your parts, just make sure you dont warp them too much, or else it will touch the interior.
I recommend setting all your interior parts to visible for this.
Step 4: Select your deformed parts and calculate the normals.
Step 1: Open the mycar_lights file in notepad. You will see a list of lights.
Step 2: Use this following code as a template to begin… it uses the format of a simple ini file.
Step 3: Set NumLights to the number of light definitions you have, and each light definition would be created with a new block with the name of the block as the name of the light definitions, i.e. [brakelights] in the above sample.
Info for each variable in a block:
Step 4: Create any object (cube, sphere, NFS4 dummy diamond, whatever) and set it's local axis to be the center point for the effect (this would be the center of rotation). Name the object as follows: "#effectname" (w/o quotes) where effectname corresponds to the name in the definition file (i.e. brakelights in the above example).
(If you set the light to "MIRRORED", make sure to put the dummy on the RIGHT side of the car.)
Step 1: Rename every instance of "mycar" in textures and light definitions to your desired name.
Step 2: Go to zmodeler, click File/Export, then set the file type to
NFS:PU CRP Models (.crp)
Step 3: Find your export folder and set the file name to what you named your textures and light definitions.
(e.g. if textures are named "car_00.fsh", file name should be set to "car"
Once you press save, a .crp file should appear in the export folder.
Step 1: Open the game and create a new save file with the name you want, then close out of the game.
Step 2: Go to the NFS5 toolkit and open the .sav editing folder and open carsuite (USE ADMINISTRATOR PERMISSIONS)
Step 3: Click on "DESTINATION" and find the .sav file you just created (usually in game folder/SaveData)
In this case the .sav is 8civic.sav.
Step 4: Click on "SOURCE" and open the .sim file with all cars in it (included in toolkit)
Once you're done, it should look like this:
Step 5: Click on the car that fits the car you're making the most and press the arrow button.
356 for slower cars, 4 gears
911 for sportier cars, 5 gears
914 for slower cars, 5 gears
944 for FR cars, 5 gears
964 for sports cars, 5 gears
993 for sports cars, 6 gears
996 for real fast cars, 6 gears
935/gt1 for MR cars, 6 gears
Step 6: Click on the car that in the destination folder and change the car year, name and other stats to what you want. (We will get to the shortened car model later).
Step 7: Click on "Files" and change the file names to the ones you named your .CRP file. We will get to logos later. Sound files, showcase and AIS files can not be edited, so I recommend not changing them.
Step 8: Save everything, close CarSuite and open Fileeditor, select your car and change the short name to whatever you want. Then close and press save changes. (USE ADMINISTRATOR PERMISSIONS)
Step 9: Copy your cars .crp file and a matching .tpg file to your carmodel folder (game folder/GameData/CarModel).
Use the supplied mycar.tpg or mycar512x512.tpg and copy them there, don't forget to rename mycar to the same name your crp has.
Step 10: Open your game, select the save with your car and search for bugs you can fix and fix them.
COMMON ISSUES: wheels having wrong axis, clicking on a door opens the one on the other side, interior and exterior is zfighing.
Step 11: Go to game folder/GameData/Simulation/CarData and create a copy of a cars performace file that fits your car the best (use the list in part 13, step 5) and rename the .sim file to the same name you set you .crp file. (USE ADMINISTRATOR PERMISSIONS)
Step 2: Go to the toolbox and open Sim Edit application. Once you opened the app, find your .sim file and open it.
Step 3: Ajust the performance stats to match the car you are making (use google for information about horsepower, weight, etc)
Make sure the numbers are the same lenght as the originals.
You can also use the power graph in Fileeditor to make your performace more realistic.
Just keep experimenting and testing until it feels right.
Step 1: Open the game, select your save file and test your car out! Check openable doors, trunks, hoods, check damage, colours, etc. Go back in the tutorial and check if you missed something if you see something is wrong. Consult the NFS:PU modding discord server for things you cant solve.
Step 1: Open carsuite and the save file with your car MAKE SURE TO SET IT AS DESTINATION and check if your car uses:
finallogos1
OR
finallogos2
(USE ADMINISTRATOR PERMISSIONS)
Step 2: Go to game directory/FEData/Art and create a copy of finallogos1.fsh or finallogos2.fsh, depending on what your car uses and rename the copy to whatever you want as long as it doesn't have spaces.
Step 3: Open your copied .fsh file with fshtool, check the folder it created and find the logo your car uses (you can find the logo it uses by opening the car in game) (if no folder appears, copy your .fsh to your destop or any non protected folder and open it using fshtool there).
Step 4: Open all image files you need in your texture editor of choice.
Step 4.1: You will have to split your logo into 2 parts and keep them the same resolution as the originals, so "count" how many pixels long the original pixtures are WHEN MERGED INTO ONE and create a new file with that resolution.
Step 4.2: Find the logo of you car on google and copy it into your new file (make sure it fits and is centered).
Step 4.3: Create a copy of your logo's layer and make an alpha map.
#000000 - transparent
#ffffff - not changed
Step 5: Split your logo in 2 parts and copy the parts into their respective original logos.
Step 6: Save your normal logo parts as 24bit bmps and your alpha maps as 8bit bmps (8bit bmps have to be indexed, check how to do that in your texture tool of choice)
Step 7: Open the extracted folder and click on index.fsh (after that copy the logo fsh to game directory/FEData/Art if it is not there).
Step 8: Open Carsuite again and select the logo fsh you just created and save.
MAKE SURE TO SET IT AS DESTINATION (USE ADMINISTRATOR PERMISSIONS)