Commit Graph

503 Commits

Author SHA1 Message Date
nick brett
fe791cd3bd [FIX] Crash when exiting anim graph editor - removeing call to ExitMode from Exit function as Exit is called from within the owning objects dtor but ExitMode calls v-function on owning object which is unsafe
[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]
2021-12-10 18:30:52 -05:00
nick brett
357c0294c4 Reinstate code that was removed in CL-18260151 to fix a bad merge
[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]
2021-12-10 18:10:49 -05:00
thomas sarkanen
b506cf5727 Fix crash selecting linked anim layer class
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]
2021-12-08 06:43:16 -05:00
thomas sarkanen
45b9547da9 Anim blueprints now dont participate in unneeded dependency compilation
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]
2021-12-07 05:32:13 -05:00
jose villarroel
55b6426a6b Fix for blend masks not being added when adding input pins to the layered blend per bone node
#jira none
[at]Thomas.Sarkanen, [at]Koray.Hagen
#preflight 619e5a1eaa4521f9e7bb2592
#rnx

#ROBOMERGE-AUTHOR: jose.villarroel
#ROBOMERGE-SOURCE: CL 18326403 in //UE5/Release-5.0/... via CL 18326431
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18326457 by jose villarroel in ue5-release-engine-test branch]
2021-11-30 12:15:54 -05:00
jose villarroel
95dd318cea Added Animation State Machine Library for common helper functions used in anim node functions:
*Added IsStateBlendingIn/Out to library
#jira none
[at]Thomas.Sarkanen, [at]Koray.Hagen
#preflight 619eab6488439fccfeab1615

#ROBOMERGE-AUTHOR: jose.villarroel
#ROBOMERGE-SOURCE: CL 18326309 in //UE5/Release-5.0/... via CL 18326338
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18326360 by jose villarroel in ue5-release-engine-test branch]
2021-11-30 12:12:43 -05:00
lucas dower
f5ebc5a62b Node compiler warning for experimental anim node
#jira UE-135338
#rb Thomas.Sarkanen
#preflight 619fb50caa4521f9e7e2f611

#ROBOMERGE-AUTHOR: lucas.dower
#ROBOMERGE-SOURCE: CL 18295417 in //UE5/Release-5.0/... via CL 18295427
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18295434 by lucas dower in ue5-release-engine-test branch]
2021-11-25 12:08:42 -05:00
thomas sarkanen
fe48b98e94 Fixed null blendspaces being referenced by child anim BPs that use blendspace graphs
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]
2021-11-25 10:44:14 -05:00
lucas dower
9d3cb8136b Added 'Pose Watch Manager' and other pose watch improvements
#rb Thomas.Sarkanen
#preflight 619e6b3f0141b3c6da60ae1d
#jira UE-127674

#ROBOMERGE-AUTHOR: lucas.dower
#ROBOMERGE-SOURCE: CL 18285294 in //UE5/Release-5.0/... via CL 18285317
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18285320 by lucas dower in ue5-release-engine-test branch]
2021-11-24 12:24:41 -05:00
jose villarroel
e5f1174ec4 Allow conduits to be used as entry states in animation state machines
#jira none
[at]Thomas.Sarkanen, [at]Koray.Hagen
#preflight 619d07da810f5e07a378f6d6

#ROBOMERGE-AUTHOR: jose.villarroel
#ROBOMERGE-SOURCE: CL 18271526 in //UE5/Release-5.0/... via CL 18271560
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18271579 by jose villarroel in ue5-release-engine-test branch]
2021-11-23 12:09:54 -05:00
thomas sarkanen
d9d8fc91ed Fix crash compiling child anim BPs with certain configurations
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]
2021-11-23 05:26:00 -05:00
aurel cordonnier
b0bef131bf Fixing bad merge
[FYI] nick.brett

