#jira UE-136038
#rb ben.hoffman
#preflight 61d4b8bad17842e547ab783d
#ROBOMERGE-AUTHOR: benjamin.fox
#ROBOMERGE-SOURCE: CL 18512890 in //UE5/Release-5.0/... via CL 18512942
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18512978 by benjamin fox in ue5-release-engine-test branch]
#ROBOMERGE-AUTHOR: bob.tellez
#ROBOMERGE-SOURCE: CL 18476381 via CL 18477404 via CL 18477469 via CL 18477893 via CL 18481497
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18481767 by bob tellez in ue5-release-engine-test branch]
Deferred to the active editor modes when determining transform toolbar visibility
Updated existing edit modes to correctly update their available widget modes
#rb Nick.Brett
#preflight 61ba0002590498f205a19fb2
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 18467669 via CL 18467672 via CL 18467673 via CL 18468089 via CL 18468141
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18468161 by thomas sarkanen in ue5-release-engine-test branch]
Now we dont have to fetch the data out of folded constants to determine that it is invalid
#jira UE-130378 - Optimization pass on new UE5 anim node features
#rb Martin.Wilson
#preflight 61b758e3fc57089133808370
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 18443507 in //UE5/Release-5.0/... via CL 18445092
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18445251 by thomas sarkanen in ue5-release-engine-test branch]
#jira UE-137312 - check() when accessing x/y/z of a vector with Property Access
#rb Martin.Wilson
#preflight 61b758b3c65177a674657e6d
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 18443429 in //UE5/Release-5.0/... via CL 18445080
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18445245 by thomas sarkanen in ue5-release-engine-test branch]
[REVIEW] [at]thomas.sarkanen
#preflight 61a8afeaca183f8de48a8107
#ROBOMERGE-AUTHOR: nick.brett
#ROBOMERGE-SOURCE: CL 18351791 via CL 18353515 via CL 18353622 via CL 18434113 via CL 18435455
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18436220 by nick brett in ue5-release-engine-test branch]
[REVIEW] [at]thomas.sarkanen
#ROBOMERGE-AUTHOR: nick.brett
#ROBOMERGE-SOURCE: CL 18351800 via CL 18351804 via CL 18434108 via CL 18435450
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18435929 by nick brett in ue5-release-engine-test branch]
Prevent filtering and selection of anim blueprints with incompatible/null skeletons, depending on context.
Additionally prevents non-template anim blueprints from being selected within templates and adds compile-time checks for compatibilty
#jira UE-136082 - Crash when clicking on the dropdown next to Instance Class in the Linked Anim Layer node settings
#rb Keith.Yerex
#preflight 61b092e55c61dba07bf10535
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 18404540 in //UE5/Release-5.0/... via CL 18404541
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18404555 by thomas sarkanen in ue5-release-engine-test branch]
This is because dependent BPs at least need a re-link to pick up layout changes in their property access 'bytecode'.
The also requires some re-arranging of where sparse class data gets created, linked and patched.
- Previously sparse class data was patched in the linker at the point of re-creation, but this meant that stale TRASHCLASS sparse class data was could still be in the struct hierarchy when we are BATCH compiling (when batch compiling, each compilation phase is performed in turn for all compiling/dependent BPs). This change removes the sparse class data when the class is sanitized prior to full compilation and stashes it for later patching. This ensures that sparse class data doesnt get linked into stale structs that can then get GCed later, invalidating property links.
- Sparse class data is now linked when its containing ABPGC is linked. It also ensures that the hierarchy of sparse class data mirrors that of the ABPGC. The 'mirror hierarchy' is currently only an invariant of anim blueprints.
Part of this change alters the behavior of UClass::SetSparseClassDataStruct when passed a NULL value. This will now ensure that subclasses are left in a valid state when this occurs. Previously if sparse class data was nulled-out, subclasses would be left pointing at a potentially stale struct in the case where the struct was being regenerated.
Added an override point for subsystems to participate in Link() and made sure property access offsets are patched there, to catch cases where dependent BPs get either a bytecode-only or link-only compile
#jira UE-136035 - Unexpected results from Property Access after changing Lyra animbp
#jira UE-130965 - Multiple crashes involving anim BP sparse class data, inheritance & GC
#rb Phillip.Kavan,Matt.Peters
#preflight 61af321f470c73a8c4933ff5
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 18393342 in //UE5/Release-5.0/... via CL 18393349
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18393353 by thomas sarkanen in ue5-release-engine-test branch]
Ensure that RF_Public is set so that external packages (like child BPs) can access the sub-object
#jira UE-135892 - Crash after adding child blueprint class of parent Animation BP class
#rb Jurre.deBaare
#preflight 619f9c3bb55894aa746b6c4b
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 18294806 in //UE5/Release-5.0/... via CL 18294808
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18294815 by thomas sarkanen in ue5-release-engine-test branch]
Copy mutable data (in the same way as constant data) to ensure that child class containers are coorectly initialized
#jira UE-135480 - Crash compiling child anim BP with invalid mutable data
#rb Jurre.deBaare
#preflight 619cbaaa801b361978a544d8
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 18268116 in //UE5/Release-5.0/... via CL 18268125
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18268128 by thomas sarkanen in ue5-release-engine-test branch]
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971
[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]