Categories
Development High Stakes Tutorials

Importing a NFS5 PU track into Unreal Engine 5

Prequisites

Step 1 – Exporting the track

First you should open up your blender track project, in this case the “Industrial”-track from NFS5 (you can follow my guide and download the blender project here)

Then just go to file > export > fbx

Adjust the settings to your needs and export the track.

Step 2 – Importing into UE5

I already have setup up a basic vehicle game template I am using, if you don’t have any you can use the one shipped with the unreal engine or google up some tutorials, there are plenty.

First a new level should be created, I suggest to select “Open World” or “Basic” – I used “basic” for the following steps.

First of the floor static mesh (SM) can be removed as it is not needed.

Second a new folder, according to your track, should be created – I chose “industrial”

Navigate inside that newly created folder and click on “Import” right above the content browser

Navigate to the folder where you exported the .fbx-file to and select the correct .fbx-file, then hit “open”

In the following dialog window make sure you have selected “Create New Materials” within the “Material Import Method” so that the engine is creating the materials for you. Then simply hit “import” and sit back and wait.

This may take a while depending on how many objects your imported track has. Once its done you will find the imported geometry (static meshes), textures and materials in your content browser

First, now you should hit the “Save all” button to save the level and all imported assets, that will make alot of perfomance difference.

Once the saving process is done you surely want to have the track in your level, right? Okay, gotcha.

The easiest way is to apply a filter to your working folder, filtering for “static meshes” because within the whole texture-material-static-mesh-mess you simply don’t want to search for the SMs right?

Step 2 – Getting the track to play

As mentioned before, set a filter by clicking the filter-icon and selecting “static mesh”.

then apply the filter by simply clicking it on the left hand side (depending on your layout) of the content browser:

And all off a sudden you will see all the beautiful meshes you freshly imported, all textured and ready to use (the view might differ from mine as I sorted, grouped and united the track’s objects before to fit my needs)

Then all you need to do is press CTRL+A (to select all static meshes) and drag&drop it into the viewport above

And you have successfully imported the track to the unreal engine 5.

Step 3 – adjusting the collision

per default you would not be able to “race” the track right now as the collision settings would block you to do so. So the easiest way to adjust this is – as I do know you simply want to RACE THE TRACK – open the static mesh’s properties (one by one, by simply double-clicking it) and go to the collision settings:

In there you will find the setting “Collision Complexity” – just set this to “use Complex Collision as simple”

This will force the engine to use the mesh of the static mesh as a collision instead of creating a basic box around it – to make the difference clear on a smaller mesh you will see both, simple and complex collision on the following mesh:

green being the simple collision, turquise being the complex collision. In this case using simple collision would lead to not being able to drive through the crane.

Make sure to hit the save button as changing the collision preset is not saved automatically!

Repeat this step for all needed objects (depending on how many you have)

Step 4 – adjusting the size

This step can be very frustrating, but is mandatory. You need to get any reference point from the old game and transfer it to the new one to adjust the sizes – more or less, depending on how accurate you want it to be.

As I do not have yet a Porsche model ingame I am using the existing McLaren F1 as reference as well as some ingame shots from the original game.

First we take a screenshot of the starting lane and find the same spot in the unreal engine project

Once we found the spot we add our car as reference object

Now, for my good, it seems to be pretty well scaled. If you are not the lucky one to find the scaling right, just select all track objects in the level outliner (top right in the default layout) and adjust the scaling accordingly – attention, some math can be required (e.g. the original game screenshot car (911 GT-1 ) is 1990mm width, McLaren F1 is 1820mm width), so you could measure the actual ingame road lane width and transfer it to unreal engine using simple math.

Step 4 – adjusting materials

Gladly we have all needed materials ready, sadly they are all missing the alpha channel and, as the NFS5-Engine is dealing a lot of objects as two-sided, this setting is also missing and needs to be adjusted.

This is how to do it

First, detect the materials/textures that have an alpha channel and/or are two sided, e.g. signs, trees etc.

those for example are pretty sure having an alpha channel

Once you find the texture/material, double click the material (NOT the texture). The editor will open a new window, looking like this

In here, left hand side, change the “Blend mode” to “Masked” and check “Two Sided”

Then in the notes view you can now drag the A (for alpha) channel note to the opacity mask note

You will notice (depending on the texture) that there now will be transparent parts and the shadow will be calculated accordingly

Afterwards always hit APPLY first, then SAVE

repeat this step for all needed textures/materials. Knowing the original track/textures does help as well as flying through the track in the engine.

Step 5 – adjusting lightning

Of couse you could race now, but as you are tend to get the atmosphere right we should adjust the lightning and atmosphere – using – again – old ingame references.

Step 6 – race!