|
virtual bool | Init (const InitSettings &settings) |
|
virtual void | ExtractFeatureValues (const ExtractFeatureContext &context)=0 |
|
virtual void | FillQueryVector (QueryVector &queryVector, const QueryVectorContext &context)=0 |
|
virtual float | CalculateFrameCost (size_t frameIndex, const FrameCostContext &context) const |
|
void | SetCostFactor (float costFactor) |
|
float | GetCostFactor () const |
|
virtual void | DebugDraw (AzFramework::DebugDisplayRequests &debugDisplay, const Pose ¤tPose, const FeatureMatrix &featureMatrix, const FeatureMatrixTransformer *featureTransformer, size_t frameIndex) |
|
void | SetDebugDrawColor (const AZ::Color &color) |
|
const AZ::Color & | GetDebugDrawColor () const |
|
void | SetDebugDrawEnabled (bool enabled) |
|
bool | GetDebugDrawEnabled () const |
|
void | SetJointName (const AZStd::string &jointName) |
|
const AZStd::string & | GetJointName () const |
|
void | SetRelativeToJointName (const AZStd::string &jointName) |
|
const AZStd::string & | GetRelativeToJointName () const |
|
void | SetName (const AZStd::string &name) |
|
const AZStd::string & | GetName () const |
|
virtual size_t | GetNumDimensions () const =0 |
|
virtual AZStd::string | GetDimensionName (size_t index) const |
|
FeatureMatrix::Index | GetColumnOffset () const |
|
void | SetColumnOffset (FeatureMatrix::Index offset) |
|
const AZ::TypeId & | GetId () const |
|
size_t | GetRelativeToNodeIndex () const |
|
void | SetRelativeToNodeIndex (size_t nodeIndex) |
|
A feature is a property extracted from the animation data and is used by the motion matching algorithm to find the next best matching frame. Examples of features are the position of the feet joints, the linear or angular velocity of the knee joints or the trajectory history and future trajectory of the root joint. We can also encode environment sensations like obstacle positions and height, the location of the sword of an enemy character or a football's position and velocity. Their purpose is to describe a frame of the animation by their key characteristics and sometimes enhance the actual keyframe data (pos/rot/scale per joint) by e.g. taking the time domain into account and calculate the velocity or acceleration, or a whole trajectory to describe where the given joint came from to reach the frame and the path it moves along in the near future. @Note: Features are extracted and stored relative to a given joint, in most cases the motion extraction or root joint, and thus are in model-space. This makes the search algorithm invariant to the character location and orientation and the extracted features, like e.g. a joint position or velocity, translate and rotate along with the character.