Categories
Development High Stakes Tutorials

Reworking cars from an old “Need For Speed” title

Yes, you are absolutely right if you begin reading this and instantly think “why should I rework it – there are tons of blueprints or ready-to-buy (or even free) versions of the cars all around the internet”.

That is in fact true, but now for all the so called fantasy cars that exist within the nfs-franchise, mainly in the first four releases.

Chronologically I should start here with recreating the “Warrior PTO/E2” from the very first “Road & Track presents – The Need for Speed”. But as I did not (yet) find a way of converting the NFS1 car models to somewhat nowadays processable format, I am starting with the FZR2000 from NFS2(SE).

FZR2000 from “Need For Speed 2 Special Edition” – Source and Copyright Electronic Arts

Converting from old file format to new file format as preparation

Converting the car from NFS2SE to NFS2.

For some reason the car file format in NFS2SE differs from the ones in NFS2. So, as the car editor only supports NFS2 file format, the first step is to convert it back from NFS2SE to NFS2 as I only own the SE-version of the game.

The conversion process itself is very easy and basic and can be done with a simple tool named “CarEditor” by Mike “Thommson”.

Once the program is started, just oben “NFS2SE” car, select the “futr.geo” and save it as NFS2 car somewhere in your file system

Dont bother the messed up geometry, I do think this (and most) NFS tools are not designed to work on the Windows NT (or in my case Windows 11) system in any way.

Convert the NFS2 car to NFS3

The next step is even more easy, but yet also buggy. You need to convert the NFS2 car file to NFS3. This is done by using the DOS command line tool “car2nfs3”, also written by Mike ‘Thommson’

The use here is simly easy, just copy the futr.geo (from the step above or from the non-SE version of NFS2) and futr.qfs (from the gamedata folder) to the folder where the binary of car2nfs3 is located.

car2nfs3 futr.geo futr.qfs car.fce car00.tga

this promt will convert the car and texture file to the nfs3 formats.

Convert the FCE file to 3ds

Now, the next step is already getting the .fce geometry file into nowadays file format “3ds” using the old(!) version 1.07b of the Zanoza3d Modeler, as version 2 and higher do not support nfs3 and nfs4 file formats.

Damn, what did I miss this software, and on the same time not. Comparing it to nowadays workflows all those tools are really a pain regarding the usability and stability. Don’t get me wrong, I really love that they do exist and did exist back in those days where I started modding and modelling, and I am so thankful towards the autors and pay them as much respect as I can, but the tools have improved in the last years and so have my workflows, and it really feels odd to use those old tools in 2023.

Now, having the .fce file in z3d the geometry can finally be exported to 3ds – meaning it can now be imported to Blender, 3D Studio or whatever tool you prefer to use.

Kind of impressive how lowpoly the cars have been back then right? I mean, look at those “wheels”.

Texturing

As within the conversion process the texture(s) of the car have also been converted you “just” need to flip them once vertically as for some reason the UV coordinates are upside down.

Mind: The screenshot already shows an optimized mesh with reworked wheel arches and wheels and a repainted a-pillar.

Welding

As for some reason the converted meshes are not featuring welded (connected) vertices anymore this needs to be done (by pressing A-key in the edit mode in blender and then selecting the weld modifier).

The result after all conversions

Once the textures are applied and all vertices are welded back together we now have a solid base as blueprint for reworking the model.

Reworking

Having the old original model as base, together with the only two artwork-images exisiting the process can finally start.

Categories
Development High Stakes Tutorials

How to convert a NFS3/NFS4 Track for use in Blender, 3D Studio and/or Unreal Engine (4)

Requirements:

Additional Tools

  • NFS3/NFS4 FRD Track Editor (to view tracks originally) [download here]
  • Photoshop, Affinity or similar gfx tool

Step 1 – Convert the track file from .frd to .lwo

The first tool you need to use is “frd2lwo” – this is a light weight gui-based tool to convert frd-files (nfs3/nfs4 native track file format) to lwo (lightwave object).

The tool right after first start

As easy as it can be, click “open” and locate your .frd-file.

Select the Tr.FRD of the track you want to convert

Select the file and once again click “open”

Once the conversion process is completed, you will kindly be asked to exit the tool.

