CfgMoves Config Reference: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Layout update)
 
(26 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{Cfg ref|start}}
{{ConfigPage|start}}
==Introduction==
== Introduction ==
'''''cfgMoves''''' is the nerve center of all skeletal character animation. The animation of human characters that is - not the simple, procedural animation of objects (''e.g.'' raising/lowering a barrier, opening/closing of an aircraft canopy).
'''''cfgMoves''''' is the nerve center of all skeletal character animation. The animation of human characters that is - not the simple, procedural animation of objects (''e.g.'' raising/lowering a barrier, opening/closing of an aircraft canopy).


''cfgMoves'' has two major sections: ''Actions'' and ''States''.
''cfgMoves'' has two major sections: ''Actions'' and ''States''.


===Actions===
=== Actions ===
It is where the character animation [http://en.wikipedia.org/wiki/State_machine state machine] is set up. It's a bit confusing that {{Name|bi|short}} called the animation state handler "''Actions''", and the actions are called "''States''", but this is what it is.
It is where the character animation {{Link|https://en.wikipedia.org/wiki/State_machine|state machine}} is set up. It's a bit confusing that {{Name|bi|short}} called the animation state handler "''Actions''", and the actions are called "''States''", but this is what it is.


What this thing does, is configure all the possible animation states (''e.g.'' standing upright with a rifle, kneeling with a pistol, parachuting), and define for each of them which animations can be played in and from that given state.
What this thing does, is configure all the possible animation states (''e.g.'' standing upright with a rifle, kneeling with a pistol, parachuting), and define for each of them which animations can be played in and from that given state.
Line 14: Line 14:
What animation can or cannot be played, in what situation, is set up here in ''Actions''. Player input (key presses, clicks) are then directed to this state machine, which interprets them and decides what action/animation the avatar will perform next, according to these rules. Same rules apply to ''AI'' players.
What animation can or cannot be played, in what situation, is set up here in ''Actions''. Player input (key presses, clicks) are then directed to this state machine, which interprets them and decides what action/animation the avatar will perform next, according to these rules. Same rules apply to ''AI'' players.


===States===
=== States ===
In this section, each animation file (''[[RTM]]'') has a corresponding entry. Animation properties, such as playback speed, interpolation rules, blending times, collision shapes to use during animation, etc.., are configured here.
In this section, each animation file (''[[RTM]]'') has a corresponding entry. Animation properties, such as playback speed, interpolation rules, blending times, collision shapes to use during animation, etc.., are configured here.


Line 21: Line 21:
'''''cfgGestures''''' is similar to ''States'', it holds the bone-masked or layered animations introduced in {{Name|arma2|short}}. Welcome to reloading-while-running.
'''''cfgGestures''''' is similar to ''States'', it holds the bone-masked or layered animations introduced in {{Name|arma2|short}}. Welcome to reloading-while-running.


===Namespace of anim classes and files===
=== Namespace of anim classes and files ===
<tt>A...P...M...S...W...D[_A...P...M...S...W...D][_Comment]</tt>
{{hl|A...P...M...S...W...D[_A...P...M...S...W...D][_Comment]}}


'''A''': Description of the animation type, ''i.e.'': <tt>mov</tt> for movement, <tt>cts</tt> for cutscene
'''A''': Description of the animation type, ''i.e.'': {{hl|mov}} for movement, {{hl|cts}} for cutscene


'''P''': Stance: <tt>erc</tt> for erected, <tt>knl</tt> for kneel, <tt>pne</tt> for prone
'''P''': Stance: {{hl|erc}} for erected, {{hl|knl}} for kneel, {{hl|pne}} for prone


'''M''': Speed of animation: <tt>stp</tt> for stopped, <tt>wlk</tt> for walk, <tt>run</tt> for running, <tt>eva</tt> for evasive
'''M''': Speed of animation: {{hl|stp}} for stopped, {{hl|wlk}} for walk, {{hl|run}} for running, {{hl|eva}} for evasive


'''S''': Weapon holding: <tt>low</tt> for lowered, <tt>ras</tt> for raised
'''S''': Weapon holding: {{hl|low}} for lowered, {{hl|ras}} for raised


'''W''': Weapon: <tt>non</tt> for unarmed, <tt>pst</tt> for pistol, <tt>lnr</tt> for launcher, <tt>rfl</tt> for rifle.
'''W''': Weapon: {{hl|non}} for unarmed, {{hl|pst}} for pistol, {{hl|lnr}} for launcher, {{hl|rfl}} for rifle.


'''D''': Direction of movement: <tt>non</tt> for no direction, <tt>f</tt> for forward, etc.
'''D''': Direction of movement: {{hl|non}} for no direction, {{hl|f}} for forward, etc.


:If there is a second movement definition named <tt>[_A...P...M...S...W...D]</tt> after the first one, the animation is a transition from the first animation to the second.
:If there is a second movement definition named {{hl|[_A...P...M...S...W...D]}} after the first one, the animation is a transition from the first animation to the second.


<tt>[_Comment]: additional comments</tt>, if required.
{{hl|[_Comment]: additional comments}}, if required.


Example: <tt>'''A'''mov'''P'''pne'''M'''stp'''S'''non'''W'''non'''D'''non</tt> means: ''Movement - Prone - Stopped - civil (no weapon) - no direction (due to being static)''.
Example: {{hl|'''A'''mov'''P'''pne'''M'''stp'''S'''non'''W'''non'''D'''non}} means: ''Movement - Prone - Stopped - civil (no weapon) - no direction (due to being static)''.


==Alphabetical Order==
== Alphabetical Order ==
{{Cfg ref|abc}}
{{ConfigPage|abc}}
===A===
=== A ===
====access====
==== access ====
;Type: [[TokenNameValueTypes|Integer]]
;Type: [[TokenNameValueTypes|Integer]]
;Description: See ''[[CfgVehicles_Config_Reference#access | access (CfgVehicles)]]''.
;Description: See ''[[CfgVehicles_Config_Reference#access | access (CfgVehicles)]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
access = 3;
access = 3;
</syntaxhighlight>
</syntaxhighlight>


====actions====
==== actions ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Sets the action class/group to which this state belongs to.
;Description: Sets the action class/group to which this state belongs to.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
actions = "PistolStandActionsRunR";
actions = "PistolStandActionsRunR";
actions = "RifleStandActions";
actions = "RifleStandActions";
Line 64: Line 64:
</syntaxhighlight>
</syntaxhighlight>


====aiming====
==== aiming ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: This property references '''BlendAnims''' class entries to use when aiming up/down. These are sets of ''named selections'', with weights associated to them, defining how much should the bodyparts move while aiming.
;Description: This property references '''BlendAnims''' class entries to use when aiming up/down. These are sets of ''named selections'', with weights associated to them, defining how much should the bodyparts move while aiming.


Notice how for instance ''[[#aimingDefault.5B.5D | aimingDefault[] ]]'' sets up increasing weights for bones: Spine <tt>(0.3)</tt>, Spine1 <tt>(0.4)</tt>, Spine2 <tt>(0.5)</tt>, Spine3/Head/Neck <tt>(0.6)</tt>, shoulders and upper arms <tt>(0.8)</tt> and finally forearms, hands and weapons <tt>(1)</tt>. This makes for a smooth arching of the body while aiming.
Notice how for instance ''[[#aimingDefault.5B.5D | aimingDefault[] ]]'' sets up increasing weights for bones: Spine {{hl|(0.3)}}, Spine1 {{hl|(0.4)}}, Spine2 {{hl|(0.5)}}, Spine3/Head/Neck {{hl|(0.6)}}, shoulders and upper arms {{hl|(0.8)}} and finally forearms, hands and weapons {{hl|(1)}}. This makes for a smooth arching of the body while aiming.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
aiming = "empty";
aiming = "empty";
aiming = "aimingDefault";
aiming = "aimingDefault";
Line 80: Line 80:
</syntaxhighlight>
</syntaxhighlight>


====aimingDefault[]====
==== aimingDefault[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: ''BlendAnims'' array, see ''[[#aiming | aiming]]'' above.
;Description: ''BlendAnims'' array, see ''[[#aiming | aiming]]'' above.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
aimingDefault[] = {"head", 0.6, "neck1", 0.6, "neck", 0.6, "weapon", 1, "launcher", 1, "LeftShoulder", 0.8, "LeftArm", 0.8, "LeftArmRoll", 1,
aimingDefault[] = {"head", 0.6, "neck1", 0.6, "neck", 0.6, "weapon", 1, "launcher", 1, "LeftShoulder", 0.8, "LeftArm", 0.8, "LeftArmRoll", 1,
    "LeftForeArm", 1, "LeftForeArmRoll", 1, "LeftHand", 1, "LeftHandRing", 1, "LeftHandPinky1", 1, "LeftHandPinky2", 1, "LeftHandPinky3", 1,
"LeftForeArm", 1, "LeftForeArmRoll", 1, "LeftHand", 1, "LeftHandRing", 1, "LeftHandPinky1", 1, "LeftHandPinky2", 1, "LeftHandPinky3", 1,
    "LeftHandRing1", 1, "LeftHandRing2", 1, "LeftHandRing3", 1, "LeftHandMiddle1", 1, "LeftHandMiddle2", 1, "LeftHandMiddle3", 1, "LeftHandIndex1", 1,
"LeftHandRing1", 1, "LeftHandRing2", 1, "LeftHandRing3", 1, "LeftHandMiddle1", 1, "LeftHandMiddle2", 1, "LeftHandMiddle3", 1, "LeftHandIndex1", 1,
    "LeftHandIndex2", 1, "LeftHandIndex3", 1, "LeftHandThumb1", 1, "LeftHandThumb2", 1, "LeftHandThumb3", 1, "RightShoulder", 0.8, "RightArm", 0.8,
"LeftHandIndex2", 1, "LeftHandIndex3", 1, "LeftHandThumb1", 1, "LeftHandThumb2", 1, "LeftHandThumb3", 1, "RightShoulder", 0.8, "RightArm", 0.8,
    "RightArmRoll", 1, "RightForeArm", 1, "RightForeArmRoll", 1, "RightHand", 1, "RightHandRing", 1, "RightHandPinky1", 1, "RightHandPinky2", 1,
"RightArmRoll", 1, "RightForeArm", 1, "RightForeArmRoll", 1, "RightHand", 1, "RightHandRing", 1, "RightHandPinky1", 1, "RightHandPinky2", 1,
    "RightHandPinky3", 1, "RightHandRing1", 1, "RightHandRing2", 1, "RightHandRing3", 1, "RightHandMiddle1", 1, "RightHandMiddle2", 1,
"RightHandPinky3", 1, "RightHandRing1", 1, "RightHandRing2", 1, "RightHandRing3", 1, "RightHandMiddle1", 1, "RightHandMiddle2", 1,
    "RightHandMiddle3", 1, "RightHandIndex1", 1, "RightHandIndex2", 1, "RightHandIndex3", 1, "RightHandThumb1", 1, "RightHandThumb2", 1,
"RightHandMiddle3", 1, "RightHandIndex1", 1, "RightHandIndex2", 1, "RightHandIndex3", 1, "RightHandThumb1", 1, "RightHandThumb2", 1,
    "RightHandThumb3", 1, "Spine", 0.3, "Spine1", 0.4, "Spine2", 0.5, "Spine3", 0.6};
"RightHandThumb3", 1, "Spine", 0.3, "Spine1", 0.4, "Spine2", 0.5, "Spine3", 0.6};
aimingDefault[] = {};
aimingDefault[] = {};
</syntaxhighlight>
</syntaxhighlight>


====aimingNo[]====
==== aimingNo[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: ''BlendAnims'' array, see ''[[#aiming | aiming]]'' above.
;Description: ''BlendAnims'' array, see ''[[#aiming | aiming]]'' above.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
aimingNo[] = {};
aimingNo[] = {};
</syntaxhighlight>
</syntaxhighlight>


====aimPrecision====
==== aimPrecision ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Probably goes into accuracy calculations when firing a weapon; the higher the value, the less accurate aiming becomes.
;Description: Probably goes into accuracy calculations when firing a weapon; the higher the value, the less accurate aiming becomes.


Wounded <tt>&gt;1</tt>, firing upright animations are mostly <tt>1</tt>, kneeling is <tt>0.5</tt>, and prone values are even lower.
Wounded {{hl|&gt;1}}, firing upright animations are mostly {{hl|1}}, kneeling is {{hl|0.5}}, and prone values are even lower.
   
   
<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
aimPrecision = 5;       //Carrying a wounded soldier on your back
aimPrecision = 5; // Carrying a wounded soldier on your back
aimPrecision = 2;       //Injured, cannot stand up
aimPrecision = 2; // Injured, cannot stand up
aimPrecision = 1;       //Standing upright
aimPrecision = 1; // Standing upright
aimPrecision = 0.5;     //Crouched
aimPrecision = 0.5; // Crouched
aimPrecision = 0.3;     //Prone
aimPrecision = 0.3; // Prone
aimPrecision = 0.15;     //Walking slowly while looking down the sights
aimPrecision = 0.15; // Walking slowly while looking down the sights
</syntaxhighlight>
</syntaxhighlight>


===B===
=== B ===
====binocOff====
==== binocOff ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'' together with ''binocOn''. They define which state is used for bringing up and putting away binoculars.
;Description: Found in ''Actions'' together with ''binocOn''. They define which state is used for bringing up and putting away binoculars.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
binocOff = "";
binocOff = "";
binocOff = "AmovPercMstpSrasWrflDnon";
binocOff = "AmovPercMstpSrasWrflDnon";
Line 132: Line 132:
</syntaxhighlight>
</syntaxhighlight>


====binocOn====
==== binocOn ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
binocOn = "";   //No binocs while lying on the ground injured
binocOn = ""; // No binocs while lying on the ground injured
binocOn = "AwopPknlMstpSoptWbinDnon_rfl";
binocOn = "AwopPknlMstpSoptWbinDnon_rfl";
binocOn = "AwopPercMstpSoptWbinDnon_rfl";
binocOn = "AwopPercMstpSoptWbinDnon_rfl";
binocOn = "AwopPknlMstpSoptWbinDnon_pst";
binocOn = "AwopPknlMstpSoptWbinDnon_pst";
binocOn = "AwopPpneMstpSoptWbinDnon_rfl";
binocOn = "AwopPpneMstpSoptWbinDnon_rfl";
</syntaxhighlight>
</syntaxhighlight>


====boundingSphere====
==== boundingSphere ====
;Type: [[TokenNameValueTypes|Float / Boolean]]
;Type: [[TokenNameValueTypes|Float / Boolean]]
;Description: Probably obsolescent, used for character collision detection. For more accurate collision models use ''collisionShape'' & Co. Still used in {{Name|arma2|short}} for cutscene animations. Sphere collision probably much cheaper than anything else.
;Description: Probably obsolescent, used for character collision detection. For more accurate collision models use ''collisionShape'' & Co. Still used in {{Name|arma2|short}} for cutscene animations. Sphere collision probably much cheaper than anything else.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
boundingSphere = true;
boundingSphere = true;
boundingSphere = 1;
boundingSphere = 1;
Line 155: Line 155:
</syntaxhighlight>
</syntaxhighlight>


===C===
=== C ===
====CanNotMove====
==== CanNotMove ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''.
;Description: Found in ''Actions''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
CanNotMove = "AmovPpneMstpSrasWrflDnon";
CanNotMove = "AmovPpneMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====canPullTrigger====
==== canPullTrigger ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Self explanatory. While in that animation, the player can fire it's weapon, but his trigger finger will remain extended. The little "finger squeezing the trigger" animation won't play.
;Description: Self explanatory. While in that animation, the player can fire it is weapon, but his trigger finger will remain extended. The little "finger squeezing the trigger" animation won't play.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
canPullTrigger = 1;
canPullTrigger = 1;
</syntaxhighlight>
</syntaxhighlight>


====Civil====
==== Civil ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', defines what happens to a soldier if he were to lose his weapons and become unarmed.
;Description: Found in ''Actions'', defines what happens to a soldier if he were to lose his weapons and become unarmed.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
Civil = "AmovPercMstpSnonWnonDnon";
Civil = "AmovPercMstpSnonWnonDnon";
Civil = "AmovPercMstpSnonWnonDnon_gear";
Civil = "AmovPercMstpSnonWnonDnon_gear";
</syntaxhighlight>
</syntaxhighlight>


====CivilLying====
==== CivilLying ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''.
;Description: Found in ''Actions''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
CivilLying = "AmovPpneMstpSnonWnonDnon";
CivilLying = "AmovPpneMstpSnonWnonDnon";
</syntaxhighlight>
</syntaxhighlight>


====collisionGeomCompPattern[]====
==== collisionGeomCompPattern[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
collisionGeomCompPattern[] = {1,3,6};
collisionGeomCompPattern[] = {1,3,6};
</syntaxhighlight>
</syntaxhighlight>


====collisionShape====
==== collisionShape ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States''. Path to the collision model to be used during the animation, a special ''P3D'' file with only a ''Geometry LOD'' in it.
;Description: Found in ''States''. Path to the collision model to be used during the animation, a special ''P3D'' file with only a ''Geometry LOD'' in it. Having "axis" selection point in ``Memory LOD`` of this shape will make unit rotate around this point instead of their entity center.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
collisionShape = "ca\Anims\Characters\data\Geom\Sdr\Sstanistat_safe_geom.p3d";
collisionShape = "ca\Anims\Characters\data\Geom\Sdr\Sstanistat_safe_geom.p3d";
collisionShape = "ca\Anims\Characters\data\Geom\Sdr\geom_Adth.p3d";
collisionShape = "ca\Anims\Characters\data\Geom\Sdr\geom_Adth.p3d";
</syntaxhighlight>
</syntaxhighlight>


====collisionShapeSafe====
==== collisionShapeSafe ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
collisionShapeSafe = "ca\Anims\Characters\data\Geom\Sdr\sbeh45l_safe_geom.p3d";
collisionShapeSafe = "ca\Anims\Characters\data\Geom\Sdr\sbeh45l_safe_geom.p3d";
</syntaxhighlight>
</syntaxhighlight>


====collisionVertexPattern[]====
==== collisionVertexPattern[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Possibly some internal requirement of the collision detection algorithm. The strings represent individual vertices (named selections in the ''P3D'').
;Description: Possibly some internal requirement of the collision detection algorithm. The strings represent individual vertices (named selections in the ''P3D'').


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
collisionVertexPattern[] = {"1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "1c", "2c"};
collisionVertexPattern[] = {"1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "1c", "2c"};
collisionVertexPattern[] = {"1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "10a", "11a", "12a", "13a",
collisionVertexPattern[] = {"1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "10a", "11a", "12a", "13a",
    "14a", "15a", "16a", "17a", "18a", "19a", "20a", "21a", "22a", "23a", "24a", "25a", "26a", "27a", "28a",
"14a", "15a", "16a", "17a", "18a", "19a", "20a", "21a", "22a", "23a", "24a", "25a", "26a", "27a", "28a",
    "29a", "30a", "31a", "32a", "33a", "34a", "1c", "2c", "3c", "4c", "5c", "6c", "7c", "8c"};
"29a", "30a", "31a", "32a", "33a", "34a", "1c", "2c", "3c", "4c", "5c", "6c", "7c", "8c"};
</syntaxhighlight>
</syntaxhighlight>


====Combat====
==== Combat ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''.
;Description: Found in ''Actions''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
Combat = "AmovPknlMstpSrasWrflDnon";
Combat = "AmovPknlMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====connectAs====
==== connectAs ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States''; Not used in {{Name|oa|short}} anymore.
;Description: Found in ''States''; Not used in {{Name|arma2oa|short}} anymore.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
connectAs = "";
connectAs = "";
</syntaxhighlight>
</syntaxhighlight>


====connectFrom[]====
==== connectFrom[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in ''States''; Not used in {{Name|oa|short}} anymore.
;Description: Found in ''States''; Not used in {{Name|arma2oa|short}} anymore.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
connectFrom[] = {};
connectFrom[] = {};
connectFrom[] = {"TestSurrender", 0.9, "AdthPercMstpSlowWrflDnon_1", 0.9};
connectFrom[] = {"TestSurrender", 0.9, "AdthPercMstpSlowWrflDnon_1", 0.9};
</syntaxhighlight>
</syntaxhighlight>


====connectTo[]====
==== connectTo[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in ''States'', defines which animations can follow the current one, once it finishes. Although it allows for blending, ideally, the first pose of all animations from ''connectTo'' should be identical to the last pose of the current animation.
;Description: Found in ''States''. Defines edges in the animation graph, i.e. which animations can follow this one, once it finishes. The first pose of all animations from ''connectTo'' should be identical to the last pose of the current animation, otherwise see ''interpolateTo''. The numeric value specifies the cost of the transition.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
//AinvPknlMstpSnonWnonDnon_medic0S  
//AinvPknlMstpSnonWnonDnon_medic0S  
ConnectTo[] = {"AinvPknlMstpSnonWnonDnon_medic", 0.01,
ConnectTo[] = {"AinvPknlMstpSnonWnonDnon_medic", 0.01,
    "AinvPknlMstpSnonWnonDnon_medic0", 0.01,
"AinvPknlMstpSnonWnonDnon_medic0", 0.01,
    "AinvPknlMstpSnonWnonDnon_medic1", 0.01,
"AinvPknlMstpSnonWnonDnon_medic1", 0.01,
    "AinvPknlMstpSnonWnonDnon_medic2", 0.01,
"AinvPknlMstpSnonWnonDnon_medic2", 0.01,
    "AinvPknlMstpSnonWnonDnon_medic3", 0.01,
"AinvPknlMstpSnonWnonDnon_medic3", 0.01,
    "AinvPknlMstpSnonWnonDnon_medic4", 0.01,
"AinvPknlMstpSnonWnonDnon_medic4", 0.01,
    "AinvPknlMstpSnonWnonDnon_medic5", 0.01};
"AinvPknlMstpSnonWnonDnon_medic5", 0.01};
//BasicDriver
//BasicDriver
ConnectTo[] = {"BasicDriverDying", 1.0};
ConnectTo[] = {"BasicDriverDying", 1.0};
Line 266: Line 266:
</syntaxhighlight>
</syntaxhighlight>


====Crouch====
==== Crouch ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', defines what happens when the ''AI'' crouch. There's also ''PlayerCrouch'', which makes different crouching animations possible for players as opposed to ''AI''.
;Description: Found in ''Actions'', defines what happens when the ''AI'' crouch. There's also ''PlayerCrouch'', which makes different crouching animations possible for players as opposed to ''AI''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
Crouch = "AmovPknlMstpSnonWnonDnon";
Crouch = "AmovPknlMstpSnonWnonDnon";
</syntaxhighlight>
</syntaxhighlight>


===D===
=== D ===
====default====
==== default ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', defines the default state for an action.
;Description: Found in ''Actions'', defines the default state for an action.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
default = "LadderRifleStatic";
default = "LadderRifleStatic";
</syntaxhighlight>
</syntaxhighlight>


====die====
==== die ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', defines what animation/state is called when the character dies.
;Description: Found in ''Actions'', defines what animation/state is called when the character dies.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
die = "AdthPercMstpSlowWrflDnon_r05";
die = "AdthPercMstpSlowWrflDnon_r05";
die = "DeadState";
die = "DeadState";
</syntaxhighlight>
</syntaxhighlight>


====disableWeapons====
==== disableWeapons ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', and unlike ''canPullTrigger'', it can prohibit the character from firing his weapon.
;Description: Found in ''States'', and unlike ''canPullTrigger'', it can prohibit the character from firing his weapon.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
disableWeapons = 1;
disableWeapons = 1;
</syntaxhighlight>
</syntaxhighlight>


====disableWeaponsLong====
==== disableWeaponsLong ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', and apparently the only time ''disableWeaponsLong'' differs from ''disableWeapons'' is when the weapon is lowered (Ctrl doubletap).
;Description: Found in ''States'', and apparently the only time ''disableWeaponsLong'' differs from ''disableWeapons'' is when the weapon is lowered (Ctrl doubletap).


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
//AmovPercMstpSlowWrflDnon
//AmovPercMstpSlowWrflDnon
disableWeapons = false;
disableWeapons = false;
Line 312: Line 312:
</syntaxhighlight>
</syntaxhighlight>


====down====
==== down ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', tells what animation to play when hitting the "''Go prone''" key.
;Description: Found in ''Actions'', tells what animation to play when hitting the "''Go prone''" key.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
//class RifleBaseStandActions
//class RifleBaseStandActions
down = "AmovPpneMstpSrasWrflDnon";
down = "AmovPpneMstpSrasWrflDnon";
Line 326: Line 326:
</syntaxhighlight>
</syntaxhighlight>


====duty====
==== duty ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Duty used to mean some mandatory states/actions the character had to reach, before being able to perform a certain animation. Not sure about what this does in {{Name|arma|short}} anymore, if anything.
;Description: Duty used to mean some mandatory states/actions the character had to reach, before being able to perform a certain animation. Not sure about what this does in {{Name|arma1|short}} anymore, if anything.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
//OFP config
//OFP config
#define RunDuty -0.5
#define RunDuty -0.5
Line 352: Line 352:
</syntaxhighlight>
</syntaxhighlight>


===E===
=== E ===
====enableAutoActions====
==== enableAutoActions ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States''. In {{Name|arma2|short}} there's a single occurrence of it being ''true'': <tt>class TestDance</tt>.
;Description: Found in ''States''. In {{Name|arma2|short}} there's a single occurrence of it being ''true'': {{hl|class TestDance}}.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
enableAutoActions = 1;
enableAutoActions = 1;
</syntaxhighlight>
</syntaxhighlight>


====enableBinocular====
==== enableBinocular ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', defines whether the character can use binoculars or not.
;Description: Found in ''States'', defines whether the character can use binoculars or not.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
enableBinocular = 1;
enableBinocular = 1;


enableBinocular = false; //class CutSceneAnimationBase  
enableBinocular = false; // class CutSceneAnimationBase  
enableBinocular = false; //class AmovPercMrunSnonWbinDf_rfl
enableBinocular = false; // class AmovPercMrunSnonWbinDf_rfl
enableBinocular = true; //class AwopPknlMstpSoptWbinDnon_rfl
enableBinocular = true; // class AwopPknlMstpSoptWbinDnon_rfl
</syntaxhighlight>
</syntaxhighlight>


====enableMissile====
==== enableMissile ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', similar to ''disableWeapons''. It enables/disables the firing of shoulder launched rockets (''RPGs, MANPADS'').
;Description: Found in ''States'', similar to ''disableWeapons''. It enables/disables the firing of shoulder launched rockets (''RPGs, MANPADS'').


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
enableMissile = true; //class AidlPercMstpSrasWlnrDnon_player_idleSteady01
enableMissile = true; //class AidlPercMstpSrasWlnrDnon_player_idleSteady01


Line 383: Line 383:
</syntaxhighlight>
</syntaxhighlight>


====enableOptics====
==== enableOptics ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', enables/disables looking down the weapon sights.
;Description: Found in ''States'', enables/disables looking down the weapon sights.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
enableOptics = 1;
enableOptics = 1;
</syntaxhighlight>
</syntaxhighlight>


====equivalentTo====
==== equivalentTo ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', not sure what it does. The animation class is mostly ''equivalentTo'' another one, and oddly, sometimes to itself. Popular with healing, death, idle and cutscene animations.
;Description: Found in ''States'', not sure what it does. The animation class is mostly ''equivalentTo'' another one, and oddly, sometimes to itself. Popular with healing, death, idle and cutscene animations.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
equivalentTo = "";
equivalentTo = "";


class AdthPercMstpSrasWrflDnon_1 : AdthPercMstpSlowWrflDnon_1 {
class AdthPercMstpSrasWrflDnon_1 : AdthPercMstpSlowWrflDnon_1 {
    file = "\ca\Anims\Characters\data\Anim\Sdr\Dth\Erc\stp\ras\Rfl\AdthPercMstpSrasWrflDnon_1";
file = "\ca\Anims\Characters\data\Anim\Sdr\Dth\Erc\stp\ras\Rfl\AdthPercMstpSrasWrflDnon_1";
    speed = 0.72;
speed = 0.72;
    equivalentTo = "AdthPercMstpSrasWrflDnon_1";
equivalentTo = "AdthPercMstpSrasWrflDnon_1";
    ...
...
};
};


Line 408: Line 408:
</syntaxhighlight>
</syntaxhighlight>


====EvasiveBack====
==== EvasiveBack ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', along with ''EvasiveForward'', <tt>-Left</tt> and <tt>-Right</tt>. They point to the possible evasive animations that can be triggered.
;Description: Found in ''Actions'', along with ''EvasiveForward'', {{hl|-Left}} and {{hl|-Right}}. They point to the possible evasive animations that can be triggered.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
EvasiveBack = "AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDb";
EvasiveBack = "AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDb";
</syntaxhighlight>
</syntaxhighlight>


====EvasiveForward====
==== EvasiveForward ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#EvasiveBack | EvasiveBack]]''.
;Description: See ''[[#EvasiveBack | EvasiveBack]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
EvasiveForward = "AmovPercMevaSlowWlnrDf";
EvasiveForward = "AmovPercMevaSlowWlnrDf";
</syntaxhighlight>
</syntaxhighlight>


====EvasiveLeft====
==== EvasiveLeft ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#EvasiveBack | EvasiveBack]]''.
;Description: See ''[[#EvasiveBack | EvasiveBack]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
EvasiveLeft = "AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDl";
EvasiveLeft = "AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDl";
</syntaxhighlight>
</syntaxhighlight>


====EvasiveRight====
==== EvasiveRight ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#EvasiveBack | EvasiveBack]]''.
;Description: See ''[[#EvasiveBack | EvasiveBack]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
EvasiveRight = "AmovPpneMstpSrasWrflDnon_AmovPpneMevaSlowWrflDr";
EvasiveRight = "AmovPpneMstpSrasWrflDnon_AmovPpneMevaSlowWrflDr";
</syntaxhighlight>
</syntaxhighlight>


===F===
=== F ===
====fast..====
==== fast.. ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', ''[[#walk.. | walk..]]'' defines the walking animations, ''[[#slow.. | slow..]]'' defines the running/jogging and ''[[#fast.. | fast..]]'' the sprinting animations.
;Description: Found in ''Actions'', ''[[#walk.. | walk..]]'' defines the walking animations, ''[[#slow.. | slow..]]'' defines the running/jogging and ''[[#fast.. | fast..]]'' the sprinting animations.
Line 447: Line 447:
The suffixes mean the following: '''B''' (backward), '''F''' (forward), '''L''' (left strafe), '''R''' (right strafe) and a combination of these: '''RF''' (45 deg. strafe), '''RB''' (135 deg. strafe), '''LB''' (225 deg. strafe) and '''LF''' (315 deg. strafe).
The suffixes mean the following: '''B''' (backward), '''F''' (forward), '''L''' (left strafe), '''R''' (right strafe) and a combination of these: '''RF''' (45 deg. strafe), '''RB''' (135 deg. strafe), '''LB''' (225 deg. strafe) and '''LF''' (315 deg. strafe).


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
fastB = "AswmPercMstpSnonWnonDnon";
fastB = "AswmPercMstpSnonWnonDnon";
fastB = "AmovPercMrunSrasWrflDb";
fastB = "AmovPercMrunSrasWrflDb";
Line 459: Line 459:
</syntaxhighlight>
</syntaxhighlight>


====file====
==== file ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', points to the ''[[RTM]]'' animation file.
;Description: Found in ''States'', points to the ''[[RTM]]'' animation file.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
file = "\ca\Anims\Characters\data\Anim\Wmn\cts\erc\stp\non\non\ActsPercMstpSnonWnonDnon_MarianQ_shot5.rtm";
file = "\ca\Anims\Characters\data\Anim\Wmn\cts\erc\stp\non\non\ActsPercMstpSnonWnonDnon_MarianQ_shot5.rtm";
</syntaxhighlight>
</syntaxhighlight>


====FireNotPossible====
==== FireNotPossible ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''.
;Description: Found in ''Actions''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
FireNotPossible = "AmovPpneMstpSrasWrflDnon";
FireNotPossible = "AmovPpneMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


===G===
=== G ===
====getInCar====
==== getInCar ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: ''getInCar'' and ''getOutCar'' are found in ''Actions''; they define what animations to call when getting into/out of a car. Similar to ''getInTank''/''getOutTank''.
;Description: ''getInCar'' and ''getOutCar'' are found in ''Actions''; they define what animations to call when getting into/out of a car. Similar to ''getInTank''/''getOutTank''.
Line 482: Line 482:
None of these are really used in the {{Name|arma2|short}} config anymore (one exception: class ''LauncherKneelActions''). Instead, ''getInHigh, -Medium'' and ''-Low'' are used with their respective ''getOuts''. Assigning the different ''getIn'' actions for each vehicle is done in ''[[CfgVehicles_Config_Reference#...Action | CfgVehicles]]''.
None of these are really used in the {{Name|arma2|short}} config anymore (one exception: class ''LauncherKneelActions''). Instead, ''getInHigh, -Medium'' and ''-Low'' are used with their respective ''getOuts''. Assigning the different ''getIn'' actions for each vehicle is done in ''[[CfgVehicles_Config_Reference#...Action | CfgVehicles]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
getInAction = "GetInCar"; //CfgVehicles
getInAction = "GetInCar"; //CfgVehicles


Line 488: Line 488:
</syntaxhighlight>
</syntaxhighlight>


====GetInHigh====
==== GetInHigh ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#getInCar | getInCar]]''.
;Description: See ''[[#getInCar | getInCar]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
GetInHigh = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInHigh";
GetInHigh = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInHigh";
</syntaxhighlight>
</syntaxhighlight>


====GetInLow====
==== GetInLow ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#getInCar | getInCar]]''.
;Description: See ''[[#getInCar | getInCar]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
GetInLow = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInLow";
GetInLow = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInLow";
</syntaxhighlight>
</syntaxhighlight>


====GetInMedium====
==== GetInMedium ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#getInCar | getInCar]]''.
;Description: See ''[[#getInCar | getInCar]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
GetInMedium = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInMedium";
GetInMedium = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInMedium";
</syntaxhighlight>
</syntaxhighlight>


====getInTank====
==== getInTank ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#getInCar | getInCar]]''.
;Description: See ''[[#getInCar | getInCar]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
getInTank = "AmovPknlMstpSrasWrflDnon";
getInTank = "AmovPknlMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====getOutCar====
==== getOutCar ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#getInCar | getInCar]]''.
;Description: See ''[[#getInCar | getInCar]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
getOutCar = "AmovPknlMstpSrasWrflDnon";
getOutCar = "AmovPknlMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====GetOutHigh====
==== GetOutHigh ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#getInCar | getInCar]]''.
;Description: See ''[[#getInCar | getInCar]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
GetOutHigh = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutHigh";
GetOutHigh = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutHigh";
</syntaxhighlight>
</syntaxhighlight>


====GetOutLow====
==== GetOutLow ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#getInCar | getInCar]]''.
;Description: See ''[[#getInCar | getInCar]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
GetOutLow = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutLow";
GetOutLow = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutLow";
</syntaxhighlight>
</syntaxhighlight>


====GetOutMedium====
==== GetOutMedium ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#getInCar | getInCar]]''.
;Description: See ''[[#getInCar | getInCar]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
GetOutMedium = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutMedium";
GetOutMedium = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutMedium";
</syntaxhighlight>
</syntaxhighlight>


====getOutTank====
==== getOutTank ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#getInCar | getInCar]]''.
;Description: See ''[[#getInCar | getInCar]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
getOutTank = "AmovPknlMstpSrasWrflDnon";
getOutTank = "AmovPknlMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


===H===
=== H ===
====handGunOn====
==== handGunOn ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to transition to, when the character draws it's pistol. It is not the transition animation itself, where the character brings up the pistol (and puts away his rifle/launcher if he had any), but the end result of that: character standing, aiming with the pistol.  
;Description: Found in ''Actions'', points to the animation to transition to, when the character draws it is pistol. It is not the transition animation itself, where the character brings up the pistol (and puts away his rifle/launcher if he had any), but the end result of that: character standing, aiming with the pistol.  


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
handGunOn = "AmovPercMstpSrasWpstDnon"; //class RifleBaseLowStandActions
handGunOn = "AmovPercMstpSrasWpstDnon"; //class RifleBaseLowStandActions


Line 571: Line 571:
</syntaxhighlight>
</syntaxhighlight>


====hasCollShapeSafe====
==== hasCollShapeSafe ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
hasCollShapeSafe = 0;
hasCollShapeSafe = 0;
</syntaxhighlight>
</syntaxhighlight>


====head====
==== head ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', references ''BlendAnims'' class entries. Permits/forbids the character to rotate his head freely. Similar in functionality to ''[[#aiming | aiming]]''.
;Description: Found in ''States'', references ''BlendAnims'' class entries. Permits/forbids the character to rotate his head freely. Similar in functionality to ''[[#aiming | aiming]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
head = "headDefault";   //class Default
head = "headDefault"; // class Default
head = "headNo";       //class CutSceneAnimationBase
head = "headNo"; // class CutSceneAnimationBase
head = "empty";         //class HaloFreeFall_non
head = "empty"; // class HaloFreeFall_non
</syntaxhighlight>
</syntaxhighlight>


====headDefault[]====
==== headDefault[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in class ''BlendAnims'', defines a set of bones, with weights associated to each of them.
;Description: Found in class ''BlendAnims'', defines a set of bones, with weights associated to each of them.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
headDefault[] = {"head", 1, "neck1", 0.5, "neck", 0.5};
headDefault[] = {"head", 1, "neck1", 0.5, "neck", 0.5};


Line 598: Line 598:
</syntaxhighlight>
</syntaxhighlight>


====headNo[]====
==== headNo[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in class ''BlendAnims'', always an empty array. Serves for disabling free head movement (independent of the ''[[RTM]]'' animation).
;Description: Found in class ''BlendAnims'', always an empty array. Serves for disabling free head movement (independent of the ''[[RTM]]'' animation).


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
headNo[] = {};
headNo[] = {};
</syntaxhighlight>
</syntaxhighlight>


===I===
====headBobMode ====
====interpolateFrom[]====
;Type: [[TokenNameValueTypes|Number]]
;Description:
 
Valid values
<syntaxhighlight lang="cpp">
HeadBobUndef = 0
HeadBobRaw = 1
HeadBobBeginEnd = 2
HeadBobAverageFrame = 3
HeadBobStraightHorizon = 4
HeadBobCutScene = 5
</syntaxhighlight>
 
 
<syntaxhighlight lang="cpp">
headBobMode = 5; // Cutscene
</syntaxhighlight>
 
 
=== I ===
==== interpolateFrom[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in ''States'', used together with ''interpolateTo'' for setting up two-way interpolation rules. ''interpolateFrom[]'' however, seems to have fallen in disuse.
;Description: Found in ''States'', used together with ''interpolateTo'' for setting up two-way interpolation rules. ''interpolateFrom[]'' however, seems to have fallen in disuse.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
interpolateFrom[] = {"TestSurrender", 0.9, "AdthPercMstpSlowWrflDnon_1", 0.9};
interpolateFrom[] = {"TestSurrender", 0.9, "AdthPercMstpSlowWrflDnon_1", 0.9};
</syntaxhighlight>
</syntaxhighlight>


====interpolateTo[]====
==== interpolateTo[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in ''States''; defines which animations can interrupt the current one, and how fast blending between the two should be.
;Description: Found in ''States''; defines edges in the animation graph which should be interpolated immediately instead of connected at the end of this animation. As with connectTo, the numeric value specifies the cost of the transition.


Typically, animations will play to the end, then another animation will be played. Sometimes though, it's important to be able to just cut the current animation short, and immediately change to a different animation.
Typically, animations will play to the end, then another animation will be played. Sometimes though, it is important to be able to just cut the current animation short, and immediately change to a different animation.


A good example would be death animations: if the character is half way through "eating a kebab" animation and the kebab explodes in his face, he won't continue munching. Instead he will play a death animation and fall to the ground right away.
A good example would be death animations: if the character is half way through "eating a kebab" animation and the kebab explodes in his face, he won't continue munching. Instead he will play a death animation and fall to the ground right away.


To make the cut between the two animation less visually jarring, a couple of frames of transition/interpolation is provided, the length of which is what the numerical values stand for.
To make the cut between the two animation less visually jarring, a couple of frames of transition/interpolation is provided.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
interpolateTo[] = {"AinvPknlMstpSlayWrflDnon", 0.01,
interpolateTo[] = {"AinvPknlMstpSlayWrflDnon", 0.01,
    "AinvPknlMstpSlayWrflDnon_1", 0.01,
"AinvPknlMstpSlayWrflDnon_1", 0.01,
    "AinvPknlMstpSnonWnonDnon_1", 0.01,
"AinvPknlMstpSnonWnonDnon_1", 0.01,
    "AinvPknlMstpSnonWnonDnon_2", 0.01,
"AinvPknlMstpSnonWnonDnon_2", 0.01,
    "AinvPknlMstpSnonWnonDnon_3", 0.01,
"AinvPknlMstpSnonWnonDnon_3", 0.01,
    "AinvPknlMstpSnonWnonDnon_4", 0.01,
"AinvPknlMstpSnonWnonDnon_4", 0.01,
    "AdthPknlMstpSnonWnonDnon_inventory", 0.1};
"AdthPknlMstpSnonWnonDnon_inventory", 0.1};
</syntaxhighlight>
</syntaxhighlight>


====interpolateWith[]====
==== interpolateWith[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in ''States'', disused.
;Description: Found in ''States'', disused.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
interpolateWith[] = {"BasicDriver", 0.02};
interpolateWith[] = {"BasicDriver", 0.02};
</syntaxhighlight>
</syntaxhighlight>


====interpolationRestart====
==== interpolationRestart ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', true mostly for transition animations.
;Description: Found in ''States'', true mostly for transition animations.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
interpolationRestart = false;   //Default
interpolationRestart = false; // Default
interpolationRestart = true;     //DefaultDie
interpolationRestart = true; // DefaultDie
interpolationRestart = 2;
interpolationRestart = 2;
</syntaxhighlight>
</syntaxhighlight>


====interpolationSpeed====
==== interpolationSpeed ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''States''.
;Description: Found in ''States''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
interpolationSpeed = 200;   //AidlPercMstpSrasWrflDnon_aiming01, AdthPercMstpSrasWrflDnon_rS0  
interpolationSpeed = 200; // AidlPercMstpSrasWrflDnon_aiming01, AdthPercMstpSrasWrflDnon_rS0  
interpolationSpeed = 30.5;   //AmovPercMstpSlowWrflDnon_player_idleSteady01
interpolationSpeed = 30.5; // AmovPercMstpSlowWrflDnon_player_idleSteady01
interpolationSpeed = 6;     //Default
interpolationSpeed = 6; // Default
interpolationSpeed = 0.5;   //AmovPknlMstpSrasWrflDnon_AmovPercMsprSrasWrflDf_2
interpolationSpeed = 0.5; // AmovPknlMstpSrasWrflDnon_AmovPercMsprSrasWrflDf_2
interpolationSpeed = 0.1;   //AinjPfalMstpSnonWrflDnon_carried_Up
interpolationSpeed = 0.1; // AinjPfalMstpSnonWrflDnon_carried_Up
</syntaxhighlight>
</syntaxhighlight>


===J===
=== J ===
====JumpOff====
==== JumpOff ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', disused.
;Description: Found in ''Actions'', disused.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
JumpOff = "";
JumpOff = "";
</syntaxhighlight>
</syntaxhighlight>


===L===
=== L ===
====ladderOff====
==== ladderOff ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', defines what animation to switch to when letting go of the ladder.
;Description: Found in ''States'', defines what animation to switch to when letting go of the ladder.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
ladderOff = "AmovPercMstpSnonWnonDnon";
ladderOff = "AmovPercMstpSnonWnonDnon";
</syntaxhighlight>
</syntaxhighlight>


====ladderOffBottom====
==== ladderOffBottom ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', defines what animation to switch to when letting go of the ladder, having reached the bottom of it.
;Description: Found in ''States'', defines what animation to switch to when letting go of the ladder, having reached the bottom of it.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
ladderOffBottom = "LadderRifleDownOff";
ladderOffBottom = "LadderRifleDownOff";
</syntaxhighlight>
</syntaxhighlight>


====ladderOffTop====
==== ladderOffTop ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', defines what animation to switch to when letting go of the ladder, having reached the top of it.
;Description: Found in ''States'', defines what animation to switch to when letting go of the ladder, having reached the top of it.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
ladderOffTop = "LadderRifleTopOff";
ladderOffTop = "LadderRifleTopOff";
</syntaxhighlight>
</syntaxhighlight>


====ladderOnDown====
==== ladderOnDown ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', defines what animation to switch to when getting onto the bottom of the ladder.
;Description: Found in ''States'', defines what animation to switch to when getting onto the bottom of the ladder.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
ladderOnDown = "LadderRifleOn";
ladderOnDown = "LadderRifleOn";
</syntaxhighlight>
</syntaxhighlight>


====ladderOnUp====
==== ladderOnUp ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', defines what animation to switch to when getting onto the top of the ladder.
;Description: Found in ''States'', defines what animation to switch to when getting onto the top of the ladder.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
ladderOnUp = "LadderRifleOn";
ladderOnUp = "LadderRifleOn";
</syntaxhighlight>
</syntaxhighlight>


====leaning====
==== leaning ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in both ''Actions'' and ''States'', references ''BlendAnims'' class entries. Defines how much each bone/bodypart should be influenced when leaning.
;Description: Found in both ''Actions'' and ''States'', references ''BlendAnims'' class entries. Defines how much each bone/bodypart should be influenced when leaning.


Leaning, similar to aiming, is not an animation played back from a file. It's procedural, if you will, and so needs extra setting up in the config to look it's best.
Leaning, similar to aiming, is not an animation played back from a file. It's procedural, if you will, and so needs extra setting up in the config to look it is best.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leaning = "leaningDefault";   //Default
leaning = "leaningDefault"; // Default
leaning = "aimingLying";       //AmovPpneMstpSrasWrflDnon_injured
leaning = "aimingLying"; // AmovPpneMstpSrasWrflDnon_injured
leaning = "empty";             //class AmovPpneMrunSlowWrflDf - disables leaning while prone
leaning = "empty"; // class AmovPpneMrunSlowWrflDf - disables leaning while prone
</syntaxhighlight>
</syntaxhighlight>


====leaningCorrectionAngleBeg====
==== leaningCorrectionAngleBeg ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Not used in {{Name|arma2|short}}, appearing only once in {{Name|arma|short}} config, where both ''leaningCorrectionAngleBeg'' and ''leaningCorrectionAngleEnd'' are zero.
;Description: Not used in {{Name|arma2|short}}, appearing only once in {{Name|arma1|short}} config, where both ''leaningCorrectionAngleBeg'' and ''leaningCorrectionAngleEnd'' are zero.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leaningCorrectionAngleBeg = 0;
leaningCorrectionAngleBeg = 0;
leaningCorrectionAngleEnd = 0;
leaningCorrectionAngleEnd = 0;
</syntaxhighlight>
</syntaxhighlight>


====leaningFactorBeg====
==== leaningFactorBeg ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''States'', ''leaningFactorBeg'' sets how much influence leaning has at the start of an animation, while ''leaningFactorEnd'' takes care of the end. If the two values differ, leaning is blended in or out during the animation.
;Description: Found in ''States'', ''leaningFactorBeg'' sets how much influence leaning has at the start of an animation, while ''leaningFactorEnd'' takes care of the end. If the two values differ, leaning is blended in or out during the animation.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leaningFactorBeg = 1;   //StandBase
leaningFactorBeg = 1; // StandBase
leaningFactorEnd = 1;
leaningFactorEnd = 1;


leaningFactorBeg = 0;   //SprintBaseDf
leaningFactorBeg = 0; // SprintBaseDf
leaningFactorEnd = 0;
leaningFactorEnd = 0;


leaningFactorBeg = 0.5; //AmovPknlMstpSrasWlnrDnon - limited (half) leaning with launcher
leaningFactorBeg = 0.5; // AmovPknlMstpSrasWlnrDnon - limited (half) leaning with launcher
leaningFactorEnd = 0.5;
leaningFactorEnd = 0.5;


leaningFactorBeg = 0.75; //AmovPercMwlkSlowWrflDf - limited leaning while walking with rifle raised
leaningFactorBeg = 0.75; // AmovPercMwlkSlowWrflDf - limited leaning while walking with rifle raised
leaningFactorEnd = 0.75;
leaningFactorEnd = 0.75;


leaningFactorBeg = 1;   //amovpercmstpsraswrfldnon_amovpercmstpsraswlnrdnon
leaningFactorBeg = 1; // amovpercmstpsraswrfldnon_amovpercmstpsraswlnrdnon
leaningFactorEnd = 0.5;
leaningFactorEnd = 0.5;


leaningFactorBeg = 1;   //AmovPercMstpSrasWrflDnon_AmovPpneMstpSrasWrflDnon
leaningFactorBeg = 1; // AmovPercMstpSrasWrflDnon_AmovPpneMstpSrasWrflDnon
leaningFactorEnd = 0;   // -transition betwen a state with full leaning to one where leaning is forbidden-
leaningFactorEnd = 0; // -transition betwen a state with full leaning to one where leaning is forbidden-
</syntaxhighlight>
</syntaxhighlight>


====leaningFactorEnd====
==== leaningFactorEnd ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: See above.
;Description: See above.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leaningFactorEnd = 0.75;
leaningFactorEnd = 0.75;
</syntaxhighlight>
</syntaxhighlight>


====leaningFactorZeroPoint====
==== leaningFactorZeroPoint ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Appears only once in both {{Name|arma|short}} & {{Name|arma2|short}}, no variation across ''States'' or ''Actions''.
;Description: Appears only once in both {{Name|arma1|short}} & {{Name|arma2|short}}, no variation across ''States'' or ''Actions''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leaningFactorZeroPoint = -1;
leaningFactorZeroPoint = -1;
</syntaxhighlight>
</syntaxhighlight>


====leanLRot====
==== leanLRot ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''Actions'', sets the amount of lean possible and the angle of leaning.
;Description: Found in ''Actions'', sets the amount of lean possible and the angle of leaning.


With a value of <tt>1</tt>, the character will lean about <tt>70</tt> degrees off vertical, looking like it just broke it's back, so the more reasonable amount to lean is about half of that. Doctor's orders.
With a value of {{hl|1}}, the character will lean about {{hl|70}} degrees off vertical, looking like it just broke it is back, so the more reasonable amount to lean is about half of that. Doctor's orders.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leanLRot = 0;     //NoActions, RifleProneActions
leanLRot = 0; // NoActions, RifleProneActions
leanLRot = 0.5;   //RifleBaseLowStandActions
leanLRot = 0.5; // RifleBaseLowStandActions
leanLRot = 0.57;   //CivilStandActions
leanLRot = 0.57; // CivilStandActions
</syntaxhighlight>
</syntaxhighlight>


====leanLShift====
==== leanLShift ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''Actions''. In addition to tilting the upper body during leaning, it's also possible to move it into the lean.
;Description: Found in ''Actions''. In addition to tilting the upper body during leaning, it is also possible to move it into the lean.


Typical values are very small, anything else will produce excessive deformations of the model.
Typical values are very small, anything else will produce excessive deformations of the model.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leanLShift = 0;       //class RifleProneActions
leanLShift = 0; // class RifleProneActions
leanLShift = 0.01;   //class RifleBaseLowStandActions
leanLShift = 0.01; // class RifleBaseLowStandActions
leanLShift = 0.07;   //class CivilStandActions
leanLShift = 0.07; // class CivilStandActions
</syntaxhighlight>
</syntaxhighlight>


====leanRRot====
==== leanRRot ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: See [[#leanLRot | leanLRot]].
;Description: See [[#leanLRot | leanLRot]].


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leanRRot = 0.57;
leanRRot = 0.57;
</syntaxhighlight>
</syntaxhighlight>


====leanRShift====
==== leanRShift ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: See [[#leanLShift | leanLShift]].
;Description: See [[#leanLShift | leanLShift]].


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leanRShift = 0.01;
leanRShift = 0.01;
</syntaxhighlight>
</syntaxhighlight>


====leftHandIKBeg====
==== leftHandIKBeg ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', appeared in {{Name|arma|short}}, complemented/superseded in {{Name|arma2|short}} by ''leftHandIKCurve[]''.
;Description: Found in ''States'', appeared in {{Name|arma1|short}}, complemented/superseded in {{Name|arma2|short}} by ''leftHandIKCurve[]''.


These properties set whether at the beginning and end of the animation, ''IKs'' for both arms are enabled or not.
These properties set whether at the beginning and end of the animation, ''IKs'' for both arms are enabled or not.
Line 825: Line 845:


Typical uses:
Typical uses:
<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leftHandIKBeg = true;
leftHandIKBeg = true;
leftHandIKCurve[] = {1};
leftHandIKCurve[] = {1};
Line 843: Line 863:
</syntaxhighlight>
</syntaxhighlight>


====leftHandIKEnd====
==== leftHandIKEnd ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: See above.
;Description: See above.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leftHandIKEnd = 0;
leftHandIKEnd = 0;
</syntaxhighlight>
</syntaxhighlight>


====leftHandIKCurve====
==== leftHandIKCurve ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: As the name suggests, this array describes the curve controlling [http://en.wikipedia.org/wiki/Forward_kinematics FK]/[http://en.wikipedia.org/wiki/Inverse_kinematics IK] blending on the left arm.
;Description: As the name suggests, this array describes the curve controlling {{Link|https://en.wikipedia.org/wiki/Forward_kinematics|FK}}/{{Link|https://en.wikipedia.org/wiki/Inverse_kinematics|IK}} blending on the left arm.


Every pair of values describe a 2D point, with the first number representing ''time'' (horizontal) and the second being the ''weight'' (vertical).
Every pair of values describe a 2D point, with the first number representing ''time'' (horizontal) and the second being the ''weight'' (vertical).


''Time'' ranges from <tt>0-1</tt>, where <tt>0</tt> is animation start, <tt>0.5</tt> is half way, and <tt>1</tt> the end.
''Time'' ranges from {{hl|0-1}}, where {{hl|0}} is animation start, {{hl|0.5}} is half way, and {{hl|1}} the end.


''Weight'' also ranges from <tt>0-1</tt>, where <tt>0</tt> means animation is taken from ''RTM'' file (''FK'') and ''IK'' is disabled, <tt>0.6</tt> meaning a <tt>40%</tt> blend of ''FK'' and <tt>60%</tt> ''IK'', and <tt>1</tt> is <tt>100%</tt> ''IK''.
''Weight'' also ranges from {{hl|0-1}}, where {{hl|0}} means animation is taken from ''RTM'' file (''FK'') and ''IK'' is disabled, {{hl|0.6}} meaning a {{hl|40%}} blend of ''FK'' and {{hl|60%}} ''IK'', and {{hl|1}} is {{hl|100%}} ''IK''.


Let me interpret the last example below (the long one). The curve has 4 points <tt>[0, 1], [0.05, 0], [0.95, 0]</tt> and <tt>[1, 1]</tt>. When the animation starts playing, the ''IK'' takes full effect, but is gradually disabled by point <tt>#2</tt>. It stays disabled until point <tt>#3</tt> towards the end, when it's ''weight'' starts climbing again. At the end, at point <tt>#4</tt>, the ''IK'' is fully on again, overriding all ''FK''.
Let me interpret the last example below (the long one). The curve has 4 points {{hl|[0, 1], [0.05, 0], [0.95, 0]}} and {{hl|[1, 1]}}. When the animation starts playing, the ''IK'' takes full effect, but is gradually disabled by point {{hl|#2}}. It stays disabled until point {{hl|#3}} towards the end, when it is ''weight'' starts climbing again. At the end, at point {{hl|#4}}, the ''IK'' is fully on again, overriding all ''FK''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
leftHandIKCurve[] = {};                               //IK OFF.
leftHandIKCurve[] = {}; // IK OFF.
leftHandIKCurve[] = {1};                               //IK fully ON.
leftHandIKCurve[] = {1}; // IK fully ON.
leftHandIKCurve[] = {0.1, 1, 0.15, 0};                 //IK fully ON one-tenth into the animation, but disabled soon afterwards.
leftHandIKCurve[] = {0.1, 1, 0.15, 0}; // IK fully ON one-tenth into the animation, but disabled soon afterwards.
leftHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1};   //IK ON at start, but soon disabled. Re-enabled towards the end.
leftHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1}; // IK ON at start, but soon disabled. Re-enabled towards the end.
</syntaxhighlight>
</syntaxhighlight>


====legs====
==== legs ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', references ''BlendAnims'' class entries. Used for deforming the character on sloping surfaces (hillside, stairs, etc..).
;Description: Found in ''States'', references ''BlendAnims'' class entries. Used for deforming the character on sloping surfaces (hillside, stairs, etc..).
Line 876: Line 896:
Most of the ''[[RTM]]'' animations have been recorded in a motion capture studio, on a perfectly flat floor. When standing on a slope, the character would normally have one foot sinking into the ground, while the other would be hanging in the air. So {{Name|bi|short}} devised this system for deforming the bodyparts that have contact with the ground.
Most of the ''[[RTM]]'' animations have been recorded in a motion capture studio, on a perfectly flat floor. When standing on a slope, the character would normally have one foot sinking into the ground, while the other would be hanging in the air. So {{Name|bi|short}} devised this system for deforming the bodyparts that have contact with the ground.


When standing upright, it's just the legs. When prone, it's most, if not the whole body. Like everything else in ''BlendAnims'', it's a list of bones, with weights (amount of influence) associated.
When standing upright, it is just the legs. When prone, it is most, if not the whole body. Like everything else in ''BlendAnims'', it is a list of bones, with weights (amount of influence) associated.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
legs = "legsDefault";       //Deafault
legs = "legsDefault"; // Deafault
legs = "legsNo";             //DefaultDie
legs = "legsNo"; // DefaultDie
legs = "legsLyingAiming";   //AmovPpneMstpSrasWrflDnon_injured
legs = "legsLyingAiming"; // AmovPpneMstpSrasWrflDnon_injured
legs = "Wholebody";         //AmovPpneMstpSnonWnonDnon
legs = "Wholebody"; // AmovPpneMstpSnonWnonDnon
legs = "empty";             //HaloFreeFall_non
legs = "empty"; // HaloFreeFall_non
</syntaxhighlight>
</syntaxhighlight>


====legsDefault[]====
==== legsDefault[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: ''BlendAnims'' class entry. See above.
;Description: ''BlendAnims'' class entry. See above.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
legsDefault[] = {"LeftUpLeg", 0.9, "LeftUpLegRoll", 0.9, "LeftLeg", 0.95, "LeftLegRoll", 0.95, "LeftFoot", 1, "LeftToeBase", 1,
legsDefault[] = {"LeftUpLeg", 0.9, "LeftUpLegRoll", 0.9, "LeftLeg", 0.95, "LeftLegRoll", 0.95, "LeftFoot", 1, "LeftToeBase", 1,
    "RightUpLeg", 0.9, "RightUpLegRoll", 0.9, "RightLeg", 0.95, "RightLegRoll", 0.95, "RightFoot", 1, "RightToeBase", 1};
"RightUpLeg", 0.9, "RightUpLegRoll", 0.9, "RightLeg", 0.95, "RightLegRoll", 0.95, "RightFoot", 1, "RightToeBase", 1};
</syntaxhighlight>
</syntaxhighlight>


====legsNo[]====
==== legsNo[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Always empty ''BlendAnims'' class entry, see ''[[#legs | legs]]'' above. Disables all deformations on contact with land. Death animations are a typical case.
;Description: Always empty ''BlendAnims'' class entry, see ''[[#legs | legs]]'' above. Disables all deformations on contact with land. Death animations are a typical case.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
legsNo[] = {};
legsNo[] = {};
</syntaxhighlight>
</syntaxhighlight>


====limitFast====
==== limitFast ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''Actions'', used for limiting the ''[[#slow.. | slow..]]'' movements, although the names suggests a limiting of ''[[#fast.. | fast..]]''.
;Description: Found in ''Actions'', used for limiting the ''[[#slow.. | slow..]]'' movements, although the names suggests a limiting of ''[[#fast.. | fast..]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
limitFast = 0.5;   //RifleProneActions_injured
limitFast = 0.5; // RifleProneActions_injured
limitFast = 2;     //SwimmingActions
limitFast = 2; // SwimmingActions
limitFast = 4;     //class CivilStandActions, SwimmingFastActions
limitFast = 4; // class CivilStandActions, SwimmingFastActions
limitFast = 5;     //NoActions
limitFast = 5; // NoActions
limitFast = 5.5;   //RifleBaseLowStandActions
limitFast = 5.5; // RifleBaseLowStandActions
</syntaxhighlight>
</syntaxhighlight>


====limitGunMovement====
==== limitGunMovement ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States''.  
;Description: Found in ''States''.  


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
limitGunMovement = false;   //HealBase
limitGunMovement = false; // HealBase
limitGunMovement = false;   //SprintBaseDf
limitGunMovement = false; // SprintBaseDf
limitGunMovement = 0.1;     //AmovPercMstpSnonWnonDnon
limitGunMovement = 0.1; // AmovPercMstpSnonWnonDnon
limitGunMovement = 0.3;     //AovrPercMstpSlowWrflDf
limitGunMovement = 0.3; // AovrPercMstpSlowWrflDf
limitGunMovement = 0.6;     //AmovPercMwlkSlowWpstDnon_transition
limitGunMovement = 0.6; // AmovPercMwlkSlowWpstDnon_transition
limitGunMovement = true;     //Default
limitGunMovement = true; // Default
</syntaxhighlight>
</syntaxhighlight>


====looped====
==== looped ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', sets whether the current animation should start over once it's finished. Loop, that is.
;Description: Found in ''States'', sets whether the current animation should start over once it is finished. Loop, that is.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
looped = 1;
looped = 1;
</syntaxhighlight>
</syntaxhighlight>


====Lying====
==== Lying ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to play for the "''Prone with weapon''" situation. ''[[#CivilLying | CivilLying]]'' is the unarmed equivalent.
;Description: Found in ''Actions'', points to the animation to play for the "''Prone with weapon''" situation. ''[[#CivilLying | CivilLying]]'' is the unarmed equivalent.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
Lying = "AmovPpneMstpSnonWnonDnon";
Lying = "AmovPpneMstpSnonWnonDnon";
</syntaxhighlight>
</syntaxhighlight>


===M===
=== M ===
====medic====
==== medic ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to be used by a medic when triggering the "''Heal..''" action.
;Description: Found in ''Actions'', points to the animation to be used by a medic when triggering the "''Heal..''" action.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
medic = "AinvPknlMstpSlayWrflDnon_medic";
medic = "AinvPknlMstpSlayWrflDnon_medic";
</syntaxhighlight>
</syntaxhighlight>


===O===
=== O ===
====onLadder====
==== onLadder ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', flags the animation as ladder related.
;Description: Found in ''States'', flags the animation as ladder related.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
onLadder = 1;
onLadder = 1;
</syntaxhighlight>
</syntaxhighlight>


====onLandBeg====
==== onLandBeg ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States''. If at the start of the animation the character is lying on the ground (prone), ''onLandBeg'' equals ''true''. If at the end of the animation the character is lying on the ground (prone), ''onLandEnd'' equals ''true''. Otherwise false. Not sure what these flags are used for.
;Description: Found in ''States''. If at the start of the animation the character is lying on the ground (prone), ''onLandBeg'' equals ''true''. If at the end of the animation the character is lying on the ground (prone), ''onLandEnd'' equals ''true''. Otherwise false. Not sure what these flags are used for.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
//Default
//Default
onLandBeg = false;
onLandBeg = false;
Line 988: Line 1,008:
</syntaxhighlight>
</syntaxhighlight>


====onLandEnd====
==== onLandEnd ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: See above.
;Description: See above.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
onLandEnd = 1;
onLandEnd = 1;
</syntaxhighlight>
</syntaxhighlight>


===P===
=== P ===
====PlayerCrouch====
==== PlayerCrouch ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''. Similar to ''[[#Crouch | Crouch]]'', except it applies only to player characters and not ''AI''.
;Description: Found in ''Actions''. Similar to ''[[#Crouch | Crouch]]'', except it applies only to player characters and not ''AI''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
PlayerCrouch = "AmovPknlMstpSrasWlnrDnon";
PlayerCrouch = "AmovPknlMstpSrasWlnrDnon";
</syntaxhighlight>
</syntaxhighlight>


====PlayerProne====
==== PlayerProne ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''. Similar to ''[[#Lying | Lying]]'', except it applies only to player characters and not ''AI''.
;Description: Found in ''Actions''. Similar to ''[[#Lying | Lying]]'', except it applies only to player characters and not ''AI''.
Line 1,011: Line 1,031:
Sets the animation to be used when going prone.
Sets the animation to be used when going prone.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
PlayerProne = "AmovPpneMstpSnonWnonDnon";
PlayerProne = "AmovPpneMstpSnonWnonDnon";
</syntaxhighlight>
</syntaxhighlight>


====PlayerStand====
==== PlayerStand ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''. Similar to ''[[#Stand | Stand]]'', except it applies only to player characters and not ''AI''.
;Description: Found in ''Actions''. Similar to ''[[#Stand | Stand]]'', except it applies only to player characters and not ''AI''.
Line 1,021: Line 1,041:
Sets the animation to be used when standing upright.
Sets the animation to be used when standing upright.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
PlayerStand = "AwopPercMstpSoptWbinDnon_rfl";
PlayerStand = "AwopPercMstpSoptWbinDnon_rfl";
</syntaxhighlight>
</syntaxhighlight>


====predictSpeedCoef====
==== predictSpeedCoef ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Disused in {{Name|arma2|short}}, appears once in {{Name|arma|short}}.
;Description: Disused in {{Name|arma2|short}}, appears once in {{Name|arma1|short}}.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
predictSpeedCoef = 1;
predictSpeedCoef = 1;
</syntaxhighlight>
</syntaxhighlight>


====preload====
==== preload ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', sets whether to load the animation file (''[[RTM]]'') into memory at game start, or just read it from disc when there's a demand for it.
;Description: Found in ''States'', sets whether to load the animation file (''[[RTM]]'') into memory at game start, or just read it from disc when there's a demand for it.


All animations are set not to preload in {{Name|arma2|short}}, while in {{Name|arma|short}} some often used animations like running for example, are preloaded.
All animations are set not to preload in {{Name|arma2|short}}, while in {{Name|arma1|short}} some often used animations like running for example, are preloaded.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
preload = 1;
preload = 1;
</syntaxhighlight>
</syntaxhighlight>


====primaryActionMaps[]====
==== primaryActionMaps[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Outlines the main action groups.
;Description: Outlines the main action groups.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
primaryActionMaps[] = {"DeadActions", "LauncherKneelActions", "BinocProneRflActions", "BinocProneCivilActions",
primaryActionMaps[] = {"DeadActions", "LauncherKneelActions", "BinocProneRflActions", "BinocProneCivilActions",
    "RifleProneActions", "PistolProneActions", "RifleKneelActions", "PistolKneelActions", "RifleStandActions",
"RifleProneActions", "PistolProneActions", "RifleKneelActions", "PistolKneelActions", "RifleStandActions",
    "PistolStandActions", "RifleLowStandActions", "SwimmingActions", "CivilStandActions",
"PistolStandActions", "RifleLowStandActions", "SwimmingActions", "CivilStandActions",
    "BinocKneelRflActions", "BinocStandRflActions"};
"BinocKneelRflActions", "BinocStandRflActions"};
</syntaxhighlight>
</syntaxhighlight>


====putDown====
==== putDown ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''. Sets the animation to be used when the character puts something on the ground (e.g. dropping some equipment).
;Description: Found in ''Actions''. Sets the animation to be used when the character puts something on the ground (e.g. dropping some equipment).


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
putDown = "AmovPpneMstpSrasWrflDnon";
putDown = "AmovPpneMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====PutDownEnd====
==== PutDownEnd ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Not used in the {{Name|arma|short}} series.
;Description: Not used in the {{Name|arma1|short}} series.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
PutDownEnd = "";
PutDownEnd = "";
</syntaxhighlight>
</syntaxhighlight>


===R===
=== R ===
====reload...====
==== reload... ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''. Default actions for reloading are ''reloadMagazine'', ''reloadAT'', ''reloadMGun'' and ''reloadMortar'', but addon makers can add their own if they wish.
;Description: Found in ''Actions''. Default actions for reloading are ''reloadMagazine'', ''reloadAT'', ''reloadMGun'' and ''reloadMortar'', but addon makers can add their own if they wish.
Line 1,077: Line 1,097:
These actions are invoked in ''CfgWeapons'' and ''CfgMagazines'' via '''reloadAction'''. Most reload actions for upright stances in {{Name|arma2|short}} are bone-masked, they are configured as ''Gestures''.
These actions are invoked in ''CfgWeapons'' and ''CfgMagazines'' via '''reloadAction'''. Most reload actions for upright stances in {{Name|arma2|short}} are bone-masked, they are configured as ''Gestures''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
//game
//game
reloadAT = "LauncherReloadKneel";
reloadAT = "LauncherReloadKneel";
Line 1,090: Line 1,110:
</syntaxhighlight>
</syntaxhighlight>


====relSpeedMax====
==== relSpeedMax ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''States''.
;Description: Found in ''States''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
relSpeedMax = 0.6;
relSpeedMax = 0.6;
</syntaxhighlight>
</syntaxhighlight>


====relSpeedMin====
==== relSpeedMin ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''States''.
;Description: Found in ''States''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
relSpeedMin = 0.5;
relSpeedMin = 0.5;
</syntaxhighlight>
</syntaxhighlight>


====rightHandIKBeg====
==== rightHandIKBeg ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: See ''[[#leftHandIKBeg | leftHandIKBeg]]''.
;Description: See ''[[#leftHandIKBeg | leftHandIKBeg]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
rightHandIKBeg = 1;
rightHandIKBeg = 1;
</syntaxhighlight>
</syntaxhighlight>


====rightHandIKEnd====
==== rightHandIKEnd ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: See ''[[#leftHandIKBeg | leftHandIKBeg]]''.
;Description: See ''[[#leftHandIKBeg | leftHandIKBeg]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
rightHandIKEnd = 1;
rightHandIKEnd = 1;
</syntaxhighlight>
</syntaxhighlight>


====rightHandIKCurve====
==== rightHandIKCurve ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: See ''[[#leftHandIKCurve | leftHandIKCurve]]''.
;Description: See ''[[#leftHandIKCurve | leftHandIKCurve]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
rightHandIKCurve[] = {};                               //IK OFF.
rightHandIKCurve[] = {}; // IK OFF.
rightHandIKCurve[] = {1};                               //IK fully ON.
rightHandIKCurve[] = {1}; // IK fully ON.
rightHandIKCurve[] = {0.1, 1, 0.15, 0};                 //IK fully ON one-tenth into the animation, but disabled soon afterwards.
rightHandIKCurve[] = {0.1, 1, 0.15, 0}; // IK fully ON one-tenth into the animation, but disabled soon afterwards.
rightHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1};   //IK ON at start, but soon disabled. Re-enabled towards the end.
rightHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1}; // IK ON at start, but soon disabled. Re-enabled towards the end.
</syntaxhighlight>
</syntaxhighlight>


===S===
=== S ===
====salute..====
==== salute.. ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', ''salute'' points to the animation the character will transition to when saluting, while ''saluteOff'' points to the animation the character should return to when done saluting.
;Description: Found in ''Actions'', ''salute'' points to the animation the character will transition to when saluting, while ''saluteOff'' points to the animation the character should return to when done saluting.


Neither of these properties point to the transition animations, where the character is actually raising/lowering it's arm.
Neither of these properties point to the transition animations, where the character is actually raising/lowering it is arm.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
salute = "AmovPercMstpSlowWrflDnon_salute";
salute = "AmovPercMstpSlowWrflDnon_salute";
saluteOff = "AmovPercMstpSlowWrflDnon";
saluteOff = "AmovPercMstpSlowWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====showHandGun====
==== showHandGun ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', sets pistol visibility on/off.
;Description: Found in ''States'', sets pistol visibility on/off.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
showHandGun = 1;
showHandGun = 1;
</syntaxhighlight>
</syntaxhighlight>


====showItemInHand====
==== showItemInHand ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', sets item (''binoculars, NVG'') visibility on/off.
;Description: Found in ''States'', sets item (''binoculars'', specifically) visibility on/off.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
showItemInHand = 1;
showItemInHand = 1;
</syntaxhighlight>
</syntaxhighlight>


====showItemInRightHand====
==== showItemInRightHand ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', sets item (''binoculars, NVG'') visibility on/off in the right hand.
;Description: Found in ''States'', sets item (''binoculars'', specifically) visibility on/off in the right hand. Looks it is not working on Arma 3.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
showItemInRightHand = 0;
showItemInRightHand = 0;
</syntaxhighlight>
</syntaxhighlight>


====showWeaponAim====
==== showWeaponAim ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', sets whether ''crosshairs'' are displayed or not for given animation.
;Description: Found in ''States'', sets whether ''crosshairs'' are displayed or not for given animation.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
showWeaponAim = 1;
showWeaponAim = 1;
</syntaxhighlight>
</syntaxhighlight>


====sitDown====
==== sitDown ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to transition to when the sitting action is triggered. Not the ''to'' and ''from'' transition animations, but the sitting idle.
;Description: Found in ''Actions'', points to the animation to transition to when the sitting action is triggered. Not the ''to'' and ''from'' transition animations, but the sitting idle.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
SitDown = "";       //RifleStandSaluteActions_Idle - can't sit down while saluting
SitDown = ""; // RifleStandSaluteActions_Idle - can't sit down while saluting
sitDown = "AmovPsitMstpSlowWrflDnon";
sitDown = "AmovPsitMstpSlowWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====skeletonName====
==== skeletonName ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Sets the skeleton to be used.
;Description: Sets the skeleton to be used.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
skeletonName = "OFP2_ManSkeleton";
skeletonName = "OFP2_ManSkeleton";
skeletonName = "WomanSkeleton";
skeletonName = "WomanSkeleton";
</syntaxhighlight>
</syntaxhighlight>


====slow..====
==== slow.. ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#fast.. | fast..]]''.
;Description: See ''[[#fast.. | fast..]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
slowB = "AmovPercMrunSlowWlnrDb";
slowB = "AmovPercMrunSlowWlnrDb";
slowF = "AmovPercMevaSlowWlnrDf";
slowF = "AmovPercMevaSlowWlnrDf";
Line 1,210: Line 1,230:
</syntaxhighlight>
</syntaxhighlight>


====soundEdge..====
==== soundEdge.. ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in ''States''. Deprecated forms ''soundEdge1'', ''soundEdge2'' (used very little in {{Name|arma|short}}, not at all in {{Name|arma2|short}}).
;Description: Found in ''States''. Deprecated forms ''soundEdge1'', ''soundEdge2'' (used very little in {{Name|arma1|short}}, not at all in {{Name|arma2|short}}).


Used for sound timing during an animation. If there's a sound file associated with the animation, it won't play right away as the animation starts. It will play when and as many times as ''soundEdge'' tells it to.
Used for sound timing during an animation. If there's a sound file associated with the animation, it won't play right away as the animation starts. It will play when and as many times as ''soundEdge'' tells it to.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
soundEdge[] = {0.5, 1};               //Default
soundEdge[] = {0.5, 1}; // Default
soundEdge[] = {0.45};                 //DefaultDie
soundEdge[] = {0.45}; // DefaultDie
soundEdge[] = {0.25, 0.5, 0.75, 1};   //AmovPercMwlkSlowWrflDf - timing of the 4 footstep sounds
soundEdge[] = {0.25, 0.5, 0.75, 1}; // AmovPercMwlkSlowWrflDf - timing of the 4 footstep sounds


//old
//old
Line 1,226: Line 1,246:
</syntaxhighlight>
</syntaxhighlight>


====soundEnabled====
==== soundEnabled ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', enables/disables sounds being played with the animation.
;Description: Found in ''States'', enables/disables sounds being played with the animation.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
soundEnabled = 1;
soundEnabled = 1;
</syntaxhighlight>
</syntaxhighlight>


====soundOverride====
==== soundOverride ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', points to the actual sound to play with the animation.
;Description: Found in ''States'', points to the actual sound to play with the animation.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
soundOverride = "bodyfall";
soundOverride = "bodyfall";
</syntaxhighlight>
</syntaxhighlight>


====speed====
==== speed ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''States'', sets the animation playback speed.
;Description: Found in ''States'', sets the animation playback speed.
Line 1,248: Line 1,268:
Note that speed depends on animation length, on the number of frames it contains.
Note that speed depends on animation length, on the number of frames it contains.


For example, setting speed at <tt>0.5</tt> for a 50 frames long animation will result in it playing at about 25 frames per second. Setting the same speed for a 300 frame animation, will result in that animation playing much faster. ''Speed'', seems to me more akin to duration.
For example, setting speed at {{hl|0.5}} for a 50 frames long animation will result in it playing at about 25 frames per second. Setting the same speed for a 300 frame animation, will result in that animation playing much faster. ''Speed'', seems to me more akin to duration.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
speed = 0.00833333;
speed = 0.00833333;
</syntaxhighlight>
</syntaxhighlight>


====stand====
==== stand ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', see ''[[#playerStand | playerStand]]''.
;Description: Found in ''Actions'', see ''[[#playerStand | playerStand]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
Stand = "AmovPknlMstpSrasWrflDnon";
Stand = "AmovPknlMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====startSwim====
==== startSwim ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to be used when starting to swim.
;Description: Found in ''Actions'', points to the animation to be used when starting to swim.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
startSwim = "AswmPercMrunSnonWnonDf";
startSwim = "AswmPercMrunSnonWnonDf";
</syntaxhighlight>
</syntaxhighlight>


====stop====
==== stop ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to be used when stopping.
;Description: Found in ''Actions'', points to the animation to be used when stopping.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
stop = "AinvPknlMstpSlayWrflDnon";
stop = "AinvPknlMstpSlayWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====stopRelaxed====
==== stopRelaxed ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to be used when stopping with weapon lowered ("''SAFE''" behaviour).
;Description: Found in ''Actions'', points to the animation to be used when stopping with weapon lowered ("''SAFE''" behaviour).


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
StopRelaxed = "AidlPercMstpSlowWrflDnon01";
StopRelaxed = "AidlPercMstpSlowWrflDnon01";
</syntaxhighlight>
</syntaxhighlight>


====stopSwim====
==== stopSwim ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to be used when ending swimming.
;Description: Found in ''Actions'', points to the animation to be used when ending swimming.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
stopSwim = "AmovPercMstpSnonWnonDnon";
stopSwim = "AmovPercMstpSnonWnonDnon";
</syntaxhighlight>
</syntaxhighlight>


====strokeFist====
==== strokeFist ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''Actions'', not really used. Has been around since {{Name|ofp|short}} if I remember correctly, probably an attempt to introduce fist fighting, but then abandoned.
;Description: Found in ''Actions'', not really used. Has been around since {{Name|ofp|short}} if I remember correctly, probably an attempt to introduce fist fighting, but then abandoned.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
StrokeFist = "";
StrokeFist = "";
</syntaxhighlight>
</syntaxhighlight>


====strokeGun====
==== strokeGun ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Similar to ''strokeFist'' above, attempt at melee fighting but not used.
;Description: Similar to ''strokeFist'' above, attempt at melee fighting but not used.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
strokeGun = "AmovPercMstpSnonWnonDnon";
strokeGun = "AmovPercMstpSnonWnonDnon";
</syntaxhighlight>
</syntaxhighlight>


===T===
=== T ===
====takeFlag====
==== takeFlag ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to be used when taking the flag during a ''CTF'' match.
;Description: Found in ''Actions'', points to the animation to be used when taking the flag during a ''CTF'' match.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
takeFlag = "AinvPknlMstpSlayWrflDnon";
takeFlag = "AinvPknlMstpSlayWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====terminal====
==== terminal ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''States'', flags the animation as being "''terminal''". ''True'' for death animations, ''false'' for everything else.
;Description: Found in ''States'', flags the animation as being "''terminal''". ''True'' for death animations, ''false'' for everything else.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
terminal = 1;
terminal = 1;
</syntaxhighlight>
</syntaxhighlight>


====testDriver====
==== testDriver ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', along with ''testDriverOut'' and ''TestGunner''. "''Test''" suggests it might have been just that, an experiment during development.  
;Description: Found in ''Actions'', along with ''testDriverOut'' and ''TestGunner''. "''Test''" suggests it might have been just that, an experiment during development.  


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
//class ManActions
//class ManActions
TestDriver = "BasicDriver";
TestDriver = "BasicDriver";
Line 1,338: Line 1,358:
</syntaxhighlight>
</syntaxhighlight>


====testDriverOut====
==== testDriverOut ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See above.
;Description: See above.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
TestDriverOut = "BasicDriverOut";
TestDriverOut = "BasicDriverOut";
</syntaxhighlight>
</syntaxhighlight>


====testGunner====
==== testGunner ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#testDriver | testDriver]]''.
;Description: See ''[[#testDriver | testDriver]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
TestGunner = "BasicSittingGunner";
TestGunner = "BasicSittingGunner";
</syntaxhighlight>
</syntaxhighlight>


====throwGrenade====
==== throwGrenade ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to be used when throwing a grenade.
;Description: Found in ''Actions'', points to the animation to be used when throwing a grenade.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
throwGrenade = "AmovPercMrunSlowWpstDf_AmovPercMstpSrasWpstDnon_gthThrow";
throwGrenade = "AmovPercMrunSlowWpstDf_AmovPercMstpSrasWpstDnon_gthThrow";
</syntaxhighlight>
</syntaxhighlight>


====transitionsDisabled[]====
==== transitionsDisabled[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Empty array in both {{Name|arma|short}} & {{Name|arma2|short}}. No apparent use for it.
;Description: Empty array in both {{Name|arma1|short}} & {{Name|arma2|short}}. No apparent use for it.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
transitionsDisabled[] = {};
transitionsDisabled[] = {};
</syntaxhighlight>
</syntaxhighlight>


====transitionsInterpolated[]====
==== transitionsInterpolated[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Empty array in both {{Name|arma|short}} & {{Name|arma2|short}}. No apparent use for it.
;Description: Empty array in both {{Name|arma1|short}} & {{Name|arma2|short}}. No apparent use for it.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
transitionsInterpolated[] = {};
transitionsInterpolated[] = {};
</syntaxhighlight>
</syntaxhighlight>


====transitionsSimple[]====
==== transitionsSimple[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Empty array in both {{Name|arma|short}} & {{Name|arma2|short}}. No apparent use for it.
;Description: Empty array in both {{Name|arma1|short}} & {{Name|arma2|short}}. No apparent use for it.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
transitionsSimple[] = {};
transitionsSimple[] = {};
</syntaxhighlight>
</syntaxhighlight>


====treated====
==== treated ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', points to the animation to be used when being healed by a medic. Medic will be using animation defined in ''[[#medic | medic]]''.
;Description: Found in ''Actions'', points to the animation to be used when being healed by a medic. Medic will be using animation defined in ''[[#medic | medic]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
treated = "AinvPknlMstpSlayWrflDnon_healed";
treated = "AinvPknlMstpSlayWrflDnon_healed";
</syntaxhighlight>
</syntaxhighlight>


====turn...====
==== turn... ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', ''turnL'' and ''turnR'' define the turning animations, while ''turnLRelaxed'' and ''turnRRelaxed'' do the same thing for the "''relaxed''" (weapon lowered, behaviour "''SAFE''") modes.
;Description: Found in ''Actions'', ''turnL'' and ''turnR'' define the turning animations, while ''turnLRelaxed'' and ''turnRRelaxed'' do the same thing for the "''relaxed''" (weapon lowered, behaviour "''SAFE''") modes.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
turnL = "AmovPercMstpSlowWrflDnon_turnL";
turnL = "AmovPercMstpSlowWrflDnon_turnL";
turnLRelaxed = "AmovPercMstpSlowWrflDnon_turnL";
turnLRelaxed = "AmovPercMstpSlowWrflDnon_turnL";
Line 1,405: Line 1,425:
</syntaxhighlight>
</syntaxhighlight>


====turnSpeed====
==== turnSpeed ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''Actions'', sets turning speed.
;Description: Found in ''Actions'', sets turning speed.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
turnSpeed = 0.1;
turnSpeed = 0.1;
</syntaxhighlight>
</syntaxhighlight>


===U===
=== U ===
====untiltWeapon====
==== untiltWeapon ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Not found in {{Name|arma2|short}}, and not really used in {{Name|arma|short}} either.
;Description: Not found in {{Name|arma2|short}}, and not really used in {{Name|arma1|short}} either.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
untiltWeapon = "untiltWeaponDefault";
untiltWeapon = "untiltWeaponDefault";
</syntaxhighlight>
</syntaxhighlight>


====untiltWeaponDefault[]====
==== untiltWeaponDefault[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Same as above.
;Description: Same as above.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
untiltWeaponDefault[] = {};
untiltWeaponDefault[] = {};
</syntaxhighlight>
</syntaxhighlight>


====up====
==== up ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions''. Together with ''[[#down | down]]'' sets up what looks like a standing/kneeling/prone toggle. Which I don't think is used in the game's current control scheme.
;Description: Found in ''Actions''. Together with ''[[#down | down]]'' sets up what looks like a standing/kneeling/prone toggle. Which I don't think is used in the game's current control scheme.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
up = "AmovPknlMstpSlowWrflDnon";   //RifleBaseLowStandActions
up = "AmovPknlMstpSlowWrflDnon"; // RifleBaseLowStandActions
up = "AmovPknlMstpSrasWrflDnon";   //RifleBaseStandActions
up = "AmovPknlMstpSrasWrflDnon"; // RifleBaseStandActions
up = "AmovPknlMwlkSlowWrflDf";     //RifleLowStandActionsWlkF
up = "AmovPknlMwlkSlowWrflDf"; // RifleLowStandActionsWlkF
up = "AmovPercMstpSrasWrflDnon";   //RifleKneelActions
up = "AmovPercMstpSrasWrflDnon"; // RifleKneelActions
</syntaxhighlight>
</syntaxhighlight>


====upDegree====
==== upDegree ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''Actions'', seems to define the "''upright''" stance for each action group.
;Description: Found in ''Actions'', seems to define the "''upright''" stance for each action group.


These "''ManPos..''" things only appear in root <tt>/Dta/bin/config.bin</tt>, where they get some equivalent numbers, and that's it. Important to get right though when creating custom action sets.
These "''ManPos..''" things only appear in root {{hl|/Dta/bin/config.bin}}, where they get some equivalent numbers, and that's it. Important to get right though when creating custom action sets.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
upDegree = 0;                       //NoActions
upDegree = 0; // NoActions
upDegree = -1;                       //NoActions, ParachuteFreeFall
upDegree = -1; // NoActions, ParachuteFreeFall
upDegree = "ManPosDead";             //DeadActions
upDegree = "ManPosDead"; // DeadActions
upDegree = "ManPosStand";           //RifleBaseLowStandActions
upDegree = "ManPosStand"; // RifleBaseLowStandActions
upDegree = "ManPosCombat";           //RifleBaseStandActions
upDegree = "ManPosCombat"; // RifleBaseStandActions
upDegree = "ManPosCrouch";           //RifleKneelEvasiveActions, RifleKneelActions
upDegree = "ManPosCrouch"; // RifleKneelEvasiveActions, RifleKneelActions
upDegree = "ManPosLying";           //RifleProneActions
upDegree = "ManPosLying"; // RifleProneActions
upDegree = "ManPosHandGunStand";
upDegree = "ManPosHandGunStand";
upDegree = "ManPosHandGunCrouch";
upDegree = "ManPosHandGunCrouch";
upDegree = "ManPosHandGunLying";
upDegree = "ManPosHandGunLying";
upDegree = "ManPosNoWeapon";         //CivilStandActions
upDegree = "ManPosNoWeapon"; // CivilStandActions
upDegree = "ManPosLyingNoWeapon";
upDegree = "ManPosLyingNoWeapon";
upDegree = "ManPosWeapon";           //LauncherKneelActions
upDegree = "ManPosWeapon"; // LauncherKneelActions
upDegree = "ManPosBinocStand";       //BinocStandLnrActions
upDegree = "ManPosBinocStand"; // BinocStandLnrActions
upDegree = "ManPosSwimming";
upDegree = "ManPosSwimming";
upDegree = "ManPosBinocStand";
upDegree = "ManPosBinocStand";
Line 1,468: Line 1,488:
//enum in root config
//enum in root config
enum {
enum {
    MANPOSNOWEAPON = 12,
MANPOSNOWEAPON = 12,
    CPCOMMANDER = 2,
CPCOMMANDER = 2,
    CMD_STAY_BACK = 4,
CMD_STAY_BACK = 4,
    CMD_MOVE = 12,
CMD_MOVE = 12,
    CMD_FIRE = 27,
CMD_FIRE = 27,
    CMD_WATCH = 28,
CMD_WATCH = 28,
    CMD_REPLY_FAIL = 64,
CMD_REPLY_FAIL = 64,
    CMD_REPORT = 68,
CMD_REPORT = 68,
    ...
...
    MANPOSHANDGUNSTAND = 9,
MANPOSHANDGUNSTAND = 9,
    ...
...
    MANPOSCROUCH = 6,
MANPOSCROUCH = 6,
    ...
...
    MANPOSHANDGUNLYING = 5,
MANPOSHANDGUNLYING = 5,
    MANPOSHANDGUNCROUCH = 7,
MANPOSHANDGUNCROUCH = 7,
    MANPOSBINOCSTAND = 14,
MANPOSBINOCSTAND = 14,
    ...
...
    MANPOSDEAD = 0,
MANPOSDEAD = 0,
    MANPOSCOMBAT = 8,
MANPOSCOMBAT = 8,
    ...
...
    MANPOSBINOCLYING = 2,
MANPOSBINOCLYING = 2,
    MANPOSSTAND = 10,
MANPOSSTAND = 10,
    MANPOSSWIMMING = 11,
MANPOSSWIMMING = 11,
    COMPARTMENT3 = 4,
COMPARTMENT3 = 4,
    CMD_ACTION = 2,
CMD_ACTION = 2,
    CMD_FORM_ECHLEFT = 16,
CMD_FORM_ECHLEFT = 16,
    ...
...
    MANPOSWEAPON = 1,
MANPOSWEAPON = 1,
    ...
...
    MANPOSLYING = 4,
MANPOSLYING = 4,
    ...
...
    MANPOSLYINGNOWEAPON = 3,
MANPOSLYINGNOWEAPON = 3,
    MANPOSBINOC = 13,
MANPOSBINOC = 13,
    ...
...
};
};
</syntaxhighlight>
</syntaxhighlight>


====useFastMove====
==== useFastMove ====
;Type: [[TokenNameValueTypes|Boolean]]
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Found in ''Actions''. ''True'' for action sets containing "''Evasive''" in the classname, so an obscure flag of some sorts in {{Name|arma|short}}. Not used in any significant way in {{Name|arma2|short}}.
;Description: Found in ''Actions''. ''True'' for action sets containing "''Evasive''" in the classname, so an obscure flag of some sorts in {{Name|arma1|short}}. Not used in any significant way in {{Name|arma2|short}}.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
useFastMove = 1;
useFastMove = 1;
</syntaxhighlight>
</syntaxhighlight>


===V===
=== V ===
====variantAfter[]====
==== variantAfter[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in ''States'' when there are several variations on the same animation (usually idles) that can be played randomly.
;Description: Found in ''States'' when there are several variations on the same animation (usually idles) that can be played randomly.
Line 1,520: Line 1,540:
Minimum, average and maximum - these are the inputs for the random number generator, similar to how trigger timeout/countdown works in the ''mission editor''.
Minimum, average and maximum - these are the inputs for the random number generator, similar to how trigger timeout/countdown works in the ''mission editor''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
variantAfter[] = {5, 10, 20};     //Default
variantAfter[] = {5, 10, 20}; // Default
VariantAfter[] = {5, 5, 5};       //AinvPknlMstpSnonWnonDnon_medic0S  
VariantAfter[] = {5, 5, 5}; // AinvPknlMstpSnonWnonDnon_medic0S  
variantAfter[] = {2, 3, 5};       //AidlPercMstpSlowWrflDnon_player_0S
variantAfter[] = {2, 3, 5}; // AidlPercMstpSlowWrflDnon_player_0S
variantAfter[] = {0, 0, 0};       //AidlPercMstpSrasWrflDnon_aiming0S
variantAfter[] = {0, 0, 0}; // AidlPercMstpSrasWrflDnon_aiming0S
</syntaxhighlight>
</syntaxhighlight>


====variantsAI[]====
==== variantsAI[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in ''States'' when there are several variations on the same animation (usually idles) that can be played randomly.
;Description: Found in ''States'' when there are several variations on the same animation (usually idles) that can be played randomly.
Line 1,533: Line 1,553:
It lists the animations to be randomly cycled. The numbers represent the probability of that animation being played, the higher the number, the more likely the animation will get to play.
It lists the animations to be randomly cycled. The numbers represent the probability of that animation being played, the higher the number, the more likely the animation will get to play.


The sum of these numbers is always <tt>1</tt>.
The sum of these numbers is always {{hl|1}}.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
//Default
//Default
variantsAI[] = {""};  
variantsAI[] = {""};
//AidlPercMstpSnonWnonDnon        
//AidlPercMstpSnonWnonDnon
variantsAI[] = {"AidlPercMstpSnonWnonDnon01", 0.01,
variantsAI[] = {"AidlPercMstpSnonWnonDnon01", 0.01,
    "AidlPercMstpSnonWnonDnon02", 0.01,
"AidlPercMstpSnonWnonDnon02", 0.01,
    "AidlPercMstpSnonWnonDnon03", 0.01,
"AidlPercMstpSnonWnonDnon03", 0.01,
    "AidlPercMstpSnonWnonDnon04", 0.01,
"AidlPercMstpSnonWnonDnon04", 0.01,
    "AidlPercMstpSnonWnonDnon05", 0.01,
"AidlPercMstpSnonWnonDnon05", 0.01,
    "AidlPercMstpSnonWnonDnon06", 0.01,
"AidlPercMstpSnonWnonDnon06", 0.01,
    "AidlPercMstpSnonWnonDnon07", 0.01,
"AidlPercMstpSnonWnonDnon07", 0.01,
    "AidlPercMstpSnonWnonDnon08", 0.01,
"AidlPercMstpSnonWnonDnon08", 0.01,
    "AidlPercMstpSnonWnonDnon_idleSteady04", 0.23,
"AidlPercMstpSnonWnonDnon_idleSteady04", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady03", 0.23,
"AidlPercMstpSnonWnonDnon_idleSteady03", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady02", 0.23,
"AidlPercMstpSnonWnonDnon_idleSteady02", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady01", 0.23};
"AidlPercMstpSnonWnonDnon_idleSteady01", 0.23};
//ActsPsitMstpSnonWnonDnon_varSittingOnTheWall
//ActsPsitMstpSnonWnonDnon_varSittingOnTheWall
variantsAI[] = {"Mi17_Cargo02", 0.4, "Mi17_Cargo02_V1", 0.1, "Mi17_Cargo02_V2", 0.1, "Mi17_Cargo02_V3", 0.1,
variantsAI[] = {"Mi17_Cargo02", 0.4, "Mi17_Cargo02_V1", 0.1, "Mi17_Cargo02_V2", 0.1, "Mi17_Cargo02_V3", 0.1,
    "Mi17_Cargo02_V4", 0.1, "Mi17_Cargo02_V5", 0.1, "Mi17_Cargo02_V6", 0.1};
"Mi17_Cargo02_V4", 0.1, "Mi17_Cargo02_V5", 0.1, "Mi17_Cargo02_V6", 0.1};
//aidlpercmstpsraswlnrdnon_S
//aidlpercmstpsraswlnrdnon_S
variantsAI[] = {"aidlpercmstpsraswlnrdnon_1", 0.333, "aidlpercmstpsraswlnrdnon_2", 0.333, "aidlpercmstpsraswlnrdnon_3", 0.334};
variantsAI[] = {"aidlpercmstpsraswlnrdnon_1", 0.333, "aidlpercmstpsraswlnrdnon_2", 0.333, "aidlpercmstpsraswlnrdnon_3", 0.334};
</syntaxhighlight>
</syntaxhighlight>


====variantsPlayer[]====
==== variantsPlayer[] ====
;Type: [[TokenNameValueTypes|Array]]
;Type: [[TokenNameValueTypes|Array]]
;Description: Same as '''variantsAI[]''' above, except for player characters.
;Description: Same as '''variantsAI[]''' above, except for player characters.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
variantsPlayer[] = {"AdthPercMrunSlowWlnrDf_1", 0.5, "AdthPercMrunSlowWlnrDf_2", 0.5};
variantsPlayer[] = {"AdthPercMrunSlowWlnrDf_1", 0.5, "AdthPercMrunSlowWlnrDf_2", 0.5};
</syntaxhighlight>
</syntaxhighlight>


====visibleSize====
==== visibleSize ====
;Type: [[TokenNameValueTypes|Float]]
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''States'', probably used for calculating how visible a character is for the ''AI'', based on his stance/animation.
;Description: Found in ''States'', probably used for calculating how visible a character is for the ''AI'', based on his stance/animation.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
visibleSize = 1.00012;       //SprintBaseDf                 when sprinting more visible than..
visibleSize = 1.00012; // SprintBaseDf when sprinting more visible than..
visibleSize = 0.700121;     //AmovPercMstpSrasWrflDnon     ..when stopped > visible than..
visibleSize = 0.700121; // AmovPercMstpSrasWrflDnon ..when stopped > visible than..
visibleSize = 0.300122;     //AmovPknlMstpSlowWrflDnon     ..when kneeling > visible than..
visibleSize = 0.300122; // AmovPknlMstpSlowWrflDnon ..when kneeling > visible than..
visibleSize = 0.100123;     //AmovPpneMstpSrasWrflDnon     ..when prone.
visibleSize = 0.100123; // AmovPpneMstpSrasWrflDnon ..when prone.
</syntaxhighlight>
</syntaxhighlight>


===W===
=== W ===
====walk..====
==== walk.. ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: See ''[[#fast.. | fast..]]''.
;Description: See ''[[#fast.. | fast..]]''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
walkB = "AmovPercMwlkSlowWrflDb";
walkB = "AmovPercMwlkSlowWrflDb";
walkF = "AmovPercMevaSlowWlnrDf";
walkF = "AmovPercMevaSlowWlnrDf";
Line 1,594: Line 1,614:
</syntaxhighlight>
</syntaxhighlight>


====weaponOff====
==== weaponOff ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: The opposite of ''weaponOn'' below.
;Description: The opposite of ''weaponOn'' below.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
weaponOff = "AmovPercMstpSrasWrflDnon";
weaponOff = "AmovPercMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


====weaponOn====
==== weaponOn ====
;Type: [[TokenNameValueTypes|String]]
;Type: [[TokenNameValueTypes|String]]
;Description: Found in ''States'', and references the animation that needs to be reached when switching to ''RPGs/MANPADS''.
;Description: Found in ''States'', and references the animation that needs to be reached when switching to ''RPGs/MANPADS''.


<syntaxhighlight lang="c">
<syntaxhighlight lang="cpp">
weaponOn = "AmovPknlMstpSrasWlnrDnon";       //RifleBaseLowStandActions
weaponOn = "AmovPknlMstpSrasWlnrDnon"; // RifleBaseLowStandActions
weaponOff = "AmovPercMstpSrasWrflDnon";
weaponOff = "AmovPercMstpSrasWrflDnon";


weaponOn = "AmovPknlMstpSrasWlnrDnon";       //RifleKneelActions
weaponOn = "AmovPknlMstpSrasWlnrDnon"; // RifleKneelActions
weaponOff = "AmovPknlMstpSrasWrflDnon";
weaponOff = "AmovPknlMstpSrasWrflDnon";


weaponOn = "AmovPknlMstpSrasWlnrDnon";       //RifleProneActions
weaponOn = "AmovPknlMstpSrasWlnrDnon"; // RifleProneActions
weaponOff = "AmovPpneMstpSrasWrflDnon";
weaponOff = "AmovPpneMstpSrasWrflDnon";
</syntaxhighlight>
</syntaxhighlight>


{{Cfg ref|end}}
{{ConfigPage|end}}


[[category:Operation Flashpoint: Editing]]
{{GameCategory|ofp|Editing}}
[[Category:ArmA: Addon Configuration]]
{{GameCategory|arma1|Addon Configuration}}
[[Category:Moves|{{uc:{{PAGENAME}}}}]]
{{GameCategory|ofp|Reference Lists}}

Latest revision as of 16:27, 27 February 2024

Introduction

cfgMoves is the nerve center of all skeletal character animation. The animation of human characters that is - not the simple, procedural animation of objects (e.g. raising/lowering a barrier, opening/closing of an aircraft canopy).

cfgMoves has two major sections: Actions and States.

Actions

It is where the character animation state machine is set up. It's a bit confusing that BI called the animation state handler "Actions", and the actions are called "States", but this is what it is.

What this thing does, is configure all the possible animation states (e.g. standing upright with a rifle, kneeling with a pistol, parachuting), and define for each of them which animations can be played in and from that given state.

For instance, from the kneeling with a pistol state (PistolKneelActions), you cannot directly go into crawling forward on your stomach with a rifle (even if you have a rifle). First you would have to holster the pistol and grab your rifle, then lie down, or viceversa. Similarly, if you're prone (whether unarmed, or armed with a pistol or rifle), you cannot salute - first you'd have to stand up.

What animation can or cannot be played, in what situation, is set up here in Actions. Player input (key presses, clicks) are then directed to this state machine, which interprets them and decides what action/animation the avatar will perform next, according to these rules. Same rules apply to AI players.

States

In this section, each animation file (RTM) has a corresponding entry. Animation properties, such as playback speed, interpolation rules, blending times, collision shapes to use during animation, etc.., are configured here.

These animations are the ones referenced in the Actions section above. While Actions represents a complex graph, States is more like a list of items, even though some rules are also set up here (see the ConnectTo[] and InterpolateTo[] properties).

cfgGestures is similar to States, it holds the bone-masked or layered animations introduced in Arma 2. Welcome to reloading-while-running.

Namespace of anim classes and files

A...P...M...S...W...D[_A...P...M...S...W...D][_Comment]

A: Description of the animation type, i.e.: mov for movement, cts for cutscene

P: Stance: erc for erected, knl for kneel, pne for prone

M: Speed of animation: stp for stopped, wlk for walk, run for running, eva for evasive

S: Weapon holding: low for lowered, ras for raised

W: Weapon: non for unarmed, pst for pistol, lnr for launcher, rfl for rifle.

D: Direction of movement: non for no direction, f for forward, etc.

If there is a second movement definition named [_A...P...M...S...W...D] after the first one, the animation is a transition from the first animation to the second.

[_Comment]: additional comments, if required.

Example: AmovPpneMstpSnonWnonDnon means: Movement - Prone - Stopped - civil (no weapon) - no direction (due to being static).

Alphabetical Order

A

access

Type
Integer
Description
See access (CfgVehicles).
access = 3;

actions

Type
String
Description
Sets the action class/group to which this state belongs to.
actions = "PistolStandActionsRunR";
actions = "RifleStandActions";
actions = "InjuredManActionsnon_norot";
actions = "SitActions";

aiming

Type
String
Description
This property references BlendAnims class entries to use when aiming up/down. These are sets of named selections, with weights associated to them, defining how much should the bodyparts move while aiming.

Notice how for instance aimingDefault[] sets up increasing weights for bones: Spine (0.3), Spine1 (0.4), Spine2 (0.5), Spine3/Head/Neck (0.6), shoulders and upper arms (0.8) and finally forearms, hands and weapons (1). This makes for a smooth arching of the body while aiming.

aiming = "empty";
aiming = "aimingDefault";
aiming = "aimingNo";
aiming = "aimingCivil";
aiming = "aimingLying";
aiming = "aimingPistol";
aiming = "aimingLauncher";

aimingDefault[]

Type
Array
Description
BlendAnims array, see aiming above.
aimingDefault[] = {"head", 0.6, "neck1", 0.6, "neck", 0.6, "weapon", 1, "launcher", 1, "LeftShoulder", 0.8, "LeftArm", 0.8, "LeftArmRoll", 1,
	"LeftForeArm", 1, "LeftForeArmRoll", 1, "LeftHand", 1, "LeftHandRing", 1, "LeftHandPinky1", 1, "LeftHandPinky2", 1, "LeftHandPinky3", 1,
	"LeftHandRing1", 1, "LeftHandRing2", 1, "LeftHandRing3", 1, "LeftHandMiddle1", 1, "LeftHandMiddle2", 1, "LeftHandMiddle3", 1, "LeftHandIndex1", 1,
	"LeftHandIndex2", 1, "LeftHandIndex3", 1, "LeftHandThumb1", 1, "LeftHandThumb2", 1, "LeftHandThumb3", 1, "RightShoulder", 0.8, "RightArm", 0.8,
	"RightArmRoll", 1, "RightForeArm", 1, "RightForeArmRoll", 1, "RightHand", 1, "RightHandRing", 1, "RightHandPinky1", 1, "RightHandPinky2", 1,
	"RightHandPinky3", 1, "RightHandRing1", 1, "RightHandRing2", 1, "RightHandRing3", 1, "RightHandMiddle1", 1, "RightHandMiddle2", 1,
	"RightHandMiddle3", 1, "RightHandIndex1", 1, "RightHandIndex2", 1, "RightHandIndex3", 1, "RightHandThumb1", 1, "RightHandThumb2", 1,
	"RightHandThumb3", 1, "Spine", 0.3, "Spine1", 0.4, "Spine2", 0.5, "Spine3", 0.6};
aimingDefault[] = {};

aimingNo[]

Type
Array
Description
BlendAnims array, see aiming above.
aimingNo[] = {};

aimPrecision

Type
Float
Description
Probably goes into accuracy calculations when firing a weapon; the higher the value, the less accurate aiming becomes.

Wounded >1, firing upright animations are mostly 1, kneeling is 0.5, and prone values are even lower.

aimPrecision = 5;		// Carrying a wounded soldier on your back
aimPrecision = 2;		// Injured, cannot stand up
aimPrecision = 1;		// Standing upright
aimPrecision = 0.5;		// Crouched
aimPrecision = 0.3;		// Prone
aimPrecision = 0.15;	// Walking slowly while looking down the sights

B

binocOff

Type
String
Description
Found in Actions together with binocOn. They define which state is used for bringing up and putting away binoculars.
binocOff = "";
binocOff = "AmovPercMstpSrasWrflDnon";
binocOff = "AmovPknlMstpSrasWrflDnon";
binocOff = "AmovPercMstpSrasWrflDnon";
binocOff = "AmovPpneMstpSrasWrflDnon";

binocOn

Type
String
binocOn = "";	// No binocs while lying on the ground injured
binocOn = "AwopPknlMstpSoptWbinDnon_rfl";
binocOn = "AwopPercMstpSoptWbinDnon_rfl";
binocOn = "AwopPknlMstpSoptWbinDnon_pst";
binocOn = "AwopPpneMstpSoptWbinDnon_rfl";

boundingSphere

Type
Float / Boolean
Description
Probably obsolescent, used for character collision detection. For more accurate collision models use collisionShape & Co. Still used in Arma 2 for cutscene animations. Sphere collision probably much cheaper than anything else.
boundingSphere = true;
boundingSphere = 1;
boundingSphere = 1.5;
boundingSphere = 8;
boundingSphere = 35;

C

CanNotMove

Type
String
Description
Found in Actions.
CanNotMove = "AmovPpneMstpSrasWrflDnon";

canPullTrigger

Type
Boolean
Description
Self explanatory. While in that animation, the player can fire it is weapon, but his trigger finger will remain extended. The little "finger squeezing the trigger" animation won't play.
canPullTrigger = 1;

Civil

Type
String
Description
Found in Actions, defines what happens to a soldier if he were to lose his weapons and become unarmed.
Civil = "AmovPercMstpSnonWnonDnon";
Civil = "AmovPercMstpSnonWnonDnon_gear";

CivilLying

Type
String
Description
Found in Actions.
CivilLying = "AmovPpneMstpSnonWnonDnon";

collisionGeomCompPattern[]

Type
Array
collisionGeomCompPattern[] = {1,3,6};

collisionShape

Type
String
Description
Found in States. Path to the collision model to be used during the animation, a special P3D file with only a Geometry LOD in it. Having "axis" selection point in ``Memory LOD`` of this shape will make unit rotate around this point instead of their entity center.
collisionShape = "ca\Anims\Characters\data\Geom\Sdr\Sstanistat_safe_geom.p3d";
collisionShape = "ca\Anims\Characters\data\Geom\Sdr\geom_Adth.p3d";

collisionShapeSafe

Type
String
collisionShapeSafe = "ca\Anims\Characters\data\Geom\Sdr\sbeh45l_safe_geom.p3d";

collisionVertexPattern[]

Type
Array
Description
Possibly some internal requirement of the collision detection algorithm. The strings represent individual vertices (named selections in the P3D).
collisionVertexPattern[] = {"1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "1c", "2c"};
collisionVertexPattern[] = {"1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "10a", "11a", "12a", "13a",
	"14a", "15a", "16a", "17a", "18a", "19a", "20a", "21a", "22a", "23a", "24a", "25a", "26a", "27a", "28a",
	"29a", "30a", "31a", "32a", "33a", "34a", "1c", "2c", "3c", "4c", "5c", "6c", "7c", "8c"};

Combat

Type
String
Description
Found in Actions.
Combat = "AmovPknlMstpSrasWrflDnon";

connectAs

Type
String
Description
Found in States; Not used in Arma 2:OA anymore.
connectAs = "";

connectFrom[]

Type
Array
Description
Found in States; Not used in Arma 2:OA anymore.
connectFrom[] = {};
connectFrom[] = {"TestSurrender", 0.9, "AdthPercMstpSlowWrflDnon_1", 0.9};

connectTo[]

Type
Array
Description
Found in States. Defines edges in the animation graph, i.e. which animations can follow this one, once it finishes. The first pose of all animations from connectTo should be identical to the last pose of the current animation, otherwise see interpolateTo. The numeric value specifies the cost of the transition.
//AinvPknlMstpSnonWnonDnon_medic0S 
ConnectTo[] = {"AinvPknlMstpSnonWnonDnon_medic", 0.01,
	"AinvPknlMstpSnonWnonDnon_medic0", 0.01,
	"AinvPknlMstpSnonWnonDnon_medic1", 0.01,
	"AinvPknlMstpSnonWnonDnon_medic2", 0.01,
	"AinvPknlMstpSnonWnonDnon_medic3", 0.01,
	"AinvPknlMstpSnonWnonDnon_medic4", 0.01,
	"AinvPknlMstpSnonWnonDnon_medic5", 0.01};
//BasicDriver
ConnectTo[] = {"BasicDriverDying", 1.0};
connectTo[] = {"TestSurrender", 0.9, "AdthPercMstpSlowWrflDnon_1", 0.9};

Crouch

Type
String
Description
Found in Actions, defines what happens when the AI crouch. There's also PlayerCrouch, which makes different crouching animations possible for players as opposed to AI.
Crouch = "AmovPknlMstpSnonWnonDnon";

D

default

Type
String
Description
Found in Actions, defines the default state for an action.
default = "LadderRifleStatic";

die

Type
String
Description
Found in Actions, defines what animation/state is called when the character dies.
die = "AdthPercMstpSlowWrflDnon_r05";
die = "DeadState";

disableWeapons

Type
Boolean
Description
Found in States, and unlike canPullTrigger, it can prohibit the character from firing his weapon.
disableWeapons = 1;

disableWeaponsLong

Type
Boolean
Description
Found in States, and apparently the only time disableWeaponsLong differs from disableWeapons is when the weapon is lowered (Ctrl doubletap).
//AmovPercMstpSlowWrflDnon
disableWeapons = false;
disableWeaponsLong = true;
// or
disableWeaponsLong = 1;

down

Type
String
Description
Found in Actions, tells what animation to play when hitting the "Go prone" key.
//class RifleBaseStandActions
down = "AmovPpneMstpSrasWrflDnon";
//class RifleProneActions
down = "AmovPercMstpSrasWrflDnon";
//??

down = "LadderRifleDownLoop";

duty

Type
Float
Description
Duty used to mean some mandatory states/actions the character had to reach, before being able to perform a certain animation. Not sure about what this does in ArmA anymore, if anything.
//OFP config
#define RunDuty -0.5
#define WalkDuty -0.7
#define RestDuty -1
#define CrawlDuty -0.0
#define SprintDuty 0.6

duty = -1;
duty = -0.7;
duty = -0.5;
duty = -0.4;
duty = 0.1;
duty = 0.2;
duty = 0.25;
duty = 0.3;
duty = 0.4;
duty = 0.5;
duty = 0.6;
duty = 2;

E

enableAutoActions

Type
Boolean
Description
Found in States. In Arma 2 there's a single occurrence of it being true: class TestDance.
enableAutoActions = 1;

enableBinocular

Type
Boolean
Description
Found in States, defines whether the character can use binoculars or not.
enableBinocular = 1;

enableBinocular = false;	// class CutSceneAnimationBase 
enableBinocular = false;	// class AmovPercMrunSnonWbinDf_rfl
enableBinocular = true;		// class AwopPknlMstpSoptWbinDnon_rfl

enableMissile

Type
Boolean
Description
Found in States, similar to disableWeapons. It enables/disables the firing of shoulder launched rockets (RPGs, MANPADS).
enableMissile = true; //class AidlPercMstpSrasWlnrDnon_player_idleSteady01

enableMissile = 1;

enableOptics

Type
Boolean
Description
Found in States, enables/disables looking down the weapon sights.
enableOptics = 1;

equivalentTo

Type
String
Description
Found in States, not sure what it does. The animation class is mostly equivalentTo another one, and oddly, sometimes to itself. Popular with healing, death, idle and cutscene animations.
equivalentTo = "";

class AdthPercMstpSrasWrflDnon_1 : AdthPercMstpSlowWrflDnon_1 {
	file = "\ca\Anims\Characters\data\Anim\Sdr\Dth\Erc\stp\ras\Rfl\AdthPercMstpSrasWrflDnon_1";
	speed = 0.72;
	equivalentTo = "AdthPercMstpSrasWrflDnon_1";
	...
};

equivalentTo = "AmovPsitMstpSlowWrflDnon";

EvasiveBack

Type
String
Description
Found in Actions, along with EvasiveForward, -Left and -Right. They point to the possible evasive animations that can be triggered.
EvasiveBack = "AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDb";

EvasiveForward

Type
String
Description
See EvasiveBack.
EvasiveForward = "AmovPercMevaSlowWlnrDf";

EvasiveLeft

Type
String
Description
See EvasiveBack.
EvasiveLeft = "AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDl";

EvasiveRight

Type
String
Description
See EvasiveBack.
EvasiveRight = "AmovPpneMstpSrasWrflDnon_AmovPpneMevaSlowWrflDr";

F

fast..

Type
String
Description
Found in Actions, walk.. defines the walking animations, slow.. defines the running/jogging and fast.. the sprinting animations.

The suffixes mean the following: B (backward), F (forward), L (left strafe), R (right strafe) and a combination of these: RF (45 deg. strafe), RB (135 deg. strafe), LB (225 deg. strafe) and LF (315 deg. strafe).

fastB = "AswmPercMstpSnonWnonDnon";
fastB = "AmovPercMrunSrasWrflDb";
fastF = "AswmPercMsprSnonWnonDf";
fastL = "AswmPercMstpSnonWnonDnon";
fastLB = "AswmPercMstpSnonWnonDnon";
fastLF = "AswmPercMsprSnonWnonDf";
fastR = "AswmPercMstpSnonWnonDnon";
fastRB = "AswmPercMstpSnonWnonDnon";
fastRF = "AswmPercMsprSnonWnonDf";

file

Type
String
Description
Found in States, points to the RTM animation file.
file = "\ca\Anims\Characters\data\Anim\Wmn\cts\erc\stp\non\non\ActsPercMstpSnonWnonDnon_MarianQ_shot5.rtm";

FireNotPossible

Type
String
Description
Found in Actions.
FireNotPossible = "AmovPpneMstpSrasWrflDnon";

G

getInCar

Type
String
Description
getInCar and getOutCar are found in Actions; they define what animations to call when getting into/out of a car. Similar to getInTank/getOutTank.

None of these are really used in the Arma 2 config anymore (one exception: class LauncherKneelActions). Instead, getInHigh, -Medium and -Low are used with their respective getOuts. Assigning the different getIn actions for each vehicle is done in CfgVehicles.

getInAction = "GetInCar"; //CfgVehicles

getInCar = "AmovPknlMstpSrasWrflDnon";

GetInHigh

Type
String
Description
See getInCar.
GetInHigh = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInHigh";

GetInLow

Type
String
Description
See getInCar.
GetInLow = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInLow";

GetInMedium

Type
String
Description
See getInCar.
GetInMedium = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInMedium";

getInTank

Type
String
Description
See getInCar.
getInTank = "AmovPknlMstpSrasWrflDnon";

getOutCar

Type
String
Description
See getInCar.
getOutCar = "AmovPknlMstpSrasWrflDnon";

GetOutHigh

Type
String
Description
See getInCar.
GetOutHigh = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutHigh";

GetOutLow

Type
String
Description
See getInCar.
GetOutLow = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutLow";

GetOutMedium

Type
String
Description
See getInCar.
GetOutMedium = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutMedium";

getOutTank

Type
String
Description
See getInCar.
getOutTank = "AmovPknlMstpSrasWrflDnon";

H

handGunOn

Type
String
Description
Found in Actions, points to the animation to transition to, when the character draws it is pistol. It is not the transition animation itself, where the character brings up the pistol (and puts away his rifle/launcher if he had any), but the end result of that: character standing, aiming with the pistol.
handGunOn = "AmovPercMstpSrasWpstDnon"; //class RifleBaseLowStandActions

handGunOn = "AmovPpneMstpSrasWrflDnon";

hasCollShapeSafe

Type
Boolean
hasCollShapeSafe = 0;

head

Type
String
Description
Found in States, references BlendAnims class entries. Permits/forbids the character to rotate his head freely. Similar in functionality to aiming.
head = "headDefault";	// class Default
head = "headNo";		// class CutSceneAnimationBase
head = "empty";			// class HaloFreeFall_non

headDefault[]

Type
Array
Description
Found in class BlendAnims, defines a set of bones, with weights associated to each of them.
headDefault[] = {"head", 1, "neck1", 0.5, "neck", 0.5};

headDefault[] = {};

headNo[]

Type
Array
Description
Found in class BlendAnims, always an empty array. Serves for disabling free head movement (independent of the RTM animation).
headNo[] = {};

headBobMode

Type
Number
Description

Valid values

HeadBobUndef = 0
HeadBobRaw = 1
HeadBobBeginEnd = 2
HeadBobAverageFrame = 3
HeadBobStraightHorizon = 4
HeadBobCutScene = 5


headBobMode = 5; // Cutscene


I

interpolateFrom[]

Type
Array
Description
Found in States, used together with interpolateTo for setting up two-way interpolation rules. interpolateFrom[] however, seems to have fallen in disuse.
interpolateFrom[] = {"TestSurrender", 0.9, "AdthPercMstpSlowWrflDnon_1", 0.9};

interpolateTo[]

Type
Array
Description
Found in States; defines edges in the animation graph which should be interpolated immediately instead of connected at the end of this animation. As with connectTo, the numeric value specifies the cost of the transition.

Typically, animations will play to the end, then another animation will be played. Sometimes though, it is important to be able to just cut the current animation short, and immediately change to a different animation.

A good example would be death animations: if the character is half way through "eating a kebab" animation and the kebab explodes in his face, he won't continue munching. Instead he will play a death animation and fall to the ground right away.

To make the cut between the two animation less visually jarring, a couple of frames of transition/interpolation is provided.

interpolateTo[] = {"AinvPknlMstpSlayWrflDnon", 0.01,
	"AinvPknlMstpSlayWrflDnon_1", 0.01,
	"AinvPknlMstpSnonWnonDnon_1", 0.01,
	"AinvPknlMstpSnonWnonDnon_2", 0.01,
	"AinvPknlMstpSnonWnonDnon_3", 0.01,
	"AinvPknlMstpSnonWnonDnon_4", 0.01,
	"AdthPknlMstpSnonWnonDnon_inventory", 0.1};

interpolateWith[]

Type
Array
Description
Found in States, disused.
interpolateWith[] = {"BasicDriver", 0.02};

interpolationRestart

Type
Boolean
Description
Found in States, true mostly for transition animations.
interpolationRestart = false;	// Default
interpolationRestart = true;	// DefaultDie
interpolationRestart = 2;

interpolationSpeed

Type
Float
Description
Found in States.
interpolationSpeed = 200;	// AidlPercMstpSrasWrflDnon_aiming01, AdthPercMstpSrasWrflDnon_rS0 
interpolationSpeed = 30.5;	// AmovPercMstpSlowWrflDnon_player_idleSteady01
interpolationSpeed = 6;		// Default
interpolationSpeed = 0.5;	// AmovPknlMstpSrasWrflDnon_AmovPercMsprSrasWrflDf_2
interpolationSpeed = 0.1;	// AinjPfalMstpSnonWrflDnon_carried_Up

J

JumpOff

Type
String
Description
Found in Actions, disused.
JumpOff = "";

L

ladderOff

Type
String
Description
Found in States, defines what animation to switch to when letting go of the ladder.
ladderOff = "AmovPercMstpSnonWnonDnon";

ladderOffBottom

Type
String
Description
Found in States, defines what animation to switch to when letting go of the ladder, having reached the bottom of it.
ladderOffBottom = "LadderRifleDownOff";

ladderOffTop

Type
String
Description
Found in States, defines what animation to switch to when letting go of the ladder, having reached the top of it.
ladderOffTop = "LadderRifleTopOff";

ladderOnDown

Type
String
Description
Found in States, defines what animation to switch to when getting onto the bottom of the ladder.
ladderOnDown = "LadderRifleOn";

ladderOnUp

Type
String
Description
Found in States, defines what animation to switch to when getting onto the top of the ladder.
ladderOnUp = "LadderRifleOn";

leaning

Type
String
Description
Found in both Actions and States, references BlendAnims class entries. Defines how much each bone/bodypart should be influenced when leaning.

Leaning, similar to aiming, is not an animation played back from a file. It's procedural, if you will, and so needs extra setting up in the config to look it is best.

leaning = "leaningDefault";		// Default
leaning = "aimingLying";		// AmovPpneMstpSrasWrflDnon_injured
leaning = "empty";				// class AmovPpneMrunSlowWrflDf - disables leaning while prone

leaningCorrectionAngleBeg

Type
Float
Description
Not used in Arma 2, appearing only once in ArmA config, where both leaningCorrectionAngleBeg and leaningCorrectionAngleEnd are zero.
leaningCorrectionAngleBeg = 0;
leaningCorrectionAngleEnd = 0;

leaningFactorBeg

Type
Float
Description
Found in States, leaningFactorBeg sets how much influence leaning has at the start of an animation, while leaningFactorEnd takes care of the end. If the two values differ, leaning is blended in or out during the animation.
leaningFactorBeg = 1;		// StandBase
leaningFactorEnd = 1;

leaningFactorBeg = 0;		// SprintBaseDf
leaningFactorEnd = 0;

leaningFactorBeg = 0.5;		// AmovPknlMstpSrasWlnrDnon - limited (half) leaning with launcher
leaningFactorEnd = 0.5;

leaningFactorBeg = 0.75;	// AmovPercMwlkSlowWrflDf - limited leaning while walking with rifle raised
leaningFactorEnd = 0.75;

leaningFactorBeg = 1;		// amovpercmstpsraswrfldnon_amovpercmstpsraswlnrdnon
leaningFactorEnd = 0.5;

leaningFactorBeg = 1;		// AmovPercMstpSrasWrflDnon_AmovPpneMstpSrasWrflDnon
leaningFactorEnd = 0;		// -transition betwen a state with full leaning to one where leaning is forbidden-

leaningFactorEnd

Type
Float
Description
See above.
leaningFactorEnd = 0.75;

leaningFactorZeroPoint

Type
Float
Description
Appears only once in both ArmA & Arma 2, no variation across States or Actions.
leaningFactorZeroPoint = -1;

leanLRot

Type
Float
Description
Found in Actions, sets the amount of lean possible and the angle of leaning.

With a value of 1, the character will lean about 70 degrees off vertical, looking like it just broke it is back, so the more reasonable amount to lean is about half of that. Doctor's orders.

leanLRot = 0;		// NoActions, RifleProneActions
leanLRot = 0.5;		// RifleBaseLowStandActions
leanLRot = 0.57;	// CivilStandActions

leanLShift

Type
Float
Description
Found in Actions. In addition to tilting the upper body during leaning, it is also possible to move it into the lean.

Typical values are very small, anything else will produce excessive deformations of the model.

leanLShift = 0;		// class RifleProneActions
leanLShift = 0.01;	// class RifleBaseLowStandActions
leanLShift = 0.07;	// class CivilStandActions

leanRRot

Type
Float
Description
See leanLRot.
leanRRot = 0.57;

leanRShift

Type
Float
Description
See leanLShift.
leanRShift = 0.01;

leftHandIKBeg

Type
Boolean
Description
Found in States, appeared in ArmA, complemented/superseded in Arma 2 by leftHandIKCurve[].

These properties set whether at the beginning and end of the animation, IKs for both arms are enabled or not.

left/right-HandIKCurve[] allows for a more complex and detailed control of FK/IK (see below for more details) blending.

Typical uses:

leftHandIKBeg = true;
leftHandIKCurve[] = {1};
leftHandIKEnd = true;

leftHandIKBeg = false;
leftHandIKCurve[] = {};
leftHandIKEnd = false;

leftHandIKBeg = false;
leftHandIKCurve[] = {0, 1, 0.075, 0, 0.725, 0, 0.8, 1};
leftHandIKEnd = false;

leftHandIKBeg = false;
leftHandIKCurve[] = {0.05, 1, 0.125, 0, 0.6, 0, 0.675, 1};
leftHandIKEnd = true;

leftHandIKEnd

Type
Boolean
Description
See above.
leftHandIKEnd = 0;

leftHandIKCurve

Type
Array
Description
As the name suggests, this array describes the curve controlling FK/IK blending on the left arm.

Every pair of values describe a 2D point, with the first number representing time (horizontal) and the second being the weight (vertical).

Time ranges from 0-1, where 0 is animation start, 0.5 is half way, and 1 the end.

Weight also ranges from 0-1, where 0 means animation is taken from RTM file (FK) and IK is disabled, 0.6 meaning a 40% blend of FK and 60% IK, and 1 is 100% IK.

Let me interpret the last example below (the long one). The curve has 4 points [0, 1], [0.05, 0], [0.95, 0] and [1, 1]. When the animation starts playing, the IK takes full effect, but is gradually disabled by point #2. It stays disabled until point #3 towards the end, when it is weight starts climbing again. At the end, at point #4, the IK is fully on again, overriding all FK.

leftHandIKCurve[] = {};									// IK OFF.
leftHandIKCurve[] = {1};								// IK fully ON.
leftHandIKCurve[] = {0.1, 1, 0.15, 0};					// IK fully ON one-tenth into the animation, but disabled soon afterwards.
leftHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1};		// IK ON at start, but soon disabled. Re-enabled towards the end.

legs

Type
String
Description
Found in States, references BlendAnims class entries. Used for deforming the character on sloping surfaces (hillside, stairs, etc..).

Most of the RTM animations have been recorded in a motion capture studio, on a perfectly flat floor. When standing on a slope, the character would normally have one foot sinking into the ground, while the other would be hanging in the air. So BI devised this system for deforming the bodyparts that have contact with the ground.

When standing upright, it is just the legs. When prone, it is most, if not the whole body. Like everything else in BlendAnims, it is a list of bones, with weights (amount of influence) associated.

legs = "legsDefault";		// Deafault
legs = "legsNo";			// DefaultDie
legs = "legsLyingAiming";	// AmovPpneMstpSrasWrflDnon_injured
legs = "Wholebody";			// AmovPpneMstpSnonWnonDnon
legs = "empty";				// HaloFreeFall_non

legsDefault[]

Type
Array
Description
BlendAnims class entry. See above.
legsDefault[] = {"LeftUpLeg", 0.9, "LeftUpLegRoll", 0.9, "LeftLeg", 0.95, "LeftLegRoll", 0.95, "LeftFoot", 1, "LeftToeBase", 1,
	"RightUpLeg", 0.9, "RightUpLegRoll", 0.9, "RightLeg", 0.95, "RightLegRoll", 0.95, "RightFoot", 1, "RightToeBase", 1};

legsNo[]

Type
Array
Description
Always empty BlendAnims class entry, see legs above. Disables all deformations on contact with land. Death animations are a typical case.
legsNo[] = {};

limitFast

Type
Float
Description
Found in Actions, used for limiting the slow.. movements, although the names suggests a limiting of fast...
limitFast = 0.5;	// RifleProneActions_injured
limitFast = 2;		// SwimmingActions
limitFast = 4;		// class CivilStandActions, SwimmingFastActions
limitFast = 5;		// NoActions
limitFast = 5.5;	// RifleBaseLowStandActions

limitGunMovement

Type
Boolean
Description
Found in States.
limitGunMovement = false;	// HealBase
limitGunMovement = false;	// SprintBaseDf
limitGunMovement = 0.1;		// AmovPercMstpSnonWnonDnon
limitGunMovement = 0.3;		// AovrPercMstpSlowWrflDf
limitGunMovement = 0.6;		// AmovPercMwlkSlowWpstDnon_transition
limitGunMovement = true;	// Default

looped

Type
Boolean
Description
Found in States, sets whether the current animation should start over once it is finished. Loop, that is.
looped = 1;

Lying

Type
String
Description
Found in Actions, points to the animation to play for the "Prone with weapon" situation. CivilLying is the unarmed equivalent.
Lying = "AmovPpneMstpSnonWnonDnon";

M

medic

Type
String
Description
Found in Actions, points to the animation to be used by a medic when triggering the "Heal.." action.
medic = "AinvPknlMstpSlayWrflDnon_medic";

O

onLadder

Type
Boolean
Description
Found in States, flags the animation as ladder related.
onLadder = 1;

onLandBeg

Type
Boolean
Description
Found in States. If at the start of the animation the character is lying on the ground (prone), onLandBeg equals true. If at the end of the animation the character is lying on the ground (prone), onLandEnd equals true. Otherwise false. Not sure what these flags are used for.
//Default
onLandBeg = false;
onLandEnd = false;

//AmovPercMstpSrasWrflDnon_AmovPpneMstpSrasWrflDnon 
onLandBeg = false;
onLandEnd = true;

//AmovPpneMstpSrasWrflDnon_AmovPercMstpSrasWrflDnon 
onLandBeg = true;
onLandEnd = false;

//AmovPpneMstpSrasWrflDnon_AmovPpneMstpSrasWpstDnon 
onLandBeg = true;
onLandEnd = true;

//AdthPpneMstpSnonWnonDnonB
onLandEnd = true;
onLandBeg = false;

onLandEnd

Type
Boolean
Description
See above.
onLandEnd = 1;

P

PlayerCrouch

Type
String
Description
Found in Actions. Similar to Crouch, except it applies only to player characters and not AI.
PlayerCrouch = "AmovPknlMstpSrasWlnrDnon";

PlayerProne

Type
String
Description
Found in Actions. Similar to Lying, except it applies only to player characters and not AI.

Sets the animation to be used when going prone.

PlayerProne = "AmovPpneMstpSnonWnonDnon";

PlayerStand

Type
String
Description
Found in Actions. Similar to Stand, except it applies only to player characters and not AI.

Sets the animation to be used when standing upright.

PlayerStand = "AwopPercMstpSoptWbinDnon_rfl";

predictSpeedCoef

Type
Float
Description
Disused in Arma 2, appears once in ArmA.
predictSpeedCoef = 1;

preload

Type
Boolean
Description
Found in States, sets whether to load the animation file (RTM) into memory at game start, or just read it from disc when there's a demand for it.

All animations are set not to preload in Arma 2, while in ArmA some often used animations like running for example, are preloaded.

preload = 1;

primaryActionMaps[]

Type
Array
Description
Outlines the main action groups.
primaryActionMaps[] = {"DeadActions", "LauncherKneelActions", "BinocProneRflActions", "BinocProneCivilActions",
	"RifleProneActions", "PistolProneActions", "RifleKneelActions", "PistolKneelActions", "RifleStandActions",
	"PistolStandActions", "RifleLowStandActions", "SwimmingActions", "CivilStandActions",
	"BinocKneelRflActions", "BinocStandRflActions"};

putDown

Type
String
Description
Found in Actions. Sets the animation to be used when the character puts something on the ground (e.g. dropping some equipment).
putDown = "AmovPpneMstpSrasWrflDnon";

PutDownEnd

Type
Float
Description
Not used in the ArmA series.
PutDownEnd = "";

R

reload...

Type
String
Description
Found in Actions. Default actions for reloading are reloadMagazine, reloadAT, reloadMGun and reloadMortar, but addon makers can add their own if they wish.

These actions are invoked in CfgWeapons and CfgMagazines via reloadAction. Most reload actions for upright stances in Arma 2 are bone-masked, they are configured as Gestures.

//game
reloadAT = "LauncherReloadKneel";
reloadMagazine[] = {"WeaponMagazineReloadStand", "Gesture"};
reloadMGun = "AmovPpneMstpSrasWrflDnon";
reloadMortar = "AmovPpneMstpSrasWrflDnon";

//custom
reloadM1Garand[] = {"M1GarandMagazineReloadStand", "Gesture"};
//CfgWeapons/CfgMagazines
reloadAction = "ManActReloadM1Garand";

relSpeedMax

Type
Float
Description
Found in States.
relSpeedMax = 0.6;

relSpeedMin

Type
Float
Description
Found in States.
relSpeedMin = 0.5;

rightHandIKBeg

Type
Boolean
Description
See leftHandIKBeg.
rightHandIKBeg = 1;

rightHandIKEnd

Type
Boolean
Description
See leftHandIKBeg.
rightHandIKEnd = 1;

rightHandIKCurve

Type
Array
Description
See leftHandIKCurve.
rightHandIKCurve[] = {};								// IK OFF.
rightHandIKCurve[] = {1};								// IK fully ON.
rightHandIKCurve[] = {0.1, 1, 0.15, 0};					// IK fully ON one-tenth into the animation, but disabled soon afterwards.
rightHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1};	// IK ON at start, but soon disabled. Re-enabled towards the end.

S

salute..

Type
String
Description
Found in Actions, salute points to the animation the character will transition to when saluting, while saluteOff points to the animation the character should return to when done saluting.

Neither of these properties point to the transition animations, where the character is actually raising/lowering it is arm.

salute = "AmovPercMstpSlowWrflDnon_salute";
saluteOff = "AmovPercMstpSlowWrflDnon";

showHandGun

Type
Boolean
Description
Found in States, sets pistol visibility on/off.
showHandGun = 1;

showItemInHand

Type
Boolean
Description
Found in States, sets item (binoculars, specifically) visibility on/off.
showItemInHand = 1;

showItemInRightHand

Type
Boolean
Description
Found in States, sets item (binoculars, specifically) visibility on/off in the right hand. Looks it is not working on Arma 3.
showItemInRightHand = 0;

showWeaponAim

Type
Boolean
Description
Found in States, sets whether crosshairs are displayed or not for given animation.
showWeaponAim = 1;

sitDown

Type
String
Description
Found in Actions, points to the animation to transition to when the sitting action is triggered. Not the to and from transition animations, but the sitting idle.
SitDown = "";	// RifleStandSaluteActions_Idle - can't sit down while saluting
sitDown = "AmovPsitMstpSlowWrflDnon";

skeletonName

Type
String
Description
Sets the skeleton to be used.
skeletonName = "OFP2_ManSkeleton";
skeletonName = "WomanSkeleton";

slow..

Type
String
Description
See fast...
slowB = "AmovPercMrunSlowWlnrDb";
slowF = "AmovPercMevaSlowWlnrDf";
slowL = "AmovPercMrunSlowWlnrDl";
slowLB = "AmovPercMrunSlowWlnrDbl";
slowLF = "AmovPercMrunSlowWlnrDfl";
slowR = "AmovPercMrunSlowWlnrDr";
slowRB = "AmovPercMrunSlowWlnrDbr";
slowRF = "AswmPercMrunSnonWnonDf";

soundEdge..

Type
Array
Description
Found in States. Deprecated forms soundEdge1, soundEdge2 (used very little in ArmA, not at all in Arma 2).

Used for sound timing during an animation. If there's a sound file associated with the animation, it won't play right away as the animation starts. It will play when and as many times as soundEdge tells it to.

soundEdge[] = {0.5, 1};					// Default
soundEdge[] = {0.45};					// DefaultDie
soundEdge[] = {0.25, 0.5, 0.75, 1};		// AmovPercMwlkSlowWrflDf - timing of the 4 footstep sounds

//old
soundEdge1 = 0.5;
soundEdge2 = 1;

soundEnabled

Type
Boolean
Description
Found in States, enables/disables sounds being played with the animation.
soundEnabled = 1;

soundOverride

Type
String
Description
Found in States, points to the actual sound to play with the animation.
soundOverride = "bodyfall";

speed

Type
Float
Description
Found in States, sets the animation playback speed.

Note that speed depends on animation length, on the number of frames it contains.

For example, setting speed at 0.5 for a 50 frames long animation will result in it playing at about 25 frames per second. Setting the same speed for a 300 frame animation, will result in that animation playing much faster. Speed, seems to me more akin to duration.

speed = 0.00833333;

stand

Type
String
Description
Found in Actions, see playerStand.
Stand = "AmovPknlMstpSrasWrflDnon";

startSwim

Type
String
Description
Found in Actions, points to the animation to be used when starting to swim.
startSwim = "AswmPercMrunSnonWnonDf";

stop

Type
String
Description
Found in Actions, points to the animation to be used when stopping.
stop = "AinvPknlMstpSlayWrflDnon";

stopRelaxed

Type
String
Description
Found in Actions, points to the animation to be used when stopping with weapon lowered ("SAFE" behaviour).
StopRelaxed = "AidlPercMstpSlowWrflDnon01";

stopSwim

Type
String
Description
Found in Actions, points to the animation to be used when ending swimming.
stopSwim = "AmovPercMstpSnonWnonDnon";

strokeFist

Type
Float
Description
Found in Actions, not really used. Has been around since OFP if I remember correctly, probably an attempt to introduce fist fighting, but then abandoned.
StrokeFist = "";

strokeGun

Type
String
Description
Similar to strokeFist above, attempt at melee fighting but not used.
strokeGun = "AmovPercMstpSnonWnonDnon";

T

takeFlag

Type
String
Description
Found in Actions, points to the animation to be used when taking the flag during a CTF match.
takeFlag = "AinvPknlMstpSlayWrflDnon";

terminal

Type
Boolean
Description
Found in States, flags the animation as being "terminal". True for death animations, false for everything else.
terminal = 1;

testDriver

Type
String
Description
Found in Actions, along with testDriverOut and TestGunner. "Test" suggests it might have been just that, an experiment during development.
//class ManActions
TestDriver = "BasicDriver";
TestDriverOut = "BasicDriverOut";
TestGunner = "BasicSittingGunner";

testDriverOut

Type
String
Description
See above.
TestDriverOut = "BasicDriverOut";

testGunner

Type
String
Description
See testDriver.
TestGunner = "BasicSittingGunner";

throwGrenade

Type
String
Description
Found in Actions, points to the animation to be used when throwing a grenade.
throwGrenade = "AmovPercMrunSlowWpstDf_AmovPercMstpSrasWpstDnon_gthThrow";

transitionsDisabled[]

Type
Array
Description
Empty array in both ArmA & Arma 2. No apparent use for it.
transitionsDisabled[] = {};

transitionsInterpolated[]

Type
Array
Description
Empty array in both ArmA & Arma 2. No apparent use for it.
transitionsInterpolated[] = {};

transitionsSimple[]

Type
Array
Description
Empty array in both ArmA & Arma 2. No apparent use for it.
transitionsSimple[] = {};

treated

Type
String
Description
Found in Actions, points to the animation to be used when being healed by a medic. Medic will be using animation defined in medic.
treated = "AinvPknlMstpSlayWrflDnon_healed";

turn...

Type
String
Description
Found in Actions, turnL and turnR define the turning animations, while turnLRelaxed and turnRRelaxed do the same thing for the "relaxed" (weapon lowered, behaviour "SAFE") modes.
turnL = "AmovPercMstpSlowWrflDnon_turnL";
turnLRelaxed = "AmovPercMstpSlowWrflDnon_turnL";
turnR = "AmovPpneMstpSrasWrflDnon_turnR";
turnRRelaxed = "AmovPpneMstpSrasWrflDnon_turnR";

turnSpeed

Type
Float
Description
Found in Actions, sets turning speed.
turnSpeed = 0.1;

U

untiltWeapon

Type
String
Description
Not found in Arma 2, and not really used in ArmA either.
untiltWeapon = "untiltWeaponDefault";

untiltWeaponDefault[]

Type
Array
Description
Same as above.
untiltWeaponDefault[] = {};

up

Type
String
Description
Found in Actions. Together with down sets up what looks like a standing/kneeling/prone toggle. Which I don't think is used in the game's current control scheme.
up = "AmovPknlMstpSlowWrflDnon";	// RifleBaseLowStandActions
up = "AmovPknlMstpSrasWrflDnon";	// RifleBaseStandActions
up = "AmovPknlMwlkSlowWrflDf";		// RifleLowStandActionsWlkF
up = "AmovPercMstpSrasWrflDnon";	// RifleKneelActions

upDegree

Type
String
Description
Found in Actions, seems to define the "upright" stance for each action group.

These "ManPos.." things only appear in root /Dta/bin/config.bin, where they get some equivalent numbers, and that's it. Important to get right though when creating custom action sets.

upDegree = 0;						// NoActions
upDegree = -1;						// NoActions, ParachuteFreeFall
upDegree = "ManPosDead";			// DeadActions
upDegree = "ManPosStand";			// RifleBaseLowStandActions
upDegree = "ManPosCombat";			// RifleBaseStandActions
upDegree = "ManPosCrouch";			// RifleKneelEvasiveActions, RifleKneelActions
upDegree = "ManPosLying";			// RifleProneActions
upDegree = "ManPosHandGunStand";
upDegree = "ManPosHandGunCrouch";
upDegree = "ManPosHandGunLying";
upDegree = "ManPosNoWeapon";		// CivilStandActions
upDegree = "ManPosLyingNoWeapon";
upDegree = "ManPosWeapon";			// LauncherKneelActions
upDegree = "ManPosBinocStand";		// BinocStandLnrActions
upDegree = "ManPosSwimming";
upDegree = "ManPosBinocStand";
upDegree = "ManPosBinoc";
updegree = "ManPosCrouch";
//enum in root config
enum {
	MANPOSNOWEAPON = 12,
	CPCOMMANDER = 2,
	CMD_STAY_BACK = 4,
	CMD_MOVE = 12,
	CMD_FIRE = 27,
	CMD_WATCH = 28,
	CMD_REPLY_FAIL = 64,
	CMD_REPORT = 68,
	...
	MANPOSHANDGUNSTAND = 9,
	...
	MANPOSCROUCH = 6,
	...
	MANPOSHANDGUNLYING = 5,
	MANPOSHANDGUNCROUCH = 7,
	MANPOSBINOCSTAND = 14,
	...
	MANPOSDEAD = 0,
	MANPOSCOMBAT = 8,
	...
	MANPOSBINOCLYING = 2,
	MANPOSSTAND = 10,
	MANPOSSWIMMING = 11,
	COMPARTMENT3 = 4,
	CMD_ACTION = 2,
	CMD_FORM_ECHLEFT = 16,
	...
	MANPOSWEAPON = 1,
	...
	MANPOSLYING = 4,
	...
	MANPOSLYINGNOWEAPON = 3,
	MANPOSBINOC = 13,
	...
};

useFastMove

Type
Boolean
Description
Found in Actions. True for action sets containing "Evasive" in the classname, so an obscure flag of some sorts in ArmA. Not used in any significant way in Arma 2.
useFastMove = 1;

V

variantAfter[]

Type
Array
Description
Found in States when there are several variations on the same animation (usually idles) that can be played randomly.

Minimum, average and maximum - these are the inputs for the random number generator, similar to how trigger timeout/countdown works in the mission editor.

variantAfter[] = {5, 10, 20};	// Default
VariantAfter[] = {5, 5, 5};		// AinvPknlMstpSnonWnonDnon_medic0S 
variantAfter[] = {2, 3, 5};		// AidlPercMstpSlowWrflDnon_player_0S
variantAfter[] = {0, 0, 0};		// AidlPercMstpSrasWrflDnon_aiming0S

variantsAI[]

Type
Array
Description
Found in States when there are several variations on the same animation (usually idles) that can be played randomly.

It lists the animations to be randomly cycled. The numbers represent the probability of that animation being played, the higher the number, the more likely the animation will get to play.

The sum of these numbers is always 1.

//Default
variantsAI[] = {""};
//AidlPercMstpSnonWnonDnon
variantsAI[] = {"AidlPercMstpSnonWnonDnon01", 0.01,
	"AidlPercMstpSnonWnonDnon02", 0.01,
	"AidlPercMstpSnonWnonDnon03", 0.01,
	"AidlPercMstpSnonWnonDnon04", 0.01,
	"AidlPercMstpSnonWnonDnon05", 0.01,
	"AidlPercMstpSnonWnonDnon06", 0.01,
	"AidlPercMstpSnonWnonDnon07", 0.01,
	"AidlPercMstpSnonWnonDnon08", 0.01,
	"AidlPercMstpSnonWnonDnon_idleSteady04", 0.23,
	"AidlPercMstpSnonWnonDnon_idleSteady03", 0.23,
	"AidlPercMstpSnonWnonDnon_idleSteady02", 0.23,
	"AidlPercMstpSnonWnonDnon_idleSteady01", 0.23};
//ActsPsitMstpSnonWnonDnon_varSittingOnTheWall
variantsAI[] = {"Mi17_Cargo02", 0.4, "Mi17_Cargo02_V1", 0.1, "Mi17_Cargo02_V2", 0.1, "Mi17_Cargo02_V3", 0.1,
	"Mi17_Cargo02_V4", 0.1, "Mi17_Cargo02_V5", 0.1, "Mi17_Cargo02_V6", 0.1};
//aidlpercmstpsraswlnrdnon_S
variantsAI[] = {"aidlpercmstpsraswlnrdnon_1", 0.333, "aidlpercmstpsraswlnrdnon_2", 0.333, "aidlpercmstpsraswlnrdnon_3", 0.334};

variantsPlayer[]

Type
Array
Description
Same as variantsAI[] above, except for player characters.
variantsPlayer[] = {"AdthPercMrunSlowWlnrDf_1", 0.5, "AdthPercMrunSlowWlnrDf_2", 0.5};

visibleSize

Type
Float
Description
Found in States, probably used for calculating how visible a character is for the AI, based on his stance/animation.
visibleSize = 1.00012;		// SprintBaseDf					when sprinting more visible than..
visibleSize = 0.700121;		// AmovPercMstpSrasWrflDnon		..when stopped > visible than..
visibleSize = 0.300122;		// AmovPknlMstpSlowWrflDnon		..when kneeling > visible than..
visibleSize = 0.100123;		// AmovPpneMstpSrasWrflDnon		..when prone.

W

walk..

Type
String
Description
See fast...
walkB = "AmovPercMwlkSlowWrflDb";
walkF = "AmovPercMevaSlowWlnrDf";
walkL = "AmovPercMwlkSlowWrflDl";
walkLB = "AmovPercMwlkSlowWrflDbl";
walkLF = "AswmPercMwlkSnonWnonDf";
walkR = "AmovPpneMrunSnonWnonDr";
walkR = "AswmPercMstpSnonWnonDnon";
walkRB = "AmovPercMwlkSlowWrflDbr";
walkRF = "AmovPercMwlkSlowWrflDfr";

weaponOff

Type
String
Description
The opposite of weaponOn below.
weaponOff = "AmovPercMstpSrasWrflDnon";

weaponOn

Type
String
Description
Found in States, and references the animation that needs to be reached when switching to RPGs/MANPADS.
weaponOn = "AmovPknlMstpSrasWlnrDnon";		// RifleBaseLowStandActions
weaponOff = "AmovPercMstpSrasWrflDnon";

weaponOn = "AmovPknlMstpSrasWlnrDnon";		// RifleKneelActions
weaponOff = "AmovPknlMstpSrasWrflDnon";

weaponOn = "AmovPknlMstpSrasWlnrDnon";		// RifleProneActions
weaponOff = "AmovPpneMstpSrasWrflDnon";