如何在通用渲染管道项目中添加 VR 支持

在通用渲染管道(URP)上开发 Unity 作品的一个优势是,只需对渲染设置做最小的改动,就能在各种平台上获得支持。您的项目可以在任何平台上运行,从移动设备到游戏机、个人电脑,甚至 VR。
对于那些没有开发过 VR 的人来说,要想知道从哪里开始可能会很困难。无论您是刚刚开始自己的项目,还是已经在其他平台上发布了现有的 URP 项目,我们都将为您详细介绍添加 VR 支持的步骤,以便让您的项目能在多个 VR 平台上运行,事半功倍。
每个 VR Unity 项目都需要XR 插件管理包。通过该软件包,您可以轻松地为想要构建的 VR 平台(从 Meta Quest 和 Magic Leap 到 PlayStation®VR2 (PS VR2))配置项目。
另一个有用的软件包是XR 交互(XRI)工具包。该软件包可提供实现大多数 VR 游戏中常见的移动选项(如瞬移、急转弯等)的预制件,从而减少设置时间。阅读本博客中有关 XRI 软件包提供的选项的更多信息。
要将这些软件包添加到项目中,请打开 "窗口 "菜单并单击 "软件包管理器"。在软件包管理器窗口中,点击 "软件包":在项目中 "下拉菜单展开选项,然后单击 "Unity 注册表 "选项,使软件包管理器列出所有可用软件包。
Unity 支持大量软件包,因此在 "软件包管理器 "窗口的搜索栏中输入 "xr",可以过滤列表,使其只显示 XR 特定的软件包。接下来,点击 XR 插件管理软件包,然后选择安装按钮将其添加到项目中。也可以按照 XRI 工具包的相同流程添加它。

接下来,让我们添加 XRI 团队提供的 "示例资产",以帮助您开始使用。单击包管理器中的 XR 交互工具包,然后单击包详细信息面板中的样本选项卡。然后,单击 "启动器资产 "旁边的 "导入 "按钮,添加可简化 VR 行为和输入操作设置的资产。

安装了这些软件包后,你的 VR 开发就成功了一大半。
接下来,您需要指定要针对哪些 VR 平台。为此,请打开 "项目设置 "并单击 "XR 插件管理 "选项卡(安装软件包时已包含该选项卡),查看可为项目选择的可用插件提供商列表。插件提供商是 VR 平台的另一个名称。选择一个选项,如 Oculus 或 Open XR,Unity 就会安装该平台专用的软件包。

某些 XR 平台使用 "构建设置 "中的 Windows、Mac 和 Linux 构建目标,但其他平台则在不同的目标上运行。例如,为 PS VR2 构建需要将构建目标切换到 PlayStation®5 (PS5),而其他目标则需要切换到 Android 或 iOS。确保在开发过程中切换到正确的构建目标,以便及早发现重要错误和警告。请记住,要为 PS5 开发游戏,您必须注册成为 PlayStation 开发人员。
每个 XR 插件都提供验证检查,以确保您的项目已正确配置为 XR 构建。要找到它们,请转到 "项目设置 "窗口,然后单击 "XR 插件管理 "选项卡下的 "项目验证 "选项卡,查看是否有任何警告或错误需要处理。大多数检查都包含一个 "修复 "按钮,可为您解决问题。

选择了正确的插件提供商后,您就可以开始为您所选择的 VR 平台进行构建了。不过,您仍然需要将 VR 控制映射到现有的玩家角色上。这就是 XRI 工具包提供的启动资产发挥作用的地方。
在项目窗口中,进入 Samples/XR Interaction Toolkit/2.3.2/Starter Assets/Prefabs 文件夹,然后将 Complete XR Origin Set Up Prefab 拖入场景。该预制件预装了为播放器控制器配置 VR 输入所需的所有组件。
该预制件有一个嵌套的 XR Origin 预制件,可处理大多数 VR 控制器设置。它有两个游戏对象,分别代表玩家的左手和右手,还有一个嵌套在 "摄像机偏移 "游戏对象中的 "主摄像机",根据玩家的坐姿或站姿来移动摄像机。由于 Complete XR Origin Set Up Prefab 包含自己的主摄像机,如果您的场景中已经有一个主摄像机对象,请确保将其禁用,这样就不会有多个摄像机同时尝试渲染玩家的主视图。

XRI 工具包还附带了一个输入映射图,可将操作映射到常见的 VR 控件。这些控件是大多数虚拟现实平台的标准控件,因此无需额外编码即可确保您的输入在 Meta Quest、Magic Leap 和 PS VR2 等各种平台上都能被识别。确保将对游戏状态跟踪很重要的脚本从原来的玩家控制器复制并粘贴到新添加的 Complete XR Origin Set Up 预制件中。请随意将预制件重命名为更容易记住的名称,如 VR FPS Controller。

