Animation Overrides
The mod includes a little animation override system I developed for use with the
spellcasting gauntlets and claw gauntlets.
Files
How To Use It
The most obvious use for an animation override component, is for a
special weapon that needs to play a different attack animation when
it is equipped.
For example, say that you have created a stabbing animation, which
you've added to the attack section of a character's chore dictionary,
with the index name 'stab':
[chore_attack]
{
chore_stances = 0,1,2,3,4,5,6,7,8;
skrit = select_attack;
[anim_files]
{
0mid = at;
high = at-02;
loww = at-03;
extr = at-04;
qffg = dff;
stab = at-stab;
}
...
Now you want to create a dagger that should only be used with a
stabbing motion. To do that, just add the following block to the
dagger's template:
[subanim_override]
{
msg_activate = WE_EQUIPPED;
msg_deactivate = WE_UNEQUIPPED;
anim_attack_min = 'stab';
}
If, instead, you had several stabbing attacks that you wanted to
randomly select from, you can specify a range of (sequential) animations
to use in the weapon's template:
[subanim_override]
{
msg_activate = WE_EQUIPPED;
msg_deactivate = WE_UNEQUIPPED;
anim_attack_min = 'stb0';
anim_attack_max = 'stb3';
}
Or, if it were a sort of weapon that is wielded completely differently,
you can override the attack, fidgets and run/walk animations:
[subanim_override]
{
msg_activate = WE_EQUIPPED;
msg_deactivate = WE_UNEQUIPPED;
anim_attack_min = 'stb0'; //index of first attack anim
anim_attack_max = 'stb3'; //index of last attack anim
anim_attack_fidget = 'stfg'; //index of quick fighting fidget
anim_fidget_min$ = 'stf0'; //index of first fidget anim
anim_fidget_max$ = 'stf1'; //index of last fidget anim
anim_walk_min$ = 'stw0'; //index of first run anim
anim_walk_max$ = 'stw1'; //index of last run anim
}
Currently, attack animation overrides only affect melee weapons (because
the select_attack isn't altered for the ranged case at this time).
Origin Ramblings
It's based on the concept of using quest bits to remember
and transmit information that is read by animation skrits (which operate client-side);
I first observed this this technique used by xmen90s in his early Age of Magi demo 4
work. Theoretically, a person should also be able to achieve the same effect when
eschewing quest bits in favor of global integers, set with GameAuditor.RCSet
(this function will propagate global integers, which would otherwise be saved only
on a single client, across all clients in a MP game), as seen in Lokiswaq's BufUI mod.