Introduction
This document explains how to transmit a keyed video from Aximmetry to vanilla Unreal Engine. This can be achieved by keying the video in Aximmetry, then utilizing NDI output in Aximmetry and NDI input in Unreal Engine.
While Aximmetry has native NDI support, Unreal Engine does not. Therefore, this tutorial employs the NDI IO Unreal plugin to handle the NDI signal within Unreal Engine.
NOTE: NDI I/O ports are limited to certain license types of Aximmetry, or available via rental. You can learn more about this on our Products page.
Setting Up Aximmetry
Creating the Output Device
An NDI Video Out device must be created to which the keyed image will be sent.
You can do this by following the steps presented here: Aximmetry NDI Output Setup
When setting up the Mode of your NDI stream, make sure your format is set to RGBA.
This allows for an alpha channel to be transmitted, which is required for the video to have transparency.
NOTE: In this document, the NDI stream will be called "AximmetryStream". Furthermore, Index #1 is assigned to the NDI video output. You can of course name the NDI stream to your liking, and choose any channel to output it.
Keying the Video Input
Once Aximmetry is running, create a new compound and make a simple flow for Chroma Keying:
NOTE: Example of a simple flow for Chroma Keying using [Common_Studio]:Compounds\Keyers\Keyer_Advanced_B.xcomp
Then, set up the keyer by selecting the Keyer_Advanced_B linked compound and changing its Pin Values:
NOTE: You can learn more about keying in this document: Keying
Receiving the Keyed Out Video in Unreal Engine
Installing the NDI IO Plugin to Your Unreal Engine Project
To receive the NDI video (output from Aximmetry) in Unreal Engine, you will need the NDI IO Unreal Engine plugin, which is part of the NDI Unreal Engine SDK.
You can download it from here: https://ndi.video/for-developers/ndi-unreal-engine-sdk/download/
Once it's downloaded and installed, you need to enable the NDI IO Plugin in your Unreal Engine project, by clicking the Edit menu and selecting Plugins, then searching for it:
After enabling the plugin, Unreal Engine will prompt you to restart it at the bottom of the window. Click "Restart Now":
Using the NDI IO Plugin to Receive the Keyed Out Video
Create an NDI Media Receiver asset by opening the Content Drawer, selecting a folder where you want to create it, and right-clicking in a free space in its contents. Then select Media→NDI Media Receiver:
When the asset is created, you will be automatically prompted to rename it. You can name it to anything:
NOTE: In the example above the asset is named "NDI_Media_Receiver".
This asset needs to know which NDI stream it should load. This can be achieved by opening the asset (by double-clicking on it) and setting its NDI Source in its Details tab:
NOTE: The first list is the PC names where the NDI streams are coming from, and in them, you can find all the NDI streams that the PC is outputting.
When the NDI source is selected, you can check if it loads by clicking Open at the top bar:
NOTE: It might take a couple of seconds to load the stream.
To be able to use the asset you need to save it by clicking the floppy icon at the top bar:
After saving, you can close the asset editor.
To use the stream in your scene, you need to drag and drop the NDI Media Receiver asset into the Editor:
This creates a MediaPlate actor with the NDI Media Receiver automatically assigned to its Media Source Asset element. This will be responsible for playing the NDI stream in the scene - it will be our "Billboard".
Place and scale it to your liking by using the transformation gizmos selectable at the top of the editor, or by changing the Transform values of the MediaPlate on its Details tab.
NOTE: It is recommended to keep the same scale ratio as the video output ratio in Aximmetry Composer. E.g. if you're outputting a 16:9 video, the MediaPlate's X:Y axis ratio should be 16:9 as well to avoid getting the image stretched.
If you enter play mode by clicking the Play button at the top of the editor, the NDI stream will be automatically loaded:
However, if you want the stream to be played in the editor itself, all you need to do is select MediaPlate and click Open on its Details tab:
NOTE: It might take a couple of seconds to load the stream.
NOTE: The NDI stream can only be used in one location - let it be the asset editor or Media Plate. If you want to use the same stream on multiple locations, you need to create multiple NDI Video Out devices and output them separately in Aximmetry Composer.