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]
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
[CL 22878911 by Thomas Sarkanen in ue5-main branch]
- Skeletal mesh is now import using the skeletalmesh compile system to make sure all properties are locked and will stall another thread trying to access them.
---- This fix multiple crash if a viewer display the skeletal mesh and use some properties.
- Remove animation pipeline ensure(no skeleton) if we import with force static mesh and there is some translated animation node
- Fix crash when importing static mesh and the get mesh payload return an empty mesh description
- Reimport of skeletalmesh is not calling anymore postedit change if we reimport with interchange, interchange will call it in a post edit step.
---- This fix multiple crash if a viewer display the bones of the re-import skeletal mesh.
General:
- Reimport handler now have a reimport async version so the caller can control if a reimport is done asynchronously or synchronously
#jira UE-166986
#rb danny.couture , jeanluc.corenthin
#rnx
#lockdown jeanmichel.dignard
#preflight 634f61fdec03b54e9cdfe0bf
[CL 22634973 by alexis matte in ue5-main branch]
* Tab filters are now applied before tab widgets before are created for animation blueprint editor instead of only when a user tries opening a new tab. This prevents disallowed tabs in default layouts being created.
* Event graph documents are not opened if event graph permissions are disabled when loading blueprint editor.
* Added new blueprint permission to optionally disable function overrides.
#rb thomas.sarkanen
#preflight 6346928ef04e6f8505f7b879
[CL 22547860 by eric knapik in ue5-main branch]
* Fix for Persona mesh sections showing as selectable when not.
* Fix for editor viewport cursor style not updating if using orbit camera mode.
#jira UE-157811
#rb thomas.sarkanen
#preflight 63246538ea1c94f4c5b3dfc7
[CL 22052213 by lucas dower in ue5-main branch]
This change also added a delegate to FPersonaToolkitArgs with reference to a IDetailBuilderLayout so assets can customize the Preview Scene Settings.
#JIRA https://jira.it.epicgames.com/browse/UE-148894
#rb halfdan.ingvarsson
#preflight
#preflight 631b7a00967ffc68fb262e06
[CL 21924418 by kiaran ritchie in ue5-main branch]
#feature now have the ability to edit multiple curves simultaneously inside of the Animation Editor by adding/removing curves of interest
#jira UE-151505
#rb Thomas.Sarkanen
#preflight 6315e8e97562a90dfaa00ea0
[CL 21791291 by Jurre deBaare in ue5-main branch]
Popup for the animation recorder allowed access to temporary/invalid objects that were due to be garbage collected
Switched MPK/GC of discarded assets to just rename to the transient package on cancellation
Added optional parameter to not display the 'animation recorded' popup as this is an internal asset creation
#rb Lucas.Dower
#preflight 62c82e64f671e8d2face2ba9
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 21007451 via CL 21007477 via CL 21007484 via CL 21007499
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21019084 by thomas sarkanen in ue5-main branch]
Also applied asset permissions to various UI sections
#rb Jurre.deBaare,Sara.Schvartzman
#preflight 6267d7dd272f4a558dbcdb6a
#ROBOMERGE-OWNER: thomas.sarkanen
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 19918869 via CL 19921093 via CL 19923159 via CL 19923181
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 19926251 by thomas sarkanen in ue5-main branch]
- Deprecated public access to AnimReference
* Used for new behaviour that keeps track of PlayLength from referenced asset
* In case the cached PlayLength does not match the current _and_ the cache playlength == than the segment length it can be deemed out-of-date due to a reimport
* Out-of-date segments show in the OrangeAccent on the timeline rather than GreenAccent
* Out-of-date segments will introduce log warnings on-load
- Patched up all paths using AnimReference (get/set)
- Modernized parts of EditorAnim* files
- Face-lifted details customization for AnimSegment
* Scrollboxes now have (dynamic) UI/Clamp according to the context
* Added behaviour for interactive operation when dragging the timeline (dragable) bars
- Implemented FAnimModel_AnimMontage::OnDataModelChanged to handle curve changes only - as play length etc is handled by montage editor itself
#rb Thomas.Sarkanen
#preflight 620fb4c9be45100d32bcc000
#ROBOMERGE-OWNER: jurre.debaare
#ROBOMERGE-AUTHOR: jurre.debaare
#ROBOMERGE-SOURCE: CL 19051190 via CL 19051207 via CL 19051231 via CL 19051241 via CL 19058489
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)
[CL 19066040 by jurre debaare in ue5-main branch]
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971
[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]