Skip to main content

视频播放器,笔和其他预制体

我计划为 VRChat 的 特定预制件 设立一个单独的简短课程,我知道很多人希望在他们的世界中使用这些预制件。

在 VRCPrefabs 数据库中有许多 VRChat 预制件可供选择。需要注意的是,我们的 SDK3 世界中无法使用SDK2 预制件,只有 Udon 预制件可以正常运作。

许多预制件需要使用 UdonSharp 才能正常工作;这将会将 C# 代码编译为 Udon。您不必了解其工作原理,目前世界项目中默认配备有 UdonSharp 组件。

视频播放器

视频播放器是小世界中最受欢迎的功能之一。其中最有名的是 Merlin 的 UdonSharp 播放器(我们将使用它),但还有一些其他播放器,如 VRCUdonProTV,它们与 Quest 兼容。我们需要在 Github 页面的发布部分获取 UsharpVideo 的 unitypackage。在 UsharpVideo 文件夹中应该有一个 videoplayer 预制件,将其拖动到场景中,解压缩,完成!

您可以更改播放器的某些设置,例如是否将控制权限锁定到世界的主控器或是否允许任何人粘贴视频链接。要更改 UI 样式,可以通过转到预制件中的 ControlsUI 游戏对象,单击样式文件并在文件夹中选择不同的样式,或者自行制作。

带有 Udon 元素的预制件可能会产生冲突,所以最好在场景中解压缩您的预制件以确保它们正常工作。可以在层次结构中右键单击预制件并选择解压缩预制件;这将使您的对象不再是预制件。

Qvpen

另一个受欢迎的预制件是 Qvpen。您可以从 他们在 Booth 上的页面 获取这些内容。导入后,将预制件拖动到场景中即可。

镜子

如果您想要一个没有天空盒的 低质量(Low Quality)镜子,可以使用 VRCPlayersOnlyMirror ,本商品带有预设 UI。

着色器

Unity 标准着色器并不是非常出色,但幸运的是,有社区创造了一些更直观且功能丰富的替代品。其中一些包括 z3y 的着色器Silent 的Filimented,但我们选择使用 Mochie Standard,因为它易于安装,并能告诉您是否要将灰度纹理设置为sRGB,并在需要时提供自动修复按钮。该着色器使用行业标准的粗糙度贴图代替平滑度贴图,并提供更大的控制力来调整高度贴图的视差贴图,包括其他许多功能。

许多世界创作者也有需求使用 水着色器,而 Mochie 的着色器包还附带了一个出色的水着色器。其他我推荐的针对 VR 的特定水着色器包括 Red_Sim 的水着色器、Silent 的 Clear Water 以及 Norbien 的水着色器等。需要注意的是,要使用折射效果,着色器必须使用 grabpass,这会在性能上产生较大的负担,并且在Quest上无法使用。许多水着色器还需要深度贴图,这需要场景中有实时光照和阴影。

VRWorldTooklit 中包含一个 DepthPass 预设,其性能影响最小。

就我个人而言,我认为 Red_Sim 的散射效果最好(Mochie的水散射看起来太像voronoi纹理),而 Norbien 的表现似乎更佳,也适用于Quest,并且无需实时光照即可生成深度贴图。

https://github.com/zulubo/SpecularProbes 可以生成出色的烘焙高光效果。它存在一些限制(例如,如果高光应该被遮挡,那么看起来不如实时高光效果好),但肯定会为一些场景和美学效果带来改善。

UdonSharp

对于那些有兴趣的人,如果您想将 Unity C# 脚本转换为 UdonSharp,通常并不是很困难。通常情况下,您只需要将命名空间从 MonoBehavior 更改为 UdonSharpBehavior,将其插入 Udon 组件中(UdonSharp 会自动填充其余部分),然后应该就可以正常工作了。您可以通过转到 Window>UdonSharp>Class Exposure Tree 来检查 UdonSharp 类的暴露树。如果您遇到问题或有更多疑问,请访问UdonSharp的 GitHub 页面链接的 Discord 服务器。

如果您计划编写 UdonSharp 脚本,我还建议您使用 UdonToolkit,它允许您为您的脚本创建自定义检查器(就像我在我的 Nova_Max 的 日夜循环预制件上所做的那样!)。这有助于使脚本不仅对您自己易用,而且对计划将其提供给他人的任何人都更易于理解。一些预设并非以 .unitypackage 格式提供,而是以包含 package.json 文件的 zip 文件格式。要导入这些文件,请打开包管理器,单击加号图标,然后点击 package.json 文件并打开它。