1、第第5 5章章 粒子系统与动画系统粒子系统与动画系统知识目标知识目标能力目标能力目标任务引入任务引入Tuesday,November 08,2022第1页知识目标知识目标了解粒子系统了解粒子系统了解动画的切割了解动画的切割了解了解 Animator Animator 组件组件Tuesday,November 08,2022第2页能力目标能力目标 掌握粒子系统创建和参数调节掌握粒子系统创建和参数调节 掌握通过帧数表进行动画切割掌握通过帧数表进行动画切割 掌握制作动画状态机掌握制作动画状态机Tuesday,November 08,2022第3页任务引入任务引入粒子系统是计算机图形学中通过三维控件模
2、拟渲染出来二维图像的技术;模拟烟花、爆炸、火花、水流、落叶、云雾、飞雪、雨水、流星等自然现象;动画“走马灯”原理;粒子系统和动画系统是 Unity3D 软件的基本但是最重要的功能模块。Tuesday,November 08,2022第4页5.1 粒子系统的创建粒子系统的创建 新建一个场景,并且命名为 Particle,保存在 Scenes 文件夹中。图 5-1 创建一个名为 Particle 的场景Tuesday,November 08,2022第5页选择菜单中的 GameObject-Effects-Particle System 创建一个粒子系统。图 5-2 创建一个 Particle S
3、ystem(粒子系统)Tuesday,November 08,2022第6页将 Scene 视图切换为 3D 状态,双击 Particle System 聚焦,可以看到粒子系统。图 5-3 粒子系统效果在这个粒子动画中可以看到有许多白色的球冒上来。这些白色的球就是系统中的粒子,它们从一个点产生出来,然后具有向上的初速度。这些粒子的分布范围在一个锥形区域,在运动了一段时间后就会消失。Tuesday,November 08,2022第7页 在 Scene 视图的右下角有控制粒子系统播放、暂停等功能的面板。图 5-4 粒子系统控制工具 播放速度(Playback Speed);时间(Playback
4、 Time);粒子数(Particles);速度范围(Speed Range);Pause 和 Stop 按钮控制播放和暂停。Tuesday,November 08,2022第8页5.2 粒子系统参数粒子系统参数 粒子系统组件图 5-5 选择展示的模块Tuesday,November 08,2022第9页粒子系统分为基本属性和其他模块。图 5-6 粒子系统的基本参数第 1 个属性为 Duration(持续时间);第 2 个属性 Looping(循环);第 3 个属性是 Prewarm(预热);Tuesday,November 08,2022第10页属性:Start Delay,延迟时间;Sta
5、rt Lifetime,存活时间;Start Speed,初速度;3D Start Size,粒子大小;Start Rotation,初始旋转值;Start Color,初始颜色。图 5-7 选择粒子颜色图 5-8 渐变随机的效果Tuesday,November 08,2022第11页Gravity Modifier(重力模拟器),可以设置重力大小和方向,值为正时重力向下,为负时重力向上。绝对值越大,重力的效果越明显。图 5-9 设置重力的效果Simulation Space(发射坐标)属性,有 3 个参数可供选择:Local(默认)、World、Custom。还有一些属性,如 Play On
6、 Awake 代表的是打开就自动播放。Tuesday,November 08,2022第12页Emission 组件组件图 5-10 粒子的发射效果Tuesday,November 08,2022第13页Bursts(粒子集)选项,控制粒子发射时间。图 5-11 Bursts(粒子集)首先将速度设为 0,单击“+”号,新建一个 Burst,如图 5-12。图 5-12 自定义一个粒子集Time,设置值小于持续时间;Min 为最小粒子数;Max为最大粒子数;Cycles 为循环数;Interval 为循环间隔时间。Tuesday,November 08,2022第14页Shape 组件组件Sha
7、pe 组件可以设置粒子发射范围的形状,如锥形、球形、方形等多种形状。Tuesday,November 08,2022第15页5.3 动画的切割动画的切割 图 5-13 fbx 文件Tuesday,November 08,2022第16页如图 5-14,单击 fbx 文件右侧的小三角可以展开模型所包含内容。如果模型包含动画,红框内的图标就是动画的标志。图 5-14 动画资源Tuesday,November 08,2022第17页在这个模型中,各种动作(走,跑,跳跃)被分割开来,但是也会有模型将所有动画都混合在一起的情况,如图 5-15。图 5-15 合并的动画Tuesday,November 0
8、8,2022第18页在这个模型中,只有一个动画片段,该动画包含了所有动作。那么如何将各个动作分开呢?如图 5-16,首先选中这个预物体,在其 Inspector 面板中选择 Animation。图 5-16 在 Inspector 中选择 Animation(动画)Tuesday,November 08,2022第19页在 Animation 中可以用来存放剪辑后的动画片段。片段的切割需要一个帧数表,比如这个模型的部分帧数表如图 5-17。第 1 列代表起始帧,第 2 列代表结束帧。图 5-17 所示的帧数表中第 1行的意思就是从第 0 帧到第 1 帧为默认动画,第 2 行的意思是从第 2 帧
9、到第 251帧为空闲动画,第 3 行的意思是从第 252 帧到第 451 帧为站立动画,以此类推。Tuesday,November 08,2022第20页在 Clips中新建一个 Clip,命名为 Default,设置起始帧和结束帧分别为 0 和 1;再新建一个 Clip,命名为 Idle,设置起始帧和结束帧分别为 2 和 251。图 5-18 动画切割图 5-19 根据帧数表切割 Idle(空闲)动画这样,将所有的动画都切割完毕后,单击右下角的 Apply 就可以保存完成的动画片段。Tuesday,November 08,2022第21页5.4 Animator 组件组件 要让模型动起来,需
10、要控制动画的组件Animator。图 5-20 搜索添加 Animator 组件Tuesday,November 08,2022第22页 将fbx 文件拖入场景,在模型的 Inspector 界面单击 Add Component,在搜索框中输入 Animator,找到并单击添加。Animator 组件元素:Animator Controller,即动画状态机;Avatar,即模型骨架。图 5-21 在 Inspector 面板中选择 RigAnimation 类型:Humanoid;Legacy;Generic。Tuesday,November 08,2022第23页 Avatar Defin
11、ition 中选择 Create From This Model,即通过当前的模型来生成一个Avatar。完成后单击 Apply,就会在 FBX 中产生一个 Avatar。5.5 动画状态动画状态 在 Project 视图中右键,选择 Create-Animation Controller,即创建了一个动画控制器(状态机。图 5-22 创建一个 Animation Controller(动画控制器)Tuesday,November 08,2022第24页视图的3个默认状态:Any State;Entry;Exit。图 5-23 默认的三个动画状态Tuesday,November 08,2022第25页除了 3 种默认状态外,还可以创建新的状态,如增加了另外 3 种 Idle(空闲)、Walk(走动)和 Run(跑动)状态。图 5-24 创建 Idle、Walk 和 Run 状态Tuesday,November 08,2022第26页通过判断 Parameters(参数)的变换来进行状态切换。图 5-25 连接状态图Tuesday,November 08,2022第27页5.6 本章小结本章小结 Tuesday,November 08,2022第28页