Skip to main content

教程

没有图片这回事真的很私密马赛!本文最初是一个视频教程的文案,但我一直抽不出时间去录制这个教程!你可以点进我的 油管频道 以观看其他教程。

开始使用

首先,你需要先 从 Gumroad 下载一个工具(VRChat Toggle Assistant)。在付款框中输入数字 0,下载并导入 .unitypackage。如果 VRChat SDK 出于某种原因或更新导致此了工具的损坏,我会在油管视频下方提供一个链接,向你展示如何以最普适且基础的方式创建开关 。

译者注:没有油管视频,但到目前为止(2024/5/8)没发现工具失效问题

我还想提一嘴 另外一个插件(Auto-Toggle-Creator,这俩插件本质上做的是同样的事情,只不过后者可选项更少些,外加这插件在我这边好像不起作用(它可以正常关闭物体,但没法再次把它打开)。当然你可以自己试试。

接下来的这些 额外内容 都是选修,当然我仍然建议你去学习并安装它们:

简单开关

先在场景中准备好一个虚拟形象,在不干扰当前项目的情况下,我会选择创建一个副本。为了复制虚拟形象,首先选择虚拟形象对应的游戏对象(Game Object),按住 Ctrl 键并单击方向箭头将其移到模型后方,然后按下 Ctrl + D 复制它,再将其移到前方。在副本的名称末尾添加 toggles

此外,需要复制 效果层(effects layer)Expression MenuExpression Parameters。选中虚拟形象后,向下滑动至 FX layer,单击鼠标,按下 Ctrl + D,再按 F2 重命名,拖回 FX slot。对 Expression Menu 和 Expression Parameters 进行同样的操作。

如果你的模型没有 Expression Menu 或 Expression Parameters,可在项目选项卡中右键单击,转到 Create>VRChat>Avatars 来创建。值得注意的是,使用自定义 Expression Menu 将删除默认的 emotes menu,因此需要创建一个类似于 emotes menu 的新子菜单来替代。

开关的工作原理是:在转盘菜单中按下按钮时,它们会播放动画。对象处于开启状态时,会播放关闭动画,反之亦然。虽然这个工具会自动生成动画,但需要创建一个额外的文件夹来存储。可以在项目中找到一个合适位置(例如模型可能会有的 animations 文件夹),右键单击空白处,创建>文件夹(Create>Folder),将其重命名为 Toggles。

在这个项目中,我有两个不同的虚拟形象,因此在我的 toggles 文件夹中有两个子文件夹,每个虚拟形象一个。

要在游戏中打开或关闭对象,只需单击对象或在层级窗口中选中它。然后,转到“tools”菜单并单击“toggle creator”。由于我们已经在层级窗口中选择了对象,所以工具会自动为我们填充虚拟形象和附件对象。

另外,你也可以在层级窗口中右键单击要切换的游戏对象,然后选择“advanced toggle”或“toggle”。

值得注意的是,你可以悬停在每个标签上,以查看各个选项的功能说明。

我希望自动生成的按钮会出现在 expressions 菜单中的新子菜单中。要实现这一点,点击下拉菜单旁边的 + 图标,创建一个新的 expressions 菜单槽。我将这个按钮命名为“clothes”,并将子菜单放在按钮文件夹下。你可以返回主菜单,以更改子菜单的图标。

按钮创建步骤如下:

  1. 在 expressions 菜单下拉菜单的 parameters 部分中,选择我们为按钮创建的子菜单。
  2. 输入按钮名称,这将同时填充参数名称。
  3. 选择菜单图标,可以通过纹理搜索来选择或者从项目窗口中拖拽图片到框中。对于我选择的“clothes”按钮,我搜索并选择了一个消音(muffler)图标。
  4. 对于对象(消音 muffler),我希望关闭时在新场景中保持关闭状态,所以我将 safe state 开关设为开启。
  5. 我还希望它在虚拟形象重新加载时是默认关闭的,因此我将 default state 设为开启。
  6. 选择新动画文件夹的位置。
  7. 最后,单击“create simple toggle”即可完成!

要预览按钮在 Unity 中的效果:

  1. 转到“tools”菜单,
  2. 单击 Gesture Menu Emulator,
  3. 点击“play”。
  4. 选择“gesture manager prefab”,
  5. 确保控制虚拟形象已设置为您放置按钮的虚拟形象。
  6. 按照游戏中的方式打开 expressions 菜单。在 Unity 中工作时,这个按钮也应该在 VRChat 中生效!

如果在创建按钮时犯了错误,可以使用 toggle remover,转到 Tools>toggle remover。这将自动执行删除过程。

高级按钮

但是,如果您想要的不只是打开或关闭一个物体呢?这就是高级按钮发挥作用的时候。

这个虚拟角色穿着夹克,内里还穿着衬衫。衬衫上有一个用于在打开夹克时挤压袖子,在关闭夹克时张开的 blendshape。我想为夹克创建一个开关按钮,可以同时控制衬衫的 blendshape。

为此,

  1. 右键单击 jacketOpen 对象,
  2. 创建高级切换按钮,
  3. 然后在弹出的新窗口中,在“动画”下方点击 + 按钮,
  4. 搜索要修改的 blendshape 名称,在本例中,blendshape 名称为“Shirt.sleeveSqueeze”,可以简单搜索“squeeze” 找到这个 blendshape。
  5. 然后启用“生成关闭动画”;
  6. 当 blendshape 设置为100 时,袖子挤压;当它设置为0 时,袖子张开。在动画中,夹克打开时 blendshape 值保持在100,夹克关闭时将 blendshape 值更改为0。

这只是一个高级按钮的示例;您可以使用这个工具创建许多其他内容,例如使用一个按钮在表达式菜单中同时控制多个不同物体的套装!