VR舞台灯光是一套旨在尽可能多地在VRChat中模拟专业舞台灯光的着色器、脚本和模型集合。
VR舞台灯光是一个为期一年的项目,最初是为了研究和开发一种高效可靠的方式,将灯光数据(包括DMX512)发送到VRChat。它已经发展成为一套资产包,可以以各种高效的方式带来优质的灯光效果。
这种高效性是通过一套标准化的自定义着色器实现的,这些着色器旨在避免诸如实时Unity灯光等因素,并使用诸如GPU实例化和批处理等节省成本的措施。
获取VPM包 @ VPM.VRSL.DEV
在VRChat的CLUB ORION现场体验所有这些系统
加入我们Discord上不断增长的VRSL社区 @ VRSL.DEV
查看ORION音乐节使用VRSL的示例(点击下方图片)!:
重要提示
- 这些系统是为VRChat的PC世界构建设计的。虽然理论上一些着色器可以用于虚拟形象,但它们主要是设计用于放置在PC世界中的。
- 该系统仍在开发中,计划随着更多VRChat功能的发布提供长期支持。计划中的功能包括OSC支持和Quest就绪的替代方案。
- 有关完整文档,请参阅GitHub Wiki。
设置
要求
- Unity 2019.4
- VRChat SDK3 for Worlds
- UdonSharp
- USharp视频播放器
- PostProcessing Stack V2(Unity包管理器)
- AudioLink v2.7+(完整版)
- 推荐:开放广播软件(或您选择的流媒体软件)
- 推荐:VRSL网格节点(用于DMX控制)
- 推荐:至少一个额外的支持16:9分辨率的屏幕。
安装
请参阅Wiki上的项目设置页面。
关于VRSL
通过视频Artnet网格节点的DMX
VRSL的核心是能够传输包含在视频流中的DMX数据。采用这种方式是因为它是实现以下目标的最佳方式:
- 让同一世界不同实例中的所有玩家保持同步。
- 允许给定世界显示任何用户希望的数据。
- 允许进行现场表演。
这是本项目的主要系统。在Unity中,VRSL可以将从VRChat播放器视频中读取的数据转换为照明系统可以读取的DMX数据。 该系统95%由着色器驱动,包括从屏幕读取像素的实际方法。另外5%用于启用着色器的GPU实例化和某些属性。当禁用这些着色器的DMX支持时,还提供基本的"RAW" Udon支持。
这个系统的吸引力在于它允许任何支持Artnet的软件或硬件实时控制VRSL灯光,通过完全硬件加速的计算为最终用户提供近乎无与伦比的性能。
这个仓库附带一个示例录制视频,展示了示例场景中灯光的运作以及它们反应的网格系统。该视频放置在一个示例场景中,其中相同的灯光设置为实时重新反应视频,模仿示例视频中显示的灯光动作。
获取Artnet网格节点
虽然VRSL的灯光和着色器是开源的,但Artnet网格节点不是。
购买一份 VR舞台灯光网格节点将有助于网格节点和VRSL框架的开发!
当VRChat通过Udon正式支持时,这个网格系统还包括OSC和MIDI输出。
您可以在这里购买,您的支持将不胜感激!<3
它不是AudioLink使用所必需的。
本地UI面板
还包含一个可以控制不同照明着色器强度的UI面板。将这个面板放入您的世界,允许用户本地控制每个灯光方面的亮度,或同时控制所有灯光。它还包括一个用于泛光强度的滑块和一个预制的后处理体积。
通过AudioLink的音频反应
这些着色器的一个变体支持llealloo的AudioLink。
这些着色器的强度将对不同频率的音频做出反应。它们使用AudioLink的着色器实现,以最小化开销。还有基本的"RAW" Udon支持,与AudioLink一起启用,包括GPU实例化属性和移动目标跟踪。
包含一个示例场景,展示了不同类型的灯光对音频不同频带的反应。
您可以在这里获取AudioLink并了解更多信息!
局限性
- 这个系统需要使用实时流,这意味着对于实时设置会有一些不可避免的延迟。
- 压缩伪影可能导致移动数据有些混乱。VRSL努力补偿这种混乱,但确实使移动变得更慢。
- 灯具有能力设置控制平滑强度,但在大多数情况下建议将平滑保持在最大值(即0)。
- 如果需要更快的移动,建议以小幅度突发进行,并在可能时迅速将平滑恢复到最大值。
维基
关于VRSL的更多信息和许多有用的教程可以在这个仓库的维基上找到。
支持
如果您想支持这个项目,您可以通过Patreon进行支持,在那里您还可以获得一些VRSL独家内容!~
您还可以加入官方的VRSL Discord!