Navigation
API > API/Plugins > API/Plugins/PoseSearch
The idea is to calculate the angle between the direction from LeftThigh position to RightThigh position and the direction from LeftFoot position to RightFoot position, and divide it by PI to have values in range [-1,1] the number (called 'CrashingLegsValue' calculated in ComputeCrashingLegsValue) is gonna be 0 if the feet are aligned with the thighs (for example in an idle standing position) 0.5 if the right foot is exactly in front of the left foot (for example when a character is running following a line) -0.5 if the left foot is exactly in front of the right foot close to 1 or -1 if the feet (and so the legs) are completely crossed at runtime we'll match the CrashingLegsValue and also filter by discarding pose candidates that don't respect the 'AllowedTolerance' between query and database values (happening in IsFilterValid)
| Name | UPoseSearchFeatureChannel_FilterCrashingLegs |
| Type | class |
| Header File | /Engine/Plugins/Animation/PoseSearch/Source/Runtime/Public/PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
| Include Path | #include "PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h" |
Syntax
UCLASS (MinimalAPI, Experimental, BlueprintType, EditInlineNew,
Meta=(DisplayName="CrashingLegs Channel"), CollapseCategories)
class UPoseSearchFeatureChannel_FilterCrashingLegs : public UPoseSearchFeatureChannel
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UPoseSearchFeatureChannel → UPoseSearchFeatureChannel_FilterCrashingLegs
Implements Interfaces
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AllowedTolerance | float | If AllowedTolerance is zero the filter is disabled | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
|
| InputQueryPose | EInputQueryPose | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
|
|
| LeftFoot | FBoneReference | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
|
|
| LeftFootIdx | int8 | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | ||
| LeftThigh | FBoneReference | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
|
|
| LeftThighIdx | int8 | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | ||
| RightFoot | FBoneReference | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
|
|
| RightFootIdx | int8 | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | ||
| RightThigh | FBoneReference | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
|
|
| RightThighIdx | int8 | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | ||
| SampleRole | FName | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
|
|
| Weight | float | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
|
Functions
Public
Overridden from UPoseSearchFeatureChannel
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddDependentChannels
(
UPoseSearchSchema* Schema |
PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | ||
virtual void BuildQuery
(
UE::PoseSearch::FSearchContext& SearchContext |
Called at runtime to add this channel's data to the query pose vector. | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | |
virtual void FillWeights
(
TArrayView< float > Weights |
Called at database build time to collect feature weights. | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | |
virtual bool Finalize
(
UPoseSearchSchema* Schema |
Called during UPoseSearchSchema::Finalize to prepare the schema for this channel. | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | |
virtual const UE::PoseSearch::FRole GetDefaultRole() |
PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | ||
virtual bool IndexAsset
(
UE::PoseSearch::FAssetIndexer& Indexer |
Called at database build time to populate pose vectors with this channel's data. | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |
Overridden from IPoseSearchFilter
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool IsFilterActive() |
If true this filter will be evaluated | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h | |
virtual bool IsFilterValid
(
TConstArrayView< float > PoseValues, |
If it returns false the pose candidate will be discarded | PoseSearch/PoseSearchFeatureChannel_FilterCrashingLegs.h |