【摘要】:图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设置
相关推荐