Skip to main content

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

我想我会为 VRChat 的特定预制件 dedicated 一个单独的简短课程,因为我知道很多人想在他们的世界里拥有它们。

可以在 VRCPrefabs 数据库中找到许多 VRChat 预制件。请注意,SDK2 预制件在我们的 SDK3 世界中不起作用,只有 Udon 预制件可以工作。

许多预制件需要 UdonSharp 才能正常工作;这将 C# 代码编译为 Udon。你不需要知道它是如何工作的,只需确保在导入需要它的 Udon 预制件之前导入它。

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

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

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

另一个受欢迎的预制件是 Qvpens。从他们在 Booth 上的页面获取这些内容,并确保它是 Udon 版本。导入后,将预制件拖动到场景中。
如果您想要一个没有天空盒的低质量镜像,可以使用 VRCPlayersOnlyMirror。它带有预先设置的 UI。

标准着色器不是非常好,但幸运的是,有社区创建的替代品,它们更直观且功能齐全。其中一些包括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可以制作出看起来不错的烘焙高光。它有一些限制(例如,如果高光应该是被遮挡的,看起来没有实时高光那么好),但是肯定有一些场景和美学效果会从中受益。

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

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