Navigation
API > API/Plugins > API/Plugins/AnimationLayering
This node is heavily based on AnimNode_LayeredBoneBlend but replacing both BranchFilter and BlendMask option with a single input param that represents different body parts. Each body parts has a list of BranchFilter that maps to actual bones. Blending is done in the order the body parts are created and in local space first and mesh space after. Unlike AnimNode_LayeredBoneBlend, with this node we can change the mask dynamically.
| Name | FAnimNode_BoneMask |
| Type | struct |
| Header File | /Engine/Plugins/Experimental/Animation/AnimationLayering/Source/AnimationLayering/Public/AnimNode_BoneMask.h |
| Include Path | #include "AnimNode_BoneMask.h" |
Syntax
USTRUCT (BlueprintInternalUseOnly)
struct FAnimNode_BoneMask : public FAnimNode_Base
Inheritance Hierarchy
- FAnimNode_Base → FAnimNode_BoneMask
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FAnimNode_BoneMask() |
AnimNode_BoneMask.h |
Structs
| Name | Remarks |
|---|---|
| FBodyPartSkeletonData |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BasePose | FPoseLink | The source pose | AnimNode_BoneMask.h |
|
| bHasRelevantPoses | bool | AnimNode_BoneMask.h | ||
| BlendPoses | TArray< FPoseLink > | Each layer's blended pose | AnimNode_BoneMask.h |
|
| BlendWeights | TArray< float > | The weights of each layer | AnimNode_BoneMask.h |
|
| BodyParts | TArray< FBoneMaskBodyPartNameContainer > | List of BodyParts that want to use different Poses When adding a new input pose to the node (right click on the node Add Input Pose) an entry to this array is automatically added allowing the user to specify the body part(s) that should use that pose | AnimNode_BoneMask.h |
|
| BoneMask | FBoneMask | Mask with all the body part dynamic values | AnimNode_BoneMask.h |
|
| BoneMaskDefinitionDataAsset | TObjectPtr< UBoneMaskDefinitionDataAsset > | Mask with all the body part static values | AnimNode_BoneMask.h |
|
| bProcessMeshSpaceAsRootSpace | bool | Process mesh space rotations in root space, effectively ignoring any root rotation. | AnimNode_BoneMask.h |
|
| bUpdateSkeletonDataOnDemand | bool | Whether this node should update bone weights and child bone indices at runtime or use the data cached in the BoneMaskDefinitionDataAsset. | AnimNode_BoneMask.h |
|
| CurveBlendOption | TEnumAsByte< enum ECurveBlendOption::Type > | How to blend the layers together | AnimNode_BoneMask.h |
|
| LODThreshold | int32 | Max LOD that this node is allowed to run For example if you have LODThreadhold 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 | AnimNode_BoneMask.h |
|
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddPose() |
AnimNode_BoneMask.h | ||
void InvalidateCachedBoneData() |
Invalidates the cached bone data so it is recalculated the next time this node is updated. | AnimNode_BoneMask.h | |
void RemovePose
(
int32 PoseIndex |
AnimNode_BoneMask.h |
Public Virtual
Overridden from FAnimNode_Base
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void CacheBones_AnyThread
(
const FAnimationCacheBonesContext& Context |
AnimNode_BoneMask.h | ||
virtual void Evaluate_AnyThread
(
FPoseContext& Output |
AnimNode_BoneMask.h | ||
virtual void GatherDebugData
(
FNodeDebugData& DebugData |
AnimNode_BoneMask.h | ||
virtual int32 GetLODThreshold() |
AnimNode_BoneMask.h | ||
virtual void Initialize_AnyThread
(
const FAnimationInitializeContext& Context |
AnimNode_BoneMask.h | ||
virtual void Update_AnyThread
(
const FAnimationUpdateContext& Context |
AnimNode_BoneMask.h |