MovieScene was targeted as its headers were at the top of profiling ShooterGame builds.
Tested with -disableunity and -nopch. Current timings take ShooterGameEditor rebuild from 480s to 440s
#jira none
#rb josh.adams
#preflight 624c97a63661c8f04a191889
[CL 19634779 by christopher waters in ue5-main branch]
- Add support for double precision channels, curves, evaluation, blending, and all other runtime infrastructure.
- Note that, as usual for now, double channels load and save float values.
- Editor side also gains some new track editors for these new types, with some workarounds to correctly recognize between float and double vectors.
- Transform tracks are now operating entirely in doubles.
- Float recomposing APIs for keying tracks in the editor are now using doubles, and have been renamed to "value recomposing".
#rb max.chen
#preflight 6123f6d9e7a3070001ff37ed
[CL 17278174 by ludovic chabant in ue5-main branch]
- Predictions do not understand changes of attachment that might occur between the current time and the predicted time
- Separated the functions and data relating to managing interrogation channels and indices out into a separate class called FInterrogationChannels
- The predictions import interrogation entities into the main ECS and will get processed along with all the other evaluations
- Spawnable annotations are now available in-game (not just in-editor)
#rb Mike.Zyracki, Max.Chen
#jira none
#preflight 606757c002d50100019f0d4f
[CL 15930213 by Andrew Rodham in ue5-main branch]
- This ensures that exports and trail rendering share the same initial value data despite objects potentially being in animated states when an interrogation is performed.
- All initial value processing is now handled by a new system, UMovieSceneInitialValueSystem, rather than the property instantiator. This means the same system can initialize the correct initial values for interrogators and runtime properties.
- This change introduces 2 new linker extensions (one for the interrogator, and one for the shared initial value storage) which allows the initial value system to perform optimally when the extensions are not present, but also use the initial value cache storage when it present in-editor.
#jira UE-102858
#rb Max.Chen, Ludovic.Chabant
[CL 15153737 by Andrew Rodham in ue5-main branch]
- Client code ultilizing ForEachAllocation task callbacks no longer need to call Resolve to access component data - this is already done in the task internals and the lock is maintained correctly for the duration of the task
- Added Read/WriteComponent methods to FEntityAllocation to make custom component access more robust - these functions now return a scope-locked wrapper around the component data
#rb Max.Chen, Ludovic.Chabant
[CL 15144976 by Andrew Rodham in ue5-main branch]