Commit Graph

1278 Commits

Author SHA1 Message Date
henrik karlsson
b5164ac775 Fixes to make modules compile with IWYU. We've added to IWYU toolchain so it compiles "orphaned" headers which does not have a owning cpp file. This identified lots of headers that couldn't be compiled by themselves (or if they were to included first)
Change consist of only forward declaration and additional includes

#preflight 63789c1de30d438849c48188
#rb none

[CL 23218412 by henrik karlsson in ue5-main branch]
2022-11-21 03:22:23 -05:00
ludovic chabant
2b98ca20e1 Sequencer: editing of channel overrides is now properly undoable, and works on multiple channel groups
#jira UE-168971
#jira UE-168974
#preflight 6376a5822a05dabce9ed1681
#rb max.chen

[CL 23187687 by ludovic chabant in ue5-main branch]
2022-11-17 19:25:57 -05:00
andrew rodham
fbcca60ce6 Sequencer: Fixed array property handling in editor (adding property tracks for array elements & autokey)
#jira UE-170428
#rb Max.Chen

[CL 23182938 by andrew rodham in ue5-main branch]
2022-11-17 15:45:28 -05:00
Andrew Rodham
5db8719a79 Sequencer: Fixed crash editing object channel keys
The actual crash was caused by a disparity between the actual channel value type (FMovieSceneObjectPathChannelKeyValue) and the type used to edit the value (FSoftObjectPtr).
When constructing an instance of the key struct, we would write into the instance property as if it were a FMovieSceneObjectPathChannelKeyValue, and trample memory. Ordinarily this doesn't happen because the types match, but object channels override the types here.
To fix this I made it the responsibility of PostConstructKeyInstance to assign the value, allowing the object path channel to correctly populate the value.

I also found that the CPP struct ops were not working correctly (something must have changed since this was first written; this class has a virtual destructor but its vptr was always nullptr because the struct ops were not being set-up/used any more), and in fact it is not well supported to have both CPP struct ops _and_ non C++ defined UPROPERTIES on a UScriptStruct. To this end I have removed the cpp struct ops from the generated struct and added code to do the initialization and destruction of the struct instance directly.

#jira UE-169382
#preflight 6373f23d0c74adb48ba56acc

[CL 23141301 by Andrew Rodham in ue5-main branch]
2022-11-15 15:15:12 -05:00
joe pribele
1d8537f20b changed PRAGMA_DISABLE_OPTIMIZATION to UE_DISABLE_OPTIMIZATION_SHIP
#preflight 6372ba60ee4d25f90ae3d207

[CL 23128414 by joe pribele in ue5-main branch]
2022-11-14 17:31:05 -05:00
max chen
1f0541fb5d Sequencer: Save the tree view width percentage in sequencer settings so that the split between the tree view and the track area is saved/restored.
Rework to use OnSplitterFinishedResizing

#jira UE-165931
#rb matt.hoffman, andrew.rodham
#preflight 633e71d73a20cf302cab4fbf
#rnx

[CL 23069790 by max chen in ue5-main branch]
2022-11-09 21:03:25 -05:00
max chen
c054309f29 Sequencer: Fix so that batch edit sections work for selected sections
#jira UE-169572
#rb andrew.rodham
#preflight 636add39450be1d9f84a79fe

[CL 23069568 by max chen in ue5-main branch]
2022-11-09 20:58:00 -05:00
danny couture
ab4451b1eb Avoid turning the weak reference into strong refs in deferred signed object change handler by just removing AddReferencedObject from it
#rnx
#jira UE-168677
#fyi Alexis.Matte
#rb Ludovic.Chabant
#preflight 636a5ffad0174259cc3410ac

[CL 23032425 by danny couture in ue5-main branch]
2022-11-08 13:03:45 -05:00
max chen
3ca73e23f9 Sequencer: Added Reset Playhead When Navigating which resets the playhed to the start of the playback range when navigating in and out of subsequences
#jira UE-167861
#rb matt.hoffman, ludovic.chabant
#preflight 636311b96000216d2e385cf0

[CL 23031468 by max chen in ue5-main branch]
2022-11-08 12:30:14 -05:00
max chen
3cf5b05b4f Sequencer: Make paste object bindings more clever.
If there is no existing binding in the sequence being pasted into, the pasted binding will be bound to the original object.

If there is an existing binding in the sequence being pasted into, a dialog will prompt the user whether to
    1) Duplicate the bound object, in which case you'll get a duplicate copy of the object and the binding+tracks, or
    2) Do NOT duplicate, in which case the resulting binding will be unbound (red) and you can rebind it to something else

#jira UE-169162
#preflight 636543b51052c15f13144560
#rb matt.hoffman

[CL 23031460 by max chen in ue5-main branch]
2022-11-08 12:30:02 -05:00
henrik karlsson
9b6b141e39 Fixed non-unity/pch errors
#rb none
#jira none
#preflight skipped

