Announcement

Collapse
No announcement yet.

UE4 to Spout Plugin

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [TOOL] 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.
    https://github.com/Allar/UE4ToSpout

    Some guys in the VJ community are making videos on how to use it and things, so join them over at https://www.facebook.com/groups/vjunionglobal/?fref=nf
    Last edited by Allar; 10-30-2015, 06:55 AM.

  • #2
    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

    Comment


    • #3
      thats awesome! thanks man!

      Comment


      • #4
        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:

        Code:
        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:

        Code:
        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\taskgraphinterfaces.h:779]
        UE4Editor_Core!FTaskThread::ProcessTasks() [d:\ue49source\engine\source\runtime\core\private\async\taskgraph.cpp:539]
        UE4Editor_Core!FTaskThread::ProcessTasksUntilQuit() [d:\ue49source\engine\source\runtime\core\private\async\taskgraph.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]

        Comment


        • #5
          Oooooook major facepalm for me: forgot to activate the plugin

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

          Code:
          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\taskgraphinterfaces.h:779]
          UE4Editor_Core!FTaskThread::ProcessTasks() [d:\ue49source\engine\source\runtime\core\private\async\taskgraph.cpp:539]
          UE4Editor_Core!FTaskThread::ProcessTasksUntilQuit() [d:\ue49source\engine\source\runtime\core\private\async\taskgraph.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]

          Comment


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

            Comment


            • #7
              Can you give some background on how you did it?

              Comment


              • #8
                Hi, How I send TextureRenderTarget2D?? I trying send more in my receiver only Black Screen...

                Help Please....

                Comment


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

                  i vote for it !
                  Thx Allar

                  Comment


                  • #10
                    this is huge

                    Comment


                    • #11
                      does this still work?

                      Comment


                      • #12
                        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

                        Comment


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

                          https://zimadev.wordpress.com/2016/1...d-grand-vj-xt/

                          Comment

                          Working...
                          X