UE4 to Spout Plugin

Another weird release by Allar today, UE4 to Spout. Sends a render target texture to Spout through the GPU. Currently works in OpenGL mode only.

Here is UE4 being sent to Resolume via Spout. 1920x1080, 60fps. The gif here is captured at 10fps (thanks gyazo)

I offer no support. This is not a hard thing to set up, but its also not easy.

Some guys in the VJ community are making videos on how to use it and things, so join them over at Redirecting...

Hey Allar,

Firstly, thank you so much for adding this! As a performance artist looking to leverage UE4 outside the conventional videogame context, I feel this is a very exciting development.

I know you stated you offer no support, but I was hoping you might be able to help clarify one of the Installation instructions you provided. In step 5, you state “Add a reference to SpoutPlugin in your Unreal Project Build file”. This is my first go at compiling UE4, so I’m a bit lost as to where to find the build file and how to reference the SpoutPlugin. Any tips you may be able to give would be greatly appreciated.

Thanks,
Los

thats awesome! thanks man!

Hi Allar,

same as L05, thanks a bunch for this! This could be a MAJOR hit for gamification experiences too.

I also read the line with you offering no support, but after five recompiles (Engine+project) I thought I’d test my luck.

I followed all of the steps to the best of my knowledge. I’m using version 4.9.2 from Github. Engine folders are merged, Spout compiled and .dll, .lib, and .h files placed where your .txt’s indicated. Step #5 in particular, I think consists in adding this:


PrivateDependencyModuleNames.AddRange(new string] { "SpoutPlugin" });

to MyProject.Build.cs file. I used the GenerateProjectFiles.bat and even the “Generate Project Visual Studio files” option of MyProject.uproject (Which is a C++ Project with starter content, by the way). I force OpenGL start with -opengl.

But when I open MyProject from the Project browser of the freshly compiled and opengl-executed UE4Editor.exe*, the resulting project has no “Spout” category or nodes in any kind of Blueprint. What am I doing wrong? Excuse my boldness at ignoring your “no support notice”, but I’d really be interested in getting this to work…

I think adding it as a Game plugin rather than an Engine plugin isn’t the solution either, right?

*It must be said that this error dump appears. Dunno if it could have any influence, as everything continues running without crashes:


Unknown exception - code 00000001 (first/second chance not available)

"Assertion failed: Context [File:D:\UE49Source\Engine\Source\Runtime\OpenGLDrv\Private\Windows\OpenGLWindows.cpp] [Line: 878] 
"

UE4Editor_Core!FDebug::AssertFailed() [d:\ue49source\engine\source\runtime\core\private\misc\outputdevice.cpp:354]
UE4Editor_OpenGLDrv!PlatformGetNewRenderQuery() [d:\ue49source\engine\source\runtime\opengldrv\private\windows\openglwindows.cpp:880]
UE4Editor_OpenGLDrv!FOpenGLBufferedGPUTiming::StartTiming() [d:\ue49source\engine\source\runtime\opengldrv\private\openglquery.cpp:413]
UE4Editor_OpenGLDrv!FOpenGLGPUProfiler::BeginFrame() [d:\ue49source\engine\source\runtime\opengldrv\private\opengldrv.cpp:119]
UE4Editor_RHI!FRHICommandList::BeginFrame() [d:\ue49source\engine\source\runtime\rhi\private\rhicommandlist.cpp:1210]
UE4Editor!TGraphTask<`FEngineLoop::Tick'::`10'::EURCMacro_BeginFrame>::ExecuteTask() [d:\ue49source\engine\source\runtime\core\public\async	askgraphinterfaces.h:779]
UE4Editor_Core!FTaskThread::ProcessTasks() [d:\ue49source\engine\source\runtime\core\private\async	askgraph.cpp:539]
UE4Editor_Core!FTaskThread::ProcessTasksUntilQuit() [d:\ue49source\engine\source\runtime\core\private\async	askgraph.cpp:340]
UE4Editor_RenderCore!RenderingThreadMain() [d:\ue49source\engine\source\runtime\rendercore\private\renderingthread.cpp:310]
UE4Editor_RenderCore!FRenderingThread::Run() [d:\ue49source\engine\source\runtime\rendercore\private\renderingthread.cpp:411]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\ue49source\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:74]

Oooooook major facepalm for me: forgot to activate the plugin :stuck_out_tongue:

Keep getting this though (with nvidia driver 358.50, win10 x64):


