Commit Graph

448 Commits

Author SHA1 Message Date
Helge Mathee
3b54e73b5d RigVMTemplate to perform type loading lazily
#rb audit
#jira na
#preflight https://horde.devtools.epicgames.com/job/62bc4ffa3771c5710de96b40

[CL 20874075 by Helge Mathee in ue5-main branch]
2022-06-29 09:31:30 -04:00
Helge Mathee
3d20407084 RigVM: Refactor template type system to rely on integers rather than string comparisons
* Switching the FRigVMTemplateArgumentType to be backed up by FName instead of FString for faster comparison
* Adding a "Types" storage under the RigVMRegistry of all of the known supported types
* Have the FRigVMTemplateArgument refer to type indices rather than full type structures
* Have the resolval comparison code rely on comparing type indices rather than type structures
* Store relationship between the bool and the TArray<bool> type as an array / element lookup within the registry - to avoid string operations when doing lookups from element to array to 2 dimensional array for a type.
* The preferred types list on the template node is now stored as pairs of argument name and type index <FName, int32> rather than FString.
* Also we no longer support all types for the untyped nodes (such as reroute, select, if etc) - but instead we support all user defined types (non-native structs and enums) as well as all types ever used as a template argument. The reasoning here is that supporting a type that's not used by any node is pointless. This reduced the type set from 9876 to 237.

#rb halfdan.ingvarsson
#jira na
#preflight https://horde.devtools.epicgames.com/job/62b9c666ba62f4498a345be2

[CL 20861728 by Helge Mathee in ue5-main branch]
2022-06-28 13:41:23 -04:00
Helge Mathee
e13931f1a7 RigVM: Default values on array element pins don't propagate correctly.
#rb benoit.gadreau
#jira UE-144672
#preflight https://horde.devtools.epicgames.com/job/62b45c19c603be6148408c8f

[CL 20793302 by Helge Mathee in ue5-main branch]
2022-06-23 08:45:36 -04:00
benoit gadreau
b0b3bc6a23 Follow up to CL20773015
improved RefreshAllModels
- from 431.621 ms to  318.637 ms when first opening CR_Mannequin_Body
- from 6.930 sec to 3.390 sec for next openings


#jira UE-155783
#rb helge.mathee
#preflight 62b45cd1755c7d63a787d42b

[CL 20793285 by benoit gadreau in ue5-main branch]
2022-06-23 08:44:39 -04:00
Helge Mathee
0fc13a0aa8 RigVM: Remove the support for arrays of arrays
#rb benoit.gadreau
#jira UE-151324
#preflight https://horde.devtools.epicgames.com/job/62b44c897749ebd99d354dea

[CL 20792908 by Helge Mathee in ue5-main branch]
2022-06-23 08:13:39 -04:00
Helge Mathee
555783edcb Control Rig / RigVM: Improve asset loading performance
- Overall Loading time went from 21.439 seconds to 7.521 seconds
 - Improved Postload from 6.643 seconds to 0.915 seconds
 - Improved InitControlRigEditor from 13.422 seconds to 4.842 seconds

#jira UE-155783
#rb benoit.gadreau
#preflight https://horde.devtools.epicgames.com/job/62b2fe202c753858830d4b11

[CL 20773015 by Helge Mathee in ue5-main branch]
2022-06-22 08:37:48 -04:00
Helge Mathee
f6e4dd586e Control Rig: Export aggregate node properly
#rb benoit.gadreau
#jira UE-151729
#preflight https://horde.devtools.epicgames.com/job/62b189ce27718d2d48106113

[CL 20755316 by Helge Mathee in ue5-main branch]
2022-06-21 06:29:33 -04:00
benoit gadreau
ecb36507ec Fix use of IsChildOf with possible nullptr
#rb helge.mathee
#jira UE-157067
#preflight 62b18ac58e03312ad85bf601

[CL 20755070 by benoit gadreau in ue5-main branch]
2022-06-21 05:26:06 -04:00
Helge Mathee
5409f37548 Control Rig: Construction Event
Changes include
* renamed setup event to construction event
* new nodes to spawn bones, nulls, controls etc
* class settings to limit how many elements can be created procedurally
* lookup from procedural element to spawner node (who created this?)

#preflight https://horde.devtools.epicgames.com/job/62b0d9c62405b4ac9e774bf4
#jira UE-153500
#rb audit

[CL 20754666 by Helge Mathee in ue5-main branch]
2022-06-21 04:15:34 -04:00
Helge Mathee
10b6192609 Control Rig: Fix crash when connecting subpins of template nodes
#jira na
#rb sara.schvartzman
#preflight https://horde.devtools.epicgames.com/job/62b02d68a4631339e99ff77b

