Buffered curves now can only operate on themselves, matching by LongDisplayName. The operations are also restricted to the selected curves (either selected in the tree or selected by way of selected keys). There is a new option to Swap Buffered Curves which stores the current curve to the buffer and restores the buffer to the current curve. The Store/Swap/Apply menus are now visible for all the context menus (keys, hovered curve, all curves). There is also a new toggle to show/hide buffered curves and they are also only visible when the curve is selected.
#jira UE-143895
#preflight 62294f800d5a90e98ed4ae68
#rb mike.zyracki
#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 19344793 via CL 19346614 via CL 19351363 via CL 19351424
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19351984 by max chen in ue5-main branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
Added Custom Color Support to Curve Editor. This is done via an Editor preference(CurveEditorSettings) that stores a color per UClass, property name(intent name of the channel in Curve Editor), and the Color. So would be something like StaticMeshActor, "Translate.X", (1.0f,0.0f,0.f90)
Added to Sections an UObject* GetImplicitObjectOwner(). Usually this is the Possessable/Spawnable of the owning track, but for Control Rig Tracks we use the
specified Control Rig instead.
So we use that implicit owner to get the UClass to associate with the channel.
Also added some Python/BP functions since editor pref's aren't scriptable.
#jira MH-3206
#preflight 61520812d0edce00010149bf
#ROBOMERGE-AUTHOR: mike.zyracki
#ROBOMERGE-SOURCE: CL 17635750 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0
[CL 17635764 by mike zyracki in ue5-release-engine-test branch]
- Tighten up Sequencer and Curve Editor toolbars
- Fix key navigation sizing/spacing
- Remove transparent style for pill text input which makes it hard to read and inconsistent with the new starship style.
#rb trivial
#rnx
#preflight 612d19b5423a8f00012fe911
#ROBOMERGE-SOURCE: CL 17357654 via CL 17357658
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17357666 by max chen in ue5-release-engine-test branch]
#rb none
#jira none
#rnx
#ROBOMERGE-SOURCE: CL 12475675 in //UE4/Release-4.25/... via CL 12475676 via CL 12475678
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)
[CL 12475679 by max chen in Main branch]
#jira UE-91252
#rb matt.hoffman
#ROBOMERGE-SOURCE: CL 12475518 in //UE4/Release-4.25/... via CL 12475521 via CL 12475524
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)
[CL 12475526 by max chen in Main branch]
#jira UE-89514
#rb mike.zyracki
#ROBOMERGE-SOURCE: CL 12236321 in //UE4/Release-4.25/... via CL 12236323
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)
[CL 12238586 by max chen in Main branch]
#rnx
#rb none
#ROBOMERGE-SOURCE: CL 10869241 via CL 10869527 via CL 10869904
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870586 by ryan durand in Main branch]
The curve editor supports three view types by default - an absolute view (default, matches old behavior), a stacked view and a normalized view. Stacked views draw each curve separately (so non-overlapping) and normalized against their own min/max values. The normalized view draws all curves overlapping with each one normalized against its own min/max values.
A tree view has been added to help effectively manage large numbers of curves. Selecting curves in the treeview controls which curves are visible in the view area. The treeview also supports pinning curves. These pinned curves will always be visible regardless of your selection in the tree view.
A transform tool and a retiming tool have been implemented (via a plugin) which is enabled by default. The transform tool allows you to do a marquee selection of keys and then translate and scale the positions of these keys. The retiming tool allows you to create a 1 dimensional lattice to adjust the timing of your keys with a linear falloff between each lattice point. These tools work across multiple views at the same time which is especially useful if you are representing one dimensional data (such as event keys) in a view, as it allows you to adjust this data at the same time as your animation curves. A smoothing filter has been implemented (via a plugin) to allow running highpass and lowpass filters on your keys.
Opening the curve editor in Sequencer/UMG now creates a separate dockable tab which can be resized and docked as desired. A time slider has been added to the Curve Editor which is synchronized to the playback time in Sequencer. This allows you to scrub time in the curve editor without having to find the Sequencer window and adjust time there while looking at your keys and previewing your animation in the viewport at the same time.
Rudimentary support has been added for saving and later restoring a set of curves in your current session. This allows you to do a rudimentary copy/paste of entire curves but can also be useful for saving a curve, making adjustments to it and then deciding you want to go back - simply reapply the saved curve! Each curve added supports an intention name (such as "Location.X" or "FieldOfView"), and these intention names will be used when trying to apply curves. This allows you to reliably take all of the curves of a transform on one object and apply them to another object (and ensure that Location.X gets applied to the new Location.X, etc.) this can be helpful if you have a mixed set of curves buffered (such as a location and a field of view). In the event that no curves match by intention you can store and apply a single curve at a time from any intention to any other intention.
The Curve Asset editors (float, vector and color curve assets) have been changed to use the new editor. They support the same treeviews, filtering and tools that the Sequencer editor does. In addition, the Color Curve asset editor adds an additional view which provides a 1 dimensional gradient editor as an easier way to visualize and edit colors instead of the channels individually.
#rb Max.Chen, Andrew.Rodham
#ROBOMERGE-OWNER: lina.halper
#ROBOMERGE-AUTHOR: matt.hoffman
#ROBOMERGE-SOURCE: CL 6631811 via CL 6633746 via CL 6633863
#ROBOMERGE-BOT: ANIM (Main -> Dev-Anim) (v365-6733468)
[CL 6751117 by matt hoffman in Dev-Anim branch]