Refactored tick record sync into utility structure - FAnimSync. This improves the odd API around tick records, better encapsulating functionality and leaving less for the caller to get wrong. This will also eventually allow this to be refactored out into a scriptable pipeline stage.
Added sync node and scoped sync message for new 'graph based sync'. Nodes that subscribe to graph-based-sync determine their sync group based on the scope that they are in.
Removed 4.26-style sync scopes - pushed all syncing up to the main anim instance. Linked anim instances no longer sync their own tick records.
To make graph based sync more useful, surfaced graph attributes and their visualizations as labels on pins and parallel wires to visualize flow.
This involves statically determining the attribute flow of the graph at compile time. Added a new compiler handler to deal with this new debug data.
Updated a lot of nodes to specify their attributes so graph flow can be correctly visualized.
Added tracing of attributes and sync records and visualization of traced records when debugging the anim graph.
#rb Jurre.deBaare, Martin.Wilson
[CL 14998555 by Thomas Sarkanen in ue5-main branch]
Improved blend profile support adding a time based method.
#jira UE-100992
#review @Aaron.Cox, @Jose.Villarroel, @Thomas.Sarkanen
[CL 14831887 by john vanderburg 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]
This takes the idea behind Braeden's node tracker/ancestor system and makes it a bit more generic, removing the bits of the API that were bound to FAnimNode_Base and allowing easier cross-plugin message dependencies.
The idea is that at any scope in the graph update you can add a TScopedGraphMessage with a specified payload (which can just be a node, but can also have state of its own), then further towards the leaves, that message can be detected and acted upon.
This changelist includes a re-working of the inter-node communication around inertial blending and cached poses as examples.
#rb Braeden.Shosa,Jurre.deBaare
#jira none
[CL 14640646 by Thomas Sarkanen 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]
+ 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]
#rb none
#ROBOMERGE-SOURCE: CL 13152147 via CL 13152151 via CL 13152158
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v688-13145358)
[CL 13152159 by chris caulfield in Main branch]
#rb none
#ROBOMERGE-SOURCE: CL 13076180 via CL 13076183 via CL 13076187 via CL 13076189
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13076190 by chris caulfield in Main branch]
#rb none
#ROBOMERGE-SOURCE: CL 12985866 via CL 12985867 via CL 12985871 via CL 12985874
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12985878 by chris caulfield in Main branch]
#rb none
#ROBOMERGE-SOURCE: CL 12964400 via CL 12964482 via CL 12964533
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12964591 by chris caulfield in Main branch]
[FYI] benn.gallagher
#rb none
#ROBOMERGE-SOURCE: CL 12678578 via CL 12678844 via CL 12678863 via CL 12678884
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)
[CL 12678925 by chris caulfield in Main branch]