namespace ESequenceEvalReinit { enum Type { NoReset, StartPosition, ExplicitTime, } }


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


Called to gather on-screen debug data. This is called on the game thread.

virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Get the LOD threshold at which this node is enabled. Node is enabled if the current LOD >= threshold.


Get the coordinates that are currently being sampled by the blendspace.


Initialize function for setup purposes

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


For nodes that need some kind of initialization that is not dependent on node relevancy (i.e. it is insufficient or inefficient to use Initialize_AnyThread), return true here. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime.

virtual bool NeedsOnInitializeAnimInstance() const


Called once, from game thread as the parent anim instance is created

virtual void OnInitializeAnimInstance ( const [FAnimInstanceProxy](API\Runtime\Engine\Animation\FAnimInstanceProxy) * InProxy, const [UAnimInstance](API\Runtime\Engine\Animation\UAnimInstance) * InAnimInstance )


Update method for the asset player, to be implemented by derived classes

virtual void UpdateAssetPlayer ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


void UpdateFromLookAtTarget ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & LocalPoseContext )


This node uses a source transform of a socket on the skeletal mesh to automatically calculate Yaw and Pitch directions for a referenced aim offset given a point in the world to look at.

struct FAnimNode_AimOffsetLookAt : public [FAnimNode_BlendSpacePlayer](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendSpacePlayer)

Alpha

Amount of this node to blend into the output pose

bIsLODEnabled

Cached flag to indicate whether LOD threshold is enabled

CurrentBlendInput

Cached calculated blend input

LODThreshold

Max LOD that this node is allowed to run For example if you have LODThreshold to be 2, it will run until LOD 2 (based on 0 index) when the component LOD becomes 3, it will stop update/evaluate currently transition would be issue and that has to be re-visited

LookAtLocation

Location, in world space to look at

PivotSocketBoneReference

Cached reference to the pivot socket's bone

PivotSocketLocalTransform

Cached local transform of the pivot socket

PivotSocketName

Socket or bone to treat as the look at pivot (optional).

SocketAxis

Direction in the socket transform to consider the 'forward' or look at axis

SocketBoneReference

Cached reference to the source socket's bone

SocketLocalTransform

Cached local transform of the source socket

SourceSocketName

Socket or bone to treat as the look at source. This will then be pointed at LookAtLocation


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.


Called to gather on-screen debug data. This is called on the game thread.


Called to update the state of the graph relative to this node. Generally this should configure any weights (etc.) that could affect the poses that will need to be evaluated. This function is what usually executes EvaluateGraphExposedInputs. This can be called on any thread.

virtual void Update_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


struct FAnimNode_ApplyAdditive : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.


struct FAnimNode_BlendBoneByChannel : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

TransformsSpace

Space to convert transforms into prior to copying channels


Struct for tracking blends for each pose.


Get the blend profile to use when blending, if any.

[UBlendProfile](API\Runtime\Engine\Animation\UBlendProfile) * GetBlendProfile() const


Get the array of blend times to apply to our input poses.

const [TArray](API\Runtime\Core\Containers\TArray)< float > & GetBlendTimes() const


Get the blend type we will use when blending.


Get the custom blend curve to apply when blending, if any.

[UCurveFloat](API\Runtime\Engine\Curves\UCurveFloat) * GetCustomBlendCurve() const


virtual [FString](API\Runtime\Core\Containers\FString) GetNodeName ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Get whether to reinitialize the child pose when re-activated. For example, when active child changes


Get the type of transition that this blend list will make.


virtual void RemovePose ( int32 PoseIndex )


Blend list node; has many children.

struct FAnimNode_BlendListBase : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

bResetChildOnActivation

This reinitializes the re-activated child if the child's weight was zero.

PerBoneSampleData

Per-bone blending data, allocated when using blend profiles.


Get which input should be connected to the output.


This node is effectively a 'branch', picking one of two input poses based on an input Boolean value.

struct FAnimNode_BlendListByBool : public [FAnimNode_BlendListBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendListBase)


Get the currently selected pose (as an enum value)


Get the mapping from enum value to BlendPose index; there will be one entry per entry in the enum; entries out of range always map to pose index 0.

const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & GetEnumToPoseIndex() const


Set the mapping from enum value to BlendPose index. Called during compilation.

void SetEnumToPoseIndex ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & InEnumToPoseIndex )


Blend List by Enum, it changes based on enum input that enters.

struct FAnimNode_BlendListByEnum : public [FAnimNode_BlendListBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendListBase)


Get the currently active child index.


Blend list node; has many children.

struct FAnimNode_BlendListByInt : public [FAnimNode_BlendListBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendListBase)


Called to gather on-screen debug data. This is called on the game thread.

virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Get the play rate multiplier. Can be negative, which will cause the animation to play in reverse.


Indicates if we are an evaluator - i.e. will be setting the time explicitly rather than letting it play out.


An evaluator will be setting the play rate to zero and setting the time explicitly. ShouldTeleportToTime indicates whether we should jump to that time, or move to it playing out root motion and events etc.

virtual bool ShouldTeleportToTime() const


Update method for the asset player, to be implemented by derived classes

virtual void UpdateAssetPlayer ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


the sync group that this blendspace uses


Evaluates a point in a blendspace, using a specific time input rather than advancing time internally. Typically the playback position of the animation for this node will represent something other than time, like jump height.

struct FAnimNode_BlendSpaceEvaluator : public [FAnimNode_BlendSpacePlayer](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendSpacePlayer)

bTeleportToNormalizedTime

If true, teleport to normalized time, does NOT advance time (does not trigger notifies, does not extract Root Motion, etc.) If false, will advance time (will trigger notifies, extract root motion if applicable, etc).

NormalizedTime

Normalized time between [0,1].


Allows multiple animations to be blended between based on input parameters.

struct FAnimNode_BlendSpaceGraph : public [FAnimNode_BlendSpaceGraphBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendSpaceGraphBase)


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


the blendspace that this node uses

const [UBlendSpace](API\Runtime\Engine\Animation\UBlendSpace) * GetBlendSpace() const


the current sample coordinates that this node is using to sample the blendspace


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


Set the node to preview a supplied sample value.

void SetPreviewPosition ( FVector InVector )


Forces the Position to the specified value.

void SnapToPosition ( const FVector & NewPosition )


Internal update handler, skipping evaluation of exposed inputs.

void UpdateInternal ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Called to update the state of the graph relative to this node. Generally this should configure any weights (etc.) that could affect the poses that will need to be evaluated. This function is what usually executes EvaluateGraphExposedInputs. This can be called on any thread.

virtual void Update_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


struct FAnimNode_BlendSpaceGraphBase : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

BlendFilter

FIR filter applied to inputs.

BlendSampleDataCache

Cache of sampled data, updated each frame.

BlendSpace

The internal blendspace asset to play.

bUsePreviewPosition

Whether to use the preview blend params.

CachedTriangulationIndex

Previous position in the triangulation/segmentation

GroupName

The group name that we synchronize with. All nodes employing sync beyond this in the anim graph will implicitly use this sync group.

GroupRole

The role this player can assume within the group.

PreviewPosition

Preview blend params - set in editor only.

SamplePoseLinks

Pose links for each sample in the blendspace.

X

The X coordinate to sample in the blendspace.

Y

The Y coordinate to sample in the blendspace.


Get the sync group method we are using.

virtual EAnimSyncMethod GetGroupMethod() const


Get the blendspace asset to play.

virtual [UBlendSpace](API\Runtime\Engine\Animation\UBlendSpace) * GetBlendSpace() const


Get the sync group name we are using.

virtual [FName](API\Runtime\Core\UObject\FName) GetGroupName() const


Get the sync group role we are using.

virtual [EAnimGroupRole::Type](API\Runtime\Engine\Animation\EAnimGroupRole__Type) GetGroupRole() const


Check whether this node should be ignored when testing for relevancy in state machines.

virtual bool GetIgnoreForRelevancyTest() const


the current sample coordinates after going through the filtering


Get the play rate multiplier. Can be negative, which will cause the animation to play in reverse.


The start position in [0, 1] to use when initializing. When looping, play will still jump back to the beginning when reaching the end.


Get the coordinates that are currently being sampled by the blendspace.


Set the blendspace asset to play.

virtual bool SetBlendSpace ( [UBlendSpace](API\Runtime\Engine\Animation\UBlendSpace) * InBlendSpace )


Does this asset player loop back to the start when it reaches the end?


Set the sync group method we are using.

virtual bool SetGroupMethod ( EAnimSyncMethod InMethod )


Set the sync group name we are using.

virtual bool SetGroupName ( [FName](API\Runtime\Core\UObject\FName) InGroupName )


Set the sync group role we are using.

virtual bool SetGroupRole ( [EAnimGroupRole::Type](API\Runtime\Engine\Animation\EAnimGroupRole__Type) InRole )


Set the play rate multiplier. Can be negative, which will cause the animation to play in reverse.

virtual bool SetPlayRate ( float InPlayRate )


Set whether this node should be ignored when testing for relevancy in state machines.

virtual bool SetIgnoreForRelevancyTest ( bool bInIgnoreForRelevancyTest )


Set if the animation should loop back to the start when it reaches the end?


Set the coordinates that are currently being sampled by the blendspace.

virtual bool SetPosition ( FVector InPosition )


