Search
Start typing to search...

Passing data from Aximmetry DE to Unreal Engine

Author:

Introduction

In this document, we will describe how to send data from Aximmetry DE to Unreal Engine.

We can pass an arbitrary type of data from Aximmetry DE to the Unreal Engine using the Get Aximmetry nodes, which can be added to the project's Level Blueprint.
This is useful, for example, if you want to move objects, set light intensity, or control models, textures, and lights of the Unreal scene from Aximmetry DE.

Level Blueprint

All of the below operations are made in Unreal Editor's Level Blueprint.
To open the Level Blueprint, click the Blueprints icon in the editor and select Open Level Blueprint

When the blueprint is opened, you can right-click in the empty area of the blueprint to open Actions.

Get Aximmetry nodes

Place a Get Aximmetry TYPE node in your project-level blueprint.

TYPE can be any of the supported types:

  • Color
  • Integer
  • Logical
  • Scalar
  • Text
  • Transformation
  • Trigger
  • Vector
  • Video

The node will appear in Aximmetry as a pin on the Unreal Project module.

In the example below we have added a Get Aximmetry Color node to the UE project blueprint and named it 'Color from Aximmetry'.

The pin name and the default value are determined by the Name and Default Value parameters of the Get Aximmetry node.
The node also has an Order Index parameter which determines the pin order in Aximmetry. The pins are ordered in increasing Order Index order, but the value 0 is an exception. Pins with 0 as their Order Index value will go to the end of the list.
Both Name, Default Value, and Order Index must be static (i.e. you cannot use the outputs of other nodes as their input).

The output of these nodes is updated per frame.

Useful Examples

