[ forums | old swut index | back to main ]

Making Headmodels for Quake 3 Arena

by eggmceye, Friday, April 13, 2001.

Last updated Sunday, Novemberl 11, 2001.

This is my 'proof of concept' headmodel for quake 3. You don't need Team Arena for custom head models, just version 1.27 or later.

Tools required

  • Milkshape
  • Npherno's md3 compiler
  • photoshop or similar

You will also need your quake 3 patched to 1.27 in order to be able to switch heads with the /headmodel command. You do not need Team Arena!

Assumed knowledge

This is a quick and dirty tutorial for those who already have basic skills in quake 3 skinning and modelling. As far as using programs go, there are other tutes and instructions in their use, and such things are out of scope of this document. This is just a skeleton tute providing the big picture for whipping up head models, with a few nasty details.

You will need to know:

  • Milkshape modelling
  • Skinning, and mesh mapping
  • Md3 compiling
  • skin files

Step 1: Creating the mesh, mesh mapping skinning

Using Milkshape, make your head mesh. Group your head mesh and call it h_head. Make your tga skin in your paint program and call it head_default.tga. Load your skin into Milkshape as a texture and do the mesh mapping.

Important notes: Make the head's face at the front, etc. Make the base of the head (ie, where the it joins the neck) at the origin (0,0,0).

You now have to make the quake 3 qc file. In Milkshape, go to Tools menu / quake3arena / generate control file. Call it head_base.qc. Once created, edit it and change the following lines:

  • $model "models/players/yourmodelname/head.md3"
  • $frames 1 1
  • Delete lines referring to $skin

Back in Milkshape, go to File menu / export / quake 3 arena md3. Call it head_base.md3. Your work in milkshape is now done.

You will need to make yourself a icon_defaul.tga. 64x64 pixels. Alpha channel optional.

Step 2: Npherno's md3 compiler

You will need a head model from another model for this step. I used hunter's successfully. The idea is to steal the tag, a single polygon object which defines where the head joins the neck. You can make your own in Milkshape, but this is just as easy, if not less hassle.

Import your head_base.md3. Import hunter's tag_head only. Export the md3 (which will now contain two objects, h_head and tag_head) and save it as head.md3. Don't worry about giving it an internal name when prompted.

Step 3: Making the skin and the pk3

Make a .skin file called head_default.skin. It should contain the two following lines:


Now it's time to make the pk3. Zip up head.md3, head_default.tga, head_default.skin and icon_default.tga, saving extra folder info so that in the zip, all files appear under models/players/yourmodelname.

Rename your zip to pk3 and poke it into your baseq3 dir. Load up q3a, and at the console, type

/headmodel yourmodelname

and bob should be your mad uncle.

Recommended reading