Set whether we should reset the current play time when the blend space changes.

virtual bool SetResetPlayTimeWhenBlendSpaceChanges ( bool bReset )


Get whether we should reset the current play time when the blend space changes.

virtual bool ShouldResetPlayTimeWhenBlendSpaceChanges() const


struct FAnimNode_BlendSpacePlayer : public [FAnimNode_BlendSpacePlayerBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendSpacePlayerBase)


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


Called to gather on-screen debug data. This is called on the game thread.

virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Functions to report data to getters, this is required for all asset players (but can't be pure abstract because of struct instantiation generated code).

virtual float GetCurrentAssetLength() const


Get the animation asset associated with the node, derived classes should implement this

virtual [UAnimationAsset](API\Runtime\Engine\Animation\UAnimationAsset) * GetAnimAsset() const


virtual float GetCurrentAssetTime() const


virtual float GetCurrentAssetTimePlayRateAdjusted() const


Get the blendspace asset to play.

virtual [UBlendSpace](API\Runtime\Engine\Animation\UBlendSpace) * GetBlendSpace() const


Should the animation loop back to the start when it reaches the end?


Get the amount of time from the end.

float GetTimeFromEnd ( float CurrentTime ) const


Initialize function for setup purposes

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


Set the blendspace asset to play.

virtual bool SetBlendSpace ( [UBlendSpace](API\Runtime\Engine\Animation\UBlendSpace) * InBlendSpace )


Indicates if we are an evaluator - i.e. will be setting the time explicitly rather than letting it play out.


virtual bool SetPlayRate ( float InPlayRate )


An evaluator will be setting the play rate to zero and setting the time explicitly. ShouldTeleportToTime indicates whether we should jump to that time, or move to it playing out root motion and events etc.

virtual bool ShouldTeleportToTime() const


Update method for the asset player, to be implemented by derived classes

virtual void UpdateAssetPlayer ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Forces the Position to the specified value.

void SnapToPosition ( const FVector & NewPosition )


struct FAnimNode_BlendSpacePlayerBase : public [FAnimNode_AssetPlayerBase](API\Runtime\Engine\Animation\FAnimNode_AssetPlayerBase)

BlendFilter

Filter used to dampen coordinate changes.

BlendSampleDataCache

Cache of samples used to determine blend weights.

CachedTriangulationIndex

Previous position in the triangulation/segmentation


Get the sync group method we are using.

virtual EAnimSyncMethod GetGroupMethod() const


Get the blendspace asset to play.


void UpdateInternal ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Get the sync group name we are using.

virtual [FName](API\Runtime\Core\UObject\FName) GetGroupName() const


Check whether this node should be ignored when testing for relevancy in state machines.

virtual bool GetIgnoreForRelevancyTest() const


Get the sync group role we are using.

virtual [EAnimGroupRole::Type](API\Runtime\Engine\Animation\EAnimGroupRole__Type) GetGroupRole() const


The start position in [0, 1] to use when initializing. When looping, play will still jump back to the beginning when reaching the end.


Get the play rate multiplier. Can be negative, which will cause the animation to play in reverse.


Get the coordinates that are currently being sampled by the blendspace.


Set the blendspace asset to play.


Does this asset player loop back to the start when it reaches the end?


Set the sync group method we are using.

virtual bool SetGroupMethod ( EAnimSyncMethod InMethod )


Set the sync group name we are using.

virtual bool SetGroupName ( [FName](API\Runtime\Core\UObject\FName) InGroupName )


Set the sync group role we are using.

virtual bool SetGroupRole ( [EAnimGroupRole::Type](API\Runtime\Engine\Animation\EAnimGroupRole__Type) InRole )


Set whether this node should be ignored when testing for relevancy in state machines.

virtual bool SetIgnoreForRelevancyTest ( bool bInIgnoreForRelevancyTest )


Set if the animation should loop back to the start when it reaches the end?


Set the play rate multiplier. Can be negative, which will cause the animation to play in reverse.


Set the coordinates that are currently being sampled by the blendspace.

virtual bool SetPosition ( FVector InPosition )


Set whether we should reset the current play time when the blend space changes.

virtual bool SetResetPlayTimeWhenBlendSpaceChanges ( bool bReset )


Get whether we should reset the current play time when the blend space changes.

virtual bool ShouldResetPlayTimeWhenBlendSpaceChanges() const


Root node of a blend space sample (sink node). We dont use AnimNode_Root to let us distinguish these nodes in the property list at link time.

struct FAnimNode_BlendSpaceSampleResult : public [FAnimNode_Root](API\Runtime\Engine\Animation\FAnimNode_Root)


struct FAnimNode_BlendSpacePlayer_Standalone : public [FAnimNode_BlendSpacePlayerBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendSpacePlayerBase)


Calls the function we hold if the callsite matches the one we have set.

void CallFunctionFromCallSite ( EAnimFunctionCallSite InCallSite, const [FAnimationBaseContext](API\Runtime\Engine\Animation\FAnimationBaseContext) & InContext ) const


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


Called to gather on-screen debug data. This is called on the game thread.

virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Get the function held on this node.

const [FAnimNodeFunctionRef](API\Runtime\Engine\Animation\FAnimNodeFunctionRef) & GetFunction() const


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


For nodes that need some kind of initialization that is not dependent on node relevancy (i.e. it is insufficient or inefficient to use Initialize_AnyThread), return true here. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime.

virtual bool NeedsOnInitializeAnimInstance() const


Called once, from game thread as the parent anim instance is created

virtual void OnInitializeAnimInstance ( const [FAnimInstanceProxy](API\Runtime\Engine\Animation\FAnimInstanceProxy) * InProxy, const [UAnimInstance](API\Runtime\Engine\Animation\UAnimInstance) * InAnimInstance )


Called to update the state of the graph relative to this node. Generally this should configure any weights (etc.) that could affect the poses that will need to be evaluated. This function is what usually executes EvaluateGraphExposedInputs. This can be called on any thread.

virtual void Update_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Calls specified user-defined events/functions during anim graph execution

struct FAnimNode_CallFunction : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

CallSite

When to call the function during the execution of the animation graph.

Counter

Counter used to determine relevancy.

CurrentWeight

Weight to determine blend-related call sites.

Function

Function to call.


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Override this to indicate thatPreUpdate()should be called on the game thread (usually to gather non-thread safe data) before Update() is called. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime. This is called on the game thread.


Override this to perform game-thread work prior to non-game thread Update() being called

virtual void PreUpdate ( const [UAnimInstance](API\Runtime\Engine\Animation\UAnimInstance) * InAnimInstance )


Simple controller to copy a bone's transform to another one.

struct FAnimNode_CopyPoseFromMesh : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

bCopyCurves

Copy curves also from SouceMeshComponent.

bCopyCustomAttributes

Copy custom attributes from SouceMeshComponent

bUseAttachedParent

If SourceMeshComponent is not valid, and if this is true, it will look for attahced parent as a source

bUseMeshPose

Use root space transform to copy to the target pose.

RootBoneToCopy

If you want to specify copy root, use this - this will ensure copy only below of this joint (inclusively)

SourceMeshComponent

This is used by default if it's valid


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.


Called to gather on-screen debug data. This is called on the game thread.


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.


Supply curves from some external source (e.g. audio)

struct FAnimNode_CurveSource : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

Alpha

How much we wan to blend the curve in by

CurveSource

Our bound source

SourceBinding

The binding of the curve source we want to bind to.


Get the LOD threshold at which this node is enabled. Node is enabled if the current LOD >= threshold.


Invalidates the cached bone data so it is recalculated the next time this node is updated.


Invalidate the cached per-bone blend weights from the skeleton.


Set the blend mask for the specified input pose.

void SetBlendMask ( int32 InPoseIndex, [UBlendProfile](API\Runtime\Engine\Animation\UBlendProfile) * InBlendMask )


Called to update the state of the graph relative to this node. Generally this should configure any weights (etc.) that could affect the poses that will need to be evaluated. This function is what usually executes EvaluateGraphExposedInputs. This can be called on any thread.


Layered blend (per bone); has dynamic number of blendposes that can blend per different bone sets.

struct FAnimNode_LayeredBoneBlend : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

BasePose

The source pose

bBlendRootMotionBasedOnRootBone

Whether to incorporate the per-bone blend weight of the root bone when lending root motion

BlendMasks

The blend masks to use for our layer inputs.

BlendMode

Whether to use branch filters or a blend mask to specify an input pose per-bone influence

BlendPoses

Each layer's blended pose

BlendWeights

The weights of each layer

bMeshSpaceRotationBlend

Whether to blend bone rotations in mesh space or in local space

bMeshSpaceScaleBlend

Whether to blend bone scales in mesh space or in local space

CurveBlendOption

How to blend the layers together

CurvePoseSourceIndices

Per-curve source pose index.

DesiredBoneBlendWeights

Transient data to handle weight and target weight this array changes based on required bones

LayerSetup

Configuration for the parts of the skeleton to blend for each layer.

LODThreshold

Max LOD that this node is allowed to run For example if you have LODThreshold to be 2, it will run until LOD 2 (based on 0 index) when the component LOD becomes 3, it will stop update/evaluate currently transition would be issue and that has to be re-visited

PerBoneBlendWeights

Per-bone weights for the skeleton.

RequiredBonesSerialNumber

Serial number of the required bones container.

SkeletonGuid

Guids for skeleton used to determine whether the PerBoneBlendWeights need rebuilding.

VirtualBoneGuid

Guid for virtual bones used to determine whether the PerBoneBlendWeights need rebuilding.


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.


struct FAnimNode_MakeDynamicAdditive : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

Additive

Pose to make additive.

Base

Reference pose for additive delta calculation.

bMeshSpaceAdditive

Do additive delta calculation in mesh space.


Called to evaluate component-space bone transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void EvaluateComponentSpace_AnyThread ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output )


