在Unity使用Spout协议

最近接触到一个很cool的酒吧项目,需要把Unity互动程序与VJ经常使用到的Resolume媒体播控引擎结合到一块,如何结合呢?简单点来说就是需要把Unity的画面传输给Resolume,那么就需要使用到Spout协议实现我们的目的了,以下内容记录实现的过程

关于Spout协议说明

Spout能够利用 显卡 ,使您能够在 Windows应用程序 之间以接近零的延迟或开销发送实时视频。使用Spout,您可以在Resolume、Max、Processing、MadMapper、TouchDesigner等应用程序之间发送视频。在Processing中创建图形,在Resolume中混合它们,然后使用Mad Mapper投影映射它们。在您使用TouchDesigner、Max或Unity时加入一些交互式内容。目前支持以下程序互相输送画面:

工具/框架版本

工具/框架版本
Unity2020.2.6
Resolume5.0.1
KlakSpout2.0.3

下载Resolume媒体播控引擎

Resolume Arena 5.0.1 Win

  • 百度网盘链接,提取码: d0n0
  • 请根据以下文件路径 Resolume Arena 5.0.1 Win/Crack/crack.txt 的内容破解Resolume
    (仅学习使用,请支持并使用正版)

Unity配置

该程序使用的是Keijiro Takahashi提供unity插件——KlakSpout,该插件针对unity引擎对spout协议进行了优化,能让我们更便利地在unity上使用spout协议

  1. 打开项目的 manifest.json ,在文本里面添加以下字段

    {
    + "scopedRegistries": [
    + {
    + "name": "Keijiro",
    + "url": "https://registry.npmjs.com",
    + "scopes": [ "jp.keijiro" ]
    + }
    + ],
    "dependencies": {
    + "jp.keijiro.klak.spout": "2.0.3",
    ...
    }
    }
  2. 出现下图则表示成功导入插件

  1. 在场景内添加组件 Spout Sender
  1. 选择需要传输的画面,内置提供三种Capture Method
    • Camera
    • Game View
    • Texture

选择不同的Capture Method需要设置不同的资源

Resolume配置

  1. 新建一个新的工程
    • Composition --> New
  2. 设置合适的屏幕分辨率
    • Composition --> Settings --> Size --> Apply
  3. 拖拽Spout Sender到Layer和Column内
    • Sources --> Spout --> Spout Sender
  4. 回到Unity并运行Unity,Output Monitor就会出现相对应的画面

最终效果

  • 还可以利用Resolume预设好的后期特效做出扰流的效果

后记

欢迎留言或使用邮箱跟我一起探讨与勘误文章内容