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:

type_2DBlends

No description provided.

m_2DBlendTri

Minimum occurence:

0

Maximum occurence:

unbounded

Type:

type_2DBlendTri

No description provided.

m_Conditions

Minimum occurence:

0

Maximum occurence:

unbounded

Type:

type_Condition

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:

type_Events

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:

type_Transitions

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:

type_SubStateBoneWeights

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:

type_SubStateBoneWeights

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:

rule_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:

rule_Time

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:

rule_TimePc

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:

type_Condition

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:

  • STRING

  • BOOL

  • INT

  • FLOAT

  • OR

  • EQU

  • NEQ

  • STRNEQ

  • GTR

  • LESS

rule_Time

Composition:

all

Restrictions

Base:

xs:string

Enumeration:

  • Start

  • End

rule_TimePc

Composition:

all

Restrictions

Base:

xs:float