#ROBOMERGE-AUTHOR: aurel.cordonnier
#ROBOMERGE-SOURCE: CL 18260151 via CL 18260168 via CL 18263329 via CL 18263509
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18263561 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-22 16:46:12 -05:00
nick brett
8008a20f21 [UE][FEATURE] Support render of multiple selected nodes in Anim Graph Editor Viewport
#rb [at]phillip.kavan, [at]thomas.sarkanen, [at]paul.mclaurin
[FYI] [at]charles.anderson
#preflight 619b71741806a2425913e15c

#ROBOMERGE-AUTHOR: nick.brett
#ROBOMERGE-SOURCE: CL 18256465 via CL 18256468 via CL 18256470 via CL 18263298 via CL 18263370
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18263520 by nick brett in ue5-release-engine-test branch]
2021-11-22 16:44:42 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
aurel cordonnier
69fe095547 Merge from Release-Engine-Staging @ 17636544 to Release-Engine-Test
This represents UE4/Main @17638339 and Dev-PerfTest @17636504

[CL 17638842 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-27 19:54:25 -04:00
timothy daoust
723d3df744 Move AnimGraphNode_Mirror.h from Classes to Public folder
#rb thomas.sarkanen
#preflight 614463659bba9a0001f530a4

#ROBOMERGE-AUTHOR: timothy.daoust
#ROBOMERGE-SOURCE: CL 17550574 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17550580 by timothy daoust in ue5-release-engine-test branch]
2021-09-17 07:03:52 -04:00
thomas sarkanen
05ae5319ec Fixed anim node functions not being called correctly
Due to a previous change, functions were being called on the skeleton class
Also removes an incorrect guard that was preventing binding to native function libraries

#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 17502853 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17502870 by thomas sarkanen in ue5-release-engine-test branch]
2021-09-14 06:48:20 -04:00
thomas sarkanen
d708b24c66 Anim node references
Added the abiity to tag and retrieve any anim graph node (similar to how we could reference linked anim graph nodes previously).
Ported linked anim graph nodes to use the new system
Added the ability to reference any anim graph node by tag (via a new custom node, spawnable from the context menu, with the appearance of an actor reference in a level blueprint)
Added tag display and editing in the bottom-right of anim graph nodes
Added new override point to SGraphNodeK2Var to allow for title widget parameters to be overriden by child classes

#jira UE-126286 - Anim node functions: Add anim node references
#rb Jurre.deBaare

#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 17472894 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17472913 by thomas sarkanen in ue5-release-engine-test branch]
2021-09-09 11:42:21 -04:00
aurel cordonnier
7f517562d5 Merge from Release-Engine-Staging @ 17438845 to Release-Engine-Test
This represents UE4/Main @17430120 and Dev-PerfTest @17437669

[CL 17439044 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-06 12:23:53 -04:00
thomas sarkanen
fc7a8f1fc8 Function library support for member reference customizations and anim node functions
Also fixes missing error when using a non-thread-safe function call on an anim node
Also exposes CreateNodeFunctionsWidget on base anim graph node widget so that non-derived types can use it

#jira UE-124986 - Users Can Change Anim Node Functions to Non-Thread Safe
#rb Jurre.deBaare

#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 17437637 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17437664 by thomas sarkanen in ue5-release-engine-test branch]
2021-09-06 08:02:54 -04:00
thomas sarkanen
06f10fad65 Initialize Sematics
Added 'initial update' concept and a seperate tracker via node relevancy subsystem to track it.

#ROBOMERGE-SOURCE: CL 17387331 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17387349 by thomas sarkanen in ue5-release-engine-test branch]
2021-09-01 11:27:56 -04:00
thomas sarkanen
bbdd9ec262 Fix load ordering dependency with parent->child hierarchies of anim BPs
In the case where child clases are PostLoaded() after their parents, incorrect node data can be assigned to the class causing OOB access. This fix switches the init of the node data to be lazy/latched, so subsequent subclass loads dont overwrite parent class node data

#jira FROST-4098
#rb Jurre.deBaare

#ROBOMERGE-SOURCE: CL 17386060 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17386077 by thomas sarkanen in ue5-release-engine-test branch]
2021-09-01 09:58:57 -04:00