DMX in Unreal Engine

Though I dived into Unreal DMX setup without confirming if my lights were properly connected, I eventually figured out how to get them to work through the engine!

My main sources were the Unreal documentation and this specific tutorial on Youtube. There are many tutorials that show cool DMX stuff that can be done in Unreal, but I've realized that only a limited few actually show how to pipe in the equipment into Unreal Engine or set up the network connections. Here are the steps I followed to get the lighting to work with Unreal:
  1. Creating a project and enabling plug-ins. I chose to create a DMX template project, which already came with all necessary plugins enabled.



  2. Changing project settings. I created a new "Output Port" and adjusted the settings based on the hardware and network I used. (The first 3 ports are the pre-existing ones from the project template.)
    - Net3 Gateway uses sACN protocol instead of Art-Net.
    - "Network Interface IP Address" is the main computer with Unreal running.
    - "Destination IP Address" is the Gateway box with DMX outputs.
    - "Local Universe and Amount of Universes" are set to 1 because I am using a single light set to universe 1.
    - "DMX Send Rate" should exactly match the setting of the network box. However, I couldn't find this setting in the documentation or Concert software, so I left it at 30 (which worked well).



  3. Creating DMX Library. I created a DMX Library asset in my project and added a new fixture. I named the fixture as needed and created one mode. I'm still not 100% sure how modes work, so I left it at default settings until further research.


    Next, I added 5 functions to my light. The number of functions indicates how many channels the light does/can have and what those channels are. I checked the manual for my light fixture for the minimum number of channels and their names, which were: Red, Green, Blue, UV, and dimmer. Because there wasn't a "UV" option in the dropdown attribute menu, I named channel 4 "cyan". The names are just for visual understanding and do not actually matter.


  4. Creating fixture patch. Within the DMX Library, you can also create a fixture patch. Here, the fixtures are added to the desired patch and mapped to the correct universe and starting channel. In the following example, I've added my single light to the patch and mapped it to the first channel. This means that the data going to Channel 1 will control the Red value of the light, Channel 2 for Green, Channel 3 for Blue, etc. The number of channels in the patch is dependent on the number of attributes created in the previous step.


  5. Blueprint for light control. To test if my setup thus far has been successful, I followed the tutorial on a quick blueprint test. In short, this blueprint creates a point light in the scene and assigns it random colors at every event tick. Then the RGB values of the point light are separated into individual channels and fed into the first 3 channels of the DMX fixture.


  6. Checking DMX activity. As first runs usually go, my setup didn't work right away. The blueprint seemed to have a data flow but my DMX light was still dark. After double-checking my cables on equipment and IP settings in Unreal, I found 2 windows that help to monitor DMX data.
    "DMX Channel Monitor" opens up a window similar to Fixture Patch and indicates whether certain channels are being used or not, as well as the data that is being sent over the channels.
    "DMX Activity Monitor" has the same purpose, except it can monitor multiple universes and only show active channels.


  7. Going over equipment. Since my light still wouldn't turn on despite Unreal Engine consistently sending data out to various DMX channels, I decided to go over the hardware once more. And to no one's surprise, the light had died on me while setting up the project!
    I couldn't figure out the issue with this specific DMX light despite unplugging and replugging it to power and network multiple times, so I simply changed to a whole new fixture.
    The new light was the exact same brand and model as the previous, with the only exception of being set to start at channel 100. I simply plugged it in and changed my Fixture Patch in UE to start at 100 instead of 1.
  8. Moment of truth! With a little bit more fiddling around on the project as needed, I finally got the light to work!
    As seen in the following video, Unreal sends different channel values to DMX Output based on the random colored point light in the scene. Over the network, the ADJ light receives the information and changes the color of the light based on data from Unreal!

Comments

Popular posts from this blog

Final Tests on CRMX

Pixel Mapping