Author Topic: Track Making Tutorial Full (by TheMask)  (Read 2457 times)

0 Members and 1 Guest are viewing this topic.


  • Da' Mackdaddy
  • Administrator
  • Hall of Famer
  • *****
  • Posts: I am a geek!!
Track Making Tutorial Full (by TheMask)
« on: September 25, 2008, 12:34:33 AM »
This is a full Nascar Heat track tutorial made by Oleg (TheMask). Oleg is probally the community's biggest guru when it comes to Heat editing.


This document is not a complete tutorial and not meant to be it, it is a guide which lists steps needed to put a track into NASCAR Heat in logical order, mentioning the tools that will be required along the process.

Track making in general can be divided into 2 parts:

1 . Creating tracks from scratch
2 . Converting tracks from other racing sims

Heat-specific track creation can be devided into 2 more parts:

3 . Creating track using Multigen Creator (MC)
4 . Creating tracks using MKFLT (DOS-based util)

Point 4 frees you from dealing with a 3D modeling program MC, making 3dsmax your main tool but also is a more time consuming way of track building, whereas point 3 make track creation easier and faster.

I will assume that the track already exists and that the task is to put it into NHeat.


No matter which method you choose, you will have to work in 3dsmax. If you're converting a track from SCGT then to bring it into 3dsmax you would need to do the following:

SCGT tracks are a collection of a few files, among which you will find several MAS files. All track geometry resides in a MAS file usually named as the track itself, e.g. Interlagos.mas , and textures for the track reside in a TracknameMap.mas file (e.g. InterlagosMap.mas ). So the steps are:

1 . Unpack these 2 MAS files using MASpuce utility. This will create a lot of single .VRL files.
2 . Convert all VRL files into a single WRL file using VRLtoVRML utility.
3 . Now this WRL can be imported into 3dsmax which is what you need to do.
4 . Delete all helpers and all untextured objects (usually huge vertical quad walls)
5 . Render the track and let 3dsmax know the location of all texture files (point it to the directory with all maps for the track).

If you're converting from F1x games then the procedure would be the following:

Just like with SCGT the main track files reside in MAS files (for geometry it's TrackName.mas, for textures - TrackNameMap.mas). The MAS format however is different.

1 . Use MAStudio's Mas2Files.exe DOS utility to unpack both MAS files.
2 . Put all textures and extracted MTS files into one directory (so that ZMOD could load them without any additional actions within ZMOD).
3 . Open ZModeler and import all MTS files into ZMOD using one of the F1x filters.
4 . Make sure all loaded textures are no longer than 8 characters in length (not necessarily for Heat but problems can arise when exporting from ZMOD and importing into 3dsmax).
5 . Now you need to export the track into another format so that you could load it in 3dsmax. There are two possible ways:
5.1. into .3ds (will generate one 3ds)
5.2. .VRL for SCGT (will generate lots of VRLs). Note: use this filter to export to VRL:
6 . If you exported into .VRL format then use VRLtoVRML utility to convert and roll all VRLs into single WRL file.
7 . Import either .3DS or .WRL file into 3dsmax (depending one what you had chosen).
8 .
8.1. If it was .3DS then use a script found here:
to process the track.
8.2. If it was .WRL then delete all helpers
9 . Render the track and let 3dsmax know the location of all texture files.

More detailed info on converting from F1x games can be found here:


Now if you are converting a track for Heat and it has elevation changes then most likely drivable surface needs rework. Of course you won't know if the surface is bad enough to redo it until you try it in game, so most likely you will skip reading this part and put it into the game for testing and then return to this chapter (which is how I usually do it, i.e. first test it and then go to 3dsmax to fix it). Not necessarily the whole track will be bumpy, if it's just one section then you can fix only that and leave the rest as is. To fix a road mesh means to delete old mesh, loft a new one and merge it into the scenery (which can be a long process). Apart from that, you need to get rid of as much holes as you can find. Usually there are at least a few. You do this by welding vertices and making sure there are no gaps between faces or overlapping surfaces.

Now you need to group all objects into a few groups. You need to make 6 standard groups (group names are not essential):

1) Road group
2) Grass group
3) Dirt group
4) Sand group
5) Curbs group
6) Misc group

there can actually be more/less than that, it depends on whether you have or don't have these objects in your track. Sometimes you'd want to create separate groups for trees because of the famous "halo" problem. Sorting objects into groups as shown above will make it much more easier for you to work with the track in MC. The MC's hierarchy plays an important role in NHeat. For example, with this hierarchy you can fix the "halo" problem simply by rearranging the groups in specific order (but these groups must be formed beforehand, i.e. in 3dsmax)...

