Commit Graph

254 Commits

Author SHA1 Message Date
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
jack cai
e8f38eb3ea ControlRig: Reverted a previous change that parented rigvm memory objects to the ControlRigBP asset object because the engine no longer supports uobject as uclass outer, only upackage can be the outer of an uclass.
Also added UControlRigBlueprint::GetPreloadDependencies to ensure memory classes are loaded before ControlRigBP during cooking.

#jira UE-152546
#rb helge.mathee sara.schvartzman halfdan.ingvarsson
#fyi benoit.gadreau
#preflight https://horde.devtools.epicgames.com/job/62945fd71154108e88cc4c35

[CL 20442350 by jack cai in ue5-main branch]
2022-05-31 16:55:43 -04:00
Helge Mathee
40dbac202b RigVM: Restructure entry invocation for nativized VMs
#rb sara.schvartzman
#jira UE-153498
#preflight https://horde.devtools.epicgames.com/job/62962b08fe779f23c8e4d093

[CL 20441428 by Helge Mathee in ue5-main branch]
2022-05-31 16:18:09 -04:00
Helge Mathee
79e9dd5c10 RigVM: Event invocation first pass
#rb sara.schvartzman
#jira UE-153498
#preflight https://horde.devtools.epicgames.com/job/6295d0d1854540c7ed5af4ae

[CL 20435444 by Helge Mathee in ue5-main branch]
2022-05-31 07:37:33 -04:00
jack cai
1d739d4358 ControlRig: Fix rig vm validation for external typed operands
#rb helge.mathee sara.schvartzman
#preflgiht https://horde.devtools.epicgames.com/job/628dcdf12f2409bc1e1141bd

#ROBOMERGE-OWNER: jack.cai
#ROBOMERGE-AUTHOR: jack.cai
#ROBOMERGE-SOURCE: CL 20367474 via CL 20367593 via CL 20367597
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20369429 by jack cai in ue5-main branch]
2022-05-25 14:48:13 -04:00
sara schvartzman
0937ada054 Control Rig: Fix select nodes not supporting arrays of arrays
#jira na
#rb trivial
#preflight https://horde.devtools.epicgames.com/job/6287aa2e5b568e5761f505cc

[CL 20294487 by sara schvartzman in ue5-main branch]
2022-05-20 11:00:38 -04:00
sara schvartzman
38c72b07e2 Control Rig: Fix load of pre-template assets
#jira UE-153247
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/6287664b1e478b95c7fbc926

[CL 20293516 by sara schvartzman in ue5-main branch]
2022-05-20 09:28:06 -04:00
jack cai
7af8ba35b1 ControlRig: update vm mem class serialize() to use a new api for adding addrefobject func ptr
#horde https://horde.devtools.epicgames.com/log/62853e5c890768f0e937c3c1?lineindex=722

#rb trivial
#preflight skip

#ROBOMERGE-AUTHOR: jack.cai
#ROBOMERGE-SOURCE: CL 20265920 via CL 20265925
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20269408 by jack cai in ue5-main branch]
2022-05-18 18:02:05 -04:00
jack cai
019c50897b ControlRig: ensure that the VM is recompiled immediately during ControlRig Blueprint postload such that other systems using control rig can use the most up-to-date version of VM instead of the serialized VM. And Because we now recompile VM eariler, memory Classes can get filled before their own loading took place. To avoid mem class serialization adding duplicated properties to the class, we have to throw away serialzed data and keep the freshly generated data.
#rb Helge.mathee, sara.schvartzman, halfdan.ingvarsson
[FYI] kiaran.ritchie
#preflight https://horde.devtools.epicgames.com/job/62847759f239239af665774b

#ROBOMERGE-OWNER: jack.cai
#ROBOMERGE-AUTHOR: jack.cai
#ROBOMERGE-SOURCE: CL 20263667 via CL 20263859 via CL 20264064 via CL 20264392 via CL 20264401
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20269344 by jack cai in ue5-main branch]
2022-05-18 18:00:01 -04:00
jack cai
f208525adb ControlRig: Reparent rig vm mem class to the asset obj instead of the package because asset related operation assumes that each package only contains one asset object and actions like rename only acts on that one object and skips other objects in the same package
#jira UE-152546
#rb helge.mathee, sara.schvartzman, halfdan.ingvarsson
#preflight https://horde.devtools.epicgames.com/job/628492ce5a354a55523d2153

