MilkShape 3D Quake III Arena

Small Starter Tutorial

 

This tutorial just explains in short how to export to Quake III Arena MD3 file format. The file format is quite similar to the Quake2 MD2 file format. The new features, which are relevant for MilkShape 3D are multiple surfaces/meshes/groups per model, that means you can have more than 1 skin in a model, and then the tags. Tags are some kind of local coordinate spaces, which are used to attach other models to them.

How to create a tag

Create a triangle, which looks like in the screenshot on the left. It is a right triangle with different sides. The longer right side looks into +Z direction and the shortest side looks into -X direction. Regroup that triangleso that is is in a single group and rename that group to "tag_head". Then assign all 3 vertices of that triangle to the joint "Bip01 Head" or whatever your head joint is called.

You can take a look at some original Q3A models, to see what kind of tags are needed.

Creating a MD3 export control file

If you finished all the tags, then create a MD3 export control file using Tools | Quake III Arena | Generate Control File... Since a Q3A player model consists of 3 submodels you have to create 3 control files: lower.qc, upper.qc and head.qc. The generated .qc file (control file) is a control file for all tags and all groups in the model. It look like this:

// Quake III Arena MD3 control file, generated by MilkShape 3D
//
$model "models/players/model/model.md3"
// 0 0 = all frames, -1 -1 = reference model, 1 30 = frame 1-30
$frames 0 0
$flags 0
$numskins 0

// you can have one or no parent tag
//$parenttag "tag_torso"
//$parenttag "tag_head"
//$parenttag "tag_weapon"

// tags
$tag "tag_torso"
$tag "tag_head"
$tag "tag_weapon"

// meshes (surfaces)
$mesh "u_upper"
$skin "models/players/model/skin.tga"
$flags 0

$mesh "h_head"
$skin "models/players/model/skin.tga"
$flags 0

$mesh "l_lower"
$skin "models/players/model/skin.tga"
$flags 0

Then save that .qc file as head.qc and change it so that it looks like that:

// Quake III Arena MD3 control file, generated by MilkShape 3D
//
$model "models/players/model/head.md3"
// 0 0 = all frames, -1 -1 = reference model, 1 30 = frame 1-30
$frames 1 1
$flags 0
$numskins 0

// you can have one or no parent tag
//$parenttag "tag_torso"
$parenttag "tag_head"
//$parenttag "tag_weapon"

// tags
//$tag "tag_torso"
$tag "tag_head"
//$tag "tag_weapon"

// meshes (surfaces)
$mesh "h_head"
$skin "models/players/model/skin.tga"
$flags 0

You see, that you export only the "tag_head" and the "h_head" groups for the head.md3. The tag "tag_head" is the parent_tag. The head has just one frame.

No if you have that head.qc, just export to head.md3 and MilkShape3D will automatically look for the head.qc, which controls the output if the head,md3. This allows you to model whole model at once, and then export only the parts you want.

 

Ok, I hope that helps for a start and I hope some better tutorials are coming soon ;-)

 

- Mete