# 对 Unity 本地动画的调研

0. 写在前面 #

Unity 提供了大量的资源创建工具, 特别是动画工具(即,本地动画特征集), 其中包括了 : 刚体动画的 Unity 编辑器, Shuriken 粒子系统. 本文整理总结了 Unity 本地 Animation 窗口及动画粒子系统的使用之理论知识.

Animation Editor 可生成 Animation Clip 数据, 并且可以定义一段时间内的关键帧测绘变化集, 同时兼容了 Mecanim System.

Particle System 完全采用了过程方式, 且不会将动画数据保存至关键帧中. 相反, 通过 Object InspectorShuriken Editor 的图示输入数据, 动画在运行期间基于动态方式生成, 粒子系统具有较大的灵活度.

1. Animation 窗口 #

Animation 窗口是一类全功能动画编辑器, 针对 GameObject 的数值属性生成预制脚本关键帧, 例如定位,旋转和缩放行为. Animation 可以实现随时间变化的动画效果, 并将最终动画数据保存为 Project 面板中的独立或自包含资源文件中(动画剪辑).

当创建新的动画剪辑时, Unity 实际上在场景后执行多个处理操作, Unity 生成两个资源文件, 即 Animation Clip 资源文件(包括全部关键帧数据)以及一个 Animation Controller 资源文件(连接至 Mecanim 系统).

Animator 组件将添加至场景中的 Camera 对象中, 并引用 Animation Controller 资源文件, 当启动场景时负责自动播放动画剪辑数据.

当 Animation Clip 资源文件创建完毕之后, 还需要对动画加以定义. Unity 可对任意数值属性记录关键帧数据. 数值表示的某一对象上的任意字段均可实现一段时间内的动画和混合效果.

2. 多个对象的动画行为 #

如果动画剪辑添加至父对象中, 可以对其子对象上的全部通道实现动画效果, 进而对多对象动画进行控制.

3. 调用动画函数 #

将动画链接至脚本文件或游戏逻辑中. 若动画到达特定的帧或时刻, 包括动画开始或结束的时候, 即使在完全不同的对象中, 也往往会出现特定的行为. 存在多种方式处理此类需求条件, 其中一种常用方案就是 : 在脚本中运行某一函数.

为了创建动画和脚本间的连接, 需要使用到相关事件.

4. 粒子系统 #

粒子系统主要负责生成特效和动画, 其中多个组件以一致的方式运动, 比如雨水,雪,花火,尘埃等. 除此之外, 粒子系统还可以模拟缺少具体形状的事物, 比如幽灵,全息图像等.

Unity 5 中内置了预制粒子系统. 粒子系统可以丰富游戏画面的观感以及氛围.

全部粒子系统包含 3 个主要功能 :

1
2
3
1. 发射元素, 各粒子系统都包含一个粒子发射器, 并于发射点处生成新的粒子.
2. 粒子自身
3. 粒子生命周期, 当一个粒子被发射的时候, 会有一个运动生命周期, 以此定义其存在的时间, 进而定义其在生命周期内的行为, 包括运动方式和行进速度等等.

当在场景中选取粒子系统之后, 可以根据 Shuriken Editor 查看属性, 在 Object Inspector 中显示为 Particle System 组件. 该编辑器划分为多个不同的分类, 其中, 全局属性控制通用属性以及所选粒子系统的行为.

系统中的各个粒子共享同一个渲染器, 并且有相同外观. 粒子的外观设置由 Shuriken EditorRenderer 部分加以控制. 其中, Render Mode 控制粒子的显示方式, 且主要包含两种类型 : Billboard 和 Mesh. 其中, Billboard 粒子由包含纹理的四边形网格构成; Mesh 粒子则由更为复杂的网格构成, 相应地, 用户可以采用导入至当前项目中的任意网格. 除了 Render Mode 设置之外, 一般还需要使用到材质并赋予粒子网格上.

默认情况下, 粒子通过闪现和隐匿方式生存,消失. 此时系统整体之间缺乏应有的过渡, 因而真实感稍差, 对此可通过 Color over Lifetime 修改粒子在其生命周期内颜色变化的方式. 粒子的有效内容包含了 Alpha 通道.

End.

学习自 : Book <<Unity Animation Essentials>>