Adds compiler checks to alert content creators to fix their content
Adds runtime parameter size checks to ensure we dont call functions with an incorrect sized set of parameters
#rb Nicholas.Frechette
#preflight 640200923206d45d2018d411
[CL 24499844 by thomas sarkanen in ue5-main branch]
Runtime notes:
- Removes 'smart name' usage across the animation systems.
- Changed curve blending from a uniform array (sized per skeleton) to a sparse array of sorted named values. Blends and other combiners are performed using a dual iteration 'tape merge'.
- Skeleton curves are no longer guaranteed to cover all curve names that can be found at runtime.
Editor notes:
- Curve metadata (flags, bone links etc.) is still present on the skeleton, but can also now exist on a skeletal mesh
- Curve metadata (for morph targets) is still populated on import
- Curves can now be used arbitrarily at runtime
New features:
- New Find/Replace dialog that allows for batch-replacing curves and notifies across all of a project's assets
- New curve debugger tab in various Persona editors that allows for viewing curve values live. This also now allows viewing curves for specific pose watches.
- Pose watches now output curve tracks to the Rewind Debugger
#rb Jurre.deBaare,Nicholas.Frechette,Sara.Schvartzman,Helge.Mathee,Kiaran.Ritchie,Jaime.Cifuentes,Martin.Wilson,Keith.Yerex,Andrean.Franc (and more!)
#jira UE-167776
#jira UE-173716
#jira UE-110407
#preflight 63fc98c81206d91a2bc3ab90
#preflight 63f3ad4f81646f1f24c240c2
[CL 24421496 by Thomas Sarkanen in ue5-main branch]
Lack of modify curve node's utility in template anim BPs will only be fixed with the 5.3 curve refactor
#jira UE-174296
#rb Jurre.deBaare
#preflight 63e3b171b923ed4bdd3e5508
[CL 24075495 by thomas sarkanen in ue5-main branch]
#jira UE-173253
#fix Added new override point OnResetSkeleton, which allows UAnimSequence to wait for any in-flight compression tasks to finish before swapping out the skeleton
#rb Thomas.Sarkanen
#preflight 63b85298e26e31879b0d500f
[CL 23599655 by Jurre deBaare in ue5-main branch]
Original CL Desc
-----------------------------------------------------------------
//UE5/Main - UE.EditorAutomation(RunTest=Editor) Mac - Several tests exited prematurely due to critical failure
#jira UE-173253
#fix Added new override point OnResetSkeleton, which allows UAnimSequence to wait for any in-flight compression tasks to finish before swapping out the skeleton
#rb Thomas.Sarkanen
#preflight 63b80ff9577437afe6c5d290
[CL 23597241 by Jurre deBaare in ue5-main branch]
#jira UE-173253
#fix Added new override point OnResetSkeleton, which allows UAnimSequence to wait for any in-flight compression tasks to finish before swapping out the skeleton
#rb Thomas.Sarkanen
#preflight 63b80ff9577437afe6c5d290
[CL 23596938 by Jurre deBaare in ue5-main branch]
* Added overloads for FindSpecializedConversionNode and SearchForAutocastFunction that don't use output parameters. There are several instances in the engine where dummy variables are used to get around this.
* Updated the Message_ functions to use template parameter packing. The arguments are forwarded to the underlying FCompilerResultsLog, if one exists. This allows us to use tokenized messages.
* Changed several functions in FCompilerResultsLog to use the coding standard's naming convention. Specifically, arguments need to start with an uppercase letter.
#jira none
#preflight 639778dc2960b732208492ae
#rb phillip.kavan
[CL 23482483 by dave jones2 in ue5-main branch]
This ensures that 'old' sparse class data (that may be regenerated by a compilation) is always stashed when beginning a compilation pass. This is needed because when sparse class data is cleared, all (loaded) child classes are also cleared, so when they also come to be compiled, their sparse class data will already be null and there will be a dangling reference to it in the package's export table (despite it being moved into the transient package). The dangling reference will then cause any subsequent loads (e.g. further children) to reference an invalid structure.
#jira UE-171639
#rb Jurre.daBaare
#preflight 63906af667018b14b5fe96be
[CL 23431859 by thomas sarkanen in ue5-main branch]
Due to reconstruction on edit, the member reference GUID was always conforming back to the original layer node once it was set. This fix ensures that the GUID is appropriately set each time the member reference is updated.
#jira UE-168246
#preflight 6385ff577b4bd3f057796ae4
#rb Jurre.deBaare
[CL 23312441 by thomas sarkanen in ue5-main branch]
The source of the issue was that the key of the mapping between the original and the folded property was not able to distinguish between the instance of the node. This means that e.g. when we had several blend nodes in the graph, only one of the properties was in the map and thus all pin watches were watching the single folded property that the map contains.
This is now solved by using a graph pin as key for the map, which is unique per node instance.
An additional issue was that nodes like get variable were not compiled by the blueprint compiler and thus their pins were not part of the map as well. This got fixed by adding linked pins to the map as well.
The fix got verified in game as well. Please make sure to reload/recompile the "avg_player" and "sourcepose" anim bp before verifying.
#jira https://jira.it.epicgames.com/browse/UE-168454
#preflight 637e36baf514e1ded9722abe
[CL 23249548 by benjamin jillich in ue5-main branch]
Change consist of only forward declaration and additional includes
#preflight 63789c1de30d438849c48188
#rb none
[CL 23218412 by henrik karlsson in ue5-main branch]
Skeleton compatibility is now bi-directional. Specifying a compatible skeleton A -> B now implies B -> A.
Skeleton compatibility is now an editor-only concern. The runtime will attempt to do the 'best it can' via name -> name mappings. Only the editor will prevent assigning incompatible skeletons in (e.g.) asset pickers etc.
Skeleton compatibility checks in editor can now be disabled in the editor preferences (and each asset picker now has a checkbox option in its view settings that allows for quick access to this).
Moves FSkeletonRemapping to its own file (which is now private).
Skeleton remappings are now generated on demand on worker threads just before animation decompression and stored in a registry, guarded by FRWScopeLock for thread-safety.
Fixed some anim BP compiler edge cases where asset references on pins were not getting preloaded correctly, causing skeletons to be erroneously reported as missing.
Exposed the current asset registry filter in SAssetView so that menu extensions can access it (and use it to provide context)
#jira UE-166054
#jira UE-167355
#rb Jurre.deBaare,John.vanderBerg
#preflight 635902602e6690262afa86f9
#preflight 6372ad7a0c74adb48b472b38
#p4v-cherrypick 22878911
#preflight 6374b3c51d25fe8b931b8d7b
[CL 23152671 by thomas sarkanen in ue5-main branch]