Making Things Solid in GTA3

By Peter Magenheimer (peter@magenheimer.com)

 

Have you ever tried and tried to get to the top of Donald Love’s roof, only to be disappointed by the fact that his garden is not solid? Or maybe you finally got to Kenji’s roof only to fall right through to an insane asylum room? Well, here’s your chance to get the satisfaction you’ve always wanted, from walking around on solid ground. Note that this tutorial assumes at least a small amount of knowledge of GTA3 modding and the programs you use in this tut.

 

For this tutorial you will need (click on their names to get them):

  • KCow’s 3D Mapper (I used v2.6) for getting your object’s name
  • Spooky’s GTA3 IMG Editor (I used v1.3) for extracting your object’s .dff file
  • Oleg M’s ZModeler (I used v1.06f) for converting your .dff to a .3ds mesh
  • 3ds max (I used R3.1, which is recommended) for opening the .3ds mesh and exporting the .x file
  • Panda DirectX Exporter 4.1.0.29 Plugin (also included in the zip file as “PandaDXExport3.dle”) for exporting the .3ds mesh as an .x file
  • Steve’s Collision File Tools (I used the v0.95B included in the zip file, because v1.0 doesn’t seem to work quite right with what we’re doing) for making your final .col file.)
  • And of course, GTA3 for well, playing the game… (preferably a clean install)

 

Step 1

Start up GTA3 and go find an object that you would like to make solid. Take note of where in Liberty City the object is. For this example, I’ll be making the observatory in north Shoreside Vale solid.

 

 

Step 2

Start KCow’s 3D Mapper and load the .ipl file with your object in it. The observatory is in landne.ipl, so I’ll open that up under data\maps\landne\landne.ipl. Once it’s loaded click the small button with an eye on it to open the 3D view. Navigate around to find your object, and click on it once when you find it. The name that appears in the circled area in this picture is the name of your object. WRITE IT DOWN or something. In this case, my object’s name is “observatory_temp”.

 

 

Close the 3D Mapper.

Step 3

Now that you have the name of your object, you need to go find it in the gta3.img file. Open the IMG Tool and load up the gta3.img file in [yourgta3dir]/models. Click on the Tools menu, select Sort, and click Name (only for IMG Tool v1.2 or higher I think).

 

 

Now scroll down and find your object’s name, and select it.

 

 

Under the Commands menu, select Extract. The “models” directory is fine for extracting, but you might want to use your own folder to make things easier. Close the IMG Tool once you’ve done that.

Step 4

Now open up ZModeler. Click on the File menu, and click Import. Open the file you just extracted from the IMG Tool (in my case, observatory_temp.dff). Make sure the model loads properly, and then click the File menu, and click Export. Type in a name similar to or the same as your object’s name, select “3d Studio Files (*.3ds)” as the type, and save it. (If a message saying something like “Compatibility with 3DS Max settings” pops up, just click OK)

 

 

Close ZModeler.

Step 5

Before starting 3DS Max, you need to install the plug-in provided in this package. Copy PandaDXExport3.dle to the Plugins folder in you 3ds max directory (usually C:\3dsmax3_1).

Step 6

Run 3D Studio Max, and click the File menu, and then click Import. Open up the file that you just exported from ZModeler, and select “Completely replace current scene,” and uncheck “Convert units.” Now it’s best for a collision model to have the minimum amount of polygons needed for good collision detection, so if you have some 3D modeling experience, go ahead and get rid of any extraneous polygons in your model. Otherwise, we’ll just have 3DS Max optimize it itself. With your object selected, click the Modifiers tab and click the Optimize button.

 

 

Step 7

Once you’ve optimized the model, you’re going to get the model centered (if it isn’t already, but I do it anyways to make sure). With the “Select and move” tool selected in the “Main Toolbar” tab, and with your object selected, press F12 to bring up the “Move Transform Type-in Box.” Set ALL values to 0 and then close that window. The object should now be centered on all the axes.

Step 8

Now that the model is optimized and centered, you can finally export the .X (Panda DirectX) file. Make sure once more that your object is selected, and go to the File menu, and click “Export…” (not “Export Selected…”). Set the “Save as type” to “Panda DirectX (*.X)” and type a name for your .x file (I’ll use ‘observ’) and click Save. In the next window, set these options:

 

 

click the “X File Settings” tab and select these options:

 

 

and then press OK. Close 3DS Max.

 

Step 9

Now you finally get to make the .col file you’ve always wanted. Open up Steve’s Collision File Maker. Go to the File menu and select “Load Text…” Open the file you just exported from 3DS Max.

 

 

Once the file is loaded, type in exactly the name of your object as you found from the 3D Mapper (this is critical, so double-check it). In my case, it’s “observatory_temp”.

 

 

Now click “Make collision file.” Save the file with whatever name you want in the /data/maps/ directory. I’ll save mine as “observ.col”. When it’s saved, scroll up on the Output panel to make sure it says “Testing values... All values are OK.” Close out of the ColFile Maker.

 

Step 10

You’re almost done! Open up gta3.dat in [gta3dir]/data/ in Notepad or another editor, and add the following line to the appropriate section. (If the object you’re solidifying is on Portland, it X will be 1, Staunton will be 2, and SSV will be 3 )

 

COLFILE [X] DATA/MAPS/[yourfilename].col

 

In my case it’s COLFILE 3 DATA/MAPS/observ.col

 

Save the gta3.dat file, exit Notepad, and start up GTA3…

 

Step 11

Go to your item in the game and check it’s solidness.

 

 

YAY!!!

 

In case anyone’s wondering, I used jcab42’s Runway to the Observatory to get up there. I included it in the zip file.

 

Please e-mail me at peter@magenheimer.com if you have any questions or comments!