Navigation
API > API/Plugins > API/Plugins/PoseSearch
| Name | FAnimNode_MotionMatching |
| Type | struct |
| Header File | /Engine/Plugins/Animation/PoseSearch/Source/Runtime/Public/PoseSearch/AnimNode_MotionMatching.h |
| Include Path | #include "PoseSearch/AnimNode_MotionMatching.h" |
Syntax
USTRUCT (BlueprintInternalUseOnly)
struct FAnimNode_MotionMatching : public FAnimNode_BlendStack_Standalone
Inheritance Hierarchy
- FAnimNode_Base → FAnimNode_AssetPlayerRelevancyBase → FAnimNode_AssetPlayerBase → FAnimNode_BlendStack_Standalone → FAnimNode_MotionMatching
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bIgnoreForRelevancyTest | bool | If true, "Relevant anim" nodes that look for the highest weighted animation in a state will ignore this node. | PoseSearch/AnimNode_MotionMatching.h |
|
| BlendOption | EAlphaBlendOption | How the blend is applied over time to the bones. Common selections are linear, ease in, ease out, and ease in and out. | PoseSearch/AnimNode_MotionMatching.h |
|
| BlendParameters | FVector | Requested blend space blend parameters (if AnimationAsset is a blend space) | PoseSearch/AnimNode_MotionMatching.h |
|
| BlendParametersDeltaThreshold | float | Use this to define a threshold to trigger a new blend when blendspace xy input pins change. | PoseSearch/AnimNode_MotionMatching.h |
|
| BlendProfile | TObjectPtr< UBlendProfile > | Set Blend Profiles (editable in the skeleton) to determine how the blending is distributed among your character's bones. It could be used to differentiate between upper body and lower body to blend timing. | PoseSearch/AnimNode_MotionMatching.h |
|
| BlendspaceUpdateMode | EBlendStack_BlendspaceUpdateMode | How we should update individual blend space parameters. See dropdown options tooltips. | PoseSearch/AnimNode_MotionMatching.h |
|
| BlendTime | float | Time in seconds to blend out to the new pose. Uses either inertial blending, requiring an Inertialization node after this node, or the internal blend stack, if MaxActiveBlends is greater than zero. | PoseSearch/AnimNode_MotionMatching.h |
|
| bOverrideDatabaseInput | bool | True if the Database property on this node has been overridden by SetDatabaseToSearch/SetDatabasesToSearch. | PoseSearch/AnimNode_MotionMatching.h | |
| bOverridePositionWhenJoiningSyncGroupAsLeader | bool | When enabled, acting as the leader, and using marker-based sync, this asset player will not sync to the previous leader's sync position when joining a sync group and before becoming the leader but instead force everyone else to match its position. | PoseSearch/AnimNode_MotionMatching.h |
|
| bResetOnBecomingRelevant | bool | Reset the motion matching selection state if it has become relevant to the graph after not being updated on previous frames. | PoseSearch/AnimNode_MotionMatching.h |
|
| bShouldSearch | bool | If set to false, the motion matching node will perform a search only if the continuing pose is invalid. This is useful if you want to stagger searches of different nodes for performance reasons. | PoseSearch/AnimNode_MotionMatching.h |
|
| bShouldUseCachedChannelData | bool | If set to true, the search of multiple databases with different schemas will try to share pose features data calculated during query build the idea is to be able to share as much as possible the continuing pose features vector across different schemas (and potentially improve performances) defaulted to false to preserve behavior backward compatibility | PoseSearch/AnimNode_MotionMatching.h |
|
| bUseInertialBlend | bool | PoseSearch/AnimNode_MotionMatching.h |
|
|
| Database | TObjectPtr< const UPoseSearchDatabase > | The database to search. This can be overridden by Anim Node Functions such as "On Become Relevant" and "On Update" via SetDatabaseToSearch/SetDatabasesToSearch. | PoseSearch/AnimNode_MotionMatching.h |
|
| DatabasesToSearch | TArray< TObjectPtr< const UPoseSearchDatabase > > | List of databases this node is searching. | PoseSearch/AnimNode_MotionMatching.h |
|
| EventToSearch | FPoseSearchEvent | Experimental, this feature might be removed without warning, not for production use. | PoseSearch/AnimNode_MotionMatching.h |
|
| GroupName | FName | The group name that we synchronize with (NAME_None if it is not part of any group). | PoseSearch/AnimNode_MotionMatching.h |
|
| GroupRole | TEnumAsByte< EAnimGroupRole::Type > | The role this node can assume within the group (ignored if GroupName is not set). | PoseSearch/AnimNode_MotionMatching.h |
|
| Method | EAnimSyncMethod | How this node will synchronize with other animations. | PoseSearch/AnimNode_MotionMatching.h |
|
| MotionMatchingState | FMotionMatchingState | Encapsulated motion matching algorithm and internal state. | PoseSearch/AnimNode_MotionMatching.h |
|
| NextUpdateInterruptMode | EPoseSearchInterruptMode | Applied EPoseSearchInterruptMode on the next update that controls the continuing pose search eveluation. This is set back to EPoseSearchInterruptMode::DoNotInterrupt after each update. | PoseSearch/AnimNode_MotionMatching.h | |
| OnMotionMatchingStateUpdated | FAnimNodeFunctionRef | PoseSearch/AnimNode_MotionMatching.h |
|
|
| PlayRate | FFloatInterval | Effective range of play rate that can be applied to the animations to account for discrepancies in estimated velocity between the movement model and the animation. | PoseSearch/AnimNode_MotionMatching.h |
|
| PlayRateMultiplier | float | Experimental: Multiplier applied to the play rate of the selected animation after Motion Matching State has been updated. | PoseSearch/AnimNode_MotionMatching.h |
|
| PoseJumpThresholdTime | FFloatInterval | Don't jump to poses of the same segment that are within the interval this many seconds away from the continuing pose. | PoseSearch/AnimNode_MotionMatching.h |
|
| PoseReselectHistory | float | Prevent re-selection of poses that have been selected previously within this much time (in seconds) in the past. This is across all animation segments that have been selected within this time range. | PoseSearch/AnimNode_MotionMatching.h |
|
| SearchThrottleTime | float | Minimum amount of time to wait between searching for a new pose segment. It allows users to define how often the system searches, default for locomotion is searching every update, but you may only want to search once for other situations, like jump. | PoseSearch/AnimNode_MotionMatching.h |
|
| UpdateCounter | FGraphTraversalCounter | Update Counter for detecting being relevant. | PoseSearch/AnimNode_MotionMatching.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
const FVector & GetBlendspaceParameters() |
PoseSearch/AnimNode_MotionMatching.h | ||
float GetBlendspaceParametersDeltaThreshold() |
PoseSearch/AnimNode_MotionMatching.h | ||
EBlendStack_BlendspaceUpdateMode GetBlendspaceUpdateMode() |
PoseSearch/AnimNode_MotionMatching.h | ||
FVector GetEstimatedFutureRootMotionVelocity() |
PoseSearch/AnimNode_MotionMatching.h | ||
const FMotionMatchingState & GetMotionMatchingState() |
PoseSearch/AnimNode_MotionMatching.h | ||
const FAnimNodeFunctionRef & GetOnUpdateMotionMatchingStateFunction() |
PoseSearch/AnimNode_MotionMatching.h | ||
void ResetDatabasesToSearch
(
EPoseSearchInterruptMode InterruptMode |
Reset the effects of SetDatabaseToSearch/SetDatabasesToSearch and use the Database property on this node. | PoseSearch/AnimNode_MotionMatching.h | |
void SetDatabasesToSearch
(
TConstArrayView< UPoseSearchDatabase* > InDatabases, |
Search InDatabases instead of the Database property on the node. Use InterruptMode to control the continuing pose search. | PoseSearch/AnimNode_MotionMatching.h | |
void SetDatabaseToSearch
(
UPoseSearchDatabase* InDatabase, |
Search InDatabase instead of the Database property on this node. Use InterruptMode to control the continuing pose search. | PoseSearch/AnimNode_MotionMatching.h | |
void SetInterruptMode
(
EPoseSearchInterruptMode InterruptMode |
Use InterruptMode to control the continuing pose search. | PoseSearch/AnimNode_MotionMatching.h |
Overridden from FAnimNode_AssetPlayerBase
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual EAnimSyncMethod GetGroupMethod() |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual FName GetGroupName() |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual EAnimGroupRole::Type GetGroupRole() |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual bool GetOverridePositionWhenJoiningSyncGroupAsLeader() |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual bool SetGroupMethod
(
EAnimSyncMethod InMethod |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual bool SetGroupName
(
FName InGroupName |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual bool SetGroupRole
(
EAnimGroupRole::Type InRole |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual bool SetOverridePositionWhenJoiningSyncGroupAsLeader
(
bool InOverridePositionWhenJoiningSyncGroupAsLeader |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual void UpdateAssetPlayer
(
const FAnimationUpdateContext& Context |
PoseSearch/AnimNode_MotionMatching.h |
Overridden from FAnimNode_AssetPlayerRelevancyBase
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool GetIgnoreForRelevancyTest() |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual bool IsLooping() |
PoseSearch/AnimNode_MotionMatching.h | ||
virtual bool SetIgnoreForRelevancyTest
(
bool bInIgnoreForRelevancyTest |
PoseSearch/AnimNode_MotionMatching.h |
Overridden from FAnimNode_Base
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void Initialize_AnyThread
(
const FAnimationInitializeContext& Context |
PoseSearch/AnimNode_MotionMatching.h |