- arcball rotation: the rotation is computed using a spherical+hyperbolic projection (see code for more explanation)
- indirect manipulation via MMB: hit parts are stored per mode then are used to drive the proper drag function
- defered drag function: in order to avoid notifications storm, the drag functions can be applied on tick instead using a pending function
- a single default TRS gizmo is now created when needed (instead of creating several thru selection changed or when the gizmo manager was ticking) and its visibility is set based on rules
TODO
- UEditorInteractiveGizmoManager is now closer to UInteractiveGizmoManager so I don't think we need ActiveEditorGizmos, CachedGizmoMap, etc. that are not used anymore. This should be cleaned in another CL
- UEditorTransformGizmo::OnGizmoTransformBegin should set the current axis (needed for some modes, including IKRig) but this is disabled for now has there are some side effects with dragging (this will be treated in another CL)
#jira UE-152973
#jira UE-161236
#rb brooke.hubert zach.rammell
[CL 27751789 by benoit gadreau in ue5-main branch]
* The same functionality is provided by the GizmoManipulationStarted and GizmoManipulationStopped.
* This simplifies the interface and removes the bespoke parameter added to branch between when manipulation starts and when it is ongoing to avoid expensive rendering invalidations
* There are some clients of TypedElementViewportInteractionGizmoManipulation::ApplyDeltaToActor, this CL does not address usage of this function. Doing so will require further adoption of TypedElements among those systems
#jira UE-187188
#rb Brooke.Hubert
[CL 25964466 by logan buchy in ue5-main branch]
With this fix, on my machine, the cost of moving a blueprint with 1000 items drops from 45 ms to 7 ms. Baseline tick is 8 ms (120 fps) when idling, so the results while moving improve from 19 fps to 65 fps. The remaining time is mostly split between physics and navigation update. Invalidating the static lighting cache is so costly because it both invalidates the render state of every item, and notifies packages of the change.
#jira UE-147154
#rnx
#rb jamie.dale
#preflight 63ff4748e32cdb7d9aacab16
[CL 25050136 by jason hoerner in ue5-main branch]
Also expand usage of placement system to ensure these factories are used in more places
#rb brooke.hubert
#preflight 642cad951d19c0312aec3e7a
[CL 24938100 by zach rammell in ue5-main branch]
- Call cancel on the transaction if it is actually a camera movement input
- Reset package dirty state when a widget drag is cancelled (for example with escape key)
#rb jamie.dale
#preflight 63f3e55c6a22bef8c0a8dded
[CL 24331749 by brooke hubert in ue5-main branch]
- Call cancel on the transaction if it is actually a camera movement input
- Reset package dirty state when a widget drag is cancelled (for example with escape key)
#rb jamie.dale
#preflight 63e69de8816a1dff9ffe2d87
[CL 24201120 by brooke hubert 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]