游戏的本质:
通过静画、文字、动画表现故事和反馈的产物
出去纯文字游戏与图片类游戏,大多数的游戏都广泛使用了动画技术
动画的本质:
利用人的视觉残留(Persistence of Vision)
当物体在快速运动时,人眼所看到的影像消失后,仍能继续保持影响约0.1~0.4秒。
游戏中动画也利用相同的原理,在每帧更新时刷新图像
根据不同的表现内容,有多种不同的资源组织形式
在简化制作流程的同时,提供表现力更强的画面效果
简化制作数据 通常使用的是:插值技术。
(插值:对离散的数据进行处理,进而得到一个连续的结果)
定义边界值的中间细节内容填充(关键帧属于这个范畴)
改变不同的函数,可以得到不同的结果
常见的插值函数:
1.Hermit 曲线
2.Catmull-Rom 样条曲线
3.Bezier 曲线
常用动画表现方式:
1.序列帧动画(也叫精灵动画:Sprite Animation)
FC时代的产物,所有游戏都用这种方式制作
也会用于特效(火焰啥的)的表现
原理:
一系列的图片,按照次序播放,最终形成的动画
需要把动画中的每帧内容都画出来,缺点就是实现成本大
(采用空间换时间的策略,相对于骨骼或者粒子实现方式)
2.骨骼动画
3D模型只能通过骨骼的蒙皮来做动画,一般说骨骼动画都是2D的
原理:
将图片绑定到骨骼上,制作动画时,直接操作骨骼
只需导出骨骼数据,再关联任意图片文件就可以播放动画了
骨骼简化了工作流程的同时,还可以支持换装系统
目前两个主流方案:
1.spine
2.DragonBones
3.帧动画
通过关键帧可以控制很多元素的属性
比如:UI移动、图片缩放、材质参数等变化
unity中可以使用Animation,指定元素的属性,通过插值的方式进行补全过渡效果
一般用在:UI动效、材质参数控制或者角色动画系统等等
4.变形目标动画(Morph Target Animation)
定义了所有顶点移动方式的动画
数据量很大,一般只需控制细节的人脸表情
5.蒙皮动画
3D角色都使用蒙皮动画
蒙皮的核心就是:分配权重
每个模型绑定骨骼后,要为每个顶点分配对应骨头的权重,以防止动作出现撕裂模型表面的现象
当游戏运行的时候,顶点的位置是根据CPU实时计算出来的,如果是相同角色很多场景可以预先将动作中顶点的每帧位置计算好,节省运算。
蒙皮最初是在CPU计算的,随着技术的发展,GPU蒙皮也流行起来了
但是不是所有平台都能很好支持,因此使用GPU蒙皮需谨慎!
网友评论