struct FAnimNode_MeshSpaceRefPose : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)


How long to blend using inertialization when switching mirrored state.

virtual float GetBlendTimeOnMirrorStateChange() const


Should bones mirror.


Should attributes mirror (based on the bone mirroring data in the mirror data table)

virtual bool GetAttributeMirroring() const


Should the curves mirror.


Get the MirrorDataTable.

virtual [UMirrorDataTable](API\Runtime\Engine\Animation\UMirrorDataTable) * GetMirrorDataTable() const


Get Mirror State.


Whether to reset (reinitialize) the child (source) pose when the mirror state changes.

virtual bool GetResetChildOnMirrorStateChange() const


Set if attributes mirror
true if the value was set (it is dynamic), or false if it could not (it is not dynamic or pin exposed)

virtual bool SetAttributeMirroring ( bool bInAttributeMirroring )


Set how long to blend using inertialization when switching mirrored state
true if the value was set (it is dynamic), or false if it could not (it is not dynamic or pin exposed)

virtual bool SetBlendTimeOnMirrorStateChange ( float InBlendTime )


Set if bones mirror
true if the value was set (it is dynamic), or false if it could not (it is not dynamic or pin exposed)

virtual bool SetBoneMirroring ( bool bInBoneMirroring )


Set Mirror State.

virtual bool SetMirror ( bool bInMirror )


Set if curves mirror
true if the value was set (it is dynamic), or false if it could not (it is not dynamic or pin exposed)

virtual bool SetCurveMirroring ( bool bInCurveMirroring )


Set whether to reset (reinitialize) the child (source) pose when the mirror state changes
true if the value was set (it is dynamic), or false if it could not (it is not dynamic or pin exposed)

virtual bool SetResetChildOnMirrorStateChange ( bool bInResetChildOnMirrorStateChange )


Set the MirrorDataTable.

virtual bool SetMirrorDataTable ( [UMirrorDataTable](API\Runtime\Engine\Animation\UMirrorDataTable) * MirrorTable )


struct FAnimNode_Mirror : public [FAnimNode_MirrorBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_MirrorBase)

BlendTime

Inertialization blend time to use when transitioning between mirrored and unmirrored states.


virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Should bones mirror.


Get the MirrorDataTable.


This only used by custom handlers, and it is advanced feature.

virtual [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base) * GetSourceLinkNode()


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


Set Mirror State.


Set the MirrorDataTable.


virtual void SetSourceLinkNode ( [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base) * NewLinkNode )


virtual void Update_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


struct FAnimNode_MirrorBase : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)


virtual bool GetAttributeMirroring() const


virtual float GetBlendTimeOnMirrorStateChange() const


Get Mirror State.


Should the curves mirror.


virtual bool GetResetChildOnMirrorStateChange() const


Get the MirrorDataTable.

virtual [UMirrorDataTable](API\Runtime\Engine\Animation\UMirrorDataTable) * GetMirrorDataTable() const


virtual bool SetAttributeMirroring ( bool bInAttributeMirroring )


virtual bool SetBlendTimeOnMirrorStateChange ( float InBlendTime )


virtual bool SetCurveMirroring ( bool bInCurveMirroring )


Set Mirror State.

virtual bool SetMirror ( bool bInMirror )


Set the MirrorDataTable.

virtual bool SetMirrorDataTable ( [UMirrorDataTable](API\Runtime\Engine\Animation\UMirrorDataTable) * MirrorTable )


virtual bool SetResetChildOnMirrorStateChange ( bool bInResetChildOnMirrorStateChange )


virtual bool SetBoneMirroring ( bool bInBoneMirroring )


struct FAnimNode_Mirror_Standalone : public [FAnimNode_MirrorBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_MirrorBase)


Add new curve being modified

void AddCurve ( const [FName](API\Runtime\Core\UObject\FName) & InName, float InValue )


virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


Remove a curve from being modified


[FAnimNode_ModifyCurve](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_ModifyCurve) & operator= ( const [FAnimNode_ModifyCurve](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_ModifyCurve) & )


Called to update the state of the graph relative to this node. Generally this should configure any weights (etc.) that could affect the poses that will need to be evaluated. This function is what usually executes EvaluateGraphExposedInputs. This can be called on any thread.

virtual void Update_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


PRAGMA_DISABLE_DEPRECATION_WARNINGS FAnimNode_ModifyCurve ( const [FAnimNode_ModifyCurve](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_ModifyCurve) & )


Easy way to modify curve values on a pose

struct FAnimNode_ModifyCurve : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)


Called to gather on-screen debug data. This is called on the game thread.

virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


This represents a baked transition.

struct FAnimNode_MultiWayBlend : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)


Initialize function for setup purposes


Rebuild pose list

virtual void RebuildPoseList ( const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & InBoneContainer, const [UPoseAsset](API\Runtime\Engine\Animation\UPoseAsset) * InPoseAsset )


Update method for the asset player, to be implemented by derived classes

virtual void UpdateAssetPlayer ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Evaluates a point in an anim sequence, using a specific time input rather than advancing time internally. Typically the playback position of the animation for this node will represent something other than time, like jump height. This node will not trigger any notifies present in the associated sequence.

struct FAnimNode_PoseBlendNode : public [FAnimNode_PoseHandler](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_PoseHandler)

BlendOption

Type of blending used (Linear, Cubic, etc.)

CustomCurve

If you're using Custom BlendOption, you can specify curve


struct FAnimNode_PoseByName : public [FAnimNode_PoseHandler](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_PoseHandler)


Get the LOD threshold at which this node is enabled. Node is enabled if the current LOD >= threshold.


Returns the radius for a given target

float GetRadiusForTarget ( const [FRBFTarget](API\Runtime\AnimGraphRuntime\RBF\FRBFTarget) & Target ) const


Return array ofFRBFTargetstructs, derived from PoseTargets array and DriveSource setting

void GetRBFTargets ( [TArray](API\Runtime\Core\Containers\TArray)< [FRBFTarget](API\Runtime\AnimGraphRuntime\RBF\FRBFTarget) > & OutTargets, const [FBoneContainer](API\Runtime\Engine\FBoneContainer) * BoneContainer ) const


Rebuild Pose List


Util for seeing if BoneName is in the list of driven bones (and bFilterDrivenBones is true)

bool IsBoneDriven ( [FName](API\Runtime\Core\UObject\FName) BoneName ) const


RBF based orientation driver

struct FAnimNode_PoseDriver : public [FAnimNode_PoseHandler](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_PoseHandler)

bCachedDrivenIDsAreDirty

If true, will recalculate DrivenUID values in PoseTargets array on next eval

bEvalFromRefPose

Evaluate SourceBone transform relative from its Reference Pose.

bHasOnlyDriveBones

Checks if there are valid bones in OnlyDriveBones, since some entries can be None

BonesToFilter

This array lists bones that we should filter out (ie have a track in the PoseAsset, but are not listed in OnlyDriveBones)

bSoloDrivenOnly

Only solo the driven poses, and don't move the source joint(s) to match

DriveOutput

Whether we should drive poses or curves

DriveSource

Which part of the transform is read

EvalSpaceBone

Optional other bone space to use when reading SourceBone transform.

LODThreshold

Max LOD that this node is allowed to run For example if you have LODThreshold to be 2, it will run until LOD 2 (based on 0 index) when the component LOD becomes 3, it will stop update/evaluate currently transition would be issue and that has to be re-visited

OnlyDriveBones

List of bones that will modified by this node.

OutputWeights

Last set of output weights from RBF solve

PoseTargets

Targets used to compare with current pose and drive morphs/poses

RBFParams

Parameters used by RBF solver

SoloTargetIndex

The target to solo on, or INDEX_NONE if to use the normal weight computation.

SourceBones

Bone to use for driving parameters based on its orientation

SourceBoneTMs

Input source bone TM, used for debug drawing

SourcePose

Bones to use for driving parameters based on their transform


Cache bone blend weights - called when pose asset changes

void CacheBoneBlendWeights ( [FAnimInstanceProxy](API\Runtime\Engine\Animation\FAnimInstanceProxy) * InstanceProxy )


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Called to gather on-screen debug data. This is called on the game thread.


Get the animation asset associated with the node, derived classes should implement this

virtual [UAnimationAsset](API\Runtime\Engine\Animation\UAnimationAsset) * GetAnimAsset() const


virtual float GetAccumulatedTime() const