XR Origin GameObject 包含很多组件,一开始可能会让人一头雾水。把 XR Origin 预制件中的 XR Origin 组件看作是所有其他 XRI 组件的驱动程序。没有它,XR 运动就无法进行。其余的组件则是提供者,使特定的 XR 运动成为可能。这些提供者对应着不同类型的 VR 运动,从瞬移到急转弯,再到双手抓住表面拉着自己前进等等。
要了解如何根据自己的喜好调整 XR Origin 预制件的运动值,请阅读文档。但对于刚入门的用户来说,使用默认值应该没问题。
当然,并非所有的 VR 平台都是一样的,关键是要牢记目标平台的硬件规格,尤其是当 VR 游戏需要达到稳定的每秒 60、90 或 120 帧以减少晕动症时。这可以通过降低最大眼睛分辨率、调整主摄像机的抗锯齿选项、减少动态光源的数量而使用烘焙光源、减少游戏对象中使用的 Alpha 透明度数量以及调整游戏对象的 LOD 值来实现,这样只有当玩家靠近游戏对象时,它们才会渲染较高几何尺寸的版本。如需更多建议,请阅读我们的图形性能优化指南。
好消息是,根据您为每个平台指定的质量级别,在不同质量设置之间切换非常容易。在 "项目设置 "窗口的 "质量 "选项卡中,您可以创建和自定义质量级别,这些级别可设置独特的渲染器、抗锯齿、LOD 和照明设置,帮助您充分利用每个平台。了解有关调整质量设置的更多信息。
现在,您的项目已配置为您所选择的 VR 平台的目标,是时候在项目中测试新添加的 XR 钻机了。建议使用两种方法进行 VR 测试:使用 XRI 工具包中的 XR 设备模拟器在编辑器中测试设置,或者构建播放器并在设备上运行。
Unity 中有一个名为 "XR 设备模拟器"的便捷工具,可让您在游戏模式下在编辑器的游戏视图中模拟 XR 控制。您可以在不构建项目的情况下测试运动设置,从而节省时间。要将 XR 设备模拟器添加到项目中,请打开 "包管理器 "窗口,返回到 XRI 工具包,单击 "示例 "选项卡,然后在 "示例资产 "下单击 XR 设备模拟器旁边的 "导入 "按钮。

安装完成后,打开 "项目设置 "窗口,点击 "XRI 工具包 "选项卡。在此选项卡中,启用 "在场景中使用 XR 设备模拟器 "复选框,以便在进入播放模式时在运行时添加 XR 设备模拟器。您还可以将 XR 设备模拟器预制件从项目窗口直接拖放到场景中。

现在,当你在编辑器中进入 "游戏 "模式时,可以使用 WASD 和鼠标控制来移动 XR Rig,按 Tab 键可以在移动所有控制、只移动左手或只移动右手之间进行切换。它与实际的 VR 输入并不是 1:1 的匹配,但它可以帮助你立即测试你的运动设置是否达到预期效果。
请记住,在构建项目之前,您需要禁用 XRI 工具包项目设置窗口中的 "在场景中使用 XR 设备模拟器 "复选框,或者从场景中禁用/删除 XR 设备模拟器。否则,您的 VR 控制装置将无法在设备上正常工作。这是因为 XR 设备模拟器会模拟来自鼠标和键盘或游戏控制器的 VR 输入,而忽略来自实际 VR 控制器的输入。

测试 XR Rig 的第二种方法是在目标平台上构建和运行。每个 XR 设备运行 Unity 构建的设置都各不相同,因此请阅读有关如何将它们连接到开发机的文档,以获取最新信息。连接设备后,在 "构建设置 "窗口中选择 "构建并运行",为目标平台创建构建并加载到设备上。
在设备上运行构建后,您可以自己测试输入,看看哪些有效,哪些无效。唯一的限制是需要等待构建完成,并有可用的设备进行测试。
通过这些步骤,再加上一些细微的渲染设置调整,我就能在 PS VR2 上运行新 URP 模板中的日本花园场景了,该模板曾在GDC 2023 上展出过。
希望本快速指南能帮助您开始在项目中添加 VR 支持。如果您对 VR 设置的任何部分感到困惑,可以查看 Unity 的XR 项目配置指南,了解更多信息。
XR 和 URP 团队都在努力确保尽可能简单地为多个平台进行开发。请在URP 论坛分享任何通用渲染管道反馈,在XR 论坛分享XR 反馈。作为Tech from the Trenches系列的一部分,请关注 Unity 开发人员未来的技术博客。
