开关对象(使用手动动画)
在本教程中,我们将创建一个能够使一个方块显示/隐藏的简单预制件(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