Functions to report data to getters, this is required for all asset players (but can't be pure abstract because of struct instantiation generated code).

virtual float GetCurrentAssetLength() const


virtual float GetCurrentAssetTime() const


Initialize function for setup purposes

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


Rebuild pose list


Override the currently accumulated time

virtual void SetAccumulatedTime ( float NewTime )


Set the pose asset to use for this node.

void SetPoseAsset ( [UPoseAsset](API\Runtime\Engine\Animation\UPoseAsset) * InPoseAsset )


Update method for the asset player, to be implemented by derived classes


Evaluates a point in an anim sequence, using a specific time input rather than advancing time internally. Typically the playback position of the animation for this node will represent something other than time, like jump height. This node will not trigger any notifies present in the associated sequence.

struct FAnimNode_PoseHandler : public [FAnimNode_AssetPlayerBase](API\Runtime\Engine\Animation\FAnimNode_AssetPlayerBase)

BoneBlendWeights

Weight to blend pose per joint - has to be cached whenever cache bones for LOD note this is for mesh bone

PoseAsset

The animation sequence asset to evaluate.


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


Called after CurrentPoseAsset is changed.


virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Override this to perform game-thread work prior to non-game thread Update() being called

virtual void PreUpdate ( const [UAnimInstance](API\Runtime\Engine\Animation\UAnimInstance) * InAnimInstance )


Provide a snapshot pose, either from the internal named pose cache or via a supplied snapshot

struct FAnimNode_PoseSnapshot : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

Mode

How to access the snapshot

Snapshot

Snapshot to use. This should be populated at first by calling SnapshotPose

SnapshotName

The name of the snapshot previously stored with SavePoseSnapshot


Called to update the state of the graph relative to this node. Generally this should configure any weights (etc.) that could affect the poses that will need to be evaluated. This function is what usually executes EvaluateGraphExposedInputs. This can be called on any thread.

virtual void Update_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Set the cached blendweight to zero


Get the currently referenced time within the asset player node


Get the last encountered blend weight for this node

virtual float GetCachedBlendWeight() const


Check whether this node should be ignored when testing for relevancy in state machines.

virtual bool GetIgnoreForRelevancyTest() const


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.


Get the delta time record owned by this asset player (or null)

virtual const [FDeltaTimeRecord](API\Runtime\Engine\Animation\FDeltaTimeRecord) * GetDeltaTimeRecord() const


struct FAnimNode_RandomPlayer : public [FAnimNode_AssetPlayerRelevancyBase](API\Runtime\Engine\Animation\FAnimNode_AssetPlayerRelevancyBa-)

BlendWeight

Last encountered blend weight for this node

bShuffleMode

When shuffle mode is active we will never loop a sequence beyond MaxLoopCount without visiting each sequence in turn (no repeats).

Entries

List of sequences to randomly step through


Set whether this node should be ignored when testing for relevancy in state machines.

virtual bool SetIgnoreForRelevancyTest ( bool bInIgnoreForRelevancyTest )


Called to gather on-screen debug data. This is called on the game thread.


Set the ref pose type of this node.

void SetRefPoseType ( ERefPoseType InType )


Get the type of this ref pose.


RefPose pose nodes - ref pose or additive RefPose pose.

struct FAnimNode_RefPose : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


struct FAnimNode_RotateRootBone : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

bRotateRootMotionAttribute

If enabled, rotating the root bone using this node will also rotate the direction of the root motion custom attribute.


Get the LOD threshold at which this node is enabled. Node is enabled if the current LOD >= threshold.


Initialize function for setup purposes


Update method for the asset player, to be implemented by derived classes

virtual void UpdateAssetPlayer ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


struct FAnimNode_RotationOffsetBlendSpace : public [FAnimNode_BlendSpacePlayer](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendSpacePlayer)

Alpha

Current strength of the AimOffset.

LODThreshold

Max LOD that this node is allowed to run For example if you have LODThreshold to be 2, it will run until LOD 2 (based on 0 index) when the component LOD becomes 3, it will stop update/evaluate currently transition would be issue and that has to be re-visited


the sync group that this blendspace uses


Allows multiple animations to be blended between based on input parameters.

struct FAnimNode_RotationOffsetBlendSpaceGraph : public [FAnimNode_BlendSpaceGraphBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_BlendSpaceGraphBase)


The time at which to evaluate the associated sequence.


Get the sync group method we are using.

virtual EAnimSyncMethod GetGroupMethod() const


Get the sync group role we are using.

virtual [EAnimGroupRole::Type](API\Runtime\Engine\Animation\EAnimGroupRole__Type) GetGroupRole() const


Get the sync group name we are using.

virtual [FName](API\Runtime\Core\UObject\FName) GetGroupName() const


Check whether this node should be ignored when testing for relevancy in state machines.


What to do when SequenceEvaluator is reinitialized

virtual [TEnumAsByte](API\Runtime\Core\Containers\TEnumAsByte)< [ESequenceEvalReinit::Type](API\Runtime\AnimGraphRuntime\AnimNodes\ESequenceEvalReinit__Type) > GetReinitializationBehavior() const


The animation sequence asset to evaluate.

virtual [UAnimSequenceBase](API\Runtime\Engine\Animation\UAnimSequenceBase) * GetSequence() const


The start up position, it only applies when ReinitializationBehavior == StartPosition. Only used when bTeleportToExplicitTime is false.


If true, teleport to explicit time, does NOT advance time (does not trigger notifies, does not extract Root Motion, etc.) If false, will advance time (will trigger notifies, extract root motion if applicable, etc.) Note: using a sync group forces advancing time regardless of what this option is set to.

virtual bool GetTeleportToExplicitTime() const


Does this asset player loop back to the start when it reaches the end?


Set the time at which to evaluate the associated sequence.

virtual bool SetExplicitTime ( float InTime )


Set the sync group name we are using.

virtual bool SetGroupName ( [FName](API\Runtime\Core\UObject\FName) InGroupName )


Set the sync group method we are using.

virtual bool SetGroupMethod ( EAnimSyncMethod InMethod )


Set the sync group role we are using.

virtual bool SetGroupRole ( [EAnimGroupRole::Type](API\Runtime\Engine\Animation\EAnimGroupRole__Type) InRole )


Set whether this node should be ignored when testing for relevancy in state machines.

virtual bool SetIgnoreForRelevancyTest ( bool bInIgnoreForRelevancyTest )


Set the animation to continue looping when it reaches the end.

virtual bool SetShouldLoop ( bool bInShouldLoop )


Set the animation sequence asset to evaluate.

virtual bool SetSequence ( [UAnimSequenceBase](API\Runtime\Engine\Animation\UAnimSequenceBase) * InSequence )


Sequence evaluator node that can be used with constant folding.

struct FAnimNode_SequenceEvaluator : public [FAnimNode_SequenceEvaluatorBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_SequenceEvaluatorBase)


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Called to gather on-screen debug data. This is called on the game thread.

virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


virtual float GetAccumulatedTime() const


Get the animation asset associated with the node, derived classes should implement this

virtual [UAnimationAsset](API\Runtime\Engine\Animation\UAnimationAsset) * GetAnimAsset() const


virtual float GetCurrentAssetTime() const


Functions to report data to getters, this is required for all asset players (but can't be pure abstract because of struct instantiation generated code).

virtual float GetCurrentAssetLength() const


The time at which to evaluate the associated sequence.


Get the effective delta time between the previous and current frame internal time.

virtual float GetEffectiveDeltaTime ( float ExplicitTime, float PrevExplicitTime ) const


What to do when SequenceEvaluator is reinitialized

virtual [TEnumAsByte](API\Runtime\Core\Containers\TEnumAsByte)< [ESequenceEvalReinit::Type](API\Runtime\AnimGraphRuntime\AnimNodes\ESequenceEvalReinit__Type) > GetReinitializationBehavior() const


This only works if bTeleportToExplicitTime is false OR this node is set to use SyncGroup


The animation sequence asset to evaluate.

virtual [UAnimSequenceBase](API\Runtime\Engine\Animation\UAnimSequenceBase) * GetSequence() const


If true, teleport to explicit time, does NOT advance time (does not trigger notifies, does not extract Root Motion, etc.) If false, will advance time (will trigger notifies, extract root motion if applicable, etc.) Note: using a sync group forces advancing time regardless of what this option is set to.

virtual bool GetTeleportToExplicitTime() const


Initialize function for setup purposes

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


The start up position, it only applies when ReinitializationBehavior == StartPosition. Only used when bTeleportToExplicitTime is false.


void SetExplicitPreviousTime ( float PreviousTime )


Set the time at which to evaluate the associated sequence.

virtual bool SetExplicitTime ( float InTime )


Set what to do when SequenceEvaluator is reinitialized

virtual void SetReinitializationBehavior ( [TEnumAsByte](API\Runtime\Core\Containers\TEnumAsByte)< [ESequenceEvalReinit::Type](API\Runtime\AnimGraphRuntime\AnimNodes\ESequenceEvalReinit__Type) > InBehavior )


virtual bool SetSequence ( [UAnimSequenceBase](API\Runtime\Engine\Animation\UAnimSequenceBase) * InSequence )


Set the animation to continue looping when it reaches the end.

virtual bool SetShouldLoop ( bool bInShouldLoop )


Set whether to teleport to explicit time when it is set.

virtual void SetTeleportToExplicitTime ( bool bInTeleport )


Update method for the asset player, to be implemented by derived classes

virtual void UpdateAssetPlayer ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Abstract base class. Evaluates a point in an anim sequence, using a specific time input rather than advancing time internally. Typically the playback position of the animation for this node will represent something other than time, like jump height. This node will not trigger any notifies present in the associated sequence.

struct FAnimNode_SequenceEvaluatorBase : public [FAnimNode_AssetPlayerBase](API\Runtime\Engine\Animation\FAnimNode_AssetPlayerBase)


Get the sync group method we are using.

virtual EAnimSyncMethod GetGroupMethod() const


Get the sync group name we are using.

virtual [FName](API\Runtime\Core\UObject\FName) GetGroupName() const


Override the currently accumulated time

virtual void SetAccumulatedTime ( float NewTime )


Get the sync group role we are using.

virtual [EAnimGroupRole::Type](API\Runtime\Engine\Animation\EAnimGroupRole__Type) GetGroupRole() const


Check whether this node should be ignored when testing for relevancy in state machines.

virtual bool GetIgnoreForRelevancyTest() const


virtual [TEnumAsByte](API\Runtime\Core\Containers\TEnumAsByte)< [ESequenceEvalReinit::Type](API\Runtime\AnimGraphRuntime\AnimNodes\ESequenceEvalReinit__Type) > GetReinitializationBehavior() const


virtual [UAnimSequenceBase](API\Runtime\Engine\Animation\UAnimSequenceBase) * GetSequence() const


virtual bool GetTeleportToExplicitTime() const


Does this asset player loop back to the start when it reaches the end?


Set the sync group method we are using.

virtual bool SetGroupMethod ( EAnimSyncMethod InMethod )


Set the sync group name we are using.

virtual bool SetGroupName ( [FName](API\Runtime\Core\UObject\FName) InGroupName )


Set the sync group role we are using.

virtual bool SetGroupRole ( [EAnimGroupRole::Type](API\Runtime\Engine\Animation\EAnimGroupRole__Type) InRole )


Set whether this node should be ignored when testing for relevancy in state machines.

virtual bool SetIgnoreForRelevancyTest ( bool bInIgnoreForRelevancyTest )


virtual void SetReinitializationBehavior ( [TEnumAsByte](API\Runtime\Core\Containers\TEnumAsByte)< [ESequenceEvalReinit::Type](API\Runtime\AnimGraphRuntime\AnimNodes\ESequenceEvalReinit__Type) > InBehavior )


Set the animation sequence asset to evaluate.

virtual bool SetSequence ( [UAnimSequenceBase](API\Runtime\Engine\Animation\UAnimSequenceBase) * InSequence )


virtual void SetTeleportToExplicitTime ( bool bInTeleport )


Sequence evaluator node that can be used standalone (without constant folding)

struct FAnimNode_SequenceEvaluator_Standalone : public [FAnimNode_SequenceEvaluatorBase](API\Runtime\AnimGraphRuntime\AnimNodes\FAnimNode_SequenceEvaluatorBase)


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Called to gather on-screen debug data. This is called on the game thread.

virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


Called to update the state of the graph relative to this node. Generally this should configure any weights (etc.) that could affect the poses that will need to be evaluated. This function is what usually executes EvaluateGraphExposedInputs. This can be called on any thread.

virtual void Update_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


An animation slot node normally acts as a passthru, but a montage or PlaySlotAnimation call from game code can cause an animation to blend in and be played on the slot temporarily, overriding the Source input.

struct FAnimNode_Slot : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

bAlwaysUpdateSourcePose

Whether we should continue to update the source pose regardless of whether it would be used.

SlotName

The name of this slot, exposed to gameplay code, etc...

Source

The source input, passed thru to the output unless a montage or slot animation is currently playing.


Get the group name that we synchronize with.


struct FAnimNode_Sync : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)


This represents a baked transition.

struct FAnimNode_TwoWayBlend : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

Alpha

The float value that controls the alpha blending when the alpha input type is set to 'Float'

AlphaCurveName

The animation curve that controls the alpha blending when the alpha input type is set to 'Curve'

AlphaInputType

The data type used to control the alpha blending between the A and B poses.

bAlphaBoolEnabled

The boolean value that controls the alpha blending when the alpha input type is set to 'Bool'

bResetChildOnActivation

This reinitializes child pose when re-activated. For example, when active child changes


bBlendRotation

Copy Rotation from Source to Target

bBlendScale

Copy Scale from Source to Target

bBlendTranslation

Copy Translation from Source to Target

SourceBone

Bone to take Transform from

TargetBone

Bone to apply Transform to


Removing deprecation for default copy operator/constructor to avoid deprecation warnings

PRAGMA_DISABLE_DEPRECATION_WARNINGS FPoseDriverTarget ( const [FPoseDriverTarget](API\Runtime\AnimGraphRuntime\AnimNodes\FPoseDriverTarget) & )


[FPoseDriverTarget](API\Runtime\AnimGraphRuntime\AnimNodes\FPoseDriverTarget) & operator= ( const [FPoseDriverTarget](API\Runtime\AnimGraphRuntime\AnimNodes\FPoseDriverTarget) & )


Information about each target in the PoseDriver

bApplyCustomCurve

If we should apply a custom curve mapping to how this target activates

bIsHidden

If we should hide this pose from the UI

BoneTransforms

Translation of this target

CustomCurve

Custom curve mapping to apply if bApplyCustomCurve is true

DistanceMethod

Override for the distance method to use for each target

DrivenName

Name of item to drive - depends on DriveOutput setting.

FunctionType

Override for the function method to use for each target

PoseCurveIndex

Pose buffer index

TargetRotation

Rotation of this target

TargetScale

Scale applied to this target's function - a larger value will activate this target sooner


Translation and rotation for a particular bone at a particular target

TargetRotation

Rotation of this target

TargetTranslation

Translation of this target


BlendWeight

Current blend weight.

CurrentPlayTime

The time at which the animation is currently playing.

DeltaTimeRecord

Delta time record for this play through.

Entry

Indexinto the real sequence entry list, not the valid entry list.

MarkerTickRecord

Marker tick record for this play through.

PlayRate

Calculated play rate.

PlayStartTime

The time at which the animation started playing.

RemainingLoops

Calculated loops remaining.


template<> struct TStructOpsTypeTraits< FAnimNode_BlendSpacePlayerBase > : public [TStructOpsTypeTraitsBase2< FAnimNode_BlendSpacePlayerBase >](API\Runtime\CoreUObject\UObject\TStructOpsTypeTraitsBase2)


The random player node holds a list of sequences and parameter ranges which will be played continuously In a random order. If shuffle mode is enabled then each entry will be played once before repeating any

BlendIn

Blending properties used when this entry is blending in ontop of another entry

ChanceToPlay

When not in shuffle mode, this is the chance this entry will play (normalized against all other sample chances)

MaxLoopCount

Maximum number of times this entry will loop before ending

MaxPlayRate

Maximum playrate for this entry

MinLoopCount

Minimum number of times this entry will loop before ending

MinPlayRate

Minimum playrate for this entry

Sequence

Sequence to play when this entry is picked


Deprecated* Please use the other Notify function instead

virtual void BranchingPointNotify ( [FBranchingPointNotifyPayload](API\Runtime\Engine\Animation\AnimNotifies\FBranchingPointNotifyPayload) & BranchingPointPayload )


virtual bool CanBePlaced ( [UAnimSequenceBase](API\Runtime\Engine\Animation\UAnimSequenceBase) * Animation ) const


virtual [FString](API\Runtime\Core\Containers\FString) GetNotifyName_Implementation() const


class UAnimNotify_PlayMontageNotify : public [UAnimNotify](API\Runtime\Engine\Animation\AnimNotifies\UAnimNotify)

NotifyName

Name of notify that is passed to the PlayMontage K2Node.


UAnimNotify_PlayMontageNotify ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


virtual void BranchingPointNotifyEnd ( [FBranchingPointNotifyPayload](API\Runtime\Engine\Animation\AnimNotifies\FBranchingPointNotifyPayload) & BranchingPointPayload )


virtual void BranchingPointNotifyBegin ( [FBranchingPointNotifyPayload](API\Runtime\Engine\Animation\AnimNotifies\FBranchingPointNotifyPayload) & BranchingPointPayload )


UAnimNotify_PlayMontageNotifyWindow ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAnimNotify_PlayMontageNotifyWindow : public [UAnimNotifyState](API\Runtime\Engine\Animation\AnimNotifies\UAnimNotifyState)

Name of notify that is passed to ability.


Various ways to interpolate TAlphaBlend.

namespace EInterpolationBlend { enum Type { Linear, Cubic, Sinusoidal, EaseInOutExponent2, EaseInOutExponent3, EaseInOutExponent4, EaseInOutExponent5, MAX, } }


FAnimConstraintOffsetPair ( const FVector & InBody0Offset, const FVector InBody1Offset )


void InitializeTransforms ( [FAnimInstanceProxy](API\Runtime\Engine\Animation\FAnimInstanceProxy) * MyAnimInstanceProxy, [FCSPose](API\Runtime\Engine\FCSPose)< [FCompactPose](API\Runtime\Engine\FCompactPose) > & MeshBases )


Runtime foot data after validation, we guarantee these bones to exist


Per foot definitions

bEnableKneeTwistCorrection

Enable Knee Twist correction, by comparing Foot FK with Foot IK orientation.

bEnableRotationLimit

If enabled, we prevent the leg from bending backwards and enforce a min compression angle

FootBoneForwardAxis

Forward Axis for Foot bone.

HingeRotationAxis

Hinge Bones Rotation Axis. This is essentially the plane normal for (hip - knee - foot).

MinRotationAngle

Only used if bEnableRotationLimit is enabled.

TwistOffsetCurveName

Name of the curve to use as the twist offset angle(in degrees).


Evaluate the new component-space transforms for the affected bones.

virtual void EvaluateSkeletalControl_AnyThread ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output, [TArray](API\Runtime\Core\Containers\TArray)< [FBoneTransform](API\Runtime\Engine\FBoneTransform) > & OutBoneTransforms )


