Hi Tanauser,
What you want to do, that is, animating the lever of the Winchester, is going
to be a lot of work for a detail many users may not even zoom in to see. An easier
thing is to just animate the right arm to drop down a little after each shot to
give the illusion of cocking to eject the spent round and chambering a new one.
Most players watching a company of bluecoats firing that way would understand that
they are seeing a rapid firing repeater rifle in action.
I'm not encouraging the easier way, just pointing it out as a fall back. If you
try the harder way and later decide it's too much work, you'll still have learned
a lot about using Milkshape and animations so it won't be a wasted effort.
Now, the mechanics of making joints. You are quite right, if you go to the model tab,
click joint and then click in a viewport, you get an isolated joint which isn't good
for anything. You need to add the new joint into the "bone hierarchy" of the model.
I'll explain that in a moment. Right now you just want to have a new bone coming off
of bone_Rhand, the terminology for that is that bone_Rhand is the "parent" and the new
bone is the "child". Go to the joint tab and select bone_Rhand by double-clicking it.
Then go to the model tab, click the joint button, then click in a viewport where you
want the new joint, somewhere near bone_Rhand. Once you click you should see blue lines
connecting bone_Rhand to your new joint. Since it was selected when you clicked, bone_Rhand
is now the parent of your new bone. You can go to the joint tab and double-click on
the new bone (probably called joint24 or something like that) and then in the edit
box below you can select the name joint24 and then type in a new name, like bone_lever
or something descriptive, and then click the rename button to the left to rename it.
A tutorial on the bone hierarchy:
Bones (or joints, a better and more descriptive terminology) form a tree structure with
one root node or joint. For human models with CA's standard skeleton, the root joint
is bone_pelvis. All other bones are children of bone_pelvis or of its children, down
several generations, so to speak. Americans and the English will know this children's song
"The hip bone's connected to the thigh bone,
The thigh bone's connected to the leg bone,
The leg bone's connected to the ankle bone,
The ankle bone's connected to the foot bone..."
It's actually kind of like that. Here's the hierarchy in CA's standard order:
Code:
1 [0] 2 [1] 3 [2] 4 [3]
bone_pelvis --> bone_RThigh --> bone_Rlowerleg --> bone_Rfoot
1 [0] 5 [1] 6 [5] 7 [6] 8 [7]
bone_pelvis --> bone_abs --> bone_torso --> bone_head --> bone_jaw
\
\ 9 [7]
-> bone_eyebrow
6 [5] 10 [6] 11 [10] 12 [11] 13 [12]
bone_torso --> bone_Rclavical --> bone_Rupperarm --> bone_Relbow --> bone_Rhand
6 [5] 14 [6] 15 [14] 16 [15] 17 [16]
bone_torso --> bone_Lclavical --> bone_Lupperarm --> bone_Lelbow --> bone_Lhand
1 [0] 18 [1] 19 [18] 20 [19]
bone_pelvis --> bone_RThigh --> bone_Rlowerleg --> bone_Rfoot
The first number above each entry is a 1-based index of that bone and the second number in brackets
is the index to its parent. The bracketed numbers are the hierarchy tree array for the skeleton.
They tell the game engine which bone is whose parent so it can multiply all the right rotation matrices
together to find out how to move a given vertex when an animation is played.
Actually I've simplified it a little to explain how it looks in Milkshape. In a .cas animation file
there is one more bone called Scene_Root that lies above bone_pelvis. It's position is always (0.0,0.0,0.0)
and it is never animated. The way the above is encoded in a .cas file is
Code:
Scene_Root 0
bone_pelvis 0
bone_RThigh 1
bone_Rlowerleg 2
bone_Rfoot 3
bone_abs 1
bone_torso 5
bone_head 6
bone_jaw 7
bone_eyebrow 7
bone_Rclavical 6
bone_Rupperarm 10
bone_Relbow 11
bone_Rhand 12
bone_Lclavical 6
bone_Lupperarm 14
bone_Lelbow 15
bone_Lhand 16
bone_LThigh 1
bone_Llowerleg 18
bone_Lfoot 19
In reality, the hierarchy tree array is a zero-based indexing into the bone name array with Scene_Root
included. Those integers in that order is what you find in every .cas file containing a human animation
for M2TW. This is a whole bunch of explanation to tell you that when you add bone_lever into your skeleton
we will need to add one entry to the hierarchy tree array right after the number 19. That number will be 13,
the zero-based index to bone_Rhand, which is it's parent. (This applies much later when the new skeleton
gets exported to a family of .cas files.)
Bookmarks