Get Aximmetry Trigger

  • Create the following nodes: Get Aximmetry Trigger, Event BeginPlay, Bind Event to Trigger, Custom Event (this is named "Trigger_Event_0" in our example). (If you can't find the Bind Event to Trigger node, turn off Context Sensitive search in the right-click menu.)
  • Make the following connections (see screenshot below):
    • Event BeginPlay: Exec (white triangle) → Bind Event to Trigger: Exec
    • Get Aximmetry Trigger: Return Value → Bind Event to Trigger: Target
    • Custom Event: (red square) → Bind Event to Trigger: Event

howtode image2.jpg

  • Use the Exec output of the Custom Event node to execute the desired action.

Get Aximmetry Video

The following example applies a video received from Aximmetry DE onto a plane in the Unreal Scene.

  • Create a base material (This material will serve as a base for the dynamic material we will apply to the plane. For more information on dynamic materials refer to the Unreal Engine documentation.
    • Create a new material (Right-click in the Content Browser / Create Basic Asset / Material)

      (We named ours 'VirtualDisplay')
    • Open this material in the material editor by double-clicking on it in the content browser.

    • On the left, in the Details panel, change the Shading Model of the material from Default Lit to Unlit
    • Add a Texture / TextureSampleParameter2D node from the right-click menu. The name of this parameter can be anything you want, but keep in mind that we will have to use the exact same name in another node later.
    • Connect the “RGB” output of the texture parameter to the “Emissive Color” input of the material
    • You can customize this material further to achieve the effect you want but this topic is outside the scope of this document
    • Save the material
  • Create a reference to your target object (e.g. a Billboard by dragging it into the Level Blueprint from the World Outliner (Actor Reference)
  • Add the following nodes to the blueprint:
    • Event BeginPlay
    • Create Dynamic Material Instance
    • Set Material (make sure that you add the one with the Primitive component target and not the Volumetric one). It is the indented one, under Rendering / Material.

    • Event Tick
    • Get Aximmetry Video
    • Set Texture Parameter Value
  • Connect the following pins (see screenshot below):
    • Event BeginPlay: Exec (out) → Create Dynamic Material Instance: Exec (in)
    • Create Dynamic Material Instance: Exec (out) → Set Material: Exec (in)
    • Create Dynamic Material Instance: Return Value → Set Material: Material
    • Actor Reference (out) → Set Material: Target (This will automatically add a Get Static Mesh Component node.)
    • Event Tick: Exec (out) → Get Aximmetry Video: Exec (in)
    • Get Aximmetry Video: Exec (out) → Set Texture Parameter Value: Exec (in)
    • Get Aximmetry Video: Return Value → Set Texture Parameter Value: Value
    • Create Dynamic Material Instance: Return Value → Set Texture Parameter Value: Target
  • Set up the node inputs:
    • Create Dynamic Material Instance
      • Parent: Select the parent material you created in the first step
    • Get Aximmetry Video
      • Name: This will be the name of the video input pin in Aximmetry
    • Set Texture Parameter Value:
      • Parameter Name: This must exactly match the name of the TextureSampleParameter2D parameter of the parent material you created in the first step.

The Get Aximmetry Video blueprint node has a pin called S RGB that controls whether the received video is treated as sRGB or linear.

sRGB should be enabled for textures that contain color information (camera footage etc. that will be rendered into the scene) and it should be disabled for textures used for numerical calculations in shaders (normal maps, masks, etc..)
NOTE: This option only affects 8-bit textures. Unreal treats all non-8-bit and floating-point textures as linear.

The Get Aximmetry Video itself doesn’t do any gamma correction. Its output depends on the settings and pixel format of the texture or render target you connect to it.

The default output is always treated as sRGB regardless of pixel format.

Get Aximmetry Transformation

During your work with Unreal Editor for Aximmetry and Aximmetry DE you might want to move objects in the scene, but you find it complicated going back to UE, moving objects, re-cooking the scene then switching to Aximmetry DE, etc… In this section, you will learn how to set up an existing object/actor in an Unreal Scene in Unreal Editor for Aximmetry to be able to move it in Aximmetry DE without going back and forth, and without re-cooking the scene.

Select the desired object you want to work with. Make sure it’s a moveable object. You can find this option in Transform in the object’s details.

Open the Blueprints menu, then select Open Level Blueprint.

Add an Event Tick node to the Blueprint. 

The Event Tick is a simple event that sends a signal (tick) every frame when playing the scene.

Now drag the object selected from the World Outliner and drop it into the Blueprint.

Now start pulling a binding from the output of this node. When you see the message “Place a new node” release the left mouse button.

You will get a search window. Type SetWorldTransform. You will need the one under Transformation.

2 new nodes will appear on the Blueprint already connected. The Static Mesh Component is a converter between the object (the Statue) and the SetWorldTransform node.

Add a GetAximmetryTransformation module.

Connect the GetAximmetryTransformation’s Return Value to SetWorldTransformation’s New Transform Pin.

The Name of GetAximmetryTransformation will be the name of the transformation pin in Aximmetry.

Connect the Event Tick’s output pin to the SetWorldTransform node’s input pin. The result looks like this.

Click Compile to save and compile the Blueprint.

After the Blueprint has been compiled, close that Level Blueprint window and cook the scene.

In the Aximmetry menu, click Cook Content for Windows.

You can close UE for now.

 In the Aximmetry Composer FLOW editor

You can connect your transformations to this pin, for example:

Move the object in a preview window/monitor


Note: Of course, all connections (exposing pins, connecting the unreal scene module to the proper camera compound, etc.) must be set up to see anything on the output. On this screenshot, we are not showing these connections.

Insert a Scene Node into the FLOW editor

Connect its World Transf (it is hidden by default - click the list button in the upper right corner of the node to reveal more pins) output to the Unreal Project module's pin you created in the Unreal Blueprint.

Enable Edit mode by choosing a preview window in the Edit / Edit Scene On menu (make sure the Preview output of the virtual cam module is connected to this output)

Select the Scene Node in the compound

Find more on the Edit Scene On feature here: Transformation Gizmo and Edit Scene Settings

Article content

Loading
Close
Loading spinner icon
1/10