- This change introduces two separate types for dealing with binding IDs in different spaces explicitly: FFixedObjectBindingID and FRelativeObjectBindingID. The latter is portable if the sequence it was created within is nested inside another foreign hierarchy.
- FMovieSceneObjectBindingID remains, and is able to represent both of the new types, but should only be used for serialization to ensure compatability and consistency with editor tools that operate in different spaces.
- Any manual ResolveLocalToRoot or GetSequenceID processing has now been replaced with the new ResolveBoundObjects API, which provides a less error-prone way of resolving bindings that live in different sequences
#jira UE-74450
#rb Max.Chen, Ludovic.Chabant
[CL 14915667 by Andrew Rodham in ue5-main branch]
#rb none
#ROBOMERGE-SOURCE: CL 12957044 via CL 12957062 via CL 12957085
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12957090 by max chen in Main branch]
Add visualization for audio spatialization in the viewport for selected master audio tracks.
Refactor SComponentChooser
#jira UE-84339
#rb matt.hoffman
[FYI] seth.weedin
#ROBOMERGE-SOURCE: CL 11242592 via CL 11242596
#ROBOMERGE-BOT: (v644-11213502)
[CL 11242600 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]
#rb none
CL 9406511
Reduce filename size to fix can't write error
CL 9489134
Snapshot Multi User Material sync fix
CL 9489134
Sequencer tool now has corresponding icon on motion controller
Fixed bug where Vive UI was still appearing on Rift after deleting an object through the context menu
Help System UI no longer casts shadows
CL 9531557
Resave VP assets with UMG.
CL 9538549
Expose SnapshotTransactionBuffer to Blueprint as SnapshotObject
CL 9540413
Fixes VR on-camera viewfinders to have the correct color correction and gamma.
1) New shader, specifically applied to VR viewfinders, that performs a previously missing sRGB -> linear conversion.
2) Detect where we're in VR or not when creating camera preview widgets; don't apply tone mapping when we're in VR (to eliminate double tonemapping).
CL 9542364
Calling SnapshotObject when camera is attached to handheld/tripod so other users can see it update
CL 9551135
Add if (!IsRunningCommandlet()) to shader load to ensure it's ignored during cooking.
CL 9577516
Fixed Focusable windows causing no tool after menu close
CL 9601939
added TransactObject to Handheld and tripod tools
CL 9604635
Changed tripod and handheld tool to update the camera transform directly instead of using AttachToActor
CL 9605124
Live Editing cvar sequencer key mesh toggle
CL 9610074
Combined MarkerTool proc mesh into 1 draw call.
CL 9610330
Set camera label to "Playback Cam" when spawned by sequencer
#ROBOMERGE-SOURCE: CL 9835520 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v546-9757112)
[CL 9835661 by patrick boutot in Main branch]
Need to always get relative transforms and need to also always evaluate if there is a track in order to get correct pre/post values. Now works with multiple parents, some in sequencer, or some not.
Also cleaned out some dead code, was confusing.
#jira UE-76771
#rb max.chen
#ROBOMERGE-SOURCE: CL 7309561 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v371-7306989)
[CL 7309564 by mike zyracki 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-SOURCE: CL 6631811 via CL 6633746
#ROBOMERGE-BOT: (vundefined-6620334)
[CL 6633863 by matt hoffman in Main branch]
Changed interrogation type internally to FTransformData to get the raw Rotator instead of one corrupted by FTransform->FRotator conversion.
#jira UE-73242
#rb max.chen
#lockdown nick.penwarden
#ROBOMERGE-SOURCE: CL 6103573 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 6103575 by mike zyracki in Main branch]
With the previous work here we supporting Layering with external values correctly working with the TrackEditors which work when setting keys via the details panel, auto key, or the hot keys. However if you pressed the key button icon next to the channel in the sequencer UI it would only now always just set the current value which could be different than what it should be based upon the external value (like if you moved the sphere in the jira ticket).
So we added support for an extra OnGetCurrentValueAndWeight to the TMovieSceneExternalValue in order to modify the value based upone the global diff/weight as we did before. This specialization only happens for <float> and currently only for the Transform/Vector sections (other like ComposurePostMovieSettings seemed margiinally useful and we don't support ExternalValues for generic float chanels for some reason).
#jira UE-69648
#rb max.chen
#ROBOMERGE-SOURCE: CL 4997298 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 4997300 by mike zyracki in Main branch]