Military Forces Quake3 (Alpha Release) Manual
Model Details

Contents

Introduction - aims and intro
How to build your MFQ3 model
Step 1 - Make your model
Step 2 - Detach faces to create appropriate groups
Step 3 - Map Objects
Step 4 - Cut out Control Surfaces
Step 5 - Vehicle Tags
Step 6 - Split up Model
Step 7 - Animate Model
Step 8 - Exporting


Introduction

This overview is written witht he assumption that the reader ALREADY KNOWS HOW TO MAKE MODELS. it's not here to show you how to make models, but how to format them so that they are compatible with the MFQ3 mod.
That said, if you need to learn to model first, go to www.polycount.com for information about modelling and using whatever the application it is you use.


How to build your MFQ3 model

There are a few things you need to consider:

A) Scale
B) Axis orientation
C) Model object trends (naming conventions, and typical regions that are made their own object)
D) Tag placement
E) Shaders

You'll need a couple tools:

1) An MD3 exporter
2) An importable tag object model
3) And finally an MD3 compiler
(you should be able to get anything you need from www.polycount.com)

The tag model I use is the one that came in accordance to Pop'n'Fresh's MD3 exporter plugin. I am also using the latest version...


Step 1 - Make Your Model

As you make your model, there are a couple things to look out for. The model will be broken into a couple models later, so this is the order of operations:

The scale is 39.7units = 14.4 meters , so scale appropriately.

Also, the model should be oriented around these axes:
+X = forwards
-X = backwards
+Y = left
-Y = right
+Z = up
-Z = down
If you for some reason notice you've messed this up AFTER you've placed tags, you'll have to rotate your stuff and replace/relocate tags again, because if you rotate your tags along with the model, they won't work right since they will be oriented wrong after rotation. so make sure you got this right...


Step 2 - Detach faces to create appropriate groups

Airplane:
(Body, left wing, right wing, [rudder if you like], [elevators if you like], canopy, intake faces, exhaust cone, exhaust nozzle (if you like to use a shader for it), landing gear)

These are names, you can make them differently if you like, it's not a big deal...
body = fuselage
left wing = wing_l
right wing = wing_r
rudder = rudder
elevators = elevator_l / elevator_r or just elevators
canopy = canopy
intake faces object = intake
exhaust cone object = exhaust_cone
exhaust nozzle = exhaust_noz

Ground Vehicle:
(body, turret, gun, wheels, tracks(if any))

body = fuselage
gun = gun
turret = turret
wheels = W_direction of rotation by st letters> i.e. WR_CW wheel right_clock wise (makes assigning the right shader during recompile easier, if you have different shaders per side that is...)
tracks = tank_track

You get the idea with the names... whatever. Just make it sensible, and it's all right. So you will recognize them when in the compiler, looking at the object list.

NOTE: More different vehicle types will follow in later MFQ3 versions!


Step 3 - Map Objects

Map each ebject to its own skin, some may share skins, but NOT SKIN AREA... Some may say, "Wtf, that's a waste of skin!" Well, it'd be nice to have the whole model skinned with original pixel area. i.e. no mirrored looking airplanes. But if you are set on sharing skin area, it's your choice. Prolly you should have mirrored components detached to their own objects, and map one size, and clone that object, and mirror it and place it on the other side, and assign it the right skin. This way you don't for example map wings twice, when you can just map once.

There are some shared textures you need to map to:

For planes there are:

models/tex_shared/intake1.tga = intake
models/tex_shared/exhaust_noz.tga = exhaust cone
models/tex_shared/gear.tga = landing gear

For tanks, there are

tank_treds_t.tga
tank_wheel1_t.tga (wheel faces)
tank_wheel2_t.tga (driving wheel faces)
tank_wheel3_t.tga (outer faces of wheels, i.e. the rounded part)

Don't worry if you dont' like them, once skin selection is in you'll be able to specify original skins for these, just for now map to those so they will be compatible with the same shaders (which will be code applied) later.


