Files
UnrealEngineUWP/Engine/Source/Editor/AnimGraph
braeden shosa 4bcf791d57 PoseSearch: Pose feature vector API, support for indexing and searching collections of animations, and lots of refactoring and cleanup.
+ Pose feature vector API
  + FPoseSearchFeatureVectorLayout
    - Explicit description of a pose feature vector (FV)
    - Determined by options set in a UPoseSearchSchema and owned by the schema. See UPoseSearchSchema::GenerateLayout().
  + FPoseSearchFeatureDesc
    - Describes each feature of a vector, including data type, sampling options, and buffer offset.
    - New data types introduced (previously only positions were supported)
    - Could potentially be extended in the future to support externally registered features, but that's not the goal for now.
  + FFeatureVectorBuilder
    - Helper object for writing features into a float buffer according to the layout
    - Keeps track of which features are present, allowing the FV to be constructed piecemeal
  + FFeatureVectorReader
    - Helper object for extracting features. Presently only used for debug rendering.
+ UPoseSearchDatabase
  - A data asset for indexing a collection of animation sequences
  - Support added for searching the collection and returning the matching sequence with time offset
+ Pose matching refactoring
  - Setup no longer requires an animation modifier or a special graph node
  + UPoseSearchSequenceMetaData
    - Replaces UPoseSearchIndexConfig and UPoseSearchIndex
    - Counterpart to UPoseSearchDatabase for a single animation instead of a collection
    - Simply add to sequence metadata, fill it out, and save
  + IPoseSearchProvider
    - Modular feature interface that replaces the need for AnimGraphNode_PoseMatchingSequencePlayer
    - The PoseSearch plugin now registers itself as an implementer of IPoseSearchProvider
    - AnimGraphNode_SequencePlayer now detects if a pose search provider exists and offers optional pose matching support
    - Currently exposed as checkbox in an "experimental" section of the node's settings
+ Other cleanup/refactoring
  + Namespacing
    - Pulled all non-UCLASS/USTRUCTs into a UE::PoseSearch namespace
    - Renamed PoseSearchDetail namespace to UE::PoseSearch::Private per standards
  + UPoseSearchSchema is no longer an animation asset
    - This was a kludge to get the bone reference UI to work
    - Now it's a data asset and implements IBoneReferenceSkeletonProvider
    - Removed related asset type actions and factory
  + FPoseSearchIndex replaces bits of UPoseSearchIndex
    - Has narrower scope and is shared by UPoseSearchSequenceMetaData and UPoseSearchDatabase
  + Odds n' ends
    - Removed FPoseSearchBuildQueryScratch. FPoseHistory now owns memory required for taking samples.
    - Debug drawing reworked in terms of FV API
    - Added a.PoseSearch.DrawSearchIndex console command to render the search index of any animation sequences currently open in the editor
    - Removed Blueprint function library for building search indices since animation modifiers are no longer needed
#rb Aaron.Cox

[CL 14615629 by braeden shosa in ue5-main branch]
2020-10-29 17:05:00 -04:00
..