[CL 20266543 by jack cai in ue5-main branch]
2022-05-18 15:28:05 -04:00
sara schvartzman
6c0d38da89 Control Rig: Performance improvements on template nodes
#jira na
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/6283a58a730e8423d1256bf5

[CL 20258899 by sara schvartzman in ue5-main branch]
2022-05-18 06:43:26 -04:00
halfdan ingvarsson
abba473009 Control Rig: Avoid copying TFunction in a cpp struct copy context.
#jira UE-151600
#jira UE-151053
#preflight 627c92e21444680c4db4b630
#fyi helge.mathee
#rnx

[CL 20160301 by halfdan ingvarsson in ue5-main branch]
2022-05-12 00:59:16 -04:00
Helge Mathee
af4d3cb9e3 Control Rig: Proxy control support
#preflight https://horde.devtools.epicgames.com/job/627b92c10a5817c9d93f5da6
#jira na
#rb sara.schvartzman benoit.gadreau

[CL 20136941 by Helge Mathee in ue5-main branch]
2022-05-11 08:12:21 -04:00
Helge Mathee
b0415d8b6f RigVM Template: Make sure to check flags on array container properties only
#rb sara.schvartzman
#jira UE-151396
#preflight https://horde.devtools.epicgames.com/job/62792fcb7a7883bdcb04c2d4

[CL 20103748 by Helge Mathee in ue5-main branch]
2022-05-09 11:33:26 -04:00
sara schvartzman
ed571628f5 Control Rig: Filtered permutations for template nodes
#jira na
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/62769cbe75268b4ace10dc69

[CL 20101111 by sara schvartzman in ue5-main branch]
2022-05-09 07:34:28 -04:00
Helge Mathee
043e850f31 Control Rig: Enabling aggregate nodes + implementing sequence as aggregate
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/6273e2f65c29fb7661e9bd23

[CL 20058905 by Helge Mathee in ue5-main branch]
2022-05-05 11:55:01 -04:00
helge mathee
c5ff475376 Control Rig: Fix crash in compiler in shipping
#rb halfdan.ingvarsson
#jira UE-150926
#preflight 627150405e6ce673f445cf06
#lockdown simon.tourangeau

#ROBOMERGE-AUTHOR: helge.mathee
#ROBOMERGE-SOURCE: CL 20027682 in //UE5/Release-5.0/... via CL 20028941
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20034980 by helge mathee in ue5-main branch]
2022-05-03 19:46:23 -04:00
marc audy
006002155d Fix non-unity no-pch issues
#preflight 626180076119a1a496ab2bdf
#rnx

[CL 19852196 by marc audy in ue5-main branch]
2022-04-21 13:34:58 -04:00
sara schvartzman
f15b37dbb1 RigVM: If, select and array nodes to inherit template node
#jira na
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/6260454fde50cd99bbaf6781

[CL 19848071 by sara schvartzman in ue5-main branch]
2022-04-21 09:10:19 -04:00
Helge Mathee
325f6c6c83 RigVM: Support array type changes while maintaining element pins
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/6261422a375115ece30a3daa

[CL 19847028 by Helge Mathee in ue5-main branch]
2022-04-21 07:52:47 -04:00
Helge Mathee
fcb5444cf0 RigVM: Allow template arguments to support both array and single values if needed
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/625ff6da35680893eef3bdf1

[CL 19830136 by Helge Mathee in ue5-main branch]
2022-04-20 10:28:28 -04:00
Helge Mathee
324bb1ec00 RigVM: Reroute to inherit template node
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/625fc59035680893eee448a1

[CL 19826939 by Helge Mathee in ue5-main branch]
2022-04-20 05:02:39 -04:00
Helge Mathee
d6c1198b4c RigVM: Fix build break due to mention of RF_PendingKill
#rb trivial
#preflight skip

[CL 19806971 by Helge Mathee in ue5-main branch]
2022-04-19 08:45:54 -04:00
Helge Mathee
1475be6205 RigVM: Change inheritance order - make UnitNode inherit from TemplateNode
Also implement a way to register external / auxiliary templates to the registry + unit test

#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/625847a0946114248dbaa7d9

[CL 19806894 by Helge Mathee in ue5-main branch]
2022-04-19 08:39:16 -04:00
Helge Mathee
0e698dcb6f RigVM: Improve Workflow access in python
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/6257f0ad1543022eed61eff1

[CL 19753007 by Helge Mathee in ue5-main branch]
2022-04-14 06:28:01 -04:00