void FindChainBoneNames ( const [FReferenceSkeleton](API\Runtime\Engine\FReferenceSkeleton) & ReferenceSkeleton, [TArray](API\Runtime\Core\Containers\TArray)< [FName](API\Runtime\Core\UObject\FName) > & ChainBoneNames )


Called to gather on-screen debug data. This is called on the game thread.

virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


FTransform GetBodyComponentSpaceTransform ( const [FAnimPhysRigidBody](API\Runtime\Engine\Animation\FAnimPhysRigidBody) & Body, const [USkeletalMeshComponent](API\Runtime\Engine\Components\USkeletalMeshComponent) *const SkelComp ) const


Accessors for editor code (mainly for visualization functions)

FVector GetBodyLocalJointOffset ( const int32 BodyIndex ) const


Get the LOD threshold at which this node is enabled. Node is enabled if the current LOD >= threshold.


const [FAnimPhysRigidBody](API\Runtime\Engine\Animation\FAnimPhysRigidBody) & GetPhysBody ( int32 BodyIndex ) const


Override this to indicate thatPreUpdate()should be called on the game thread (usually to gather non-thread safe data) before Update() is called. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime. This is called on the game thread.


Initialize any bone references you have

virtual void InitializeBoneReferences ( const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & RequiredBones )


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