[CL 22994354 by henrik karlsson in ue5-main branch]
2022-11-04 16:25:55 -04:00
henrik karlsson
7f13284ff4 [Editor]
* ObjectBindingModel - Fixed comparison causing compile errors on odd msvc compiler versions (hololens etc)

#rb none
#jira none
#preflight skipped

[CL 22993287 by henrik karlsson in ue5-main branch]
2022-11-04 15:31:10 -04:00
Andrew Rodham
4d4a8595e3 Sequencer: Reworked hierarchical weights and easing to support easing on any sub section, and dynamic weights at runtime
The presence of Hierarchical Easing is no longer computed on sequence compilation, and instead is detected automatically by the weight and easing evaluator system.

New and expired HierarchicalEasingProvider components will now trigger the allocation of an easing channel for a given sequence ID, and this will also be propagated to future entities, as well as added to existing entities by way of a new mutation method on the entity ledger. This allows sub-sequence easing to simply create the provider entity without any of its inner entities needing to be concerned with adding easing channels. It also allows us to dynamically create providers for runtime weighting and have it work exactly the same as static easing.

A new flag exists on the sequence playback settings as well as the asset itself to indicate that a sequence will have dynamic weighting. This allows the system to correctly cache initial values for blending into and out of a sequence without taking that CPU and memory hit for every sequence.

Added initial value caching to material parameters, allowing them to be blended into and out of, whilst also allowing additive material parameter tracks


#jira UE-149871
#rb Max.Chen, Ludovic.Chabant
#preflight 636333e01608da6ba1b22285
#preflight 63631770522c8f7ab364c223

[CL 22961254 by Andrew Rodham in ue5-main branch]
2022-11-03 15:00:58 -04:00
henrik karlsson
fa90b399a4 Added includes for future change. This changelist only contains added #include and a couple of empty placeholder files
Tested compiling fortnite, unrealeditor, lyra, qagame with non-unity/pch

#preflight 63635997876630122adeab9f
#rb none

[CL 22958990 by henrik karlsson in ue5-main branch]
2022-11-03 14:18:47 -04:00
max chen
c015cfd744 Sequencer: Leave the tint as normal if there is no object binding
#rnx
#rb andrew.rodham, ludovic.chabant
#preflight 635c3cee3c0af539fd613da7

[CL 22850785 by max chen in ue5-main branch]
2022-10-29 03:00:14 -04:00
ludovic chabant
a6c301bf5f Sequencer: add a tooltip for track outliner items that shows property binding information
#rb andrew.rodham

[CL 22812046 by ludovic chabant in ue5-main branch]
2022-10-27 12:40:06 -04:00
ludovic chabant
e69d4041fa Sequencer: properly implement IsReadOnly for the sequencer editor view model
#rb matt.hoffman

[CL 22812038 by ludovic chabant in ue5-main branch]
2022-10-27 12:39:36 -04:00
andrew rodham
b9d9af1740 Sequencer: Fixed a crash that could occur if the user opened a context menu on an object binding while non-object outliner items were selected
#rb none

[CL 22808794 by andrew rodham in ue5-main branch]
2022-10-27 09:35:14 -04:00
henrik karlsson
4a5e13525d Fixed non-unity non-pch compile errors
#preflight skipped
#rb none

[CL 22788359 by henrik karlsson in ue5-main branch]
2022-10-26 16:22:34 -04:00
max chen
dc4b414f6c Sequencer: Null check in Delete and Keep State for an object that is no longer bound by Sequencer
#jira UE-168127
#rb andrew.rodham
#preflight 6356ea61f92c325024fd5589
#lockdown laurent.delayen
#rnx

[CL 22788165 by max chen in ue5-main branch]
2022-10-26 16:15:30 -04: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
d1dd64ede8 Sequencer: Save the tree view width percentage in sequencer settings so that the split between the tree view and the track area is saved/restored.
#jira UE-165931
#rb matt.hoffman
#preflight 635326c29e14ee3c79bc132e
#rnx

[CL 22780078 by max chen in ue5-main branch]
2022-10-26 10:55:49 -04:00
max chen
ec32a4ea81 Sequencer: Spacer to match TrackView's color strip
#jira UE-167784
#rnx
#preflight 63531edf9e14ee3c79bb1d48
#rb andrew.rodham

[CL 22780069 by max chen in ue5-main branch]
2022-10-26 10:55:31 -04:00
max chen
7cbd7e5c62 Sequencer: Prevent infinite sections from being pasted on top of each other.
#jira UE-168014
#rb matt.hoffman
#preflight 6353306a0313c2497454d851

[CL 22780061 by max chen in ue5-main branch]
2022-10-26 10:55:18 -04:00
ludovic chabant
58baea29fd Sequencer: clear the RF_Transient flag on channel overrides and constraints after a copy/paste
#jira UE-168063
#rb matt.hoffman, max.chen
#preflight 63582ec14340e60a4c023002

[CL 22764652 by ludovic chabant in ue5-main branch]
2022-10-25 17:59:40 -04:00