Unknown exception - code 00000001 (first/second chance not available)

"Assertion failed: ContextType >= 0 [File:D:\UE49Source\Engine\Source\Runtime\OpenGLDrv\Private\OpenGLDevice.cpp] [Line: 124] 
"

UE4Editor_Core!FDebug::AssertFailed() [d:\ue49source\engine\source\runtime\core\private\misc\outputdevice.cpp:354]
UE4Editor_OpenGLDrv!FOpenGLDynamicRHI::GetContextStateForCurrentContext() [d:\ue49source\engine\source\runtime\opengldrv\private\opengldevice.cpp:125]
UE4Editor_OpenGLDrv!CachedBindPixelUnpackBuffer() [d:\ue49source\engine\source\runtime\opengldrv\private\opengldevice.cpp:99]
UE4Editor_OpenGLDrv!TOpenGLBuffer<FOpenGLBasePixelBuffer,35052,&CachedBindPixelUnpackBuffer>::TOpenGLBuffer<FOpenGLBasePixelBuffer,35052,&CachedBindPixelUnpackBuffer>() [d:\ue49source\engine\source\runtime\opengldrv\public\openglresources.h:137]
UE4Editor_OpenGLDrv!TOpenGLTexture<FOpenGLBaseTexture2D>::Lock() [d:\ue49source\engine\source\runtime\opengldrv\private\opengltexture.cpp:762]
UE4Editor_SpoutPlugin!FSpoutPlugin::Tick() [d:\ue49source\engine\plugins\runtime\spoutplugin\source\spoutplugin\private\spoutplugin.cpp:175]
UE4Editor_RenderCore!TickRenderingTickables() [d:\ue49source\engine\source\runtime\rendercore\private\renderingthread.cpp:227]
UE4Editor_RenderCore!TGraphTask<`FRenderingThreadTickHeartbeat::Run'::`7'::EURCMacro_HeartbeatTickTickables>::ExecuteTask() [d:\ue49source\engine\source\runtime\core\public\async	askgraphinterfaces.h:779]
UE4Editor_Core!FTaskThread::ProcessTasks() [d:\ue49source\engine\source\runtime\core\private\async	askgraph.cpp:539]
UE4Editor_Core!FTaskThread::ProcessTasksUntilQuit() [d:\ue49source\engine\source\runtime\core\private\async	askgraph.cpp:340]
UE4Editor_RenderCore!RenderingThreadMain() [d:\ue49source\engine\source\runtime\rendercore\private\renderingthread.cpp:310]
UE4Editor_RenderCore!FRenderingThread::Run() [d:\ue49source\engine\source\runtime\rendercore\private\renderingthread.cpp:411]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\ue49source\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:74]

I can now confirm that this still works and compiles with UE 4.10 and Resolume 5.

Can you give some background on how you did it?

Hi, How I send TextureRenderTarget2D?? I trying send more in my receiver only Black Screen…

Help Please…

WOW ! Sooo much possibility with this. Any chance to see SPOUT integrate in UE ?

i vote for it !
Thx Allar

this is huge

does this still work?

Hi Allar,

Is there any news of a release coming out as I believe this plugin does not work on the current version of unreal?

Thanks

Hi all!
I’ve created a blog post about utilizing Spout for Video Mapping in Unreal Engine 4. Hope it helps.

Hi Everyone, I got Zima’s tutorial to work fine in 14.18.3 But I wanted to have 6 sends, and the original Example Spout scene I can’t get to work. Any tips on setting up multiple senders to Spout would be great. Thank you.

Hi everyone,

Just wanted to let you guys know that in Lightact media server, we’ve enabled integration with Unreal Engine. In short, what it allows you to do is to share textures and variables between Lightact and UE. Once you get the UE texture back to Lightact you can use all the media server functionalities available.

I would be very happy if some of you guys can give it a spin and let us know how can we improve it.

You can download it here:

There is a sample project as well, which you can download here:
https://lightact-systems.com/product/unreal-engine-integration/

And a bunch of video tutorials here:

Hey! I am loving the promise of Spout UE plugin but I cannot get it to work for me. Frankly I can’t seem to get Spout working on my system at all with the test utilities and Resolume on its own.
Is anyone familiar with what sort of troubleshooting to be looking at?
Im running a Razer Blade laptop with RTX2060
I’m wondering if it’s a DirectX issue, or running in 32bit etc? Any advice??

Thanks and all the best to everyone’s creative endeavours!