[ forums | old swut index | back to main ]

Making Quake 2 Player Models using Lightwave

by EggMcEye (updated November 11, 2001)

Steps in brief

  1. Create body shape and gun in LW modeller
  2. Load the body in to LW
  3. Bone it
  4. Animate it (by moving the bones around)
  5. Export all the animated frames
  6. Complile it to a an md2
  7. Using QME, make the gun a separate md2
  8. Using NST, do the mesh-mapping and skin outline
  9. With PSP or PS, do a base skin
  10. Back in NST, touch up the skin and the mesh mapping
  11. Mesh-map and skin the gun like in steps 8-10
Many of these steps are covered in tutorials, most of them by krazee and Jon 'shine' Jones. I'm going to attempt to create a general outline for beginners, and to fill in the blanks somewhat. All of my modelling experience has been based around Lightwave. There are other 3D modellers you can use, but this is the one I know, and the one documneted here.

Required Software

  • Lightwave (not cheap)
  • QME, that is Quake Model Editor. Cost 25$ US. Homepage here.
  • NST, that is Npherno's Skin Tool. Cost free. Get it here. (link broken currently)
  • Lightwave version of Qdata. Get it here.
  • Paint Shop Pro for your skinz - its better than Photoshop for skins. Gimp for Unix is really good too.

Optional Software

  • Skinview
  • various handy LW plugings

Modelling Resources (the links in my bookmarks!)

Creating the base body

The best tute for this is by Krazee and can be found here.

Points to note on LW modeller

  • U are always either in point editing mode, or poly editing mode. In point mode u can select, create, modify or delete points. Ditto for poly mode.
  • To deselect anything, L click on the blank area on the far left of the GUI
  • Make your model about 50m high, 25 above origin and 25 below. U can scale it later, but this is about the right height from my experience.
  • Make your model with arms outstretched to the sides, and legs spread somewhat. Make your head on a long neck quite a fair bit above the body. U can make it normally, and then select all the head polys and move em up about 4 heads distance from the shoulders. This is so u can rotate the head in animator later w/o affecting the rest of the body. U move the head back to the righ position after boning.
  • Make your gun in the same model, and again, a good distance away from your body. U separated it into the weapon.mdl later with QME
  • When u think your done, u have to make sure your model is made of only triangles! First, select all poly's and hit T (capital T). This triples them - ie subdivides any polys with more than 3 sides into triangles. Second, u have to delete 1 and 2 point polys. These things are evil! But there is an easy way to get rid of them - u have to bring up the model stats display, select 2 point poly's and hit the + button. This selects them, and then u can simply delete them. Do the same for 1 point poly's.

Boning in LW

Both Shine and Krazee have tutes for boning - I learnt from Krazee's but I think Shine's is slightly more relevant - it explains about the long neck and other things. Read them both because their both good! Here are the links.

Shine's boning tute and Krazee's boning tute

Points to note on Boning in LW

  • start with a small parent above the hips, and 'grow' your bone structure from there
  • don't stretch bones to size em, use 'rest length'
  • if u want rotate bones in the 'bank' direction with the mouse, u have to use the right button!
  • when your moving bones, once their rotated, the whole X/Y/Z of the bone goes wacky - u might move the bone in the X axis and it goes up the Y instead. I think this is because the bone XYZ is relative to the bones's axis, even when it has been rotated.
  • Don't make your bones active until they are all in place and are the correct size. If u do, your model will be quite wacky ...

Animation in LW

The tedious yet unbelievably rewarding part - the bit that brings your model to life! There's around 172 frames u need to animate, including 40 standing frames, 6 running and 8 attacking frames. There is a specification on which frame is what exactly, and it can be found on polycount.com right here - print it out - u'll need it!

Points to note on Animation in LW

  • try and exaggerate the movements a little - it will then look normal, good even, in quake!
  • position your model with the feet flat on the X axis
  • now is a good time to resize your model - export a standing frame of the male model, using QME, and import it here - and size your model appropriately.

Exporting the frames

