Revisiting: got a jog in and cleared the cobwebs. Not thinking
big picture enough. You don't want animextract, you need a bigger
and better exportskeleton function. Let's say the .skeleton file
now includes the pose vectors AND bone names. So with a tail
it is now 21 lines long with the last entry having the bone_tail
pose info.
You also need an ASCII hierarchy file to read like the above post with
correct parent/child. Now when it reads all the .cas files in a directory
that you've moused to, it puts in the updated hierarchy tree, time ticks
stay the same (haven't changed the animation), it writes the bone section
but adds the new bone name at the end and duplicates the quat frame
number integer, duplicates the anim frame number integer, calculates a
new quat offset byte count, a new anim offset byte count, does a int 0,
an int 1, and a final byte 0 to complete the bone section.
It then replicates all 20 quat blocks for the regular bones, adds a new
block of Nframes of 0.0 0.0 0.0 1.0 which are base pose quats for the
tail. Then replicates all 20 anim blocks for the regular bones, adds a new
block of Nframes of 0.0 0.0 0.0 deltas for the tail bone, then does
the new skeleton pose data with the new bone, then adds the usual
footer. Scaling of the anims could also be done here just like the
regular exportskeleton function.
Now all the anims in that directory should be ok, its just that the tail
isn't animated beyond its base pose.
The problem as you've noted are the stock animations like knifeman
and crew. We ignored this for the Dwarves but if they ever start swimming
they'll pop back to full size. For units with a new bone, they might crash
the game. Probably one would have to copy the stock anims into the
new directory and rewrite descr_skeleton.txt so that the new anim section
there points to the copies of crew and knifeman in the new directory where
they will receive the extra bone and animation data when
"biggerandbetterexportskeleton" is run.
Without too much thought on the subject, it seems like the above could
be generalized to adding more than one bone at a time. Of course, someone
is going to have to animmerge these into Milkshape to make the tail
move and some anim families like MTW2_Mace has 185 anims, MTW2_Halberd
has 205, MTW2_2H_Axe has 215, etc. from my survey.
Does that sound like a reasonable automated animation modification?
Bookmarks