Commit Graph

256 Commits

Author SHA1 Message Date
ludovic chabant
7a78469fa9 Sequencer: fix incorrectly mirrored perlin noise curve preview
Slate's Y axis goes downwards...

#jira none
#preflight 6376a559170bc34a93071908
#rb max.chen

[CL 23187640 by ludovic chabant in ue5-main branch]
2022-11-17 19:23:35 -05:00
henrik karlsson
b5b86c796c This change is a strategical submit for a coming change that removes lots of includes in headers that are included by many files. This change contains adding of includes in files that previously got those includes transitively from other inclkudes
#preflight 6355d4940313c24974b2107b
#rb none

[CL 22783162 by henrik karlsson in ue5-main branch]
2022-10-26 12:57:32 -04:00
Max Chen
f57db3e0fa Sequencer: Remove Master from Sequencer
- 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]
2022-10-24 18:22:10 -04:00
mike zyracki
14951db2d4 Sequencer: Control Rig: Don't reset spaces to default on undo and don't set defaults when setting keys with control rig since that will cause a modify on the section which will trigger a sequencer eval on redo making control rig manipulations not-redoable as the sequencer eval will wipe out the redone value. Control rig has it's own default system set up.
#jira UE-165296
#lockdown laurent.delayen
#rb max.chen
#preflight 6351a998777a77c440fb60db

[CL 22707971 by mike zyracki in ue5-main branch]
2022-10-21 22:28:56 -04:00
max chen
5807d925e1 Sequencer: Fix shot and take number parsing so that it takes into account padding
#jira UE-166258
#preflight 634091cf090af7205c220a89
#rb matt.hoffman

[CL 22512004 by max chen in ue5-main branch]
2022-10-13 16:56:01 -04:00
max chen
bdac9c99e0 Sequencer: Add InsertSequence to subsequences just like there is InsertShot for cinematic shot tracks
Refactor/rename CreateShotInternal to MovieSceneToolHelpers::CreateSubSequence

#jira UE-165702
#rb matt.hoffman
#preflight 633fcc7dc6753f31ce567099

[CL 22406923 by max chen in ue5-main branch]
2022-10-07 15:22:35 -04:00
ludovic chabant
d27e54e4f8 Sequencer: correctly modify the owning UObject of a perlin noise channel when tweaking its parameters
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]
2022-10-07 15:11:33 -04:00
benoit gadreau
f536f9b23a make sure we compensate thru all constraints (as a mask) if the last one doesn't constrain the entire child's transform
#jira UE-166032
#rb mike.zyracki
#preflight 633da323164ef40c2e4d9e1e

[CL 22388807 by benoit gadreau in ue5-main branch]
2022-10-06 20:09:05 -04:00
mike zyracki
cf2504478c Sequencer: Constraints: Added function to clear proxy on constrained sections due to the constraint channels not being set up correctly. This is then by the curve model to lazily get the handle.
#jira UE-163621
#jira UE-165475
#jira UE-165189
#rb max.chen
#preflight 633b6139842f0d4c55e3ad72

[CL 22327054 by mike zyracki in ue5-main branch]
2022-10-04 01:24:20 -04:00
max chen
ecb16460a7 Sequencer: In AddKeysToSection, call ApplyDefault before keys are added.
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]
2022-09-23 20:46:00 -04:00
ludovic chabant
0100d2ba6c Sequencer: Display names of perlin noise channels in the section context menu
#rb max.chen, andrew.rodham
#jira none
#preflight 632893feea1c94f4c5e4147c

[CL 22087241 by ludovic chabant in ue5-main branch]
2022-09-19 22:14:41 -04:00
ludovic chabant
3b24beac4c Sequencer: Improvements to perlin noise channels' parameters UI
- 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]
2022-09-15 22:35:46 -04:00
ludovic chabant
8669171590 Sequencer: Use the same params struct between float and double perlin noise channels
#jira none
#rb matt.hoffman
#preflight 6323b7218c3def91aa417f95

[CL 22045057 by ludovic chabant in ue5-main branch]
2022-09-15 22:34:35 -04:00
mike zyracki
e01aea1667 Constraints: Componensate All works with components, unify evaluation code all into compensation evaluation code to also be used by baker, make sure everyhing ticks while baking.
#jira UE-163358
#jira UE-162149
#rb benoit.gadreau
#preflight 632144479677b738f4c0d8ba

[CL 21999938 by mike zyracki in ue5-main branch]
2022-09-14 00:25:25 -04:00
ludovic chabant
a3d353ed1d Sequencer: change the colour of perlin noise curve since the background colour of sequencer sections has changed
#rb richard.boisvert
#jira none
#preflight 631f6a4ea9331c69c3a38cc7

[CL 21968572 by ludovic chabant in ue5-main branch]
2022-09-12 13:43:00 -04:00
Andrew Rodham
2510e5ad6e Sequencer: Added generic ways to create custom views for channels
- 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]
2022-08-29 21:05:05 -04:00
ludovic chabant
7fa465a7ab Sequencer: Use name lookups for channels instead of assuming their type and index.
#jira UE-161959
#jira UE-161981
#rb andrew.rodham
#preflight 6307fb24744536d79b9c9c4e

[CL 21576103 by ludovic chabant in ue5-main branch]
2022-08-25 19:02:50 -04:00
bryan sefcik
8cc129f2b6 IWYU Pass 1 - Engine/Source/Editor/...
#jira
#preflight 6306736ac85b7fef22be7751

[CL 21558583 by bryan sefcik in ue5-main branch]
2022-08-24 22:45:13 -04:00
Andrew Rodham
42d6d35621 Sequencer: Readded support for DrawExtra in channel views
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]
2022-08-24 12:40:10 -04:00
ludovic chabant
b024b191dc Sequencer: phase two of overridable channels
- 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]
2022-08-23 23:19:26 -04:00
ludovic chabant
6d4bb8acea Sequencer: handle the case where multiple ECS entities are driving a single transform section
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]
2022-08-23 22:40:15 -04:00
Mike Zyracki
7affeb9b1c Constraints: Fix Undo Issue with Component constraints and fix regression with compensation happening twice do to the wrong componensation guard being used.
#jira na
#preflight 6305505fa45b007ea28a4e89
#rb Benoit.Gadreau

[CL 21524397 by Mike Zyracki in ue5-main branch]
2022-08-23 19:08:52 -04:00
Mike Zyracki
bda9e41e3f Sequencer: Consraints: Add/Move/Delete constraint keys for transform tracks
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]
2022-08-16 13:02:21 -04:00
UnrealBot
73409369c0 Branch snapshot for CL 21319338
[CL 21319338 in ue5-main branch]
2022-08-10 16:03:37 +00:00
bryan sefcik
98b51354ed Ran IWYU on Public headers under Engine/Source/Editor/...
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]
2022-07-20 11:56:29 -04:00