If there are any sky boxes in the track, you can simply delete it because NHeat does the skies differently, i.e. you don't have to worry about the sky in 3dsmax at all. That of course is good and bad at the same time. Good because less work, bad because you can't really change the "mesh" of it; but you still can change its texture.

The groups with drivable surfaces such as 'Road' or 'Grass' are the most important groups. As long as they are the only ones which:
1) take up the whole time during MKWORLD conversion;
2) increase final TRK file size drastically
it is crucial to include only that mesh into the groups, which will be driven on. E.g., unlikely that you'll be able/allowed to drive behind the fence, so it doesn't make any sense to make the surface behind the fence drivable, even though you might have a wish to do that ... don't.

Once the groups are formed you need to put this track into MC for future work. This will require some exporting and importing.


1) Hide everything which you do not want to appear on the track (hidden objects do not get exported - note that this is plug-in specific);
2) Export the track into VRML97 (*.WRL) format. Set " Digits of Precision " to 6 and " Polygons Type " to Triangles .
3) Reset the scene;
4) Import the WRL file back into 3dsmax;
5) If there were any cameras in track, they were exported too (even if you hid them). Delete the cameras.
6) Render the track and make sure 3dsmax knows the locations of all textures. If it doesn't find some and you export it as is, objects will be white in game, even if you pack the textures for those objects into the final TRK file.
7) Create a new folder. It of course is not a must step, but the next step (8th) will generate a ton of files, so let's say if you export the track onto your desktop, then your desktop will be completely filled with files.
8 ) Export the track into OpenFlight (*.FLT) format into the directory you've just created. Select OpenFlight version 15.6 . All exported files are insignificant except the FLT of course, but do not delete them just yet, we'll need some of them in "Chapter 5 : Preparing and Converting Textures".

Now the file is ready to be loaded in MC.


1) First thing you'd want to do is arrange the groups in the hierarchy. I usually arrange them in the following order:
[road] -> [curbs] -> [grass] -> [sand] -> [dirt] -> [single trees] -> [wires] -> [tree lines] -> [miscellaneous] -> [undrivable surface]
2) Triangulate the whole track.
3) Match/weld vertices of all drivable surfaces. Set the tolerance to about 0.21 in the preferences.
4) All groups which you made in 3dsmax are reflected in MC too. Assign each group object and face codes.
5) Add S/F line.
6) Build AI path using Road Construction Tool. Once this is done, the track can be tested in game.
7) Build pit roads.
8 ) Build up hittable walls.
9) Add penalty traps if needed.
10) Add flagman if needed.

!!! I repeat, this is just a general guide, almost each of the above mentioned steps is a whole separate tutorial. Most of that you will find explained in the Lucky's tutorials available for download here:


I asked you to leave the files which were generated when you exported the track from 3dsmax into the FLT format. If you look into this folder, you will notice a lot of files with ATTR extension. You can delete these, they are not needed for anything. You now should be left with the textures and a couple of other files. We're interested in texture files only. The reason I asked you to leave the files in this directory is because very often. if not always, when you convert a track from another game in NHeat, original track includes a lot of textures some of which will simply not be used in NASCAR Heat for various reasons. When you export the track into FLT format from 3dsmax, 3dsmax copies only *those* textures into the directory with FLT, which are 100% used by the track and will be required by NHeat to display them. We don't need these "generated" texture files, but we will use them to make up a list of textures used in a track, it is the most precise way. So get this small util:
download, unpack and run it. Copy the path to folder with the textures and run it. The program will display all files which were found in the directory. If the were non-texture files in the directery, delete their names from the list. Finally, save the list as TXT file somewhere.

All textures should be square, e.g. 64x64, 128x128, 256x256, 512x512 or the largest possible in Heat - 1024x1024. A good manner is to use at least 512x512 textures for such "objects" as road, grass, skies, i.e. the ones which are visible all the time. It will simply make the track look nicier.

The textures have to be saved as 24-bit uncompressed TGA files (for non-alpha textures) and 32-bit uncompressed TGA files - for alpha textures.

To convert magenta based alpha channel texture to textures with real alpha channel, read this topic:

Then use WinResToolsWizard available on this site in the Downloads section to batch convert multiple TGAs to TEXs. Alpha and non-alpha textures have to be converted separately because of alpha flag.


Usually cameras are done in the very end, much like track images. To make the cameras you will need to return to 3dsmax, not because it's the only possible way, but rather because it's easier to do them there. In fact, Heat only needs locations and camera types from us, so basically even if you put a single vertex somewhere on track and put down its coordinates into a formatted file, that would be enough, but usually you'd use camera objects available in 3dsmax anyway. It's easy to manage them.

