Files
thomas sarkanen c645ec4d50 AnimNext: Data interfaces
Adds a new asset type: UAnimNextDataInterface. Reparents UAnimNextModule and UAnimNextAnimationGraph to be children of this asset.
UAnimNextDataInterface can only contain public variables. It can also 'implement' other data interfaces, which causes theuir variables to be insantiated within it. Collisions in variable naming/types are handled at edit time and by the compiler.
When a sub-graph is instantiated (either in a module or in a subgraph trait), then variables can be auto-bound to the host, which causes the inner variable's memory to point to that of the host, removing the need to 'pipe' parameters or copy them. Piping can still occur via trait-based pin piping as was introduced in the module refactor (however I've still not added a trait to do this in animation graphs yet, only modules).
Variable compilation keeps public variables together in one block as before, but introduces sorting via data interface as well as size, to ensure that data interface variables are addressable by index & count.
Added CustomizeNewAssetEntry override point used to setup new items. Data interfaces use this to force new variables to public.
Fixed various issues with modification event routing

Updated AnimNextChooser plugin
- Split chooser rig unit into 3: an abstract base and an implementation that uses specific RigVMExecuteContexts so that additional data is available to Chooser columns
- Uses the new variable access API

Updated PlayAnim trait
- Implemented binding of variables to event payload members via a struct adapter class

Updated graph schemas to correctly allow/disallow anim next execute context nodes

Fixed const-issues when usting GetAsset and GetEditorData

#rb Helge.Mathee, Jurre.deBaare, Nicholas.Frechette
#rnx

[CL 35967409 by thomas sarkanen in ue5-main branch]
2024-09-03 10:43:38 -04:00
..