Niagara Data Channels are new system for communication between Niagara Systems and with game code/BP.
The system has a few peices.
DataChannel - Data Definition for a named channel of data. New types can be added to deal with the channel differently.
DataChannelHander - Runtime counterpart for DataChannels each Channel Type will have a handler that uses the data definition to manager the channel data accordingly.
DataChannelDefinitions - Asset class containing one or more Data Channel.
DataChannelManager - Manger class contianing and providing access to all currently loaded Data Channels and their Handlers.
DataChannelAccessor - Temporary initial BP API allowing BPs to read and write to Data Channels.
Data Channel Global - Initial simple Data Channel Type. Stores all data globally.
Data Interface Data Channel Read - New DI that allows Niagara Systems to read data from a Data Channel.
Data Interface Data Channel Write - New DI that allows Niagara Systems to write data toi a Data Channel.
Data Interface Data Channel Spawn - Specialization of the Read DI which allows for easy spwaning based on the contents of a Data Channel.
Data Channels can be enabled/disabled via FX.Niagara.DataChannels.Enabled = 0.
Initially this defaults to off.
Misc:
- New DI node action providers to enable actions on the Data Channel DI nodes.
- Details customized reference class for data channels that avoids any typing the available channel names etc.
- DIs now have a post compile step that can be used to cache of certain data at compile time.
- NiagaraDataInterfaceUtilities now has an optional SearchOptions parameter that allows us to include "internal" DIs. This is required to support the above PostCompile step.
- Niagara Type Definitions now optionally allow LWC types, previously any LWC types would be auto converted to SWC on load.
- Asset Registry now tracks SWC Sim types as we would get duplicated entires in several places of the UI due to confusion between LWC and SWC types.
#jira UE-153996
#rb Stu.Mckenna, Rob.Krajcarski, Michael.Galetzka
#preflight 63c91387ac35a0e9da6adde0
[CL 23773845 by simon tovey in ue5-main branch]
Change consist of only forward declaration and additional includes
#preflight 63789c1de30d438849c48188
#rb none
[CL 23218412 by henrik karlsson in ue5-main branch]
-Cleans up some of the data written into the payload (removing compile times & writing out zeroes for unneeded non-determinstic pointers)
-Incorporates the AssetPath of the script to the DDC key to prevent identical scripts from sharing the same DDC as we still have some data in the DDC value (node guis & emitter names, ..)
#rb stu.mckenna
#jira none
#preflight 63752bdd32484253058adae3
[CL 23161488 by rob krajcarski in ue5-main branch]
Fixed include paths to be relative to the private or public folders.
Hid or removed includes that reached into other private module folders.
Updated PublicInclude paths when necessary.
#jira
#preflight 631a717cec45fbf3d74d4ba7
[CL 21916033 by bryan sefcik in ue5-main branch]
- new single, multi and AVX path
- internal pointer caching
- x64 instruction minimization
- new combined instructions
- optimized memory cache
- NEON math changes
#rb: rob.krajcarski
#preflight: 630e190b556fc14dce6c88c9
[CL 21704582 by shawn mcgrath in ue5-main branch]
-introduces a new cvar (fx.NiagaraScript.StripByteCodeOnLoad) which can be used to strip out one of the byte codes, saving memory, -1 -> strips experimental, 1 -> strips legacy
-fixes identification of whether an Inputhandle
#jira none
#rb stu.mckenna
#preflight 62f677f9f3107c023c06e84e
[CL 21359671 by rob krajcarski in ue5-main branch]
Headers are updated to contain any missing #includes needed to compile and #includes are sorted. Nothing is removed.
#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira
#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf
[CL 21181076 by Bryan sefcik in ue5-main branch]
Turned new VM back on and bumped the Niagara_LatestScriptCompileVersion. #JIRA UE-147838 #preflight 624c47478e5ae00f0ab7e7f4 #rb rob.krajcarski
[CL 19627043 by shawn mcgrath in ue5-main branch]