CfgMoves Config Reference: Difference between revisions
(→V) |
(→W) |
||
Line 1,207: | Line 1,207: | ||
=W= | =W= | ||
== | ==walk..== | ||
[[TokenNameValueTypes|String]]<br> | [[TokenNameValueTypes|String]]<br> | ||
'''Description:''' | '''Description:''' See [[#fast.. | fast..]]. | ||
walkB = "AmovPercMwlkSlowWrflDb"; | walkB = "AmovPercMwlkSlowWrflDb"; | ||
walkF = "AmovPercMevaSlowWlnrDf"; | walkF = "AmovPercMevaSlowWlnrDf"; | ||
walkL = "AmovPercMwlkSlowWrflDl"; | walkL = "AmovPercMwlkSlowWrflDl"; | ||
walkLB = "AmovPercMwlkSlowWrflDbl"; | walkLB = "AmovPercMwlkSlowWrflDbl"; | ||
walkLF = "AswmPercMwlkSnonWnonDf"; | walkLF = "AswmPercMwlkSnonWnonDf"; | ||
walkR = "AmovPpneMrunSnonWnonDr"; | walkR = "AmovPpneMrunSnonWnonDr"; | ||
walkR = "AswmPercMstpSnonWnonDnon"; | walkR = "AswmPercMstpSnonWnonDnon"; | ||
walkRB = "AmovPercMwlkSlowWrflDbr"; | walkRB = "AmovPercMwlkSlowWrflDbr"; | ||
walkRF = "AmovPercMwlkSlowWrflDfr"; | walkRF = "AmovPercMwlkSlowWrflDfr"; | ||
==weaponOff== | ==weaponOff== | ||
[[TokenNameValueTypes|String]]<br> | [[TokenNameValueTypes|String]]<br> | ||
'''Description:''' | '''Description:''' The opposite of '''weaponOn''' below. | ||
weaponOff = " | weaponOff = "AmovPercMstpSrasWrflDnon"; | ||
==weaponOn== | ==weaponOn== | ||
[[TokenNameValueTypes|String]]<br> | [[TokenNameValueTypes|String]]<br> | ||
'''Description:''' | '''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"; | weaponOn = "AmovPknlMstpSrasWlnrDnon"; //RifleProneActions | ||
weaponOff = "AmovPpneMstpSrasWrflDnon"; | |||
=X= | =X= |
Revision as of 19:58, 10 December 2012
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 BIS 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 ArmAII. Welcome to reloading-while-running.
A
access
Integer
Description: See CfgVehicles_Config_Reference#access
access = 3;
actions
String
Description: Sets the action class/group to which this state belongs to.
actions = "PistolStandActionsRunR"; actions = "RifleStandActions"; actions = "InjuredManActionsnon_norot"; actions = "SitActions";
aiming
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/Upper Arms (0.8) and finally 1 for forearms, hands and weapons. 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[]
Array
Description: BlendAnims array, see CfgMoves_Config_Reference#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[]
Array
Description: BlendAnims array, see CfgMoves_Config_Reference#aiming above.
aimingNo[] = {};
aimPrecision
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; aimPrecision = 2; aimPrecision = 1; aimPrecision = 0.5; aimPrecision = 0.3; aimPrecision = 0.15;
B
binocOff
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
String
Description:
binocOn = ""; //No binocs while lying on the ground injured binocOn = "AwopPknlMstpSoptWbinDnon_rfl"; binocOn = "AwopPercMstpSoptWbinDnon_rfl"; binocOn = "AwopPknlMstpSoptWbinDnon_pst"; binocOn = "AwopPpneMstpSoptWbinDnon_rfl";
boundingSphere
Float / Boolean
Description: Probably obsolescent, used for character collision detection. For more accurate collision models use collisionShape & Co. Still used in ArmAII for cutscene animations. Sphere collision probably much cheaper than anything else.
boundingSphere = true; boundingSphere = 1; boundingSphere = 1.5; boundingSphere = 8; boundingSphere = 35;
C
CanNotMove
String
Description: Found in Actions.
CanNotMove = "AmovPpneMstpSrasWrflDnon";
canPullTrigger
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.
canPullTrigger = 1;
Civil
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
String
Description: Found in Actions.
CivilLying = "AmovPpneMstpSnonWnonDnon";
collisionGeomCompPattern[]
Array
Description:
collisionGeomCompPattern[] = {1,3,6};
collisionShape
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.
collisionShape = "ca\Anims\Characters\data\Geom\Sdr\Sstanistat_safe_geom.p3d"; collisionShape = "ca\Anims\Characters\data\Geom\Sdr\geom_Adth.p3d";
collisionShapeSafe
String
Description:
collisionShapeSafe = "ca\Anims\Characters\data\Geom\Sdr\sbeh45l_safe_geom.p3d";
collisionVertexPattern[]
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
String
Description: Found in Actions
Combat = "AmovPknlMstpSrasWrflDnon";
connectAs
String
Description: Found in States; Not used in ArmAII/OA anymore.
connectAs = "";
connectFrom[]
Array
Description: Found in States; Not used in ArmAII/OA anymore.
connectFrom[] = {}; connectFrom[] = {"TestSurrender",0.9,"AdthPercMstpSlowWrflDnon_1",0.9};
connectTo[]
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.
//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
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
String
Description: Found in Actions, defines the default state for an action.
default = "LadderRifleStatic";
die
String
Description: Found in Actions, defines what animation/state is called when the character dies.
die = "AdthPercMstpSlowWrflDnon_r05"; die = "DeadState";
disableWeapons
Boolean
Description: Found in States, and unlike canPullTrigger, it can prohibit the character from firing his weapon.
disableWeapons = 1;
disableWeaponsLong
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;
disableWeaponsLong = 1;
down
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
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
Boolean
Description: Found in States. In ArmAII there's a single occurence of it being true: class TestDance.
enableAutoActions = 1;
enableBinocular
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
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
Boolean
Description: Found in States, enables/disables looking down the weapon sights.
enableOptics = 1;
equivalentTo
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
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
String
Description: See EvasiveBack.
EvasiveForward = "AmovPercMevaSlowWlnrDf";
EvasiveLeft
String
Description: See EvasiveBack.
EvasiveLeft = "AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDl";
EvasiveRight
String
Description: See EvasiveBack.
EvasiveRight = "AmovPpneMstpSrasWrflDnon_AmovPpneMevaSlowWrflDr";
F
fast..
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
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
String
Description: Found in Actions.
FireNotPossible = "AmovPpneMstpSrasWrflDnon";
G
getInCar
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 ArmAII 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
String
Description: See getInCar.
GetInHigh = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInHigh";
GetInLow
String
Description: See getInCar.
GetInLow = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInLow";
GetInMedium
String
Description: See getInCar.
GetInMedium = "AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInMedium";
getInTank
String
Description: See getInCar.
getInTank = "AmovPknlMstpSrasWrflDnon";
getOutCar
String
Description: See getInCar.
getOutCar = "AmovPknlMstpSrasWrflDnon";
GetOutHigh
String
Description: See getInCar.
GetOutHigh = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutHigh";
GetOutLow
String
Description: See getInCar.
GetOutLow = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutLow";
GetOutMedium
String
Description: See getInCar.
GetOutMedium = "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutMedium";
getOutTank
String
Description: See getInCar.
getOutTank = "AmovPknlMstpSrasWrflDnon";
H
handGunOn
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.
handGunOn = "AmovPercMstpSrasWpstDnon"; //class RifleBaseLowStandActions
handGunOn = "AmovPpneMstpSrasWrflDnon";
hasCollShapeSafe
Boolean
Description:
hasCollShapeSafe = 0;
head
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[]
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[]
Array
Description: Found in class BlendAnims, always an empty array. Serves for disabling free head movement (independent of the RTM animation).
headNo[] = {};
I
interpolateFrom[]
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[]
Array
Description: Found in States; defines which animations can interrupt the current one, and how fast blending between the two should be. 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. 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.
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[]
Array
Description: Found in States, disused.
interpolateWith[] = {"BasicDriver",0.02};
interpolationRestart
Boolean
Description: Found in States, true mostly for transition animations.
interpolationRestart = false; //Default interpolationRestart = true; //DefaultDie interpolationRestart = 2;
interpolationSpeed
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
String
Description: Found in Actions, disused.
JumpOff = "";
K
L
ladderOff
String
Description: Found in States, defines what animation to switch to when letting go of the ladder.
ladderOff = "AmovPercMstpSnonWnonDnon";
ladderOffBottom
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
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
String
Description: Found in States, defines what animation to switch to when getting onto the bottom of the ladder.
ladderOnDown = "LadderRifleOn";
ladderOnUp
String
Description: Found in States, defines what animation to switch to when getting onto the top of the ladder.
ladderOnUp = "LadderRifleOn";
leaning
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's best.
leaning = "leaningDefault"; //Default leaning = "aimingLying"; //AmovPpneMstpSrasWrflDnon_injured leaning = "empty"; //class AmovPpneMrunSlowWrflDf - disables leaning while prone
leaningCorrectionAngleBeg
Float
Description: Not used in ArmAII, appearing only once in ArmAI config, where both leaningCorrectionAngleBeg and leaningCorrectionAngleEnd are zero.
leaningCorrectionAngleBeg = 0; leaningCorrectionAngleEnd = 0;
leaningFactorBeg
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
Float
Description: See above.
leaningFactorEnd = 0.75;
leaningFactorZeroPoint
Float
Description: Appears only once in both ArmAI/II, no variation across States or Actions.
leaningFactorZeroPoint = -1;
leanLRot
Float
Description: Found in Actions, sets the amount of lean possible, the angle of leaning. With a value of 1, the character will lean about 70 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.
leanLRot = 0; //NoActions, RifleProneActions leanLRot = 0.5; //RifleBaseLowStandActions leanLRot = 0.57; //CivilStandActions
leanLShift
Float
Description: Found in Actions. In addition to tilting the upper body during leaning, it's 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
Float
Description: See leanLRot.
leanRRot = 0.57;
leanRShift
Float
Description: See leanLShift.
leanRShift = 0.01;
leftHandIKBeg
Boolean
Description: Found in States, appeared in ArmAI, complemented/superseeded in ArmAII 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 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
Boolean
Description: See above.
leftHandIKEnd = 0;
leftHandIKCurve
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's 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
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 BIS 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.
legs = "legsDefault"; //Deafault legs = "legsNo"; //DefaultDie legs = "legsLyingAiming"; //AmovPpneMstpSrasWrflDnon_injured legs = "Wholebody"; //AmovPpneMstpSnonWnonDnon legs = "empty"; //HaloFreeFall_non
legsDefault[]
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[]
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
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
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
Boolean
Description: Found in States, sets whether the current animation should start over once it's finished. Loop, that is.
looped = 1;
Lying
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
String
Description: Found in Actions, points to the animation to be used by a medic when triggering the "Heal.." action.
medic = "AinvPknlMstpSlayWrflDnon_medic";
N
O
onLadder
Boolean
Description: Found in States, flags the animation as ladder related.
onLadder = 1;
onLandBeg
Boolean
Description: Found in States. If at the start of the animation the character is lying on the ground (prone), onLandBeg = true. If at the end of the animation the character is lying on the ground (prone), onLandEnd = 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
Boolean
Description: See above.
onLandEnd = 1;
P
PlayerCrouch
String
Description: Found in Actions. Similar to Crouch, except it applies only to player characters and not AI.
PlayerCrouch = "AmovPknlMstpSrasWlnrDnon";
PlayerProne
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
String
Description: Found in Actions. Sets the animation to be used when standing upright. Similar to Stand, except it applies only to player characters and not AI.
PlayerStand = "AwopPercMstpSoptWbinDnon_rfl";
predictSpeedCoef
Float
Description: Disused in ArmAII, appears once in ArmA1.
predictSpeedCoef = 1;
preload
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 ArmAII, while in ArmAI some often used animations like running for example, are preloaded.
preload = 1;
primaryActionMaps[]
Array
Description: Outlines the main action groups.
primaryActionMaps[] = {"DeadActions","LauncherKneelActions","BinocProneRflActions","BinocProneCivilActions","RifleProneActions","PistolProneActions","RifleKneelActions","PistolKneelActions","RifleStandActions","PistolStandActions","RifleLowStandActions","SwimmingActions","CivilStandActions","BinocKneelRflActions","BinocStandRflActions"};
putDown
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
Float
Description: Not used in the ArmA series.
PutDownEnd = "";
Q
R
reload...
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 ArmAII 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
Float
Description: Fount in States.
relSpeedMax = 0.6;
relSpeedMin
Float
Description: Fount in States.
relSpeedMin = 0.5;
rightHandIKBeg
Boolean
Description: See leftHandIKBeg.
rightHandIKBeg = 1;
rightHandIKEnd
Boolean
Description: See leftHandIKBeg.
rightHandIKEnd = 1;
rightHandIKCurve
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..
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's arm.
salute = "AmovPercMstpSlowWrflDnon_salute"; saluteOff = "AmovPercMstpSlowWrflDnon";
showHandGun
Boolean
Description: Found in States, sets pistol visibility on/off.
showHandGun = 1;
showItemInHand
Boolean
Description: Found in States, sets item (binoculars, NVG) visibility on/off.
showItemInHand = 1;
showItemInRightHand
Boolean
Description: Found in States, sets item (binoculars, NVG) visibility on/off in the right hand.
showItemInRightHand = 0;
showWeaponAim
Boolean
Description: Found in States, sets whether crosshairs are displayed or not for given animation.
showWeaponAim = 1;
sitDown
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
String
Description: Sets the skeleton to be used.
skeletonName = "OFP2_ManSkeleton"; skeletonName = "WomanSkeleton";
slow..
String
Description: See fast...
slowB = "AmovPercMrunSlowWlnrDb"; slowF = "AmovPercMevaSlowWlnrDf"; slowL = "AmovPercMrunSlowWlnrDl"; slowLB = "AmovPercMrunSlowWlnrDbl"; slowLF = "AmovPercMrunSlowWlnrDfl"; slowR = "AmovPercMrunSlowWlnrDr"; slowRB = "AmovPercMrunSlowWlnrDbr"; slowRF = "AswmPercMrunSnonWnonDf";
soundEdge..
Array
Description: Found in States. Deprecated forms soundEdge1, soundEdge2 (used very little in ArmAI, not at all in ArmAII). 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
Boolean
Description: Found in States, enables/disables sounds being played with the animation.
soundEnabled = 1;
soundOverride
String
Description: Found in States, points to the actual sound to play with the animation.
soundOverride = "bodyfall";
speed
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
String
Description: Found in Actions, see playerStand.
Stand = "AmovPknlMstpSrasWrflDnon";
startSwim
String
Description: Found in Actions, points to the animation to be used when starting to swim.
startSwim = "AswmPercMrunSnonWnonDf";
stop
String
Description: Found in Actions, points to the animation to be used when stopping.
stop = "AinvPknlMstpSlayWrflDnon";
stopRelaxed
String
Description: Found in Actions, points to the animation to be used when stopping with weapon lowered ("SAFE" behaviour).
StopRelaxed = "AidlPercMstpSlowWrflDnon01";
stopSwim
String
Description: Found in Actions, points to the animation to be used when ending swimming.
stopSwim = "AmovPercMstpSnonWnonDnon";
strokeFist
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
String
Description: Similar to strokeFist above, attempt at melee fighting but not used.
strokeGun = "AmovPercMstpSnonWnonDnon";
T
takeFlag
String
Description: Found in Actions, points to the animation to be used when taking the flag during a CTF match.
takeFlag = "AinvPknlMstpSlayWrflDnon";
terminal
Boolean
Description: Found in States, flags the animation as being "terminal". True for death animations, false for everything else.
terminal = 1;
testDriver
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
String
Description: See above.
TestDriverOut = "BasicDriverOut";
testGunner
String
Description: See testDriver.
TestGunner = "BasicSittingGunner";
throwGrenade
String
Description: Found in Actions, points to the animation to be used when throwing a grenade.
throwGrenade = "AmovPercMrunSlowWpstDf_AmovPercMstpSrasWpstDnon_gthThrow";
transitionsDisabled[]
Array
Description: Empty array in both ArmAI/ArmAII. No apparent use for it.
transitionsDisabled[] = {};
transitionsInterpolated[]
Array
Description: Empty array in both ArmAI/ArmAII. No apparent use for it.
transitionsInterpolated[] = {};
transitionsSimple[]
Array
Description: Empty array in both ArmAI/ArmAII. No apparent use for it.
transitionsSimple[] = {};
treated
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...
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
Float
Description: Found in Actions, sets turning speed.
turnSpeed = 0.1;
U
untiltWeapon
String
Description: Not found in ArmAII, and not really used in ArmAI either.
untiltWeapon = "untiltWeaponDefault";
untiltWeaponDefault[]
Array
Description: Same as above.
untiltWeaponDefault[] = {};
up
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
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
Boolean
Description: Found in Actions. True for action sets containing "Evasive" in the classname, so an obscure flag of some sorts in ArmAI. Not used in any significant way in ArmAII.
useFastMove = 1;
V
variantAfter[]
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[]
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[]
Array
Description: Same as variantsAI[] above, except for player characters.
variantsPlayer[] = {"AdthPercMrunSlowWlnrDf_1",0.5,"AdthPercMrunSlowWlnrDf_2",0.5};
visibleSize
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..
String
Description: See fast...
walkB = "AmovPercMwlkSlowWrflDb"; walkF = "AmovPercMevaSlowWlnrDf"; walkL = "AmovPercMwlkSlowWrflDl"; walkLB = "AmovPercMwlkSlowWrflDbl"; walkLF = "AswmPercMwlkSnonWnonDf"; walkR = "AmovPpneMrunSnonWnonDr"; walkR = "AswmPercMstpSnonWnonDnon"; walkRB = "AmovPercMwlkSlowWrflDbr"; walkRF = "AmovPercMwlkSlowWrflDfr";
weaponOff
String
Description: The opposite of weaponOn below.
weaponOff = "AmovPercMstpSrasWrflDnon";
weaponOn
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";
X
Y
Z
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, ie: 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 runnin, 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)