教程
没有图片这回事真的很私密马赛!本文最初是一个视频教程的文案,但我一直抽不出时间去录制这个教程!你可以点进我的油管频道以观看其他教程。
开始使用
首先,你需要从 Gumroad 下载一个工具。在付款框中输入“0”,下载并导入 unitypackage。如果 VRChat SDK 出于某种原因或更新导致此了工具的损坏,我会在油管视频下方提供一个链接,向你展示如何以最普遍且繁琐的方式创建开关 。
我还想提一嘴另外一个插件,这俩本质上做的是同样的事情,只不过后者可选项更少些,外加这插件在我这边好像不起作用(它可以正常关闭物体,但没法再次把它打开)。当然你可以自己试试。
接下来的这些额外内容都是选修,当然我仍然建议你去安装它们。你可能会用到 Avatar 3.0 Emulator,以便在上传虚拟形象之前测试并确保开关在 Unity 中能够正常工作。你可以从 Github 或 Booth 上获取它。我还建议你去整一个这个简单的插件,它可以给为你的 VRC 表达参数Expression Parameters 和 VRC 表达菜单Expression Menu 资产提供自定义图标。这里还有一包免费图标。最后推荐一个编辑器脚本,只需将其放置在项目中的任何位置上,它就可以在你按下播放按钮时自动切换到场景视图。你可以通过转到 Tools>Switch To Scene View On Play 来开启和关闭该功能。
简单开关
我在场景中已经准备好了一个虚拟形象,为了在不干扰当前的虚拟形象项目的情况下,我会创建一个副本。要想创建一个副本为了复制虚拟形象,首先选择你的虚拟形象对应的游戏对象(Game Object),按住 ctrlCtrl 键并单击箭头将其移到后方,然后按下 Ctrl + D 以复制它,然后再将其移到前方。与此同时将“toggles”附加(append)到复制体在副本的名称末尾附加“toggles”。
我还此外,需要确保我复制了效果层(effects layer)、Expression Menu 和 Expression Parameters 。Parameters。选择中虚拟形象后,向下滑到动至 FX layer,单击鼠标单击它,按下 Ctrl + D,然后再点击按 F2 以重命名它,再将其拖回 FX slot。对 Expression Menu 和 Expression Parameters 执进行相同样的操作。
如果你的模型还没有 Expression Menu 或 Expression Parameters,你可以通过在项目选项卡(project tab)中右键单击并,转到 Create>VRChat>Avatars 来创建它们。请值得注意的是,使用自定义 Expression Menu 将删除默认的 emotes menu,届时你因此需要创建一个看起来像这个类似于 emotes menu 的新子菜单来恢复它替代。
开关的工作方式原理是:当你在转盘菜单中按下按钮时,它们会播放动画。如果对象(object)处于开启状态时,它会播放一个关闭对象(object)的动画,反之亦然。虽然这个工具会自动为我们生成动画,但我们需要创建一个额外的文件夹来存储它们。您可以在项目中找到一个合适当位置(例如您的模型也许可能会带有的 animations 文件夹),右键单击空白处,创建>文件夹(Create>Folder),然后将文件夹其重命名为 Toggles。
在这个项目中,我有两个不同的虚拟形象,所以因此在我的 toggles 文件夹中有着两个子文件夹,每个虚拟形象一个。
单击你希望要在游戏中打开启和或关闭的对象(object),只需单击对象或确保它在层级窗口(hierarchy)中被选中它。要想启用此工具然后,请转到“tools”菜单并单击“toggle creator”。由于我们已经在层级窗口(hierarchy)中选中择了相应对象(object),因此它所以工具会自动为我们填充虚拟形象和附件对象(accessory object)。
或者另外,你还也可以在层级窗口(hierarchy)中右键单击要切换的游戏对象(Game object),然后单击选择“advanced toggle”或“toggle”。
请值得注意的是,你可以在新窗口中试着悬停在每个标签上悬停鼠标,此操作会弹出文本来告诉你每以查看各个选项的功能说明。
我希望自动生成的按钮会出现在 expressions menu 菜单中的新的子菜单中。所以要实现这一点,点击下拉菜单旁边的 + 图标,以创建一个新的 expressions menu slot。菜单槽。我将这个按钮称之命名为“clothes”,并将此子菜单放在按钮文件夹下。你可以返回到主菜单,以更改子菜单的图标。
按钮创建按钮的步骤如下:
- 在 expressions 菜单下拉菜单的 parameters 部分
的 expressions menu 下拉菜单中,选择我们为了按钮创建的子菜单。 在菜单中输入按钮名称,这将同时填充参数(parameter)名称。通过单击输入框右侧的圆圈来选择菜单图标,可以弹出通过纹理搜索(texture search),来选择或者从项目窗口(project tab)中拖动拽图片到框中。针对这个于我选择的“clothes”按钮,我搜索并选择前者的方法并搜索消音(muffler)图标,因为此虚拟形象附带有了一个消音(muffler)图标。- 对于
此对象(也就是消音 muffler),如果我关闭它,我希望它关闭时在跑到新世界或切换回虚拟形象时场景中保持关闭状态,所以我会保持此开关的将 safe state处于开关设为开启状态。 - 我还希望它
成为在虚拟形象在重新加载时的是默认选择关闭的,所以因此我会保持此开关的将 default state处于设为开启状态。 我希望选择新动画的文件夹的位于我创建的文件夹中,所以我选择通过下拉菜单导航到那个文件夹置。然最后,单击“create simple toggle”,即可完成!
要预览按钮在 Unity 中预览此按钮的效果:
- 转到“
工具(tools)”tools”菜单, - 单击 Gesture Menu Emulator,
然后单点击“play”。- 选择“gesture manager prefab”,
- 确保控制虚拟形象
(controlling avatar)已设置为了您放置了按钮的那个虚拟形象。 然后按照与游戏中相同的方式翻打开 expressionsmenu。 如果菜单。在 Unity里中工作时,那么它这个按钮也应当该在 VRChat 中工作生效!
如果你在创建按钮时搞砸犯了错误,你应该可以使用 toggle remover,转到 Tools>toggle remover。这会将自动执行删除过程。
高级按钮
但是,如果你您想要做的不仅仅只是打开或关闭某一个对象物体呢?这就是高级按钮派上发挥作用场的时候。
这个虚拟形象角色穿着一件夹克,但内里面还套穿着一件衬衫。衬衫上有一个用于在打开夹克时挤压袖子,而在关掉闭夹克时张开的 blendshape。我想为夹克创建一个开关按钮,可以同时做到控制衬衫的 blendshape。
为此,
- 右键单击 jacketOpen 对象,
> create advanced toggle,创建高级切换按钮,- 然后在弹出的新窗口中,在
animations“动画”下方单点击 + 按钮, - 搜索
我想要更修改的 blendshape 名称,在本次案例中,blendshape 名称为“Shirt.sleeveSqueeze”,可以简单搜索“squeeze”以寻找到这个 blendshape。 - 然后启用
Generate Off Animation;“生成关闭动画”; - 当 blendshape 设置为100 时,袖子挤压
,;当它设置为animation动画中,当夹克打开时 blendshape 值保持在100,当夹克关闭时更改将 blendshape 值到更改为0。
这只是区区一个高级按钮的示例子;你您可以使用这个工具创建许多其他内容,例如使用一个按钮在 expressions menu 表达式菜单中同时控制多个对象的不同物体的套装!