Commit Graph

9 Commits

Author SHA1 Message Date
jaime cifuentes
1dcfefd3fc Fix for DataInterfaceGraph test, so it compiles and saves
#rb @thomas.sarkanen @nicholas.frechette
#jira UE-145514
#preflight 637643f2ee4d25f90afcbdd8

[CL 23175392 by jaime cifuentes in ue5-main branch]
2022-11-17 09:30:01 -05:00
sara schvartzman
f9a4ef98fd Control Rig: Reuse function compilation data
#jira FORT-519929
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/637407fc953c19d435b38d76

[CL 23151594 by sara schvartzman in ue5-main branch]
2022-11-16 03:33:17 -05:00
Helge Mathee
74987bc740 RigVM: Move NameCaching to RigVM module
Also move base class for struct tests to RigVM module

#rb benoit.gadreau
#jira na
#preflight https://horde.devtools.epicgames.com/job/636cd909376a9cd6a8ebab24

[CL 23076572 by Helge Mathee in ue5-main branch]
2022-11-10 08:00:53 -05:00
Thomas Sarkanen
ca6184e9a3 Fix module name for DataInterfaceGraphUncookedOnly
Enables cooked editor build to load

#jira UE-156134
#rb Jaime.Cifuentes
#preflight 62c311d4d94b57687c016fb3

[CL 20935768 by Thomas Sarkanen in ue5-main branch]
2022-07-04 12:32:09 -04:00
francis hurteau
54b6f1cd28 Remove experimental class UDataInterfaceGraph_EditorData from being optional until revisited
#rb Thomas Sarkanen
#jira none
#preflight skip

#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 20674417 in //UE5/Release-Engine-Staging/...
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20676089 by francis hurteau in ue5-main branch]
2022-06-15 16:00:28 -04:00
Ben Marsh
5968286e04 Fix static analysis warning (unnecessary duplicated check)
#preflight none
#fyi Helge.Mathee

[CL 20486396 by Ben Marsh in ue5-main branch]
2022-06-03 10:55:14 -04:00
Helge Mathee
6520c809a9 Control Rig: backend work for support for multi graph
#rb benoit.gadreau
#jira UE-153497
#preflight https://horde.devtools.epicgames.com/job/6294be4e2e34c2e487b13394

[CL 20434781 by Helge Mathee in ue5-main branch]
2022-05-31 04:27:20 -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
Thomas Sarkanen
6ebe619fe5 Initial prototype of data interfaces and data interface graphs
Data interfaces are designed to be the basis for a functional, compositional framework, allowing loose bindings (a typed return value) between functional units (data interfaces). They incorporate the following main features:
- Simple call to 'get a value' from a data interface.
- Most communication is done via the UE::DataInterface::FContext, which handles data management.
- Type-erased values (UE::DataInterface::FParam) for results, parameters and state. These can be promoted to typed values (UE::DataInterface::TParam<T>) with runtime validation.
- 'Hidden state', allocated on-demand via a context, to support functional units that require statefulness. State is allocated according to the calling context, currently a hash of the 'callstack' and call site, so subsequent calls to the same data interface can reuse state.
- Batch processing of multiple state representations at once (e.g. processing multiple characters at one), via a chunked allocation strategy.

Also includes data interface graphs - a proof-of-concept implementation using RigVM to construct scripted data interface logic. This is still very early!

Still lots to do:
- Removal of typed interfaces (e.g. IDataInterface_Float)
- Validation of hidden state approach on a wider scale
- Validation of kernel processing approach
- Chunked branching (probably via a masking strategy) so branches can be handled within chunks
- Reworked type system incorporating type promotion/conversion
- UI work to allow for mixing instanced sub-objects and asset references with using TScriptInterface<IDataInterface>
- Expansion or RigVM usage and a ton of UI/UX work to get graph editing up to scratch
- Many many more things

#preflight 625e86873e0f6f80ada98290

[CL 19806109 by Thomas Sarkanen in ue5-main branch]
2022-04-19 06:28:48 -04:00