To extract motion capture data from the Heretic II model file, the following skeleton
heirarchy was assumed:

hips-+-> L. upper leg -> L. lower leg -> L. foot
     |
     +-> R. upper leg -> R. lower leg -> R. foot
     |
     +-> low torso -> hi torso -+-> L. upper arm -> L. lower arm -+-> L. hand open
     |                          |                                 |
     +-> stored staff           |                                 +-> L. hand closed -> bow
                                |
                                +-> R. upper arm -> R. lower arm -+-> R. hand open
                                |                                 |
                                |                                 +-> R. hand closed -+-> staff
                                |                                                     |
                                +-> neck -> head                                      +-> hellstaff
                                |
                                +-> bow over shoulder
                                |
                                +-> armor -+-> L. pad
                                           |
                                           +-> R. pad


Seven additional skeletal elements were tracked for use in the "references" section of
the model:
- Bone from left wrist to left hand reference point
- Bone from right wrist to right hand reference point
- Bone from left ankle to left foot reference point
- Bone from right ankle to right foot reference point
- Bone from staff joint to staff reference point
- Bone from staff joint to blade reference point
- Bone from staff joint to hellstaff head reference point


At the end of bones.h you will find the length of each "bone" in the Corvus model. There
are a few strange ones, like the staff bone and hellstaff bone are both measured from
Corvus' wrist to the BOTTOM of the staff. The Skeleton itself is also described, based on
a set of joints at the end of each bone.

If you want to make your own model you need to make all the parts of your model (one part
per bone) separately, with (the joint closest to the hips) at the origin, and (the joint
farthest from the hips) aligned on the X-axis, and the overall length of the body part
identical to the bone length in bones.h.

The axes are Y=up, Z=into screen, X=right. Orient each body part as if you got it to the
POSITIVE X axis first by rotating it around the Z axis (if needed) into the X-Y plane, and
then around the Z axis to align with the X axis. This means, for example, that the left
and right palms both face out of the screen, but the left thumb is on top and the right
thumb is on the bottom. Etc, Etc, I know this is cryptic, it will get easier. When you
have all the parts done, and my tools are done, they will generate a model for you from
the parts.

In a Heretic II model, a given point on the surface of the model has the same vertex number
regardless of the current animation. The positions of the joints were determined by averaging
the coordinates of verteces that appeared to surround the joint and that appeared to for
natural boundaries between parts. Two parts connected by  joint generally share verteces,
but might not share all verteces, related to the joint - in this case, two sets of verteces
are used to locate the joint and some verteces are deliberately duplicated in the calculation.
The lengths of the "bones" in the skeleton were determined by averaging the distances between
connected joints.


Joint Name                     Verteces Averaged
---------------------------    --------------------------------------------------------------
HIP_POSITION                   40, 7, 18
HIP_LEFT_UPPER_LEG             21, 42, 44, 1, 23
LEFT_UPPER_LOWER_LEG           418, 412, 411, 405; 417, 414, 413, 434
LEFT_LOWER_LEG_FOOT            432, 424, 426, 428, 433; 432, 424, 426, 429, 436
LEFT_FOOT_END                  440, 422, 421
HIP_RIGHT_UPPER_LEG            6, 5, 1, 41, 46
RIGHT_UPPER_LOWER_LEG          395, 391, 390, 374; 396, 382, 375, 373
RIGHT_LOWER_LEG_FOOT           386, 392, 372, 383, 384; 386, 392, 370, 369, 384
RIGHT_FOOT_END                 377, 387, 388
HIP_LOWER_TORSO                14, 19, 18, 3, 7; 14, 19, 10, 8, 11
LOW_TORSO_HIGH_TORSO           5, 34, 35, 10, 8, 11
TORSO_LEFT_UPPER_ARM           37, 25, 20, 24; 281, 286, 282, 264, 292, 284
LEFT_UPPER_LOWER_ARM           278, 280, 283, 275; 278, 279, 276, 275
LEFT_LOWER_ARM_OPEN_HAND       274, 266, 265, 269, 270, 272
LEFT_OPEN_HAND_END             166, 181, 178, 170
LEFT_LOWER_ARM_CLOSED_HAND     274, 266, 265, 269, 270, 272
LEFT_CLOSED_HAND_BOW           350, 347, 348
LEFT_BOW_END                   339, 340, 346
RIGHT_UPPER_LOWER_ARM          134, 136, 154, 133; 134, 136, 149, 141
RIGHT_LOWER_ARM_OPEN_HAND      158, 159, 153, 145, 144, 146
RIGHT_LOWER_ARM_CLOSED_HAND    158, 159, 153, 145, 144, 146
RIGHT_CLOSED_HAND_STAFF        192, 189, 190, 193
RIGHT_STAFF_END                207, 217, 205, 206
RIGHT_CLOSED_HAND_HELLSTAFF    192, 189, 190, 193
RIGHT_HELLSTAFF_END            220, 219, 222, 221
TORSO_NECK                     29, 31, 30, 28
NECK_HEAD                      456, 455, 481, 482, 472, 471
HEAD_END                       475, 479, 486, 470
TORSO_SHOULDER_BOW             38, 37, 32, 36; 84, 81, 82, 83
SHOULDER_BOW_END               55, 58, 80
TORSO_ARMOR                    38, 37, 32, 36; 93, 105, 101, 87
ARMOR_LEFT_PAD                 95, 94, 93, 92; 115, 116, 111, 114
LEFT_PAD_END                   113, 109, 108, 110
ARMOR_RIGHT_PAD                101, 90, 88, 87; 123, 125, 124, 120
RIGHT_PAD_END                  119, 121, 118, 117

The three "clusters" of the Heretic II player model skeleton (used to turn and bend
the model based on player control settings within an animation) are: head (cluster 0),
high torso with all its descendents except head (cluster 1), and low torso (cluster 2).

For each part of the skeleton, four vertices were selected to represent the position and
rotation of the part. The vertices were selected to approximate an origin and three
orthagonal axes, using a coordinate system in which the axes point out of the screen, to
the left, and up.

The verteces used to track the motion of each part are (origin, out, left, up):
hips			39, 1, 40, 19
LU leg			406, 419, 410, 42
LL leg			432, 428, 424, 427
L foot			438, 435, 430, 432
RU leg			400, 398, 397, 46
RL leg			386, 372, 384, 376
R foot			378, 377, 385, 386
stored staff	47, 53, 48, 52
low torso		43, 3, 14, 34
hi torso		37, 13, 36, 38
L shoulder		24, 20, 38, 29
L upper arm		261, 285, 263, 290
L lower arm		273, 268, 279, 271
L hand open		317, 315, 318, 311
L hand bow		342, 324, 341, 322
R shoulder		38, 17, 27, 28
R upper arm		156, 127, 155, 128
R lower arm		140, 147, 158, 142
R hand open		173, 171, 178, 179
R hand staff	146, 158, 197, 176
R staff use		206, 205, 207, 210
R hellstaff		222, 221, 219, 252
neck			29, 31, 28, 482
head			455, 453, 456, 454
hair			TBD - follows head for now
stored bow		57, 56, 59, 64
armor			105, 96, 101, 93
L armor pad		111, 116, 114, 110
R armor pad		120, 123, 117, 118

