游戏中的骨骼动画介绍
(2011-02-26 08:59:48)| 标签: 骨骼动画it | 分类: 游戏开发引擎—算法 | 
3D游戏中骨骼动画被广泛的运用,骨骼动画原理是每个游戏客户端程序必须要掌握的。
 
1. 
通俗的讲,游戏中的骨骼动画是分解动物运动过程中以骨骼驱动身体的运动方式。
也就是说,骨骼动画是由一系列“骨骼”运动,并带着依附于其上的顶点一起运动。
 
2. 
实现骨骼动画的文件:.mesh(保存实际顶点相关的数据,不同引擎后缀名不一样),.sks(保存初始”骨骼”信息,不同引擎后缀名不同),.sa(具体某个动画的所有帧信息,每一帧的”骨骼”信息,不同引擎后缀名不一样)。
 
注意:
上面提到的文件需要由3DMAX等模型制作软件导出,关于模型等文件的导出这里不再介绍。
骨骼其实就是一组矩阵,这组矩阵可能包含旋转、平移和缩放。
.sa中保存的是动画帧信息,每一帧动画指定了所有骨骼的新矩阵
 
 
骨骼动画原理:
对某一个设置好的动画,需要一个“动画时间驱动器”来根据当前时间决定当前动画处于那两个帧之间,并根据这两个帧来确定当前骨骼的信息,最后使用得到的骨骼矩阵信息去转换模型顶点,从而得到新的顶点位置。由于“动画时间驱动器”一直工作,以致动画会不断的更新,从而渲染出来的图片就像是动画一样不断变化。
 
3. 
除了对骨骼动画的理解外,还得自己实现一遍,不过由于篇幅原因不是很方便将我的代码贴上来,但是DXSDK例子中的骨骼动画那个例子介绍得还算详细,网上也有很多关于骨骼动画的代码。
 
骨骼动画需要面临的问题也多,比如效率问题,骨骼动画在对定点进行转换的时候需要进行大量的矩阵转换,这些交给GPU去处理会大大提高效率,DXSDK例子中的骨骼动画那个例子上使用了SHADER来处理。
 
还有一些其他的技术如骨骼动画混合,这里就不多介绍了。

 加载中…
加载中…