static bool IsAnimDynamicsSystemEnabledFor ( int32 InLOD )


void InitPhysics ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output )


Return true if it is valid to Evaluate

virtual bool IsValidToEvaluate ( const [USkeleton](API\Runtime\Engine\Animation\USkeleton) * Skeleton, const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & RequiredBones )


Maximum time to consider when accumulating time debt to avoid spiraling.

static const float MaxTimeDebt = (1.0f / 60.0f) * 5.0f;


For nodes that implement some kind of simulation, return true here soResetDynamics()gets called when things like teleports, time skips etc. occur that might require special handling. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime. This is called on the game thread.


Override this to perform game-thread work prior to non-game thread Update() being called

virtual void PreUpdate ( const [UAnimInstance](API\Runtime\Engine\Animation\UAnimInstance) * InAnimInstance )


void RequestInitialise ( ETeleportType InTeleportType )


Called to help dynamics-based updates to recover correctly from large movements/teleports

virtual void ResetDynamics ( ETeleportType InTeleportType )


void UpdateChainPhysicsBodyDefinitions ( const [FReferenceSkeleton](API\Runtime\Engine\FReferenceSkeleton) & ReferenceSkeleton )


Interface for derived skeletal controls to implement use this function to update for skeletal control base

virtual void UpdateInternal ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


void UpdateLimits ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output )


void ValidateChainPhysicsBodyDefinitions ( const [FReferenceSkeleton](API\Runtime\Engine\FReferenceSkeleton) & ReferenceSkeleton )


struct FAnimNode_AnimDynamics : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

AngularBiasOverride

Overridden angular bias value Angular bias is essentially a twist reduction for chain forces and defaults to a value to keep chains stability in check.

AngularDampingOverride

Overridden angular damping value. The default is 0.7. Values below 0.7 won't have an effect.

AngularSpringConstant

Spring constant to use when calculating angular springs, higher values mean a stronger spring.

bAngularSpring

If true the body will attempt to align itself with the specified angular target

bChain

Set to true to use the solver to simulate a connected chain

bDoEval

If true we will perform bone transform evaluation, otherwise skip - allows visualization of the initial anim state compared to the physics sim

bDoPhysicsUpdateInEditor

True by default, if false physics simulation will not update this frame. Used to prevent the rig moving whilst interactively editing parameters with a widget in the viewport.

bDoUpdate

If true we will perform physics update, otherwise skip - allows visualization of the initial state of the bodies

bEnableWind

Whether or not wind is enabled for the bodies in this simulation

bGravityOverrideInSimSpace

If true the gravity override value is defined in simulation space, by default it is in world space

bLinearSpring

If true the body will attempt to spring back to its initial position

BoundBone

The bone to attach the physics body to, if bChain is true this is the top of the chain

bOverrideAngularBias

If true, the override value will be used for the angular bias for bodies in this node.

bOverrideAngularDamping

If true, the override value will be used for angular damping

bOverrideLinearDamping

If true, the override value will be used for linear damping

bUseGravityOverride

Use gravity override value vs gravity scale

bUsePlanarLimit

Whether to evaluate planar limits

bUseSphericalLimits

Whether to evaluate spherical limits

ChainEnd

If bChain is true this is the bottom of the chain, otherwise ignored

ComponentAppliedLinearAccClamp

When using non-world-space sim, this is an overall clamp on acceleration derived from ComponentLinearAccScale and ComponentLinearVelScale, to ensure it is not too large.

ComponentLinearAccScale

When using non-world-space sim, this controls how much of the components world-space acceleration is passed on to the local-space simulation.

ComponentLinearVelScale

When using non-world-space sim, this applies a 'drag' to the bodies in the local space simulation, based on the components world-space velocity.

ExternalForce

An external force to apply to all bodies in the simulation when ticked, specified in world space

GravityOverride

Gravity Override Value

GravityScale

Scale for gravity, higher values increase forces due to gravity

InitTeleportType

We can't get clean bone positions unless we are in the evaluate step.

LastSimSpace

Cached sim space that we last used.

LinearDampingOverride

Overridden linear damping value. The default is 0.7. Values below 0.7 won't have an effect.

LinearSpringConstant

Spring constant to use when calculating linear springs, higher values mean a stronger spring.

NumSolverIterationsPostUpdate

Number of update passes on the linear and angular limits after we solve the position of the bodies, recommended to be around a quarter of NumSolverIterationsPreUpdate

NumSolverIterationsPreUpdate

Number of update passes on the linear and angular limits before we solve the position of the bodies recommended to be four times the value of NumSolverIterationsPostUpdate

PlanarLimits

List of available planar limits for this node

PreviousCompWorldSpaceTM

Previous component & actor transforms, used to account for teleports.

RelativeSpaceBone

When in BoneRelative sim space, the simulation will use this bone as the origin

RetargetingSettings

The settings for rotation retargeting

SimulationSpace

The space used to run the simulation

SphericalLimits

List of available spherical limits for this node

WindScale

Scale to apply to calculated wind velocities in the solver


Evaluate the new component-space transforms for the affected bones.

virtual void EvaluateSkeletalControl_AnyThread ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output, [TArray](API\Runtime\Core\Containers\TArray)< [FBoneTransform](API\Runtime\Engine\FBoneTransform) > & OutBoneTransforms )


Called to gather on-screen debug data. This is called on the game thread.

virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Return true if it is valid to Evaluate


For nodes that need some kind of initialization that is not dependent on node relevancy (i.e. it is insufficient or inefficient to use Initialize_AnyThread), return true here. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime.

virtual bool NeedsOnInitializeAnimInstance() const


Called once, from game thread as the parent anim instance is created

virtual void OnInitializeAnimInstance ( const [FAnimInstanceProxy](API\Runtime\Engine\Animation\FAnimInstanceProxy) * InProxy, const [UAnimInstance](API\Runtime\Engine\Animation\UAnimInstance) * InAnimInstance )


struct FAnimNode_ApplyLimits : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)


Upgrade a node from the output enum to the output bits (change made inFAnimationCustomVersion::BoneDrivenControllerMatchingMaya)


Use this function to evaluate for skeletal control base

virtual void EvaluateComponentSpaceInternal ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Context )


Extracts the value used to drive the target bone or parameter

const double ExtractSourceValue ( const FTransform & InCurrentBoneTransform, const FTransform & InRefPoseBoneTransform )


Initialize any bone references you have

virtual void InitializeBoneReferences ( const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & RequiredBones )


Return true if it is valid to Evaluate

virtual bool IsValidToEvaluate ( const [USkeleton](API\Runtime\Engine\Animation\USkeleton) * Skeleton, const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & RequiredBones )


This is the runtime version of a bone driven controller, which maps part of the state from one bone to another (e.g., 2 * source.x -> target.z)

struct FAnimNode_BoneDrivenController : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

bAffectTargetRotationX

Affect the X component of rotation on the target bone.

bAffectTargetRotationY

Affect the Y component of rotation on the target bone.

bAffectTargetRotationZ

Affect the Z component of rotation on the target bone.

bAffectTargetScaleX

Affect the X component of scale on the target bone.

bAffectTargetScaleY

Affect the Y component of scale on the target bone.

bAffectTargetScaleZ

Affect the Z component of scale on the target bone.

bAffectTargetTranslationX

Affect the X component of translation on the target bone.

bAffectTargetTranslationY

Affect the Y component of translation on the target bone.

bAffectTargetTranslationZ

Affect the Z component of translation on the target bone.

bUseRange

Whether or not to clamp the driver value and remap it before scaling it.

DestinationMode

Type of destination to drive, currently either bone or morph target.

DrivingCurve

