Ogre动画系统全解析:从基础到实战应用
1. 动画基础概念
动画的本质在计算机时代与早期艺术家快速翻动略有不同图像页面以产生运动错觉的原理并无差异。在1872年,Eadweard Muybridge通过设置多个相机拍摄奔跑的马,证明马在奔跑时四脚会同时离地,其产生的动画条是有记录的首个图像序列形成运动错觉的实例。
在21世纪初,在Ogre 3D场景中创建运动错觉变得简单,只需逐帧移动或变形场景元素即可。不过,这只是一种错觉,Ogre并不跟踪对象的速度和加速度向量,而是逐帧处理对象的位置和方向。Ogre可帮助重放在离线工具中创建的动画,或在运行时进行程序动画,甚至拟合曲线以实现漂亮的相机移动。
场景每帧都会重新绘制,帧与帧之间除了GPU上可能需要的资源外,没有其他内容保存。Ogre的动画功能主要是根据任意变量(通常是时间)帮助定位和定向角色或其他动画对象。
2. Ogre支持的动画类型
Ogre通常支持两种功能上操作对象的方式:关键帧动画和控制器动画。
2.1 动画
在Ogre中,动画是一组可能相关的轨道集合。动画轨道是随时间存储的数据值集合,时间点和轨道值组成关键帧。Ogre支持多种类型的关键帧和轨道,轨道类型与关键帧数据类型相对应。
关键帧的概念源于手绘动画,主艺术家提供关键帧,初级艺术家进行补间(绘制角色的中间姿势和位置)。在Ogre中,你是主艺术家,提供关键帧,Ogre则负责补间动画。几乎在所有情况下,你或你的艺术家会在离线3D建模工具(如Blender、SoftImage|XSI、Maya或3D Studio Max)中创建关键帧,Ogre使用这些关键帧数据在关键