Step 4 - Cut out Control Surfaces

After each object is mapped, cut out the control surfaces from the appropriate objects. I.e. slots, flaps, ailerons, rudder, etc. regenerate the materials with these auto-changed maps (due to the cuts), so the skinner can see the breaks for the controls, so they can draw little lines where the controls are, or other stuff that should be right around the controls.

Detach these controls surfaces and name them what they are, i.e. aileron_l, or elevator_r, whatever...


Step 5 - Vehicle Tags

Place tags where they are needed:

Aircraft:

For example gun locations need tags, so muzzleflash's can be displayed. so does other stuff...

Guns = tag_gun , tag_gun2 , tag_gun3 etc...(system at the moment supports up to 8 guns)

Controls = tag_controls (use 1 tag, it's just for the controls model that will be made, this tag can be anywhere really)

Canopy = tag_cockpit. (can be anywhere)

Location of pilot and his seat = tag_pilot1, tag_pilot2, tag_pilot3, etc... thse need to be placed at the neck location of where the pilot should sit.

Airbreaks = tag_breaks (can be anywhere)

Afterburner(s) = tag_ab1 , tag_ab2, etc... place at the location of the exhaust cone. The afterburner model will start exactly at the tag, so place it correctly.

Landing gear = tag_gear (can be anywhere)

Vapor Effect when pulling up = tag_vapor1 (place this roughly at the height of the wings, and at about the front of the wing, in between wings.)

Tags for visible weapons... these are yet to be activated, but are needed for future compatability

OK, locations at which missiles can be mounted directly onto the plane go as such:
tag_ms0_l (tag location for missile hardpoint, left side, outermost)
tag_ms1_l (tag location for missile hardpoint 2, left side, leftside, one closer than outermost)
tag_ms2_l (tag location for missile hardpoint 3, left side, one closer than the one closer to outermost)

if it is the right side, it's tag_ms0_r, and so on.

If it's down the center, front to back, it's tag_ms0_c , tag_ms1_c, etc...

IF the hardpoint is behind another. not closer to inside or outside, : IF there are tripple rows, name from outermost down the center, and then name from center to outside jumping from the closest, front, closest back, one farther out front, one farther out back, one more farther out front, one more farther otu back. and so forth. IF there are double rows, (for example on the F15, the hardpoints down the left and right sides of the body, 2 ina row (double row), left and right), name down the front row to the center, and then name down the row hehind to the outside. (F15 only has a single row, so the length is 1 so you're down naming the front row after the first tag, so then you jump to the one behind, also only one location long, so you'd name the left front tag_ms0_l, and the one behind, tag_ms1_l.)

LOCATIONS FOR WEAPON PYLONS, are different...

They are named with the same order of operation, BUT, they are named differently...

tag_mt1_l = outermost location for pylon, left side...
tag_mt2_l = one closer form outermost location for pylon, left side.

You know the rest.... basically like the ms tags, just named MT, and starting from 1 not 0.

Tanks/Ground Vehicles

You need:
tag_turret (for where the turret will pivot.)
tag_weap (for where the weapon will be placed on the turret)
tag_weap2 if there are independantly looking weapons, but this doens't really ever happen...

tag_gun for barrel#1 on the weapon.
tag_gun2 for barrel#2 on the weapon
tag_gun3 for barrel#3, etc...
for example, a 3 barrelled gatling gun would have these 3 tags, one for every barrel.

On a tank, the maingun tag should be tag_maingun


Step 6 - Split up Model

Now that you have tags where you need them, save the model a couple times, each time with a diffent name, as so...

Airlpanes:
[vehiclename]_body
[vehiclename]_controls
[vehiclename]_cockpit
[vehiclename]_breaks
[vehiclename]_gear

Tanks
[vehiclename]_body
[vehiclename]_turret
[vehiclename]_gun

Now go into each model and delete the unneeded areas, MAKE SURE YOU HAVE A COPY OF WHEN IT WAS STILL ONE WHOLE THING!!!

ALSO, when deleting, on the body model leave all the tags in place.. I.E. the body will need all tags remaining, but the controls can do with just the controls-tag left there, the cockpit can go with just the cockpit-tag left there. etc...

The body model should have the canopy deleted, the controls deleted, the gear deleted

The controls model should have everything deleted except for the control surfaces and tag_controls

The breaks model should have everything deleted except the breaks and tag_breaks

The gear model should have everything deleted except the gear and tag_gear

The cockpit model should have everything deleted except the canopy and canopy frame, and tag_cockpit.

The same trend goes for the tank models, just with a little twist...

The tank body model should have the turreta and weapons deleted, and all tags left, EXCEPT the ones that apply to the weapons found on the turret.

The turret model should have just the turret there, and tag_weap and tag_turret.

Teh weapon model should have tags for all the guns on it present, tag_weap, and of course itself...

Now in all the models, transform them so their common named tags are at 0,0,0 I.E. tag_controls in the controls model should be at 0,0,0.


Step 7 - Animate Model

Aircraft

The controls models should be animated to their appropriate positions according to this:
frame 0 = straight
1 = left
2 = right
3 = up and straight
4 = up and left
5 = up and right
6 = down and straight
7 = down and left
8 = down and right
9 = same as frame 0, just with flaps down and slots out
10 = same as frame 1 , just with flaps down and slots out
11 = same as frame 2, just with flaps down and slots out.
you get the idea... should be 18 frames total, 0-17

The breaks model has 2 frames, 0 = in, 1 = out.

The gear model has 3 fromes, 0 = out, 1 = 1/2 way in, 2 = in.

The cockpit model has 2 frames, 0 = closed, 1 = open.

Tanks

The tank turret should have frame 0 for top hatch shut, and 1 for top hatch open., 2 for if there are 2 hatches, the second open...

The position of the turret and the gunbarrel are set by the gamecode


Step 8 - Exporting

Once you've done this, export them to their right directories:
models/vehicles/(planes/ground)//

NOTE: All filenames should be lowercase!

For the exported MD3's, use the same names as the above model files, except take off the _body from the main body file, so it's just the name of the craft. (NOTE:the reference F16's airbreaks are called f16_AIRBREAKS, it's supposed to just be BREAKS)

Now load up all the exported models in Npherno's md3 compiler, and hit 'recalculate normals' (or something like that), then go through all the objects listed and make the directory switched face '/' instead of the default '\'... this way the models will work right in both Win9x AND Linux, give paths to any shaders that are needed.

The canopy has a shader models/powerups/holdable/teleport_sphere.

There is a pretty good gray metal looking one that's models/powerups/holdable/teleport_base.

The tank wheels faces should use models/tex_shared/tank_wheel1_t.shader

Tank driver wheels faces should use models/tex_shared/tank_wheel2_t.shader
Tank wheels from the (non-face) outside areas (the cylindrical area) should use tank_wheel3_t.shader.
Tank treds shoudl use tank_treds_t.shader

The above are generic wheels and treds for now. Later in skin files you'll be able to name your exact skin and the shaders will apply automatically (they will change according to speed of vehicle movement)

models/tex_shared/intake1 = airplane intakes
models/tex_shared/exhaust_noz = airplane exhaust nozzle insides... this applies to the exhaust cone actually...

Export the model back out, giving the path to/of the model name in the prompt that comes after you choose the model you export to.

That's all folks... if you need reference, look at the f16 max stuff. sorry non-max users.. But i don't have any other reference material. Textures can be found in the MFQ3 pk3's. Mfq3_gs_modern.pk3 has the f16 textures, and mfq3_models.pk3 has the shared textures.

Version: Working draft 1
Date: 21 July 2001
Page: Map Details (5 of 7)
Website: http://www.planetquake.com/mfq3/