Curve used to map from the source attribute to the driven attributes if present (otherwise the Multiplier will be used)

ModificationMode

The type of modification to make to the destination component(s)

Multiplier

Multiplier to apply to the input value (Note: Ignored when a curve is used)

ParameterName

Name of Morph Target to drive using the source attribute

RangeMax

Maximum limit of the input value (mapped to RemappedMax, only used when limiting the source range) If this is rotation, the unit is radian

RangeMin

Minimum limit of the input value (mapped to RemappedMin, only used when limiting the source range) If this is rotation, the unit is radian

RemappedMax

Maximum value to apply to the destination (remapped from the input range) If this is rotation, the unit is radian

RemappedMin

Minimum value to apply to the destination (remapped from the input range) If this is rotation, the unit is radian

SourceBone

Bone to use as controller input.

SourceComponent

Transform component to use as input.

TargetBone

Bone to drive using controller input.


Evaluate the new component-space transforms for the affected bones.


Called to gather on-screen debug data. This is called on the game thread.


Controller which implements the CCDIK IK approximation algorithm

struct FAnimNode_CCDIK : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

bEnableRotationLimit

Tolerance for final tip location delta from EffectorLocation

bStartFromTail

Toggle drawing of axes to debug joint rotation

EffectorLocation

Coordinates for target location of tip bone - if EffectorLocationSpace is bone, this is the offset from Target Bone to use as target location

EffectorLocationSpace

Reference frame of Effector Transform.

EffectorTarget

If EffectorTransformSpace is a bone, this is the bone to use.

MaxIterations

Maximum number of iterations allowed, to control performance.

RootBone

Name of the root bone

TipBone

Name of tip bone


void ConditionalDebugDraw ( [FPrimitiveDrawInterface](API\Runtime\Engine\FPrimitiveDrawInterface) * PDI, [USkeletalMeshComponent](API\Runtime\Engine\Components\USkeletalMeshComponent) * MeshComp ) const


Resize rotation limit array based on set up

void ResizeRotationLimitPerJoints ( int32 NewSize )


Constraint node to parent or world transform for rotation/translation

struct FAnimNode_Constraint : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

BoneToModify

Name of bone to control. This is the main bone chain to modify from.

ConstraintSetup

List of constraints

ConstraintWeights

Weight data - post edit syncs up to ConstraintSetups


Simple controller to copy a bone's transform to another one.

struct FAnimNode_CopyBone : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

bCopyRotation

If Rotation should be copied

bCopyScale

If Scale should be copied

bCopyTranslation

If Translation should be copied

ControlSpace

Space to convert transforms into prior to copying components

SourceBone

Source Bone Name to get transform from


Return true if it is valid to Evaluate


Simple controller to copy a transform relative to the ref pose to the target bone, instead of the copy bone node which copies the absolute transform

struct FAnimNode_CopyBoneDelta : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)


virtual void ConditionalDebugDraw ( [FPrimitiveDrawInterface](API\Runtime\Engine\FPrimitiveDrawInterface) * PDI, [USkeletalMeshComponent](API\Runtime\Engine\Components\USkeletalMeshComponent) * PreviewSkelMeshComp ) const


virtual void EvaluateSkeletalControl_AnyThread ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output, [TArray](API\Runtime\Core\Containers\TArray)< [FBoneTransform](API\Runtime\Engine\FBoneTransform) > & OutBoneTransforms )


virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


Controller which implements the FABRIK IK approximation algorithm - seehttp://www.academia.edu/9165835/FABRIK_A_fast_iterative_solver_for_the_Inverse_Kinematics_problemfor details

struct FAnimNode_Fabrik : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

EffectorTransformSpace

Reference frame of Effector Transform.

RootBone

Name of the root bone

TipBone

Name of tip bone


Node to handle re-targeting of Hand IK bone chain. It looks at position in Mesh Space of Left and Right IK bones, and moves Left and Right IK bones to those. based on HandFKWeight. (0 = favor left hand, 1 = favor right hand, 0.5 = equal weight). This is used so characters of different proportions can handle the same props.

struct FAnimNode_HandIKRetargeting : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

HandFKWeight

Which hand to favor. 0.5 is equal weight for both, 1 = right hand, 0 = left hand.

IKBonesToMove

IK Bones to move.

LeftHandFK

Bone for Left Hand FK

LeftHandIK

Bone for Left Hand IK

RightHandFK

Bone for Right Hand FK

RightHandIK

Bone for Right Hand IK


bool AdjustKneeTwist ( [FAnimLegIKData](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimLegIKData) & InLegData )


bool DoLegReachIK ( [FAnimLegIKData](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimLegIKData) & InLegData )


bool OrientLegTowardsIK ( [FAnimLegIKData](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimLegIKData) & InLegData )


struct FAnimNode_LegIK : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

MaxIterations

Max Number of Iterations.

ReachPrecision

Tolerance for reaching IK Target, in unreal units.


Use this function to evaluate for skeletal control base

virtual void EvaluateComponentSpaceInternal ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Context )


Return true if it is valid to Evaluate

virtual bool IsValidToEvaluate ( const [USkeleton](API\Runtime\Engine\Animation\USkeleton) * Skeleton, const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & RequiredBones )


virtual void ModifyPoseFromDeltaRotation ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output, [TArray](API\Runtime\Core\Containers\TArray)< [FBoneTransform](API\Runtime\Engine\FBoneTransform) > & OutBoneTransforms, FTransform & InOutBoneToModifyTransform, const FQuat & DeltaRotation )


Interface for derived skeletal controls to implement use this function to update for skeletal control base

virtual void UpdateInternal ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


In the future, it would be nice to have more options, -i.e. lag, interpolation speed


Simple controller that make a bone to look at the point or another bone

struct FAnimNode_LookAt : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

bUseLookUpAxis

Whether or not to use Look up axis

LookAtClamp

Look at Clamp value in degrees - if your look at axis is Z, only X, Y degree of clamp will be used

LookAtLocation

Target Offset.

LookAtTarget

Target socket to look at.


Return true if it is valid to Evaluate


Simple controller that replaces or adds to the translation/rotation of a single bone.

struct FAnimNode_ModifyBone : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

BoneToModify

Name of bone to control. This is the main bone chain to modify from.

Rotation

New rotation of bone to apply.

RotationMode

Whether and how to modify the translation of this bone.

RotationSpace

Reference frame to apply Rotation in.

Scale

New Scale of bone to apply. This is only worldspace.

ScaleSpace

Reference frame to apply Scale in.

Translation

New translation of bone to apply.

TranslationSpace

Reference frame to apply Translation in.


Debugging node that displays the current value of a bone in a specific space.

struct FAnimNode_ObserveBone : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

BoneToObserve

Name of bone to observe.

bRelativeToRefPose

Show the difference from the reference pose?

DisplaySpace

Reference frame to display the bone transform in.

Rotation

Rotation of the bone being observed.

Scale

Scale of the bone being observed.

Translation

Translation of the bone being observed.


Evaluate the new component-space transforms for the affected bones.


Called to gather on-screen debug data. This is called on the game thread.


For nodes that need some kind of initialization that is not dependent on node relevancy (i.e. it is insufficient or inefficient to use Initialize_AnyThread), return true here. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime.

virtual bool NeedsOnInitializeAnimInstance() const


Called once, from game thread as the parent anim instance is created

virtual void OnInitializeAnimInstance ( const [FAnimInstanceProxy](API\Runtime\Engine\Animation\FAnimInstanceProxy) * InProxy, const [UAnimInstance](API\Runtime\Engine\Animation\UAnimInstance) * InAnimInstance )


struct FAnimNode_ResetRoot : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)


virtual void AddImpulseAtLocation ( FVector Impulse, FVector Location, [FName](API\Runtime\Core\UObject\FName) BoneName )


Evaluate incoming component pose.

virtual void EvaluateComponentPose_AnyThread ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output )


virtual void EvaluateSkeletalControl_AnyThread ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output, [TArray](API\Runtime\Core\Containers\TArray)< [FBoneTransform](API\Runtime\Engine\FBoneTransform) > & OutBoneTransforms )


virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


Get the LOD threshold at which this node is enabled. Node is enabled if the current LOD >= threshold.


[UPhysicsAsset](API\Runtime\Engine\PhysicsEngine\UPhysicsAsset) * GetPhysicsAsset() const


TEMP: Exposed for use in PhAt as a quick way to get drag handles working with Chaos.

virtual [ImmediatePhysics::FSimulation](API\Runtime\Engine\Physics\ImmediatePhysics\FSimulation) * GetSimulation()


Override this to indicate thatPreUpdate()should be called on the game thread (usually to gather non-thread safe data) before Update() is called. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime. This is called on the game thread.


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.

virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


For nodes that implement some kind of simulation, return true here soResetDynamics()gets called when things like teleports, time skips etc. occur that might require special handling. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime. This is called on the game thread.


