500 lines
22 KiB
Plaintext
500 lines
22 KiB
Plaintext
|
------------------------------------------------------------------------------
|
||
|
Soldier Animation System
|
||
|
------------------------------------------------------------------------------
|
||
|
|
||
|
Character:
|
||
|
human [custom]
|
||
|
|
||
|
Soldier animations are organized at the top level by a hierarchy of
|
||
|
character types, each of which (except human, the root) inherit from
|
||
|
another character type in the hierarchy (default: human).
|
||
|
|
||
|
Examples of custom character types are 'bdroid', 'ewok', and so on.
|
||
|
Custom character types are generally distinguished from human by a custom
|
||
|
skeleton, and allow the overriding of movement and action animations
|
||
|
independent of the weapon being used. Custom types may be defined in
|
||
|
soldier ODFs using the SkeletonName or AnimationName tag.
|
||
|
|
||
|
Weapon:
|
||
|
rifle bazooka tool pistol grenade melee
|
||
|
[custom]
|
||
|
|
||
|
Soldier animations are organized next by a hierarchy of weapon types, each
|
||
|
of which (except rifle, the root) inherit from another weapon type in the
|
||
|
hierachy. For the predefined standard types, bazooka and tool inherit
|
||
|
from rifle and pistol, grenade, and melee inherit from tool. Custom
|
||
|
weapons may be defined in weapon ODFs using the CustomAnimationBank or
|
||
|
ComboAnimationBank tag and must specify either a standard type or a
|
||
|
previously defined custom type as their parent.
|
||
|
|
||
|
Examples of custom weapon types might be 'hanblaster' from 'pistol' or
|
||
|
'lukesaber' from 'melee'. Custom weapon types are useful for defining new
|
||
|
weapon animations while still inheriting a skeleton and movement
|
||
|
animations independently based on character type.
|
||
|
|
||
|
Each weapon may or may not support alert states. For instance, bazooka
|
||
|
and melee do not, since they are effectively always alert. Combo weapon
|
||
|
types also specify a combo file controlling the weapon FSM simulation and
|
||
|
associated animation states.
|
||
|
|
||
|
Posture:
|
||
|
stand crouch prone standalert crouchalert pronealert
|
||
|
|
||
|
A soldier who is not playing action, custom, or override animations is
|
||
|
always in one of the above postures. Alert postures are used for a few
|
||
|
seconds after playing a weapon_shoot* animation to avoid popping when
|
||
|
shooting repeatedly.
|
||
|
|
||
|
Scope:
|
||
|
upper lower full
|
||
|
|
||
|
A soldier is divided into upper and lower parts which can be animated
|
||
|
independently or together.
|
||
|
|
||
|
Animations:
|
||
|
Animations come in several types, but most have the following parameters:
|
||
|
Loop - does the animation loop when it completes.
|
||
|
Blend time - how long does the animation take to blend in when it begins.
|
||
|
Scope - if the animation does not override it, what parts of the soldier
|
||
|
are affected by the animation.
|
||
|
|
||
|
Currently, loop and blend time are hard coded.
|
||
|
|
||
|
Weapon Animations:
|
||
|
shoot shoot2 shoot_secondary shoot_secondary2
|
||
|
charge reload
|
||
|
|
||
|
Weapon animations cover various weapon specific actions, and are named
|
||
|
<character>_<weapon>_<posture>_<anim>[_<scope>]. For example,
|
||
|
human_bazooka_stand_reload.
|
||
|
<posture> does not include alert postures for weapon animations - weapon
|
||
|
animations are effectively always alert.
|
||
|
<scope> defaults to 'upper' for all weapon animations, as they will
|
||
|
generally be combined with movement animations on the lower body. A
|
||
|
weapon animation that overrides this to 'full' by being named, for
|
||
|
instance, human_rifle_stand_shoot_full, will also have precedence over
|
||
|
idle movement animations on the lower body.
|
||
|
<loop> is false for all weapon animations.
|
||
|
<blend time> is 0.02s for shoot*, 0.5s for other weapon animations
|
||
|
|
||
|
Any weapon animations that are not directly defined for a character and
|
||
|
weapon combination will inherit from other animations based on the
|
||
|
following rules, until a defined animation is found. For example, for
|
||
|
bdroid_tool_crouch_shoot2:
|
||
|
1) from <character parent>_<weapon>_<posture>_<anim>, i.e.
|
||
|
from human_tool_crouch_shoot2
|
||
|
2) for shoot* anims, from shoot or shoot2 or shoot3, i.e.
|
||
|
from bdroid_tool_crouch_shoot, bdroid_tool_crouch_shoot3
|
||
|
3) for posture 'crouch', from <character>_<weapon>_stand_<anim>, i.e.
|
||
|
from bdroid_tool_stand_shoot2 (this is to support grenades/melee)
|
||
|
4) from <character>_<weapon parent>_<posture>_<anim>, i.e.
|
||
|
from bdroid_rifle_crouch_shoot.
|
||
|
|
||
|
Note that all inheritance actually happens character by character, and
|
||
|
that rule 1 is applied for all weapons before rules 2-4 are applied. In
|
||
|
simpler terms, all human_* animations are resolved before bdroid attempts
|
||
|
to inherit from human, and all bdroid_tool_* animations inherit from
|
||
|
human_tool_* before bdroid_grenade_* attempts to inherit from them.
|
||
|
Additional rules for inheritance are defined in specific cases -
|
||
|
See SoldierAnimatorClass.cpp::_PostLoad() for the details, which have
|
||
|
become complicated...
|
||
|
|
||
|
After the inheritance rules have been applied, all animations except
|
||
|
must be defined for the upper body, and no animations must be defined for
|
||
|
the lower body. Weapons without a charge state do not need a charge
|
||
|
animation, and weapons without reload do not need a reload animation.
|
||
|
The inheritance rules allow for only one of the shoot* animations being
|
||
|
defined, and for crouch animations being undefined, since they default
|
||
|
to stand posture.
|
||
|
|
||
|
Movement Animations:
|
||
|
idle_emote idle_checkweapon idle_lookaround(idle_takeknee)
|
||
|
turnleft turnright
|
||
|
walkforward runforward walkbackward runbackward
|
||
|
walkright runright walkleft runleft
|
||
|
|
||
|
Movement animations cover various turning and walking actions, and are
|
||
|
named <character>_<weapon>_<posture>_<anim>[_<scope>]. For example,
|
||
|
bdroid_tool_prone_idle_checkweapon.
|
||
|
<posture> may include alert animations for weapons that support them.
|
||
|
<scope> defaults to 'full' for human_rifle_*, to 'lower' for turn*
|
||
|
animations, and to 'upper' for other animations.
|
||
|
<loop> is true for all animations except turn*.
|
||
|
<blend time> is 0.4 for prone/pronealert postures and 0.15 for others.
|
||
|
|
||
|
Any movement animations thate are not directly defined for a character
|
||
|
and weapon combination will inherit from other animations based on the
|
||
|
following rules, until a defined animation is found. For example, for
|
||
|
bdroid_tool_crouchalert_idle_lookaround:
|
||
|
0) for alert postures with weapons that do not support alert states,
|
||
|
simply copy the final results from non alert posture.
|
||
|
1) from <character>_<weapon parent>_<posture>_<anim>, i.e.
|
||
|
from bdroid_rifle_crouchalert_idle_lookaround. For alert postures,
|
||
|
weapons which support alert states inherit from the first parent which
|
||
|
also supports alert states, skipping any that do not.
|
||
|
2) from <character parent>_<weapon>_<posture>_<anim>, i.e.
|
||
|
from human_tool_crouchalert_idle_lookaround.
|
||
|
3) from <character>_<weapon>_<nonalert posture>_<anim>, i.e.
|
||
|
from bdroid_tool_crouch_idle_lookaround
|
||
|
4) for human_*idle* and human_*turn* animations, from idle_emote then
|
||
|
stand_idle_emote, i.e. human_tool_crouch_idle_checkweapon would
|
||
|
inherit from human_tool_crouch_idle_emote, then
|
||
|
human_tool_stand_idle_emote.
|
||
|
|
||
|
Inheritance works as in weapon animations, with rules 0, 1 applied first.
|
||
|
Additional rules for inheritance are defined in specific cases -
|
||
|
See SoldierAnimatorClass.cpp::_PostLoad() for the details, which have
|
||
|
become complicated...
|
||
|
|
||
|
After the inheritance rules have been applied, all idle animations must be
|
||
|
defined for the full body, turn animations for the lower body. At least
|
||
|
one of walk/run must be defined for the full body for forward and backward.
|
||
|
If at least one of walk/run is defined for left and for right, the
|
||
|
character will sidestep rather than twisting his body when moving left or
|
||
|
right. The inheritance rules also allow for idle_checkweapon and
|
||
|
idle_lookaround being undefined.
|
||
|
|
||
|
Action Animations:
|
||
|
sprint
|
||
|
jump jump_up jump_forward jump_backward jump_left jump_right
|
||
|
landsoft landhard fall thrown_flail
|
||
|
thrown_flyingfront thrown_flyingback
|
||
|
thrown_flyingleft thrown_flyingright
|
||
|
thrown_tumblefront thrown_tumbleback
|
||
|
thrown_bouncefrontsoft thrown_bouncebacksoft
|
||
|
thrown_landfrontsoft thrown_landbacksoft
|
||
|
thrown_restfrontsoft thrown_restbacksoft
|
||
|
diveforward jetpack_hover
|
||
|
stand_getupfront stand_getupback
|
||
|
stand_getdown_prone crouch_getdown_prone
|
||
|
prone_getup_stand prone_getup_crouch
|
||
|
stand_death_forward stand_death_backward
|
||
|
stand_death_left stand_death_right
|
||
|
|
||
|
Action animations cover various full body transitions and special
|
||
|
movements, and are named <character>_<weapon>_<anim>[_<scope>]. For
|
||
|
example, bdroid_tool_jump.
|
||
|
<scope> defaults to 'full' for human_rifle_*, and to 'upper' for others.
|
||
|
<loop> is true for thrown_flail, thrown_tumblefront, thrown_tumbleback,
|
||
|
abd jetpack_hover, and false for all others.
|
||
|
<blendtime> is 0.8s for fall, 0.5s for thrown_flail, 0.4s for jump*,
|
||
|
thrown_land*, 0.1s for thrown_tumble* and thrown_bounce*, 0.05s for
|
||
|
landsoft and landhard, and 0.15s for all others.
|
||
|
|
||
|
Any action animations that are not directly defined for a character and
|
||
|
weapon combination will inherit from other animations based on the
|
||
|
following rules, until a defined animation is found. For example, for
|
||
|
bdroid_tool_jump_up:
|
||
|
1) from <character>_<weapon parent>_<anim>, i.e.
|
||
|
from bdroid_rifle_jump_up.
|
||
|
2) from <character parent>_<weapon>_<anim>, i.e.
|
||
|
from human_tool_jump_up.
|
||
|
|
||
|
Inheritance works as in weapon animations, with rule 1 applied first.
|
||
|
Additional rules for inheritance are defined in specific cases - for
|
||
|
instance, jump_* -> jump, sprint -> stand_runforward, jetpack_hover ->
|
||
|
jump, and so on. See SoldierAnimatorClass.cpp::_PostLoad() for the
|
||
|
details, which have become complicated...
|
||
|
|
||
|
After the inheritance rules have been applied, all animations must be
|
||
|
defined for the full body.
|
||
|
|
||
|
Combo Animations:
|
||
|
[custom]
|
||
|
|
||
|
Combo animation names are defined in combo files, along with data
|
||
|
controlling their blend times, looping behavior, and so on.
|
||
|
|
||
|
Custom Animations:
|
||
|
[custom]
|
||
|
|
||
|
Custom animations generally cover various full body poses, generally
|
||
|
used when piloting various vehicles, and are named either
|
||
|
<character>_<weapon>_<anim> or <character>_<anim>. For example,
|
||
|
human_minigun_9pose or bdroid_ride_stap.
|
||
|
The names of these animations are defined in vehicle ODFs using one of
|
||
|
the tags PilotAnimation, SoldierAnimation, or AttachTrigger (used by
|
||
|
Sarlacc Technology (TM)).
|
||
|
Custom animations are always full body and do not support _<scope>.
|
||
|
Custom animations also do not loop or blend.
|
||
|
|
||
|
Any custom animations that are not directly defined for a character and
|
||
|
weapon combination will inherit from other animations based on the
|
||
|
following rules, until a defined animation is found. For example, for
|
||
|
bdroid_tool_stap_ride:
|
||
|
0) from <character>_<weapon parent>_<anim>, i.e.
|
||
|
from bdroid_rifle_stap_ride.
|
||
|
1) from <character>_<anim>, i.e.
|
||
|
from bdroid_stap_ride.
|
||
|
2) from <character parent>_<weapon>_<anim>, i.e.
|
||
|
from human_tool_stap_ride.
|
||
|
|
||
|
Inheritance works as in weapon animations, with rules 0, 1 applied first.
|
||
|
|
||
|
After the inheritance rules have been applied, all custom animations must
|
||
|
be defined for every character.
|
||
|
|
||
|
------------------------------------------------------------------------------
|
||
|
Soldier Low Resolution Animation System
|
||
|
------------------------------------------------------------------------------
|
||
|
|
||
|
Character:
|
||
|
humanlz [custom]
|
||
|
|
||
|
Low res animation banks are separated by character type. Custom types
|
||
|
default to inheriting from humanlz, but may specify an alternate parent
|
||
|
if it is already defined. Examples of custom types are bdroidlz, and
|
||
|
ewoklz.
|
||
|
|
||
|
Animations:
|
||
|
rifle_stand_idle_emote rifle_crouch_idle_emote
|
||
|
[rifle_prone_idle_emote] rifle_stand_flail
|
||
|
rifle_jetpack_hover rifle_diveforward
|
||
|
rifle_stand_runforward rifle_stand_death_backward
|
||
|
|
||
|
|
||
|
Low res animations cover all possible lowres animation states, and are
|
||
|
named <character>_<anim>, for example bdroidlz_rifle_stand_idle.
|
||
|
All are full body in scope. Any low res animations that are not defined
|
||
|
for a character type inherit from the parent bank. All animations must
|
||
|
be defined in humanlz.
|
||
|
|
||
|
With the exception of runforward and death, all are single frame poses
|
||
|
that may be shared by any number of low res soldiers.
|
||
|
|
||
|
Run animations use a pool of N (currently 3) looping animators, which can
|
||
|
be shared - i.e. if there are more than 3 humanlz low res soldiers on
|
||
|
screen, they will begin to share poses.
|
||
|
|
||
|
Death animations use a pool of N (currently 8) unshared LRU non-looping
|
||
|
animators. If there are more than 8 humanlz low res soldiers on screen
|
||
|
and dying, additional soldiers will take animators from the oldest
|
||
|
animating soldier.
|
||
|
|
||
|
|
||
|
Combo Animations:
|
||
|
[custom]
|
||
|
|
||
|
Combo animation names are defined in combo files, along with data
|
||
|
controlling whether the animation is reduced to a pose or not. The low res
|
||
|
animation system currently just uses the high res animations from the high
|
||
|
res banks, applied to the low res skeleton - perhaps 10% performance could
|
||
|
be gained by converting these animations to the low res skeleton.
|
||
|
|
||
|
Combo animations use a special high res unshared pool of fixed size, similar
|
||
|
to the death animation pool, unless they have been defined to use a single
|
||
|
frame pose, in which case they behave like a shared single pose anim.
|
||
|
|
||
|
Custom Animations:
|
||
|
[custom]
|
||
|
|
||
|
Low res custom animations work similarly to those for high res animation,
|
||
|
except that there is no support for alternate weapons (the animation for
|
||
|
ride_stap must be named [bank]_ride_stap or [bank]_rifle_ride_stap.
|
||
|
|
||
|
------------------------------------------------------------------------------
|
||
|
Soldier First Person Animation System
|
||
|
------------------------------------------------------------------------------
|
||
|
|
||
|
Character:
|
||
|
humanfp droidekafp
|
||
|
|
||
|
First person animation banks are separated by character type, so that
|
||
|
droideka animations will only be loaded when droideka are present on a
|
||
|
map. No custom types are supported currently.
|
||
|
|
||
|
Weapon:
|
||
|
rifle bazooka tool grenade (lascannon)
|
||
|
|
||
|
First person animations are grouped by weapon type. No custom weapon
|
||
|
types are supported currently.
|
||
|
|
||
|
Animations:
|
||
|
idle run shoot shoot2 charge reload repair
|
||
|
jump flail handsdown
|
||
|
|
||
|
First person animations cover all possible first person animation states,
|
||
|
and are named humanfp_<weapon>_<anim>, with the exception of
|
||
|
handsdown, which is named humanfp_<handsdown>.
|
||
|
|
||
|
Droidekafp only contains four animations, idle, walk, shoot, and reload,
|
||
|
but is otherwise similarly named (droideka_rifle_<anim>).
|
||
|
|
||
|
First person animations are loaded according to a hardcoded table. Some
|
||
|
animations do not exist for some weapons and are hardcoded to load
|
||
|
alternates. Any animations which are not found default to
|
||
|
humanfp_tool_idle.
|
||
|
|
||
|
------------------------------------------------------------------------------
|
||
|
Animation System Data
|
||
|
------------------------------------------------------------------------------
|
||
|
|
||
|
Tools/Bin/ZenAsset.exe
|
||
|
Extracts the skeleton and animations from a set of msh files in a
|
||
|
directory named basepose.msh and <anim>.msh, and outputs a ZAF file
|
||
|
containing the skeleton, a ZAA file containing the animations, and an
|
||
|
ANIMS file containing a utfc format (text) list of animations in the ZAA.
|
||
|
|
||
|
Tools/Bin/BinMunge.exe
|
||
|
Converts ZAF and ZAA files to ZAFBIN, ZAABIN files used by the game,
|
||
|
respectively.
|
||
|
|
||
|
Tools/Bin/OdfMunge.exe
|
||
|
Now generates requirements for individual animations, soldier animation
|
||
|
sets, as well as for ZAABINs and ZAFBINs correctly.
|
||
|
|
||
|
Tools/Bin/LevelPack.exe
|
||
|
Now handles requirements for individual animations, soldier animation
|
||
|
sets, as well as for ZAABINs and ZAFBINs correctly, using an updated
|
||
|
version of FILES table of content files.
|
||
|
|
||
|
Data/Animations
|
||
|
Contains all animation data used to build the ZAABIN, ZAFBIN, and ANIMS
|
||
|
files used during the game munge process. Animations are built as a
|
||
|
separate munge process using the munge.bat in this directory, and the
|
||
|
resulting files are checked into perforce in the appropriate munged
|
||
|
directory (Data/Common/munged, or Data/Sides/ALL/munged, for example).
|
||
|
|
||
|
Animations are broken down into subdirectories based on type:
|
||
|
SoldierAnimationBank/ for soldier animation banks and lowres animation
|
||
|
banks, SoldierAddon/ for soldier addons like capes, FirstPerson/ for first
|
||
|
person animation banks, Prop/ for world prop animations, and Vehicle/ for
|
||
|
vehicle animations.
|
||
|
|
||
|
ZAFBIN files - contain a skeleton, possibly associated with a ZAABIN file of
|
||
|
the same name.
|
||
|
|
||
|
ZAABIN files - contain a bank of animations.
|
||
|
|
||
|
ANIMS files - contains a text format (utfc) list of animations in a ZAA.
|
||
|
|
||
|
Data/Common/config/SoldierAnimation.SANM file
|
||
|
A config format file containing data controlling the looping, blending,
|
||
|
and other animation properties of all standard high-res soldier animations.
|
||
|
See combo.txt for formatting information - the format is the same as
|
||
|
Animation tags from that combo config files.
|
||
|
|
||
|
Soldier Animation Banks:
|
||
|
Soldier animation banks follow some specific additional rules.
|
||
|
|
||
|
Banks are expected to be named either <character> or <character>_<weapon>.
|
||
|
A bank is expected to only contain animations with names beginning with
|
||
|
the bank name, i.e. bdroid.zaabin should contain animations matching
|
||
|
bdroid_*, and human_melee.zaabin should only contain animations matching
|
||
|
human_melee_*. A bank may consist of only a skeleton (zafbin), or may
|
||
|
also contain override animations.
|
||
|
|
||
|
Any bank may additionally be broken into multiple parts in order to
|
||
|
deal with the size limitation imposed by the in game loader. The
|
||
|
resulting parts must be named with an appended '_0', '_1', and so on.
|
||
|
human.zaabin, for instance, is split into human_0 through human_4.
|
||
|
Only human_0's associated skeleton (zafbin) is required at load time.
|
||
|
|
||
|
ODF Properties -
|
||
|
Soldier ODFs:
|
||
|
AnimationName = "<character> [<parent>]"
|
||
|
SkeletonName = "<character> [<parent>]"
|
||
|
AnimationName and SkeletonName are synonyms.
|
||
|
If no property is found, <character> defaults to 'human'.
|
||
|
<parent> defaults to 'human'.
|
||
|
Specifies a custom skeleton and possibly animation bank to use
|
||
|
for this soldier and its place in the character hierarchy.
|
||
|
Generates a requirement for <character>.zafbin and optionally for
|
||
|
<character>.zaabin.
|
||
|
|
||
|
ex. SkeletonName = "wookie"
|
||
|
|
||
|
AnimationLowRes = "<character>"
|
||
|
SkeletonLowRes = "<character>"
|
||
|
AnimationLowRes and SkeletonLowRes are synonyms.
|
||
|
If no property is found, <character> defaults to 'humanlz'.
|
||
|
Specifies a custom low res skeleton and possibly animation bank to
|
||
|
use for this soldier.
|
||
|
Generates a requirement for <character>.zafbin and optionally for
|
||
|
<character>.zaabin.
|
||
|
|
||
|
ex. SkeletonLowRes = "wookielz"
|
||
|
|
||
|
Weapon ODFs:
|
||
|
AnimationBank = "[<character>_]<weapon>"
|
||
|
<character>_ defaults to 'human_'.
|
||
|
Specifies the weapon type used by this weapon for animation,
|
||
|
which must either be a standard type or a type previously defined
|
||
|
with CustomAnimationBank (see below).
|
||
|
At run time, <character> is ignored, since the character type is
|
||
|
based on the soldier wielding the weapon.
|
||
|
Generates a requirement for <character>_<weapon>_* animations
|
||
|
which requires a zaabin containing the given animations. If the
|
||
|
animations in question are in a weapon specific bank, i.e.
|
||
|
gam_melee_* to be found in gam_melee.zaabin, it is useful to
|
||
|
specify <character> in order to generate the correct requirement.
|
||
|
|
||
|
ex. AnimationBank = "rifle"
|
||
|
|
||
|
CustomAnimationBank="[<character>_]<weapon> <parent> [alert|noalert]"
|
||
|
Defines a custom weapon type used by this weapon for animation
|
||
|
and its relationship to the weapon hierarchy.
|
||
|
<character>_ defaults to 'human_'.
|
||
|
<parent> must either be a standard type or a type previously
|
||
|
defined with CustomAnimationBank.
|
||
|
If alert or noalert is specified, the weapon will either support
|
||
|
alert postures or not. If not specified, it will inherit the
|
||
|
alert support of its parent weapon.
|
||
|
At run time, <character> is ignored, since the character type is
|
||
|
based on the soldier wielding the weapon.
|
||
|
Generates a requirement for <character>_<weapon>_* animations
|
||
|
which requires a zaabin containing the given animations. If the
|
||
|
animations in question are in a weapon specific bank, i.e.
|
||
|
gam_melee_* to be found in gam_melee.zaabin, it is useful to
|
||
|
specify <character> in order to generate the correct requirement.
|
||
|
|
||
|
ex. CustomAnimationBank = "leia_pistol pistol alert"
|
||
|
|
||
|
ComboAnimationBank="[<character>_]<weapon> <parent> <combofile>"
|
||
|
Defines a custom melee weapon that uses a combo file to control
|
||
|
the weapon simulation and animations, and its relationship to
|
||
|
the hierarchy.
|
||
|
<character>_ defaults to 'human_'.
|
||
|
<parent> must either be a standard type or a type previously
|
||
|
defined with CustomAnimationBank/ComboAnimationBank.
|
||
|
At run time, <character> is ignored, since the character type is
|
||
|
based on the soldier wielding the weapon.
|
||
|
Generates a requirement for <character>_<weapon>_* animations
|
||
|
which requires a zaabin containing the given animations. If the
|
||
|
animations in question are in a weapon specific bank, i.e.
|
||
|
human_sabre_* to be found in human_sabre.zaabin, it is useful to
|
||
|
specify <character> in order to generate the correct requirement.
|
||
|
Also generates a requirement for <combofile>.combo.
|
||
|
|
||
|
ex. ComboAnimationBank = "human_sabre melee all_hero_lukejedi"
|
||
|
|
||
|
Other ODFs:
|
||
|
AnimationName = "<bankname>"
|
||
|
Specifies a skeleton and possibly a bank of animations to use for
|
||
|
this object.
|
||
|
Generates a requirement for <bankname>.zafbin and optionally for
|
||
|
<bankname>.zaabin.
|
||
|
|
||
|
...Animation = "<animname>"
|
||
|
Specifies a specific animation to be found in an already loaded
|
||
|
animation bank.
|
||
|
Generates a requirement for an animation named <animname>.
|
||
|
|
||
|
Controllable ODFs:
|
||
|
PilotAnimation = "<animname>"
|
||
|
Defines a custom soldier animation <animname>.
|
||
|
Generates a requirement for a soldier animation named
|
||
|
'human_<animname>'.
|
||
|
|
||
|
OrdnanceGrapplingHook/WeaponAreaEffect ODFs:
|
||
|
SoldierAnimation = "<animname>"
|
||
|
Defines a custom soldier animation <animname>.
|
||
|
Generates a requirement for a soldier animation named
|
||
|
'human_<animname>'.
|
||
|
|
||
|
EntityPropAnimated ODFs:
|
||
|
AttachTrigger = "<name> <...> <animname> <soldier_animname> ..."
|
||
|
Defines a custom soldier animation <soldier_animname>.
|
||
|
Generates a requirement for an animation '<animname>' and a
|
||
|
soldier animation named 'human_<soldier_animname>'.
|