开关对象(使用手动动画)
在本教程中,我们将创建一个能够使一个方块显示/隐藏的简单预制件(Prefab)。而且我们会将其附着到虚拟角色的手上方便观察。
第一步:创建对象
我们从创建需要显示的方块后开始。将测试用虚拟形象拖入到场景中,在其中新建一个空的游戏对象(GameObject)作为您的预制件(Prefab)的根对象(我们将他命名为 ToggleDemo)。在这个游戏对象中新建一个名为 HandRef 的对象,我们将使用这个对象追踪手部。将我们刚才创建的方块拖入 HandRef 对象中。
将方块附着在虚拟形象的手上
接下来我们使 HandRef 对象追踪虚拟形象的右手。选中 HandRef 对象,并在检查器(Inspector)中点击 Add Component(添加组件)。
添加 MA Bone Proxy 组件。
将虚拟形象的右手骨骼拖拽到 Target(目标) 一栏,将 Attachment Mode(固定模式) 修改为 As child; at root(作为子项,位于根位置)。
方块会立即附着到虚拟形象的手上。调整方块的缩放(Scale)和位置(Position),直到他不再遮挡视线。
记得要把方块中的 Box Collider(盒碰撞体) 组件删除!
第二步:创建动画控制器
接下来,我们创建能够控制方块的显示状态的动画控制器(Animator Controller)。
新建一个动画控制器(Animator Controller)和两个动画(Animation Clip)(我们把两个动画分别命名为 CubeOff 和 CubeOn)。
打开动画控制器,将两个动画拖入其中。
然后右键 Any State,点击添加过渡(Add Transition),并连接到 CubeOff。为 CubeOn 也做同样的操作。
设置过渡
创建一个新的布尔(Bool)参数,重命名为 Cube。然后将刚才创建的两个过渡的 Duration(过渡持续时间) 设为 0,将两个过渡的 Can Transition to Self(可以过渡到自己) 关闭。
将参数 Cube 添加到条件(Conditions)中,在指向 CubeOff 的过渡中,将这个条件设置为 False(假)。
第三步:合并动画机
回到我们创建的根对象,为其添加 MA Merge Animator 组件。
将 Animator to merge(用于合并的动画机) 一栏设置为刚才创建的新动画控制器。勾选 delete attached animator(删除已添加的动画机) 和 match avatar write defaults(匹配虚拟形象的Write Defaults设置)。
然后再添加一个 Animator(动画机) 组件,也将其指向刚才创建的新动画控制器。
💡 提示
Merge Animator(合并动画机)组件并不是必须要添加到根对象。您可以将其放到更深处的层级中。只需要保证MA Parameters(MA 参数)组件(我们会在下文中提到)在同一个对象,或者在Merge Animator(合并动画机)组件和Menu Installer(菜单安装器)组件的父对象中!
第四步:录制动画
前往 Unity 的动画(Animation)窗口。如果您没有找到动画(Animation)窗口,按下 Ctrl-6 将其呼出。
您将在动画列表中看到 CubeOff 和 CubeOn,如果没有,请保证您已经选中了 ToggleDemo 对象。
在动画列表中选中 CubeOff 后,点击红色的录制按钮,然后将方块的游戏对象(GameObject)关闭。
选中 CubeOn 后,点击红色的录制按钮,然后将方块的游戏对象(GameObject)关闭后重新打开。
第五步:设置同步参数
就快完成了!接下来,我们将设置同步参数。
回到我们的 ToggleDemo 对象,为其添加 MA Parameters(参数) 组件。勾选 Show Prefab Developer Options(显示预制件开发者选项)。
能看到我们的 Cube 参数被自动添加了。将同步模式修改为 Bool(布尔),并且勾选 Internal(内部) 选项。
💡 提示
如果您勾选了
Internal(内部)选项,Modular Avatar 将保证这里的Cube参数不会干涉虚拟形象中的任何同名参数。如果您不勾选,用户将能够随意重命名该参数,但是也能够选择让多个预制件(Prefab)使用同一个参数。
第六步:设置菜单
终于,我们要设置 Av3 菜单条目了。创建一个 Expressions Menu(表情菜单) 资产:
在其中添加一个菜单项,命名为 Cube,将类型改为 Toggle(开关),在参数一栏的文本框中,输入 Cube。
因为我们还未编译虚拟形象,所以参数没有出现在下拉菜单中。但是没关系!
为 ToggleDemo 对象添加一个 MA Menu Installer 组件。展开 Prefab Developer Options(预制件开发者选项) 部分,将刚才创建的表情菜单资产放入其中。
结束了!将虚拟形象编译并上传后,您应该能在菜单中找到一个能够将方块召唤到您的右手的开关。
收尾:预制件转换和组件排序
准备好分发我们的方块吧。首先,由于用户最有可能去摸索 Menu Installer(菜单安装器) 组件(如果您禁用了内部选项的话)和 MA Parameters(MA 参数) 组件。
所以我们可以将这俩组件挪到检查器(Inspector)的最上端。
完成组件的排序后,将 ToggleDemo 对象拖入项目(Project)窗口创建预制件(Prefab)。现在只要你将预制件(Prefab)拖到任何虚拟形象里就能即刻拥有一个方块!














No comments to display
No comments to display