animNode¶
The AnimNode files are used to link animation files to the game by defining different parameters for the animation. This will notably control the speed of the animation, its blending with animations played before and after, events that need to be triggered and conditions that control when that animation can be played.
File Patterns¶
The following file patterns are used to determine what the valid path for the XML file can be, relative to the media folder.
**/AnimSets/**/*.xml
Root Details¶
- Element:
animNode
The root element is the top-level XML element that contains all other elements in the XML file.
- Composition:
all
Elements¶
m_Name¶
- Minimum occurence:
1
- Maximum occurence:
1
- Type:
xs:string
A unique identifier for this animation node. For example: “LoadRiffle”, “Walk” etc. This is notably used to reference this animNode in other animNodes.
m_AnimName¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
Name of the animation clip to play. This is the name of the animation file without the extension. The animation clip needs to be stored inside the anims_X folder and inside a subfolder which matches the character the animation is for. For the player, that subfolder needs to be Bob.
For example, take the animation file Bob_Reload_Rifle_Load.glb with the following folder structure:
📁 media
📁 anims_X
📁 Bob
📄 Bob_Reload_Rifle_Load.glb
To reference it in the animNode, you would use:
<m_AnimName>Bob_Reload_Rifle_Load</m_AnimName>
m_BlendTime¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
Defines how quickly the animation will begin to play, and how the game interpolates moving the armature’s bones from one animNode to another.
m_BlendInTime¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
Defines how quickly the animation will begin to play, and how the game interpolates moving the armature’s bones from one animState to another. It is used to create a smooth transition when the animation is started or changed.
m_BlendOutTime¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
Defines how quickly the animation will end, and how the game interpolates moving the armature’s bones from one animState to another. It is used to create a smooth transition when the animation is stopped or changed.
m_SpeedScale¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float,xs:string
No description provided.
m_SpeedScaleRandomMultiplierMin¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_SpeedScaleRandomMultiplierMax¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_TrackTimeToVariable¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
No description provided.
m_Finished¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
Looks unused.
m_Looped¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:boolean
Defines whether the animation will loop or not. If set to true, the animation will loop indefinitely until it is manually stopped or conditions are no longer met.
m_AnimReverse¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:boolean
No description provided.
m_Priority¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:integer
In cases of two animations that are playing at the same time, dictates which animation’s bone weights or keyframes will take precedence. An example would be an idle animMask holding a glass which transitions into a drinking animation. The drinking animation takes priority over the idle drink-holding ainmMask if its priority is higher than the idle animation mask’s XML. The priority value is an integer starting at 1 with high numbers taking the priority.
m_ConditionPriority¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:integer
No description provided.
m_maxTorsoTwist¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_Scalar¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:float,xs:string
No description provided.
m_Scalar2¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:float,xs:string
No description provided.
m_SyncTrackingEnabled¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:boolean
No description provided.
m_2DBlends¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
No description provided.
m_2DBlendTri¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
No description provided.
m_Conditions¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
Used to specify conditions that will allow an animation node to be chosen. If the conditions are not met, the node will not be chosen. These are often combined with the function setVariable) (which exists in many forms) to set a specific condition.
This can notably be used to trigger an animation by setting that condition to be valid, which will make the animation node eligible to be chosen by the game, as long as other conditions are also met.
The syntax is as follows for the most common cases:
<m_Conditions>
<m_Name>VariableName</m_Name>
<m_Type>STRING</m_Type>
<m_Value>value</m_Value>
</m_Conditions>
In the following example, the variable WeaponReloadType is set by the game, using the parameter of the same name in the item script:
<m_Conditions>
<m_Name>WeaponReloadType</m_Name>
<m_Type>STRING</m_Type>
<m_Value>revolver</m_Value>
</m_Conditions>
m_Events¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
Used to trigger different events during the animation at specific moments. This can be used to play sounds, set variables, and more. You can find a list of available events here.
m_Transitions¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
No description provided.
m_EarlyTransitionOut¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:boolean
No description provided.
m_StopAnimOnExit¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:boolean
No description provided.
m_SubStateBoneWeights¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
Used to define the weight of a bone and its keyframes or descendants. By default, all bones that are not defined with this parameter have a default weight of 1. If you wanted to make it so an animation were to only play a specific set of bones; you would define the Dummy01 or the Bip01 bones (the parent armature bones) to have a weight of 0, and then specifically define all the bones you wish to play to have a weight value greater than 0.
m_DeferredBoneName¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
No description provided.
m_deferredBoneAxis¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
No description provided.
m_useDeferedRotation¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:boolean
No description provided.
m_MatchingGrappledAnimNode¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
No description provided.
m_GrappleOffsetForward¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_GrappleOffsetYaw¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:integer
No description provided.
m_GrapplerOffsetBehaviour¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
No description provided.
m_GrappleTweenInTime¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_useDeferredMovement¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:boolean
No description provided.
Attributes¶
x_extends¶
- Type:
xs:string- Use:
optional
Import another relative animNode file into this one. Needs to be the file name so for the following example folder structure:
📁 media
📁 AnimSets
📁 Rifle
📄 LoadRifle.xml
📄 LoadRifle_Alt.xml
The LoadRifle_Alt.xml file can import the LoadRifle.xml file by using:
<animNode x_extends="LoadRifle.xml"></animNode>
type_2DBlends¶
- Composition:
all
Elements¶
m_AnimName¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
No description provided.
m_XPos¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_YPos¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_SpeedScale¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_SubStateBoneWeights¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
No description provided.
Attributes¶
referenceID¶
- Type:
xs:integer- Use:
optional
No description provided.
type_2DBlendTri¶
- Composition:
all
Elements¶
node1¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:integer
No description provided.
node2¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:integer
No description provided.
node3¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:integer
No description provided.
type_Condition¶
- Composition:
all
Elements¶
m_Name¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:string
No description provided.
m_Type¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
No description provided.
m_Condition¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:string
No description provided.
m_Value¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:string
No description provided.
m_IntValue¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:integer
No description provided.
m_FloatValue¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:float
No description provided.
m_BoolValue¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:boolean
No description provided.
m_StringValue¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:string
No description provided.
Attributes¶
x_name¶
- Type:
xs:string- Use:
optional
This is unused by the game but it seems to be a simple identifier (often a GUID) used by the unreleased AnimZed.
type_Events¶
- Composition:
all
Elements¶
m_EventName¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
The name of the event to trigger. This can be a custom name but there’s also available events that will trigger specific actions. You can find a list of available events here.
m_Time¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
The moment during the animation when the event will be triggered. This can be set to Start or End.
m_TimePc¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
The moment during the animation when the event will be triggered. This uses a normalized time, so 0 is the start and 1 is the end. In comparison to m_Time, this allows for more precision of when to trigger the event.
m_ParameterValue¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
The value to pass to the event when it is triggered. This can be used to specify which sound to play, which variable to set, and more, depending on the event being triggered.
Attributes¶
x_name¶
- Type:
xs:string- Use:
optional
This is unused by the game but it seems to be a simple identifier (often a GUID) used by the unreleased AnimZed.
type_Transitions¶
- Composition:
all
Elements¶
m_Target¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
xs:string
The name of the target animNode to transition to. This is the value of the m_Name field in the target animNode.
m_AnimName¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
No description provided.
m_BlendTime¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_BlendInTime¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_BlendOutTime¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_speedScale¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
m_Conditions¶
- Minimum occurence:
0
- Maximum occurence:
unbounded
- Type:
No description provided.
m_EarlyTransitionOut¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:boolean
No description provided.
type_SubStateBoneWeights¶
- Composition:
all
Elements¶
boneName¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:string
No description provided.
includeDescendants¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:boolean
No description provided.
weight¶
- Minimum occurence:
0
- Maximum occurence:
1
- Type:
xs:float
No description provided.
rule_Type¶
- Composition:
all
Restrictions¶
- Base:
xs:string- Enumeration:
STRINGBOOLINTFLOATOREQUNEQSTRNEQGTRLESS
rule_Time¶
- Composition:
all
Restrictions¶
- Base:
xs:string- Enumeration:
StartEnd
rule_TimePc¶
- Composition:
all
Restrictions¶
- Base:
xs:float