Hi Tanauser,
(1) Let's just start with the basic stuff. You can change the animations
in the keyframer to something that better approximates the Winchester
action. You animate by rotating the bones or joints. You can experiment
on your animated file and just don't save the changes. Say you want to
change the first frame. You hit the key that looks like ||< (you get a tooltip
if you hover over it). Go to the joints tab and click on the joint bone_Relbow
to select it, then go to the model tab and press the rotate button. You
should see something like this:

The way the human skeleton works you'll mostly rotate about the x-axis.
The units for those boxes are degrees. (Milkshape's coordinate system is
x-axis to the right of the screen, y-axis is upwards, and the z-axis is out
of the screen.) The rotations are relative to the current pose so you could
rotate by 10 degrees three times in a row to go 30 degrees total. Go back
and forth from the joints tab to the model tab selecting different bones and
experimenting, just don't save your model.
(2) At some point when you do have a completely redone animation you'll need
to extract it out from the Milkshape .ms3d file into a .cas file. Say your file
is called "bluecoat_animby_shoot.ms3d". Run the python animationutilities,
click the animextract button.
(If you get an error fussing about the line:
float_vec3.fromfile( fidcas, 7 ) at line number 1091, that's my fault.
Open animationutilities.py with any text editor and search for that
string. It only occurs once in the file. Comment it out by putting the
symbol # in front of it and saving.)
The animextract button will put up a file chooser, Mouse to your file
bluecoat_animby_shoot.ms3d and select it. It should produce a .cas
file named shoot_modified.cas, the _modified is so it doesn't overwrite
your original. Basically, whatever follows the _animby_ part will be the
name of the output file with _modified added to it.
(3) The animation family (defined in a moment) for a unit is specified in
the modeldb file. For instance, for armored_sergeants near the bottom
for that entry you would see:
Code:
5 slave
56 unit_models/AttachmentSets/Final Kite_slave_diff.texture
56 unit_models/AttachmentSets/Final Kite_slave_norm.texture 0
7 normans
58 unit_models/AttachmentSets/Final Kite_normans_diff.texture
58 unit_models/AttachmentSets/Final Kite_normans_norm.texture 0
1
4 None
10 MTW2_Spear 0
2
18 MTW2_Spear_primary
14 fs_test_shield 0
16 -0.090000004 0 0 -0.34999999 0.80000001 0.60000002
The red name is the name of the animation family.
(4) If you now go to descr_skeleton.txt, you can find the definition of the
family.
Code:
type MTW2_Spear
strike_distances 1.40 2.20 3.2 3.5 4.0
locomotion_table soldier
anim default data/animations/MTW2_Spear/MTW2_Spear_basepose.cas
;;;Defend
anim eager_defend_lo_stab data/animations/MTW2_Spear/MTW2_Spear_defend_stab_med.cas -fr -if:6 -evade -prob 10 -evt:data/animations/MTW2_Spear/MTW2_Spear_defend_stab_med.evt
anim eager_defend_mid_slashlr_light data/animations/MTW2_Spear/MTW2_Spear_defend_slashlr_med.cas -fr -if:7 -evade -prob 10 -evt:data/animations/MTW2_Spear/MTW2_Spear_defend_slashlr_med.evt
anim eager_defend_mid_slashrl_light data/animations/MTW2_Spear/MTW2_Spear_defend_slashrl_med.cas -fr -if:6 -evade -prob 10 -evt:data/animations/MTW2_Spear/MTW2_Spear_defend_slashrl_med.evt
anim eager_defend_overhead_stab data/animations/MTW2_Spear/MTW2_Spear_defend_stab_hi.cas -fr -if:6 -evade -prob 10 -evt:data/animations/MTW2_Spear/MTW2_Spear_defend_stab_hi.evt
;;;Reaction
anim knockback_from_front data/animations/MTW2_Spear/MTW2_Spear_knockback_from_front.cas -fr -evt:data/animations/MTW2_Spear/MTW2_Spear_knockback_from_front.evt
anim knockback_from_right data/animations/MTW2_Spear/MTW2_Spear_knockback_from_right.cas -fr -evt:data/animations/MTW2_Spear/MTW2_Spear_knockback_from_right.evt
anim knockback_from_back data/animations/MTW2_Spear/MTW2_Spear_knockback_from_back.cas -fr -evt:data/animations/MTW2_Spear/MTW2_Spear_knockback_from_back.evt
anim knockback_from_left data/animations/MTW2_Spear/MTW2_Spear_knockback_from_left.cas -fr -evt:data/animations/MTW2_Spear/MTW2_Spear_knockback_from_left.evt
(There's a lot more there, I just cut it off.) The first word after anim is
the action command which is followed by the path to the .cas file that
performs the action.
Basically, you would copy a MTW2_Musket directory to a new directory
named MTW2_Winchester. Then edit descr_skeleton.txt, copy the
MTW2_Musket family entry, name the new animation family
MTW2_Winchester, and change all the .cas path names for that entry
to point to the directory MTW2_Winchester. Then you can edit
whatever .cas files in that directory you want and they only apply to
units that specify MTW2_Winchester as their animation in the modeldb file.
In other words, you still have unchanged musket animations for all
other units.
There's some more steps but this is probably too long already.
Bookmarks