Additional information about camera types and how to manipulate them can be found in this topic:

As for track images, see this topic which explains all files related to track screens:


- all objects have to be textured;
- textures have to be square;
- if you're making a track MKFLT-way, then one object can't have two or more textures on it, i.e. Multi/Sub-Object is not supported by this util. However, if you're using MC, you can use Multi/Sub-Object material.
- templates are allowed to be applied to objects;
- don't use 3ds2mod.exe utility - use MGI MOD export plug-in instead;
- don't use mkflt.exe - use mkfltbh.exe instead, or built into WinResToolsWizard my updated version of mkflt, mkfltoa;
- one object cannot exceed 2048 polygons (4096 faces/triangles);
- the position of the track in MAX does not matter;
- the invisible/hitable walls have to be approximately at the same elevation as the track itself, for example, if the track's avg coordinate on Z axis is -26.0 then the walls should be approx -21.0 -> -31.0, because if you don't take that into consideration you will still be able to run off the track in nowhere. But that is more important for those who's building track without using MC, because when you build a track with MC, you can visually see where your walls are located, and you can easily move them up and down;
- all meshes have to be triangulated, you won't be able to put a track into Heat if it has quad meshes.
- if/when you make pits, make sure you have 43 Pit Stalls - not more and not less;
- SFLine must cross both AILine and Pit Path (if you have pits that is). This restriction is removed in my version of MKWORLD which is built into WinResToolsWizard.
- you can't export two objects with 2 or more different textures into MOD format. You have to export only those objects which have the same texture, but then again, they're overall polycount must not exceed 2048;
- When you use mkworld.exe make sure you have mktable.exe in the same directory as mkworld.exe, otherwise you'll get error;
- When running mkworld.exe make sure you have a directory named 'Out' in the same directory as mkworld.exe - 'Out' is the folder where mkworld.exe puts its generated files into;


Here's a list of tools which you'll need to make tracks for Heat and which will help you accomplish this task.

- 3dsmax R3 (there are certain plug-ins available which work only with this version of max. You can work on your track in any version of max, but then you will have to import it into 3dsmax R3 anyway, to export it to FLT format)
- Paradigm Multigen Creator (not a necessary 3D modling tool, but helps drastically)
- ZModeler (more than likely it could be used to even make tracks for Heat without the need to use 3dsmax or MC, but you will obviously use it as an intermediate tool to port the track from other sims into 3dsmax first. If you're a die-hard ZM user, just give it a try and see if you manage to put a track into Heat using just ZMOD. It can export to MOD format so I see no reason why it wouldn't be possible).
- FltExport.dle (Open Flight plug-in for 3dsmax R3 - needed if you're using Paradigm Multigen Creator)
- Modexp3.dle (MOD Export plug-in for 3dsmax R3 - needed if you're *NOT* using Paradigm Multigen Creator)
- mkworld.exe (Converts track geometry from .FLT format to Heat's own format [.GRF] )
- mkfltbh.exe (needed if you're not using Multigen Creator (MC). Used to combine .MOD files into one .FLT for mkworld.exe)
- mkres.exe (packs all track files into a final .TRK file)
- mkval.exe (converts text file with track physics to track.val)
- mktable.exe (needed to convert text file with info about track cameras to .TAB format)
- mkstamp.exe (converts .TGA files to .STP files, only needed for one image: prehead.stp which appears during rolling start)
- mktex.exe (used to convert your .TGA textures to .TEX files)
- ASE2TXT.exe (formats .ASE's or ASC's data to required Heat's text format [paths specific] )
- create_hidden_walls_v4-01.xls (formats .ASE's or ASC's data to required Heat's text format [walls specific] )
- MAX script (needed to split up the objects so that each object had only one texture assigned to it. Mostly needed for those who works without MC. Often used if you imported the track from another sim via 3ds format)
- WinResToolsWizard (lots of DOS utils in one windows wrapping. Will save you time and some of the extras will give more possibilities, such as outside pits)
- Photoshop scripts (to quickly batch convert magenta based alpha channel textures to textures with real alpha channel)

Some of the mentioned utils are available here:

Some are avaiable on this site. Some are not available anywhere, such as MC, 3dsmax.

This could probably be more detailed, but that should give some idea where to start. If you have any questions, feel free to post here and I'll either give more details or wil direct to a place where this had already been discussed.


MySpace * MyFaceBook - Skin painter, not for hire.