Change consist of only forward declaration and additional includes
#preflight 63789c1de30d438849c48188
#rb none
[CL 23218412 by henrik karlsson in ue5-main branch]
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]
Rework to use OnSplitterFinishedResizing
#jira UE-165931
#rb matt.hoffman, andrew.rodham
#preflight 633e71d73a20cf302cab4fbf
#rnx
[CL 23069790 by max chen in ue5-main branch]
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]
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]
Tested compiling fortnite, unrealeditor, lyra, qagame with non-unity/pch
#preflight 63635997876630122adeab9f
#rb none
[CL 22958990 by henrik karlsson in ue5-main branch]