There's a couple of ways of doing this. The hard way is to export each of the 172 frames one by one. The easy way is to use LW's savemorf plugin, or get this custom plugin which saves md2's directly from LW here (link broken!!) - though i have never been able to get it to work! Infact, my LW doesn't have savemorf, so I have to save each frame by hand. It's not that hard, because I do the anims in steps - like I'll do the run first, export that, complile it and see how it looks. If I'm happy, I'll move on.

To save each frame, get the frame u want to export in the main window, click on Object button, click on save transformed, choose a sensible file name , like run01.lwo for the first run frame. Bob's your uncle.

Oh, and to get qdata to work (AFAIK) u'll have to save your frames to quake2/baseq2/models/yourmodel - it at least has to be under the baseq2 directory! (?)

Shine's method of exporting can be found here - he uses's savemorf - he also uses QME to compile the model, but I'm sticking to the LW version of qdata.

Compiling the Model

First up u will have to go here to get a modified version of id's qdata which can complile LW exported objects - ie lwo files.

The next thing to do is to knock up a .qdt file, in the quake2/baseq2 directory, which tells qdata how to assemble your lwo's into a md2. the format of this file is roughly thus:

$cd models/mymodel
$modelname tris.md2
$origin 0 0 24
$base base000
$frame stand01 stand02 stand03 stand04 stand05 stand06 stand07 stand08 stand09 stand10   
$frame stand11 stand12 stand13 stand14 stand15 stand16 stand17 stand18 stand19 stand20   

  • u can use comments - start them with a // (double forward slash)
  • the cd command tells qdata where your lwo's are
  • origin 0,0,24 has always worked for me, if i positioned it with the feet flat on the X axis in LW
  • the base command specifies the base frame, in this case base000.lwo, which defines the initial skin map mesh, which is taken as a front and back shot of this frame - its a good idea to use a frame with arms outstretched but the legs straight up and down - it makes skin mapping and skinning easier later.
  • frame defines the frames and their order to make up the model. U can spread this over multiple lines. Use comments to break it all up into subsections.

Separating the Gun

Load up your tris.md2 from the quake2/baseq2/models/mymodel directory into QME. Get yourself into polygon editing mode. Hold down shift and select all of the polygons in the gun. Then hit delete. Save the tris.md2 into the quake2/baseq2/players/mymodel directory (for Carmack's sake, don't save it in the models directory - u'll have to complile it again!).

 Then close off the model in QME and load up the tris.md2 from the models directory (ie, the model with the gun). Now select all of the poly's in the body, and not the gun. Delete them. Save the model as weapon.md2 in the quake2/baseq2/players/mymodel directory. Gun separation successful.

Meshmapping and skinning

Load up your tris.md2 from the players directory (the model without the gun) into NST. The idea here is to get each polygon mapped as flat as possible on to a square 256x256 2D image. If u made your base frame of your model with arms outstretched and legs straight, then your model's front and back will be all mapped quite well already - and only the sides, the insides of the legs soles of feet (if it has any!), the top and bottom sides of the arms, and the sides and top of the head need to be remapped - that's because their triangles aren't flat on the 2D skin. Remapping involves rearranging the triangs flat on the 2D skin. 
  • use space bar to toggle edit and move/zoom modes
  • U can use NST to create a base skin with outlines of all the polys. U can then go into PSP or PS and flesh the skin out somewhat. Then use NST to touch it up.
  • export your skin mapping to a separate file. This if u recompile your model with new anims (as long as u didn't change the model shape) import that skin mapping file and get your skin mapping back!
  • Once u've done a skin mapping, save the md2 in the players directory (not the models directory!)
  • U'll have to all of this for your model's weapon too.

And that's It!

Hopefully you'll be pleased with your effort - I know I was, even with my crappy models I made as learning excersises! I thought map making was rewarding, but model making has me hooked. As soon as I can, I'll me making Quake 3 models - with their run/shoot anims (no more sliding!) - I can't wait!

EggMcEye, curator of swut.net