It resolves encrypted archives not being handled correctly when using modular builds. It was a problem e.g. for ShooterGame. Without the keys embedded, the game would fail to mount encrypted/signed archives.
#rb nuno.leiria
#preflight 62a9ea96634e82e5d1e7bec8
#rnx
[CL 20690277 by Wojciech Krywult in ue5-main branch]
Cvars with this flag will modify the Shader Keystring for All Platforms
ECVF_GeneralShaderChange = 0x200,
Cvars with this flag will modify the Shader Keystring for Mobile Platforms
ECVF_MobileShaderChange = 0x400,
Cvars with this flag will modify the Shader Keystring for Desktop Platforms
ECVF_DesktopShaderChange = 0x800,
r.MobileHDR is using this system now. Others will follow.
#rb Jack.Porter, Mihnea.Balta
#jira UE-120561
#preflight 62aae0aeea213dadf0b36fdd
[CL 20684686 by Florin Pascu in ue5-main branch]
Add new custom version to specify a certain window of AnimSequences are not loadable
#fyi Jurre.deBaare
#robomerge EngineMerge
Original CL Desc
-----------------------------------------------------------------
**New**
- Engine
- IAnimationDataModel interface
- AnimationData plugin
- AnimSequencerDataModel, sequencer based implementation of IAnimationDataModel
- AnimSequencerDataController, controller for above (implementation of IAnimationDataController)
- Added FCompressedRichCurve::PopulateCurve, allowing users to convert back to a FRichCurve for validation/debugging
- Added DefaultFrameRate to AnimationSettings, this replaces the hardcoded 30FPS in code
- Added ::GetKeyIndicesFromTime which takes FFrameRate
- Added AnimSequenceBase::OnAnimModelLoaded, this is required for correct postloading behaviour of data model (specifically AnimSequencerDataModel, as it depends on data from its outer ? anim sequence)
- Added IAnimationDataModel ::Evaluate which now takes responsibility for evaluating raw animation bone, curve and attribute data. And moved all trackbased evaluation code into AnimDataModel.cpp
- Added a.ForceEvalRawData allowing to force evaluation of source data
- Added a.SkipDDC to force compressing animation data locally
**Changed**
- Reparent UAnimDataModel to IAnimationDataModel interface, and rejig behaviour
- AnimSequenceBase now reference AnimDataModel as IAnimationDataModel
- Upgrade path for legacy to IAnimationDataModel and existing UAnimDataModel to IAnimationDataModel through IAnimationDataController::PopulateWithExisting
- IAnimationDataModel data is now frame(number/rate/time) based rather than seconds/keyindices. This enforces frameborder aligned data from now on.
- Moved RichCurve evaluation code from RichCurve.cpp to separate file and consolidated all instances of copy-pasta behaviour
- Updated/removed deprecated EngineTests around AnimSequences
- Changed many instances to use a FFrameTime together with a known FFrameRate versus seconds and sequencelength in float involving frame \/ time calculations (including instances of FAnimKeyHelper)
- Switched anim sequence evaluation to use double in Extraction context for time value and patched up places with static\_cast\<double\>
- FRichCurve::Eval
- Make sure we always evaluate keys when T >= Key0.Time and T <= KeyN.Time to deal with crazy userweighted tangents
- Fixed WeightedKeyDataAdapter::GetKeyInterpMode/GetKeyTangentWeightMode retrieving invalid values, as it was indexing according to KeyIndex rather than KeyIndex\*2. This made it so that values were misinterpreted.
- Fixed WeightedEvalForTwoKeys for compressed data retrieving GetKeyInterpMode and GetKeyTangentWeightMode using the wrong index value. As they are not indexed using KeyDataHandle type.
- Fixed issue where compression could crash when containing zero-key scale additivebase track (tries to retrieve)
- Replaced instances of NULL with nullptr
- Moved required decompression information into FAnimSequenceDecompressionContext and reimplemented decompression within UE::Anim::Decompression namespace and new file
- Deprecated ::GetRawDataGuid and replaced with GetDataModel()->GenerateGuid()
- Fixed UAnimStreamable evaluation/compression (previously broken with MVC refactor)
- Updated Animation exporting pipeline to be frame-based rather than seconds
- Deprecated RetargetPose, replaced with FRetargetingScope (used within AnimModel::Evaluate)
- Fixed BaseAdditiveAnimation array become invalid/incorrect when removing zero-additve tracks during compression
- Updated EngineTest animation sequence related tests to new APIs (while maintaining deprecated path testing as well for now)
- AnimDataController / Animation Sequence tests now generate a USkeleton for the transient animation sequence (used to perform the test on)
**Removed**
- Unused file/class AnimData/AnimDataNotifyCollector.h
#rb Thomas.Sarkanen, Martin.Wilson, Alexis.Matte, Mike.Zyracki
#jira UE-131296
#preflight 62a308a8b0150a87f9d6891b
[CL 20677979 by Marc Audy in ue5-main branch]
#rb Per.Larsson
#rnx
#preflight 62a9bff813004691f9830b8d
- I think when I was first adding it, the type was originally a struct but was changed to an enum before it was submitted, however I failed to update the name.
#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 20668490 via CL 20668521 via CL 20668532
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)
[CL 20669764 by paul chipchase in ue5-main branch]
Since there were two different events for declaring strings and FNames, one regular and one no-sync version used in on-connection callback, references would not be correctly resolved. We remove the no sync version and use only one version. In order to solve the synchronizing we defer resolving the strings in analysis.
#preflight 62a9c8932a1103ff5fb784ae
#robomerge EngineMerge
[CL 20668219 by Johan Berg in ue5-main branch]
- Legacy data interfaces run on Graph execution timeline, some caveats now exist like peeking the current buffer on the MainDataSet willl be wrong
- Converted data interfaces run on Graph build timeline executing passes as required
- Converted data interfaces have been updated to use new PreStage / PostStage / PostSimulate function
- Various other parts of Niagara have been updated to allow operation on the Graph builder timeline, i.e. readbacks, debug drawing, profiiling, etc
- Various global compute shaders have been updated to use shader parameter structs
- More work to come to move various resources to RDG and be part of the tracked process to avoid everything being submitted on the immediate command list
#rb rob.krajcarski
#jira UE-151234
#preflight 62a37f4f2558795127df2dfb
[CL 20657583 by Stu McKenna in ue5-main branch]
- Deprecated LandscapeSplineActorDesc as it is no longer needed with this property
#jira none
#rb jeanfrancois.dube, richard.malo
#preflight 62a8c041a43e20b293533548
[CL 20654038 by Patrick Enfedaque in ue5-main branch]
- Add the concept of execution resource that can be passed between tasks
- Add Insight counter for number of threadpool wrapper task allocs to easily detect leaks of execution resources
#rnx
#rb Devin.Doucette, Francis.Hurteau
#preflight 62a09819e07732d52dc8ef81
#ROBOMERGE-AUTHOR: danny.couture
#ROBOMERGE-SOURCE: CL 20625325 via CL 20625333 via CL 20625337
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)
[CL 20625928 by danny couture in ue5-main branch]