void PostSerialize ( const [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


Override this to perform game-thread work prior to non-game thread Update() being called

virtual void PreUpdate ( const [UAnimInstance](API\Runtime\Engine\Animation\UAnimInstance) * InAnimInstance )


Called to help dynamics-based updates to recover correctly from large movements/teleports

virtual void ResetDynamics ( ETeleportType InTeleportType )


Update incoming component pose.

virtual void UpdateComponentPose_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Interface for derived skeletal controls to implement use this function to update for skeletal control base

virtual void UpdateInternal ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Controller that simulates physics based on the physics asset of the skeletal mesh component

struct FAnimNode_RigidBody : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

BaseBoneRef

Matters if SimulationSpace is BaseBone

bClampLinearTranslationLimitToRefPose

Correct for linear tearing on bodies with all axes Locked.

Whether to allow collisions between two bodies joined by a constraint

bFreezeIncomingPoseOnStart

When simulation starts, freeze incoming pose.

bTransferBoneVelocities

When simulation starts, transfer previous bone velocities (from animation) to make transition into simulation seamless.

bUseExternalClothCollision

If true, kinematic objects will be added to the simulation at runtime to represent any cloth colliders defined for the parent object.

CachedBoundsScale

Scale of cached bounds (vs. actual bounds).

ComponentAppliedLinearAccClamp

When using non-world-space sim, this is an overall clamp on acceleration derived from ComponentLinearAccScale and ComponentLinearVelScale, to ensure it is not too large.

ComponentLinearAccScale

When using non-world-space sim, this controls how much of the components world-space acceleration is passed on to the local-space simulation.

ComponentLinearVelScale

When using non-world-space sim, this applies a 'drag' to the bodies in the local space simulation, based on the components world-space velocity.

EvaluationResetTime

If the node is not evaluated for this amount of time (seconds), either because a lower LOD was in use for a while or the component was not visible, reset the simulation to the default pose on the next evaluation.

ExternalForce

Applies a uniform external force in world space.

OverlapChannel

The channel we use to find static geometry to collide with

OverridePhysicsAsset

Physics asset to use. If empty use the skeletal mesh's default physics asset

OverrideWorldGravity

Override gravity

SimSpaceSettings

Settings for the system which passes motion of the simulation's space into the simulation.

SimulationSpace

What space to simulate the bodies in. This affects how velocities are generated

SimulationTiming

Whether the physics simulation runs synchronously with the node's evaluation or is run in the background until the next frame.

WorldSpaceMinimumScale

For world-space simulations, if the magnitude of the component's 3D scale is less than WorldSpaceMinimumScale, do not update the node.


Evaluate the new component-space transforms for the affected bones.


Called to gather on-screen debug data. This is called on the game thread.


Return true if it is valid to Evaluate

virtual bool IsValidToEvaluate ( const [USkeleton](API\Runtime\Engine\Animation\USkeleton) * Skeleton, const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & RequiredBones )


Simple controller that multiplies scalar value to the translation/rotation/scale of a single bone.

struct FAnimNode_RotationMultiplier : public [FAnimNode_SkeletalControlBase](API\Runtime\AnimGraphRuntime\BoneControllers\FAnimNode_SkeletalControlBase)

Multiplier

To make these to be easily pin-hookable, I'm not making it struct, but each variable 0.f is invalid, and default

SourceBone

Source to get transform from

TargetBone

Name of bone to control. This is the main bone chain to modify from.


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )


Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void Evaluate_AnyThread ( [FPoseContext](API\Runtime\Engine\Animation\FPoseContext) & Output )


Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.


double GetInitialChainLength ( [FCompactPose](API\Runtime\Engine\FCompactPose) & InLSPose, [FCSPose](API\Runtime\Engine\FCSPose)< [FCompactPose](API\Runtime\Engine\FCompactPose) > & InCSPose ) const


Called to update the state of the graph relative to this node. Generally this should configure any weights (etc.) that could affect the poses that will need to be evaluated. This function is what usually executes EvaluateGraphExposedInputs. This can be called on any thread.

virtual void Update_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Scale the length of a chain of bones.

struct FAnimNode_ScaleChainLength : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

DefaultChainLength

Default chain length, as animated.


Visual warnings are shown on the node but not logged as an error for build system, use with care The warnigns are cleared at CacheBones_AnyThread and should be added during InitializeBoneReferences

void AddBoneRefMissingVisualWarning ( const [FString](API\Runtime\Core\Containers\FString) & BoneName, const [FString](API\Runtime\Core\Containers\FString) & SkeletalMeshName )


Allow base to add info to the node debug output

void AddDebugNodeData ( [FString](API\Runtime\Core\Containers\FString) & OutDebugData )


virtual void GatherDebugData ( [FNodeDebugData](API\Runtime\Engine\Animation\FNodeDebugData) & DebugData )


void AddValidationVisualWarning ( [FText](API\Runtime\Core\Internationalization\FText) ValidationVisualWarning )


Called to evaluate component-space bone transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

virtual void EvaluateComponentSpace_AnyThread ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output )


Evaluate incoming component pose.

virtual void EvaluateComponentPose_AnyThread ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output )


virtual void EvaluateSkeletalControl_AnyThread ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Output, [TArray](API\Runtime\Core\Containers\TArray)< [FBoneTransform](API\Runtime\Engine\FBoneTransform) > & OutBoneTransforms )


Use this function to evaluate for skeletal control base

virtual void EvaluateComponentSpaceInternal ( [FComponentSpacePoseContext](API\Runtime\Engine\Animation\FComponentSpacePoseContext) & Context )


Get the alpha of this node.


Get the LOD threshold at which this node is enabled. Node is enabled if the current LOD >= threshold.


void InitializeAndValidateBoneRef ( [FBoneReference](API\Runtime\Engine\Animation\FBoneReference) & BoneRef, const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & RequiredBones )


Initialize any bone references you have

virtual void InitializeBoneReferences ( const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & RequiredBones )


virtual void Initialize_AnyThread ( const [FAnimationInitializeContext](API\Runtime\Engine\Animation\FAnimationInitializeContext) & Context )


Return true if it is valid to Evaluate

virtual bool IsValidToEvaluate ( const [USkeleton](API\Runtime\Engine\Animation\USkeleton) * Skeleton, const [FBoneContainer](API\Runtime\Engine\FBoneContainer) & RequiredBones )


Set the alpha of this node.


Update incoming component pose.

virtual void UpdateComponentPose_AnyThread ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


Interface for derived skeletal controls to implement use this function to update for skeletal control base

virtual void UpdateInternal ( const [FAnimationUpdateContext](API\Runtime\Engine\Animation\FAnimationUpdateContext) & Context )


struct FAnimNode_SkeletalControlBase : public [FAnimNode_Base](API\Runtime\Engine\Animation\FAnimNode_Base)

Alpha

Current strength of the skeletal control.

ComponentPose

Input link.

ForwardedPose

Forwarded pose data from the wired node which current node's skeletal control is not applied yet

LODThreshold

Max LOD that this node is allowed to run For example if you have LODThreshold to be 2, it will run until LOD 2 (based on 0 index) when the component LOD becomes 3, it will stop update/evaluate currently transition would be issue and that has to be re-visited


Build spline from reference pose

void BuildBoneSpline ( const [FReferenceSkeleton](API\Runtime\Engine\FReferenceSkeleton) & RefSkeleton )


Evaluate the new component-space transforms for the affected bones.


Use our linear approximation to determine the earliest intersection with a sphere

float FindParamAtFirstSphereIntersection ( const FVector & InOrigin, float InRadius, int32 & StartingLinearIndex )


Get specified handle transform (in component space) for the spline

FTransform GetControlPoint ( int32 TransformIndex ) const


Called to gather on-screen debug data. This is called on the game thread.


Build bone references & reallocate transforms from the supplied ref skeleton

void GatherBoneReferences ( const [FReferenceSkeleton](API\Runtime\Engine\FReferenceSkeleton) & RefSkeleton )


Get the number of spline transforms we are using


Read-only access to spline curves

const [FSplineCurves](API\Runtime\Engine\Components\FSplineCurves) & GetSplineCurves() const


Read-only access to transformed curves

const [FSplineCurves](API\Runtime\Engine\Components\FSplineCurves) & GetTransformedSplineCurves() const


Get transformed spline point (in component space) for the spline

FTransform GetTransformedSplinePoint ( int32 TransformIndex ) const


Return true if it is valid to Evaluate


Called once, from game thread as the parent anim instance is created

virtual void OnInitializeAnimInstance ( const [FAnimInstanceProxy](API\Runtime\Engine\Animation\FAnimInstanceProxy) * InProxy, const [UAnimInstance](API\Runtime\Engine\Animation\UAnimInstance) * InAnimInstance )


For nodes that need some kind of initialization that is not dependent on node relevancy (i.e. it is insufficient or inefficient to use Initialize_AnyThread), return true here. Note that this is called at load on theUAnimInstanceCDO to avoid needing to call this at runtime.

virtual bool NeedsOnInitializeAnimInstance() const


Set specified handle transform (in component space) for the spline

void SetControlPoint ( int32 TransformIndex, const FTransform & InTransform )


Set specified handle location (in component space) for the spline

void SetControlPointLocation ( int32 TransformIndex, const FVector & InLocation )


Set specified handle rotation (in component space) for the spline

void SetControlPointRotation ( int32 TransformIndex, const FQuat & InRotation )


Set specified handle scale (in component space) for the spline

void SetControlPointScale ( int32 TransformIndex, const FVector & InScale )


Transform the spline using our control points


Called to cache any bones that this node needs to track (e.g. in aFBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

virtual void CacheBones_AnyThread ( const [FAnimationCacheBonesContext](API\Runtime\Engine\Animation\FAnimationCacheBonesContext) & Context )