- Remove all instances of Master from the UI - ie. Replace Create Master Sequence with Create Sequence with Shots
- Internally, remove Master - Master Tracks in the MovieScene can just be Tracks
Deprecations (Properties):
- UMovieScene:MasterTracks deprecated for Tracks
- UMovieSceneFolder:ChildMasterTracks deprecated for ChildTracks
- FLevelSequencePlayerSnapshot: MasterName, MasterTime for RootName, RootTime
- UMoviePipelineSetting_BlueprintBase: bIsValidOnMaster for bIsValidOnPrimary
Deprecations (Functions):
- UMovieScene: GetMasterTracks, FindMasterTracksByType, FindMasterTracksByExactType, AddMasterTrack, RemoveMasterTrack deprecated for GetTracks, FindTracksByType, FindTracksByExactType, AddTrack, RemoveTrack
- UMovieSceneFolder: GetChildMasterTracks, AddChildMasterTrack, RemoveChildMasterTrack deprecated for GetChildTracks, AddChildTracks, RemoveChildTrack
- FMovieSceneTrackEditor: FFindOrCreateMasterTrackResult, FindOrCreateMasterTrack deprecated for FindOrCreateRootTrackResult, FindOrCreateRootTrack
- ULevelSequenceDirector: GetMasterSequenceTime deprecated for ULevelSequenceDirector::GetRootSequenceTime
- UDaySequenceDirector: GetMasterSequenceTime deprecated for UDaySequenceDirector::GetRootSequenceTime
- UMoviePipelineSetting: IsValidOnMaster for IsValidOnPrimary
- UMoviePipelineBlueprintLibrary: GetMasterTimecode, GetMasterFrameNumber for GetRootTimecode, GetRootFrameNumber
- UMoviePipeline: GetPipelineMasterConfig for GetPipelinePrimaryConfig
- UMovieSceneAudioTrack: IsAMasterTrack
Classes Renamed:
- FAnimTypePreAnimatedStateMasterStorage for FAnimTypePreAnimatedStateRootStorage
- UMovieSceneMasterInstantiatorSystem for UMovieSceneRootInstantiatorSystem
- ULevelSequenceMasterSequenceSettings to ULevelSequenceSequenceWithShotsSetting
Note, the following instances of master still occur and a "KnownCase" has been added for them in CheckAcceptableWords.cs:
- Deprecated properties (MasterTracks -> Tracks) and functions (ie. GetMasterTracks -> GetTracks)
- masterclip in FCPXML since it's an industry standard term
- masteraudiosubmix in AudioCaptureProtocol
- mastersubmix in MoviePipelineAudioRendering
- masteertimecode, masterframenumber, masterconfig, validonmaster in MovieRenderPipeline
- mastersequencetime, mastertime, mastername in LevelSequence
#jira UE-158660
#preflight 634645e48a0a7b2adc5722e7
#rb matt.hoffman, andrew.rodham
[CL 22739302 by Max Chen in ue5-main branch]
Refactor/rename CreateShotInternal to MovieSceneToolHelpers::CreateSubSequence
#jira UE-165702
#rb matt.hoffman
#preflight 633fcc7dc6753f31ce567099
[CL 22406923 by max chen in ue5-main branch]
This fixes the problem of the sequence not updating with the new values right away, and also fixes undo/redo.
#jira UE-166240
#preflight 63405012437603cb0e300d1d
#rb max.chen
[CL 22406700 by ludovic chabant in ue5-main branch]
The default value is a value for the channel when there are no keyframes. For example, if you add keys and then delete them all, the default value is the value of the channel. In the implementation of ApplyDefault, all the setters check that the default value is only set when there are NO keyframes. So, ApplyDefault needs to be called here in AddKeysToSection BEFORE any keys are added.
#jira UE-164765
#rb andrew.rodham, matt.hoffman
#preflight 632cf3e0d51603c54861d0fb
[CL 22165357 by max chen in ue5-main branch]
- The old code was specifically looking at perlin noise channels in override containers, but there could arguably be a section that uses a perlin noise channel by default. So the new code uses the channel proxy.
- Because of this, we can't rely on the details view customization for override channel containers. So we just show each channel individually in a different sub-menu. There isn't much support for multi-editing in the rest of Sequencer anyway.
#jira none
#rb matt.hoffman
#preflight 6323c3e774361465143308bd
[CL 22045127 by ludovic chabant in ue5-main branch]
- This is now supported by either overriding ISequencerSection::CreateChannelModel, or by defining a
TSharedPtr<UE::Sequencer::STrackLaneView> CreateChannelView(TMovieSceneChannelHandle<FMyChannelType>, TWeakPtr<FChannelModel> const UE::Sequencer::FCreateTrackLaneViewParams&);
overload for the sequencer channel traits of that type.
#preflight 630d555c0345de4ccf9738e4
#rb Ludovic.Chabant, Max.Chen
#jira none
[CL 21694520 by Andrew Rodham in ue5-main branch]
DrawExtra now receives a parameter struct that contains the necessary slate rendering parameters, rather than utilizing the section painter and separate geometry. Ideally such rendering code would exist in actual view models or custom views, but for now this API needs to be maintained
#rb Mike.Zyracki, Max.Chen, Benoit.Badreau
#jira none
#preflight 63064e705366f61a42c398d1
[CL 21543371 by Andrew Rodham in ue5-main branch]
- The channel override registry now handles channels by mapping them to a name (such as TranslationX or RotationY).
- Introduce some infrastructure for figuring out what channel types are compatible with what other channel types.
- Pass some context when a custom channel container creates ECS entities, so that it knows what channel it's overriding.
- Channel groups and other sequencer outliner view-models now have menu entries for managing channel overrides
- Perlin noise channels use the new evaluation overloads that provide the parent section, so they can find the tick resolution of the owning MovieScene and figure out seconds from ticks.
- Perlin noise channels now have detail view customizations.
- Add channel interface classes for perlin noise channels.
- Add overridable channel support to transform and float property sections.
- Rebuild key editor widget when one of its row's channels have changed, which can happen overrides are added/removed/changed.
#rb max.chen
#jira UE-105300
#preflight 6305965ac00af5e2944e2e65
[CL 21532420 by ludovic chabant in ue5-main branch]
When auto-keying, we try to figure out the contribution of the section being keyed compared to the overall current transform value (for when that transform is computed from multiple sections, like an absolute plus an additive). This code was working under the assumption that a transform section's contribution is built from a single ECS entity. This isn't a valid assumption anymore with overridable channels.
If a transform section has some overriden channels, there will be one extra ECS entity for each overriden channel. So the recomposition code now needs to deal with multiple entities, which this change addresses.
Note that the index of channels can now vary: if Translation.X is overriden, the first "double" channel will be Translation.Y, with index 0 in the bucket of channels of type "double". But Translation.Y is really channel 1, not channel 0. So this change also makes use of GetChannelBySortOrder, instead of GetChannel, so that we get the correct channel to key.
#rb max.chen
#jira none
#preflight 63053492c85b7fef228cf26b
[CL 21531623 by ludovic chabant in ue5-main branch]
Main change was to move code out of ConstraintChannelHelper to a new MovieSceneConstraintChannelHelper so that we can use the same functions for add/delete/move for both TransformableHandle types. It would have been better perhaps to keep this in control rig plugin, it would have made things much easier, but the Sequencer architecture limits us to only one track editor per track type so we had to move code into the transform track editor, which meant moving functionality to MovieSceneTools module. but do to this I had to add some modularity which means less code duplication. In particularly
Added an Interface IMovieSceneConstrainedSection, to handle accessing contraint channels. Also moved getting channels and setting transforms to the TransfomableHandles. Both of these changes will make moving more things like compensentation to runtime if needed later. Also added a snapper fix for sub sections
#jira UE-143510
#robomerge FNMain
#preflight 62f81e49b66d5d93134784f8
#rb Benoit.Gadreau
[CL 21407789 by Mike Zyracki in ue5-main branch]
Headers are updated to contain any missing #includes needed to compile and #includes are sorted. Nothing is removed.
#ushell-cherrypick of 21065253 by bryan.sefcik
#jira
#preflight 62d5b3e91062f2e63014598e
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21152630 via CL 21156388 via CL 21157044
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21181817 by bryan sefcik in ue5-main branch]