Skip to main content

介绍 Unity 和 VRChat 创作者助手(VRChat Creator Companion)

这里有个视频

您是否曾心动于创建自己的 VRChat 世界,却不知从何开始?创建 Unity 中的室内场景比您想象的要简单得多!

本入门课程涵盖了构建场景时需要了解的所有内容,包括多项实践案例。本教程面向各类人群,也包括那些从未接触过 3D 创作的人。我们将从头到尾仅使用一个软件:Unity。这样一来,您就能够快速高效地创建场景,而无需担心从 Blender 等完全不同的软件学习和导出。

首先您需要做的就是安装 Unity Hub,您可以通过这个软件更轻松地管理多个 Unity 版本,并在更新版本时更轻松地下载新版本、升级或迁移项目。这也是创建 VRChat 项目的必要条件。

如果您并不打算使用 Unity 制作 VRChat 作品,推荐您下载 Unity 的最新 LTS 版本。反之,请跳过此步骤,并下载 VRChat Creator Companion(登录 VRChat 网站后在下载页面或描述中可以找到直接链接),它将帮助您安装正确版本的 Unity。

在 Unity Hub 中,您需要登录您的 Unity 账户,如果尚未拥有账户,则需创建一个。使用 Unity 需要用到许可证,而 个人许可证(personal license) 是免费且永久的。如果您在上述步骤中遇到任何问题,请转到 Unity Hub 偏好(preferences)中的许可证页面进行修复。我只有一个专业许可证(professional license),因为我使用的是 Unity 学生版。

如果您不是在创建 VRChat 项目,请直接通过 Hub 创建一个新的 Unity 项目。在普遍情况下,开始新项目时应最好选择 URP(Universal Render Pipeline),但本系列课程将涵盖的是 BRP(Built-in Render Pipeline),因为 VRChat 在使用的就是 BRP,两者渲染管线之间仅有很小的差异,主要集中在材质和着色器方面。一旦这些差异有所表现时,我会尽可能指出。这边不太建议新手从 High Definition Render Pipeline(高清渲染管线/HDRP) 开始接触,此类渲染管线的使用只会更加复杂。

如果您正在制作 VRChat 项目,您第一个需要的就是一个合适的 VRChat 账户,账户至少需要是 New User 级别(蓝色),否则您将无法上传任何内容!

在安装了 Unity Hub创作者助手 (Creator Companion) 后,创建一个新的 Unity 2022 World 项目

建议:如果您有多个硬盘,将所有 Unity 项目全部放在一个文件夹中会是个好主意,因为它们可能会占用很大空间!

完成上述步骤后,Unity 会在花上一些时间设置好一切后自动打开应用程序!此时,您便能够看到您在创建项目时使用的默认 Unity 布局。要更改界面主题(浅色或深色),请转到 Edit>Preferences>General>Editor Theme。

最大且最显眼的窗口当然是场景视图;这是 Unity 场景的 3D 视图。您可以使用鼠标滚轮进行放大或缩小。按住鼠标中键进行平移(或按住 Q 并使用左键),按住 Alt 并点击左键则可以旋转。按住鼠标右键并移动鼠标可以环顾四周,长按鼠标右键的同时,您还可以使用 WASD 键以及 E 和 Q 键进行移动(E 上升,Q 下降)。

默认情况下,场景中应该有两个对象。您可以在位于屏幕左侧的 Hierarchy(层级窗口)中看到它们。单击 Main Camera(主摄像机),它就会在界面中高亮显示,Scene(场景窗口)中的对象上会对应出现一个三轴 gizmo,而有关 Main Camera(主摄像机)的相关信息会显示在最右侧的 Inspector(检查窗口)中。Inspector(检查窗口)会显示指定对象的所有信息,每个折叠窗被称为组件。每个对象都具有一个变换组件以用于表示其 XYZ 位置、旋转和缩放。如果您在 Inspector(检查窗口)中编辑数值,对象将会在场景视图中进行对应更新,反之亦然。

