1、第第8 8章章 让模型动起来让模型动起来知识目标知识目标能力目标能力目标任务引入任务引入Tuesday,November 08,20221知识目标知识目标动画的概念动画的概念状态机的概念与作用状态机的概念与作用脚本的作用脚本的作用Tuesday,November 08,20222能力目标能力目标 学会对已有动画进行编辑 能够创建动画状态机并进行相应设置 学会脚本的编写与绑定Tuesday,November 08,20223任务引入任务引入动画是必不可少的元素之一;动画技术较规范的定义是采用逐帧拍摄对象并连续播放而形成运动的影像技术;只要它的拍摄方式是采用的逐格方式,观看时连续播放,形成了所谓的
2、动画。Tuesday,November 08,202248.1 Unity3D 动画系统动画系统 查看模型Tuesday,November 08,20225模型里所包含的各个部件,比如眼睛、手臂、腿、与模型配套的动画和 Avatar。图 8-2 模型自带动画和 AvatarTuesday,November 08,20226给模型添加 Animator 组件图 8-3 添加 Animator 组件图 8-4 Animator 组件Tuesday,November 08,20227Animator 组件属性功能:Controller:使用的 Animator Controller 文件;Avata
3、r:使用的骨骼文件;Apply Root Motion:绑定该组件的 GameObject 的位置是否可以由动画进行改变(如果存在改变位移的动画);Update Mode:更新模式,Normal 表示使用 Update 进行更新,Animate Physics 表示使用 FixUpdate 进行更新(一般用在和物体有交互的情况下),Unscale Time 表示无视 timeScale 进行更新(一般用在 UI 动画中);Culling Mode:剔除模式,Always Animate 表示即使摄像机看不见也要进行动画播放的更新,Cull Update Transform 表示摄像机看不见时停
4、止动画播放但是位置会继续更新,Cull Completely 表示摄像机看不见时停止动画的所有更新。Tuesday,November 08,202288.2 动画剪切动画剪切 8.2.1 动画编辑模式动画编辑模式 图 8-5 进入编辑界面图 8-6 动画编辑Tuesday,November 08,20229素材动画剪切预览图 8-7 动画预览Tuesday,November 08,2022108.2.2 对动画进行剪切对动画进行剪切图 8-8 动画剪切图 8-9 修改名字Tuesday,November 08,2022118.3 使用动画状态机使用动画状态机 8.3.1 创建状态机创建状态机图
5、 8-10 创建好的状Tuesday,November 08,202212动画状态机界面图 8-11 状态机界面Tuesday,November 08,2022138.3.2 创建动画状态创建动画状态创建空状态自动和Entry状态相连图 8-12 创建新状态Tuesday,November 08,202214Inspector 面板状态属性图 8-13 空状态属性面板Tuesday,November 08,2022158.3.3 向状态中加入动画向状态中加入动画加入走路动画Tuesday,November 08,202216添加动画状态连接图 8-15 状态的连接Tuesday,Novembe
6、r 08,202217图 8-16 连接好的状态Tuesday,November 08,202218为各状态的过渡添加条件图 8-17 添加过渡条件图 8-18 添加完成Tuesday,November 08,202219当前的动画播放完毕后自动转换到箭头所指下一个状态(没有其他跳转条件),必须勾选该选项,否则动画播放完毕后就会卡在最后一帧,如果是循环动画就会一直循环播放。图 8-19 勾选 Has Exit TimeTuesday,November 08,2022208.4 对动画添加触发事件对动画添加触发事件 添加触发事件是让动画播放到某一帧时出现事件。图 8-20 添加触发事件图 8-2
7、1 Event 框Tuesday,November 08,202221确定好触发位置后,单击“Apply”。图 8-22 触发标志Tuesday,November 08,202222选择刚创建的Animator Controller图 8-23 选择状态机Tuesday,November 08,2022238.5 用脚本和按钮来控制动画的播放用脚本和按钮来控制动画的播放8.5.1 创建按钮创建按钮图 8-24 创建按钮Tuesday,November 08,202224创建好按钮后可以看到场景中会出现一个白色的边框,实际在运行过程中的边界。图 8-25 按钮创建完成Tuesday,Novemb
8、er 08,202225 在 Inspector 面板中的 Text 输入框中输入名字;单击场景上方的 Game 预览按钮的运行实际效果;在按钮的Image 中的 Source Image 一栏中为按钮选择合适图片。图 8-26 输入按钮名字图 8-27 按钮运行效果图 8-28 更改按钮图片Tuesday,November 08,2022268.5.2 控制脚本的创建与编写控制脚本的创建与编写创建一个文件夹,将它命名为“Script”,以便于脚本的管理;在文件夹的空白处右键,选择 Create|C#Script。图 8-29 创建脚本Tuesday,November 08,202227创建一个 C#文件,重新命名后双击 C#文件打 MonoDevelop编辑器,然后在编辑器里进行脚本的编写。脚本 wave.cs 的内容脚本 shakehead.cs 的脚本 animation.cs 的内容Tuesday,November 08,2022288.5.3 脚本和事件的添加脚本和事件的添加代码编写完成后需保存,否则修改后的代码不会更新。图 8-30 添加事件图 8-31 事件添加完成图 8-32 为变量赋值Tuesday,November 08,202229本章小结本章小结图 8-33 本章知识结构Tuesday,November 08,202230