首页 理论教育虚拟现实应用开发:设置动画过渡

虚拟现实应用开发:设置动画过渡

【摘要】:图9-46编辑状态转换从图9-46中可以看到,上一节操作拖入的Idle、Jump和Run动画都已经加入了Viking_Sword_Move中了。方便预览动画片段,过渡和它们之间的交互。图9-51三个状态块两两连接单击Idle→Run过渡,在Inspector中取消Has Exit Time的勾选,目的在于一旦触发动画过渡的时候,动画系统将不会未播放完现有动画后才完成切换,而是立即生效动画过渡。图9-52动画过渡生效图9-53动画过渡时机设置图9-54添加Speed选择Jump→Idle过渡,取消Has Exit Time勾选。图9-59运行游戏图9-60Viking_Sword设置

双击Viking_Sword_Move打开Animator窗口,准备编辑动画状态转换(见图9-46)。

图9-46 编辑状态转换

从图9-46中可以看到,上一节操作拖入的Idle、Jump和Run动画都已经加入了Viking_Sword_Move中了。

Unity拥有丰富而复杂的动画系统(也被称作“Mecanim”),它提供了:

(1)简单的工作流程和Unity所有元素的动画设置,包括对象、角色和属性。

(2)支持在Unity中创建导入动画片段和动画。

(3)支持人形动画(Humanoid)的重定向,即将动画从一个角色模型应用到另一个角色模型的能力。

(4)用于对齐动画片段的简化工作流程。

(5)方便预览动画片段,过渡和它们之间的交互。

(6)使用可视化编程工具管理动画之间复杂的交互。

(7)通过不同的逻辑控制不同身体部位的动画。

(8)分层(Layer)和蒙版(Mask)功能。单击“Parameters”,切换到参数标签页。点单+号可以添加不同类型的参数(见图9-47)。

(9)依次单击+号,创建Float参数,重命名Speed;创建Trigger参数,重命名Jump;创建Bool参数,重命名Grounded(见图9-48)。

图9-47 添加不同类型参数

图9-48 重命名Grounded

注意:每个参数的大小写必须与图中一致,因为在代码中会直接通过Set方法,查找该参数的字符串值,并设置对应类型的数值。

调整Idle、Jump和Run三个状态块的位置如图9-49所示。

图9-49 调整Idle、Jump、Run的状态块位置

右键Idle状态块选择“Make Transition”,连接到Jump(见图9-50)。

图9-50 连接Idle状态块到Jump

同样的操作,在三个状态块之间两两连接,如图9-51所示。

图9-51 三个状态块两两连接(www.chuimin.cn)

单击Idle→Run过渡,在Inspector中取消Has Exit Time的勾选,目的在于一旦触发动画过渡的时候,动画系统将不会未播放完现有动画后才完成切换,而是立即生效动画过渡(见图9-52)。

找到最下面的Condition(条件)选项,添加条件判断用于控制动画过渡的时机。单击+号,选择Speed,设置Greater,值为0.01(见图9-53)。

选择Run→Idle过渡,同样取消Has Exit Time勾选。在Condition选项,添加Speed,设置less,值为0.01(见图9-54)。

选择Idle→Jump过渡,取消Has Exit Time勾选。在Condition选项,添加Jump(见图9-55)。

图9-52 动画过渡生效

图9-53 动画过渡时机设置

图9-54 添加Speed

选择Jump→Idle过渡,取消Has Exit Time勾选。在Condition选项,添加Speed,设置less,值为0.01;添加Grounded,值为True(见图9-56)。

图9-55 添加Jump,实现Idle→Jump过渡

图9-56 添加Grounded,实现Jump→Idle过渡

选择Run→Jump过渡,取消Has Exit Time勾选。在Condition选项,添加Jump(见图9-57)。

图9-57 添加Jump,实现Run→Jump过渡

图9-58 添加Grounded,实现Jump→Run过渡

选择Jump→Run过渡,取消Has Exit Time勾选。在Condition选项,添加Speed,设置Greater,值为0.01;添加Grounded,值为True(见图9-58)。

运行游戏,通过WASD和Space键检测Idle、Jump和Run的切换,并观察动画之间过渡是否自然(见图9-59)。

确认完之后,选中Viking_Sword,在Inspector中设置Tag为Player,然后将Viking_Sword游戏对象,拖到Project窗口的Prefabs文件夹下,保存为prefab(见图9-60)。

图9-59 运行游戏

图9-60 Viking_Sword设置