一,动画技术简介
人类祖先就喜欢通过画画试图把动态的人物画下来,近代发现了视觉残留(1/24秒),奠定了动画视觉实现的基础
早期尝试:跑马灯、定格动画、早期动画电影(一帧一帧画的)等
未来方向:实时渲染动画、电影(Zafari)
动画技术的挑战
- 游戏中的动画是要与很多gameplay、地形、怪物交互,还受用户控制的影响
- 实时是基础,不仅包括计算,还有动画数据的加载定位、内存数据处理等
- 对自然感真实度的要求,角色如何表现得是否生动,是否符合物理,以及表情动画的实现(与肢体动画是2套技术体系)
并且当下很火的虚拟人最核心的技术就是动画技术
二,2D游戏动画技术
虽然3d很火,但现在最赚钱的还是2d游戏,并且有很多有意思的新技术
2.1 精灵动画(sprite animation)
通过把游戏的人物的动画一帧一帧记录下来,然后循环播放来实现动画的效果。(仙剑1、2)
除了人物动画,特效类也可以这么做
2.2 Live2D
皮套人嘿嘿
把角色的各个部件拆成一个个的小图元,把这些图元拼在一起,然后靠这些图元的旋转、变形、仿射变换等使角色变得更加鲜活。并且需要给各种图元设置深度来表达层次关系,控制可见性。(本质就是图像变形+图层叠加)
三,3D游戏动画技术
- 自由度(DoF,Degree of Freedom)
字节出的vr眼镜宣传能支持6DoF,那什么是DoF呢?
定义:一个物体可以在多少个维度发生变换。比如平移就是三个自由度(在x,y,z方向上移动),旋转也是3个自由度(物体绕x,y,z轴旋转 )。通常动画是9DoF的(就是Transform那9个量),因此6DoF就是…………
3.1 基于层次的刚体动画
早期动画实现方式,类似皮影戏,将角色用一系列的刚体块(mesh绑定骨骼)表示,用关节点约束。
但皮影戏一样,这些骨骼动的时候mesh会互相穿插。


3.2 顶点动画
预烘焙顶点动画,离线下将每个顶点的复杂物理计算结果按照时间帧保存到一张纹理上,横轴表示顶点,竖轴表示不同时间每个顶点的偏移量。一般会存两个texture,一个texture存位置,一个存法向。
3.3 Morph Target Animation
另一种顶点动画,是把一系列key frame保存下来,应用是lerpkey frame去使用,通常用于人脸动画(类似BS)
3.4 蒙皮动画
骨骼驱动顶点的动画,每个顶点有不止一个骨骼驱动,可以避免mesh穿插;同时消耗也比逐顶点小
3.4.1 2D蒙皮动画
2D有时也用蒙皮骨骼动画,更加灵活效果丰富
3.5 基于物理的动画
- Ragdoll布娃娃系统
- 布料和流体模拟
- 反向动力学Inverse Kinematics(IK)----给出指定点计算身体怎么运动最自然,用于游戏物体、地形交互等