Navigation
API > API/Runtime > API/Runtime/AnimGraphRuntime > API/Runtime/AnimGraphRuntime/AnimNodes
Inheritance Hierarchy
- FAnimNode_Base
- FAnimNode_LayeredBoneBlend
References
| Module | AnimGraphRuntime |
| Header | /Engine/Source/Runtime/AnimGraphRuntime/Public/AnimNodes/AnimNode_LayeredBoneBlend.h |
| Include | #include "AnimNodes/AnimNode_LayeredBoneBlend.h" |
Syntax
struct FAnimNode_LayeredBoneBlend : public FAnimNode_Base
Remarks
Layered blend (per bone); has dynamic number of blendposes that can blend per different bone sets.
Variables
| Type | Name | Description | |
|---|---|---|---|
| FPoseLink | BasePose | The source pose | |
| bool | bBlendRootMotionBasedOnRootBone | Whether to incorporate the per-bone blend weight of the root bone when lending root motion | |
| bool | bHasRelevantPoses | ||
| TArray< TObjectPtr< UBlendProfile > > | BlendMasks | The blend masks to use for our layer inputs. | |
| ELayeredBoneBlendMode | BlendMode | Whether to use branch filters or a blend mask to specify an input pose per-bone influence | |
| TArray< FPoseLink > | BlendPoses | Each layer's blended pose | |
| TArray< float > | BlendWeights | The weights of each layer | |
| bool | bMeshSpaceRotationBlend | Whether to blend bone rotations in mesh space or in local space | |
| bool | bMeshSpaceScaleBlend | Whether to blend bone scales in mesh space or in local space | |
| TArray< FPerBoneBlendWeight > | CurrentBoneBlendWeights | ||
| TEnumAsByte< enum ECurveBlendOption::Type > | CurveBlendOption | How to blend the layers together | |
| TBaseBlendedCurve< FDefaultAllocator, UE::Anim::FCurveElementIndexed > | CurvePoseSourceIndices | Per-curve source pose index. | |
| TArray< FPerBoneBlendWeight > | DesiredBoneBlendWeights | Transient data to handle weight and target weight this array changes based on required bones | |
| TArray< FInputBlendPose > | LayerSetup | Configuration for the parts of the skeleton to blend for each layer. | |
| int32 | 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 | |
| TArray< FPerBoneBlendWeight > | PerBoneBlendWeights | Per-bone weights for the skeleton. | |
| uint16 | RequiredBonesSerialNumber | Serial number of the required bones container. | |
| FGuid | SkeletonGuid | Guids for skeleton used to determine whether the PerBoneBlendWeights need rebuilding. | |
| FGuid | VirtualBoneGuid | Guid for virtual bones used to determine whether the PerBoneBlendWeights need rebuilding. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddPose () |
||
| void | Invalidates the cached bone data so it is recalculated the next time this node is updated. | ||
| void | Invalidate the cached per-bone blend weights from the skeleton. | ||
| void | RemovePose
(
int32 PoseIndex |
||
| void | SetBlendMask
(
int32 InPoseIndex, |
Set the blend mask for the specified input pose. |
Overridden from FAnimNode_Base
| Type | Name | Description | |
|---|---|---|---|
| void | CacheBones_AnyThread
(
const FAnimationCacheBonesContext& Context |
Called to cache any bones that this node needs to track (e.g. in a FBoneReference). | |
| void | Evaluate_AnyThread
(
FPoseContext& Output |
Called to evaluate local-space bones transforms according to the weights set up in Update(). | |
| void | GatherDebugData
(
FNodeDebugData& DebugData |
Called to gather on-screen debug data. This is called on the game thread. | |
| int32 | Get the LOD threshold at which this node is enabled. | ||
| void | Initialize_AnyThread
(
const FAnimationInitializeContext& Context |
Called when the node first runs. | |
| void | Update_AnyThread
(
const FAnimationUpdateContext& Context |
Called to update the state of the graph relative to this node. |