Now, if you browse to the source folder of your .frd-file you will now find a new folder “LWO” containing all the .lwo-converted files of the original track.

Just like in the original frd file each block has been converted to a single .lwo file.

Meaning: the longer the track (the more blocks it has) the more files you will get, yay.

Step 2 – preparing track textures

If you would like to skip this step – be warned, the LWO is always prompting an error for each missing texture piece.

Although we won’t be able to create all textures in the following process, we will reduce the amount of missing textures alot.

Reading this tutorial you might be into NFS-modding and maybe aware of where to get the textures from. If not, I will gladly tell you.

The textures of NFS3/NFS4 tracks are stored within the .qfs-file. QFS is a sort of container format containing all textures, really weird.

Step 2.1 – QFS2FSH

The first step is to convert the .qfs-file into a fsh-file. Therefor we need the tool qfs2fsh – this is a command line tool.

The basic syntax is

qfs2fsh source.qfs target.fsh
e.g. qfs2fsh tr0.qfs provinggrounds.fsh

You may want to copy the .qfs into the place of the binary, I think

Step 2.2 – FSH2BMP

The second step is to convert the .fsh-file into tga-files. Therefor we need the tool fsh2bmp – a part of the QFSSuite – this is a command line tool.

The basic syntax is

fsh2bmp source.fsh TARGETFOLDER 
e.g. fsh2bmp provinggrounds.fsh BMP

You may want to copy the .fsh into the place of the binary, I think.

If you are using Windows in 64 bit version you might need to run qfssuite, at least for fsh2bmp in a dosbox or similar.

And you finally have all single textures as BMP

Step 3 – Getting the LWO-Files in blender

Once you have converted the track to LWO you want to start blender and activate the lwo-import plugin.

Now you could import one block after the other for the whole track..

Or you may use the lwo mass import script for blender

import os
import bpy

# put the location to the folder where the objs are located here in this fashion
# this line will only work on windows ie C:\objects
path_to_obj_dir = os.path.join('F:\\', 'test')

# get list of all files in directory
file_list = sorted(os.listdir(path_to_obj_dir))

# get a list of files ending in 'obj'
obj_list = [item for item in file_list if item.endswith('.lwo')]

# loop through the strings in obj_list and add the files to the scene
for item in obj_list:
    path_to_file = os.path.join(path_to_obj_dir, item)
    bpy.ops.import_scene.lwo(filepath = path_to_file)

Of course you need to adjust the path_to_obj_dir with your drive letter and folder structure, and bare in mind that you need to escape the “\”-character like \\this\\is\\a\\folder

And then, click “play” – this may take long and sometimes blender will crash, which can be related to a specific block. I could not find any reason, but I just try and error with removing files from the batch import folder until it is working.

You also may want to check if all blocks are imported correctly as there might be any gaps.

TIP: If you keep on encountering errors while importing or opening even one single .lwo file, try to get another version of the track you want to import as there may be faulty blocks.

Finally, you have all the track data into blender – one step further of having the good old track information in somewhat up-to-date file format. I suggest to save the .blend project right now, just in case.

Looks familiar, huh?

Anyway – within the import process – I would suggest to save the blender project each time possible, as using all this tools is very fragile.

But, where is my textures?

Well, at first, they are there! At second, you have to enable the viewport texture mode

Third, they will look odd, or I totally cannot remember the rusty springs scenery decorated in tons of advertising papers

Imported NFS1 Track "Rusty Springs" - Detail view.

I think that is due to an offset between the numbers in the original QFS file and the export process, but till now I was not able to figure that out.

Anyway, for my personal futher process, the original texture are not really mattering.

So, for me, the next step is uniting the single blocks to one single mesh, in blender you can just press the A-key, and then CTRL+J, and you got one single mesh.

By the way, you can downlod the Rusty Springs blend-files (blocks and united) right here, together with the exported LWO and BMP textures as a zip-package.

Step 4 – Export the Mesh

Right now it is time to export the mesh – for me, I choose the .fbx file for further usage, but your choice might be different depending on what you want to do next.

Step 5 – Further processing

This step is totally individual – I will process the file I created within the unreal engine, you keep reading here.