nDisplay with Multi-User Sessions
During class this week, my team decided to shelve the two-display idea for the exhibit. We decided that while it would be a good feature to have, it's not a part of the core of the performance and we'd like to focus on other parts of the exhibit as the finals week nears.
However, I wanted to try one more idea with nDisplay before giving up because it was going to bother me so much if I didn't see it working. Also, I personally wanted to gain a bit more experience with nDisplay configurations.
My idea was to use two different machines to control two different displays. This is normally how LED screens are set up anyway, and this way, each machine can focus on rendering only one or two screens. Different machines will still use the same project and setup. They will be communicating with each other over the network with what Unreal calls "Multi-User Sessions". I used the handy Unreal documentation to set up the session.
Multi-User Session
- Activate the "Multi-User Editing" plugin. While editing the project, make sure the project is only open on one of the machines. Enable the plugin from Edit > Plugins.
- Set up the project on multiple computers. The computers can either have the exact same copy of the project or they can access the same Unreal project folder through a network. In my case, I connected my laptop to the URBN 246 network and mapped the network drive where the original project exists.
- Start a server and a session. After the plugin is enabled, you can open the "Multi-User Browser" window from a button on top of the viewport. On the main computer, launch the multi-user server and then create a session with the desired name.
- Join the session. Open the multi-user browser on the remaining computers to join the existing session. If all machines are connected to the same network properly, the existing session should populate automatically.
Because the switchboard creates a new multi-user session every time it's launched, I disconnected both machines from the session and ended the server. I also made sure to close the Unreal project on my laptop so I could edit it for the next steps.
nDisplay Configuration
Using two different machines requires a new configuration for nDisplay. Instead of creating one from scratch, I decided to duplicate my existing configuration to make the necessary changes.
Since the second screen was connected to my laptop and not the main computer, I needed to create a new host in nDisplay. This automatically created a new node and a viewport as well. The most important part here is to type in the correct IP address for the new host. I made sure to check my laptop's IP from the Command Prompt after it connected to the network.
For the rest of the settings, I set the resolution of my laptop and positioned the viewport as needed.
Switchboard and Listener
When all changes to the project were made as needed, I launched Switchboard on the main computer and launched Switchboard Listener on both. The Listener ensures that my launch command on the main computer will be sent across all machines.
On Switchboard, I added my computer as a new nDisplay device, and the correct IP address populated automatically.
(Switchboard config with Node_0 as the main computer and Node_1 as the laptop.)
When I connected both machines and tried to launch nDisplay for the first time, I came across an error that the laptop was not able to connect to Unreal Engine. After looking through the Switchboard settings, I realized this was because the path to the engine on my laptop was not correct. Typing the correct path quickly fixed this issue. While the settings were open, I also made sure that the IP address for the location where the Switchboard was launched was correct.
The next time I launched nDisplay, both screens went black (good sign!) but then immediately crashed (bad sign!!!). I'm not sure what was the exact issue but I realized that 1) Switchboard wasn't connected to a Multi-User Session properly and 2) the IP address of the first host in the nDisplay configuration inside Unreal Engine wasn't the same as the one in Switchboard settings.
(Switchboard connected to multi-user server correctly.)
After fixing those, I launched nDisplay again. This time, the screens went black again (good sign!) but unfortunately, both of them stayed black for a long time (bad sign...). When I checked Switchboard, I saw that nDisplay launch had failed on both machines :(
Looking through the logs, I found this error before nDisplay quit.
I'm not sure why this error would show up since the nDisplay config doesn't have any changes that need to be written. But just in case, I closed the Unreal project on the main computer and tried launching nDisplay again.
This time, nDisplay opened correctly on the projections! However, my laptop was still stuck on a black screen. I tried changing some other settings and launching nDisplay a few more times but I couldn't figure out the issue at the end of the day.
I think I'll keep trying to figure out how to open nDisplay correctly on multiple machines in the future, but for the sake of time and focusing on our exhibition, I will be shelving the idea for now.
-----
Update: I tried the same setup with different machines with Professor Nick in the studio. He came across the same issue as I did. We couldn't figure out why before class started. If I can't solve the issue in the next few weeks, we'll try again in Spring.
Comments
Post a Comment