理解 Game Object(游戏对象)是参透 Unity 的关键。在 Unity 中,一切的一切都是 Game Object(游戏对象),并且每个 Game Object(游戏对象)都可以赋予组件以执行各种操作。换句话说,Game Object(游戏对象)本质上只是用于容纳可以实际执行操作的组件的一个容器

例如:

  • Main Camera(主摄像机)不是一个摄像机对象;它是一个带有摄像机组件的 Game Object(游戏对象)。
  • 平行光源不是光源对象;而是一个带有光源组件的Game Object(游戏对象)。
  • 在电子游戏中的角色不是角色对象,而是一个带有蒙皮网格渲染器组件和角色控制器组件以及其他大量组件和脚本的Game Object(游戏对象),这些组件和脚本使其成为可玩的电子游戏角色。

只有当您开始了解组件时,才能真正了解 Unity。

在屏幕的底部,我们可以找到 Project (项目窗口),它展示出了一个项目中的所有游戏资源,其中许多资源都可以快捷地拖放到场景中。

与 Unity 场景类似,VRChat 世界也包含多个不同的场景,但每个场景都是独立的,无法像 Unity 那样在单个项目中创建多个场景。

你可以根据自己的喜好重新排列这些窗口。为了保持一致性以易于学习,本系列教程将保留默认布局。如果某个环节需要打开新标签页,我会明确提醒。如果你想将窗口重置为默认布局,可以点击右上角的下拉菜单,选择 Layout(布局),然后选择 Default(默认),或者点击 Window>Layouts>Default。

搭建测试场景

现在我们将搭建一个测试场景。

首先,我们需要为玩家站立的平台添加一个地面。要添加对象,请转到 Hierarchy(层级窗口)面板,右键单击并选择 3D object>Plane(3D 对象>平面)(或使用顶部的 Game Object 菜单)。在 Scene(场景窗口)选中对象后,按 "F" 键插入一个摄像机。默认情况下,对象中心会有一个包含三个箭头的 gizmo,你可以使用 WERTY 键在不同 gizmo 之间切换。我们将把平面放置在场景的中心,也就是原点位置。为此,请确保平面被选中,然后在 Inspector(检查窗口)中,找到 Transform(变换) 组件并点击三个垂直点,然后点击 Reset(重置)。这将使对象的 XYZ 位置和旋转复位为 0, 0, 0,缩放复位为 1, 1, 1。

如果您仅在 Unity 中制作场景,而并非在 VRChat,您可以导入并拖动您选择的角色控制器,例如 Unity 的第一人称控制器模板。

本课程的其余部分将确保您可以将世界项目上传至 VRChat。

如果您使用 VRChat Creator Companion 制作了此项目,则会在菜单栏中看到一个名为 VRChat SDK 的菜单。在开始之前,请转到 Project(项目窗口),而不是 Assets(资产窗口),点击下方的 Package(包)窗口,点击搜索栏并键入“VRCWorld”。

请注意!这是一个包,而非资产!

将 VRCWorld.prefab 拖拽到 层级窗口(Hierarchy)中。如果还未完成,请将其所有的 Transform(变换)重置到世界原点处。

现在,打开 VRChat SDK>Show Control Panel,,会看到一个新窗口弹出,您可以自由选择是否将其吸附。登录后选择 build 界面。

在本地测试中,勾选 force non VR 选项。VRChat 就会启动,如果一切顺利,您会看到一个平面顶部在场景中生成!

建议在不需要时关闭 VRCSDK 窗口,因为它有可能会减慢 Unity 的运行速度。如果窗口未吸附,可以通过单击右上角的 x 关闭窗口,或右键单击选项卡然后选择 Close(关闭)。

VRWorldToolkit 为我们提供了一系列工具,帮助我们优化我们的世界并确保其不会被破坏;可以从 VRChat 创作者助手中导入工具包。

如需要在整个系列系列教程范围内获得帮助,建议您在 Unity 论坛或官方 VRChat Discord 中提问,因为这样更有可能得到回应(当然是如果您礼貌提问并附上相关截图)。此外,评论部分不适合解决技术问题。

这节课就到此为止,下一节课我们将开始搭建我们的房间!