Unreal Plugin Control
Controlling The Ross Voyager Plugins With UX
Control of Voyager is handled by Lucid. Here’s how:
A Lucid Controller Blueprint In Your Level
Add the appropriate UX Controller Blueprint to your level (you’ll need one per graphic)
You need to give it an “ID” - this how you will reference the graphic from UX
As with the Preview Controller, set the “..Chart” property to the graphic instance you want to automate
Make sure you have UX running (we’re assuming you already have UX hooked up to your Voyager renderer), and hit play to switch to game mode
A Lucid Layout
In UX you’ll probably want a new Layout for your chart control, so go ahead and make one. You’ll need an Event panel and a Logic panel, so add those to your new layout
Now we need an Event for each interaction, so make these:
A “Set Data” event to push new data to the UE Blueprint
An “Animate” event to bring the graphic in, or refresh the data for an existing graphic
A “Animate Out” event to animate the graphic out
Now we’ll need a Logic Node to hook your data and your events to the UX Controller Blueprint in UE, so make one (you’ll need one per graphic instance)
Let’s start with passing your data to the plugin
Add a text file data source, point it at a suitable JSON file (we’ll come to hooking up to DataLinq in a while), and set it to poll every second
Now add a Renderer Logic Node. Point it to your Voyager instance, and the “_Data” attribute of the UX Controller Blueprint (based in the “ID” we set earlier)
Link the Content of the Text File node to the string input of the Renderer Logic node
Now add a UX Event Trigger linked to the “Set Data” event you made earlier, and link it to a new Renderer Logic node that attaches to the graphic’s “SetData” action, and set the Index to 1
That part’s done. The “Set Data” event will now send the JSON in the text file to the UE chart
Add a Lucid Event Trigger linked to the “Animate” event, and join it to a new Renderer Login node that points to the graphic’s “Animate” action. Again set the Index to 1.
Add one last Event Trigger linked to the “Animate out” event, and join it to a Renderer Login node that points to the graphic’s “AnimateOut” action. Don’t forget to set the Index to 1.
Here’s a quick video that puts all the pieces together:
Ignition via the Main Controller
From the Idonix section in the “Place Actors” tab, drag the main controller into your level. It can be positioned anywhere because it won’t be visible in play mode.
Add and position a Cine Camera Actor in your level for every plugin and preview position you want available
With the Main Controller plugin selected in the world outliner, from the configuration editor add each Idonix plugin to the Graphics list and give each a sensible name (this will be used in the main controller json data to identify that plugin). Add the preview cameras to your Main Controller configuration and give them sensible names too.
The Main Controller needs to point to a url that delivers a JSON file that choreographs all the JSON data required for each plugin in your level. If using Ignition UE Charting this is done for you - the urls you need to point to will be provided in your Ignition client.
On your preview engine you need to set up your level to respond to the Main Controller’s “On Camera Change Requested Dynamic” Event. This tells your level which camera should be used for previewing. An example of how this can be achieved is by creating a custom event in your level blueprint that gets bound on BeginPlay:
* It is recommended if you are using a preview engine to configure your level differently to your live engine(s) - the Main Controller should point to a preview version of the JSON files, and the camera switching should only happen on your preview engine.