[CL 20734454 by Helge Mathee in ue5-main branch]
2022-06-20 04:40:24 -04:00
Helge Mathee
21e41be54a Control Rig: Fix crash when connecting to template node to other type
#jira UE-156578
#rb sara.schvartzman
#preflight 62ab47f91e0da10371e55e23

[CL 20734361 by Helge Mathee in ue5-main branch]
2022-06-20 04:14:02 -04:00
Marc Audy
e2dd041c0f Fix static analysis warnings
#codereview Helge.Mathee
#rnx
#preflight

[CL 20618311 by Marc Audy in ue5-main branch]
2022-06-11 22:32:15 -04:00
Helge Mathee
f340a4f6ad Control Rig: Fix to run backwards compat code
#rb sara.schvartzman
#jira UE-155436
#preflight https://horde.devtools.epicgames.com/job/62a34936ec7332a25c9597a0

[CL 20594878 by Helge Mathee in ue5-main branch]
2022-06-10 10:03:01 -04:00
Helge Mathee
d76c4506cc RigVM: Maintain pin state during unresolve for pins that didn't change type
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/62a3059d2e1cc34f11d3b6c8

[CL 20593736 by Helge Mathee in ue5-main branch]
2022-06-10 08:18:43 -04:00
Helge Mathee
80dd846962 RigVM: Change order of arguments / pins to be based on super -> child struct
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/62a1fb0ae025a4126b6282ef

[CL 20591381 by Helge Mathee in ue5-main branch]
2022-06-10 03:42:15 -04:00
Helge Mathee
36d23803d4 RigVM: Allow access to custom widget also on template pins + use quotes correctly for template default arguments
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/62a1a7542875eb3c61751609

[CL 20573126 by Helge Mathee in ue5-main branch]
2022-06-09 05:58:28 -04:00
sara schvartzman
e66a608202 Control Rig: Fix wildcard pin errors when opening rig
#jira UE-156049
#rb helge.mathee
#preflight 62a08f6f232daff7b3d8f085

[CL 20555384 by sara schvartzman in ue5-main branch]
2022-06-08 09:14:51 -04:00
sara schvartzman
4f7e433c98 Control Rig: Change FRigVMTemplate to USTRUCT
#jira na
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/629f59a2233ae0a8f8f6bc99

[CL 20538399 by sara schvartzman in ue5-main branch]
2022-06-07 11:01:59 -04:00
sara schvartzman
d56d1f11b5 Control Rig: Fix unit test with undo/redo not passing
#jira na
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/629f56e085333f26644b81da

[CL 20537746 by sara schvartzman in ue5-main branch]
2022-06-07 10:33:38 -04:00
sara schvartzman
8759985e82 Control Rig: Fix undo deletion of template node not working
#jira UE-155296
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/629e3b34ed51827842318c6b

[CL 20534600 by sara schvartzman in ue5-main branch]
2022-06-07 04:52:58 -04:00
sara schvartzman
566694cdc0 Control Rig: Fix crash when there are links between subpins and resolving to a different type
#jira UE-155292
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/629dfaa541542e8cf66c84ed

[CL 20534552 by sara schvartzman in ue5-main branch]
2022-06-07 04:46:46 -04:00
sara schvartzman
936679001d Control Rig: Fix some templates not resolving
#jira UE-155584 UE-155585
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/629e151d5d78bd7cf191426b

[CL 20534522 by sara schvartzman in ue5-main branch]
2022-06-07 04:43:09 -04:00
Helge Mathee
8695493f34 Control Rig: Allow events to be invoked from top toolbar and context menu
#rb benoit.gadreau
#jira UE-155696
#preflight https://horde.devtools.epicgames.com/job/6299ce559e55f868a0824819

[CL 20484545 by Helge Mathee in ue5-main branch]
2022-06-03 05:50:33 -04:00
benoit gadreau
22b49b4dd3 fixed discrepancy between struct subpins's value within the full struct default value and the subpin's real default value
Here is a simple example we could encounter (using FRigUnit_AimItem_Target)

the struct default's value looked like this "(Weight=1.000000,Axis=(X=1.000000,Y=0.000000,Z=0.000000),Target=(X=1.000000,Y=0.000000,Z=0.000000),Kind=Location,Space="")"
setting the Space default value to "" whereas the Space default value is an empty string.
Using "" as a default value would fail later in URigVMController::SetPinDefaultValue


#jira UE-152486
#rb helge.mathee
#preflight 6298b0051941378d7c6809b5

[CL 20468367 by benoit gadreau in ue5-main branch]
2022-06-02 08:58:42 -04:00
Helge Mathee
9c189267d5 ControlRig: user defined events and event invocation
#rb sara.schvartzman
#jira UE-153498 UE-153499
#preflight https://horde.devtools.epicgames.com/job/62975ffb2c618ddc66bb49a4

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