- you can add one type of solver - transform and then that will give you one goal and you can run it.
- 3 modules - IKRig, IKRigDeveloper, IKRigEditor
- IKRigDefinition is the main data for anim node.
#rb: Kiaran.Ritchie, Halfdan.Ingvarsson
#fyi: Kiaran.Ritchie
[CL 14814068 by Lina Halper in ue5-main branch]
Adding a public member to USkeletalMesh class is now prohibed since it can break asynchronous operations that will be added next to this submit.
#rb danny.couture
#jira UEENT-3936
#rnx
[CL 14812920 by Alexis Matte in ue5-main branch]
-Added option to blend profile picker for blend mask creation.
-Fixed issue w/ Blend profile picker sometimes showing in non-standalone mode outside of skeleton editor.
-Fixed issue w/ reset to default w/ blend profiles.
-Added blend mask mode to layered blend per bone node
#jira UE-101586
#review-14761881 @Aaron.Cox, @John.VanDerBurg, @Thomas.Sarkanen
[CL 14798723 by jose villarroel in ue5-main branch]
+ 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]
- Deprecated NumFrames instead added NumberOfKeys (data is copied over during serialization patch up)
- Deprecated GetNumberOfFrames and GetRawNumberOfFrames instead added GetNumberOfSampledKeys
- Deprecated SetRawNumberOfFrames and instead added SetNumberOfSampledKeys
- Added SamplingFrameRate (FFrameRate), which is populated according to the sequence's actual number of frames and length
- Changed some behaviour to use FFrameRate API to calculate frame number / timings
- Deprecated GetFrameRate and instead added GetSamplingFrameRate
- Fixed uses where NumFrames was assumed to contain the number of frames rather than the number of keys (ResizeSequence, AddLoopingInterpolation, CropAnimation, InsertKeysIntoRawData)
UAnimStreamable:
- Deprecated NumFrames instead added NumberOfKeys (data is copied over during serialization patch up)
ITimeManagementModule:
- Exposed GetCommonFrameRates through the abstract interface to get around circular Engine module dependency
#jira UE-102191
#rb Martin.Wilson
[CL 14608938 by Jurre deBaare in ue5-main branch]
Users can now select the blend profile mode: Blend Weight Factor based or Time Factor based.
The Blend Weight Factor method is the legacy method, which multiplies the transition blend weight with the per bone factor.
The new Time Factor method allows you to specify a time factor. A value of 0.5 would mean the bone would take half the time of the transition to reach its target state, while a value of 0.1 would mean it takes a tenth of the time, etc. A value of 0 would make the bone instantly transition into the target state.
#jira UE-100994
#review-14530265 @Aaron.Cox, @Thomas.Sarkanen
[CL 14539393 by john vanderburg in ue5-main branch]
Fixed issue with sync group collisions when syncing with 'component' scope
This change moves sync group management to use a name->group map instead of indices. Staying with indices cannot work across multiple instances as they are simply allocated at the point the single anim BP is compiled, so can easily collide in anything other than simple configurations.
Deprecated all index based access to sync groups in the runtime. Sync groups can still be enumerated on the generated class.
#jira UE-101030 - Sync groups with non-local scope can collide, causing incorrect behaviour
#rb Martin.Wilson,Jurre.deBaare
[CL 14521985 by Thomas Sarkanen in ue5-main branch]
The details view now displays gridlines between rows, and now has 4 columns - edit condition, name, value, and reset/extensions.
Edit condition widgets are now created in SDetailSingleItemRow and are placed in their own fixed column on the left of the details view. FEditConditionParser is now in FPropertyNode rather FPropertyEditor, which allows access to it more broadly - notably in SDetailSingleItemRow.
The Reset to Default SWidget can no longer be replaced - the logic for it being visible and a handler for when it is pressed is still customizable. SPropertyEditorAsset no longer has a special slot for the reset to default widget.
All extension widgets are now placed in a resizable column on the right of the panel, including the Keyframe button.
FDetailColumnSizeData is now publicly exposed by IDetailsView, and is no longer passed around as much.
#rb matt.kuhlenschmidt
[CL 14375859 by sebastian nordgren in ue5-main branch]
+ Added SetSequenceLength
+ Moved GetPlayLength virtaul from AnimSequenceBase to AnimationAsset and deprecated GetMaxCurrentTime (only used in a single place)
#rb Martin.Wilson
[CL 14298631 by Jurre deBaare in ue5-main branch]
Removed direct access to currently compiling BP class to restrict unguarded mutation.
Const-corrected various accessors and overrides.
Moved UObject-based compiler subsystems to 'handlers' and removed UObject dependency.
Moved from set of virtual functions on subsystems/handlers to a restricted set of contexts passed to specific multicast delegates that handlers subscribe to.
Removed anim class subsystems.
Moved property access code to engine module (editor code is still in a plugin).
Fixed nativized builds where anim BPs have nativized/non-nativized classes in the hierarchy
#rb Dan.OConnor
#jira none
[CL 14278258 by Thomas Sarkanen in ue5-main branch]