Modding NHeat - Tires

With NHeat, tires have to be singular objects in mod files of their own, unlike with some ISI game engines. So don't put any tire objects to your car's MOD file. Instead, with NHeat each tire set can be assigned to any car in a mod. Therefore all tire related files have to be put to part.res.

There's 2 ways to assign a tire 3D model to a car in NHeat:

  • Edit the attribute model in both front and rear table in physics.txt. Put in the name of the tire model that you want to assign to the car, but without trailing numbers and "f". This is the default way; it assigns a tire set to a certain car type. You can assign different tire sets to front and rear axle in physics.
  • In drivers.txt add an entry tire_model [modelname] to the chosen driver's table. This only assigns a tire set to a certain car paint - and it will be the same tire set for both front and rear axle
If you load your tire model to Zmodeler, the tire object should be named whatever[0] before exporting it to NHeat's MOD format. You don't have to care at all about the tire's diameter or width for now, as NHeat's game engine will check the car physics file (physics.val) for those attributes - which means you will have to set visible tire width and diameter by editing physics. Be aware that in NHeat the visible tire width and diameter does affect tire physics

Assuming an example tire set's name would be g40tire (Goodyear tire, 40 spokes rim), by default it needs to have those files in part.res:
g40tire0.mod = tire LOD0, used in F2 view
g40tire0f.mod = tire LOD0, moving
g40tire1.mod = tire LOD1, highest detail
g40tire1f.mod = tire LOD1, highest detail, moving
g40tire2.mod = tire LOD2, high detail
g40tire2f.mod = tire LOD2, high detail, moving
g40tire3.mod = tire LOD3, medium detail
g40tire3f.mod = tire LOD3, medium detail, moving
g40tire4.mod = tire LOD4, low detail
g40tire4f.mod = tire LOD4, low detail. moving
g40tire5.mod = tire LOD5, lowest detail
g40tire5f.mod = tire LOD5, lowest detail. moving

tire1.mod, mapped

tire0.mod, mapped

750 poligons

622 poligons

500 poligons

300 poligons

224 poligons

So actually it's 12 tire model files, 6 LODs for standing tire and 6 for moving tire. Check LOD modeling tutorial for why there's 6 LODs each and if they are even all actually used on each mod/car. Tire LOD0 is somewhat different as it's used for looking at it not from outside the car, but inside. So there's no need for that LOD0 to have any outside at all. It's generally a good idea to use tire LOD1 to derive LOD0 from it by just deleting the outside faces. Saves poligons and some work ....:-)

Modeling tire movement
If there's some nicely made rims for your mod, you'd want them to show up. Unfortunatly cars will usually move and though your rims will look great even then, any screenshot of a moving car will look like it doesn't move at all - because of the rims. To get that "moving" effect = blurred rims, NHeat uses a set of LODs that are intended to have a tire model which already looks like moving. Those LODS have a trailing "f" in the mod file's name

Since in our example tire set we didn't use just a mapped disk for making up the spokes and the rim, but there's explicit 3D spokes, making this look like moving by default may be a little tricky. Here's how to do it:
  • Load tire1.mod to Zmodeler
  • Switch to Object mode
  • Make sure no object is selected; the tire object should show up in 3D space
  • Switch off Perspective view in 3D space
  • Take a screenshot from Zmodeler's 3D space
  • Load that screenshot to your graphics editor (load from workspace to empty image with transparent background)
  • Check the background's color, then select all parts of the image that have that color and delete them
    • In Gimp, chose Selection Tools -> Select By Color Tool -> left click on image background
    • Delete selection

  • try locating the tire's center as precisely as possible, then cut the image's size so that the rim's center becomes the image's center
  • Rotate the Image
    • In Gimp, chose Filter -> Blur -> Motion Blur and rotate the image by about 20

  • Save the image as uncompressed 24 bit TGA (should like the right image below then)
  • Load that TGA to Zmodeler's material handler. Set Type to glowing
  • Map that TGA to the rim disk

It's important to put some thought into the mapping of tires, especially if there'll be more than just one set of tires. Textures used on mapping tires can be numerous, but NHeat has a build-in limit for the total number of texture files that can be used all at once. The less TEX files on a mod, the better

Generally it would be a good idea to put all tire related textures to one or two TGAs, one of these being "alpha channeled" = transparent. On the right you see 2 parts from GroupC mod's "collector" TEX files

The TEX files that are made from these TGAs should go into part.res as well

The just made TGA can now be used for mapping a disk that replaces the 3D spokes from the standing tire's model. You have to map that TGA by taking care that the scaling is the same as with the standing tire's 3D spokes. Some nice sideeffect of that method is that even though you're using quite a lot of poligons on the standing tire, most of the time it will be the moving (f) tire model being used. And that one has much less poligons because of using a texture mapped disk instead of 3D spokes.

Light Reflections
Since rubber usually doesn't reflect light very much, the normals of those vertices' which are part of faces that make up the tire surface/rubber should be scaled to about < 20%. Additionally you should take care that environmental mapping is switched off for the tire rubber mappings (ZModeler -> Edit -> Attributes -> Misc -> check Dont't blend textures)

[ Tires ]