OGRE动画系统--骨骼动画

在骨骼动画中,模型具有互相连接的“骨骼”组成的骨架结构,通过改变骨骼的朝向和位置来为模型生成动画。

在骨骼动画,有一个过程叫做蒙皮,它的过程就是如何将模型的顶点与骨骼联系起来,比如说肩膀这个骨头有受到手臂这个骨骼影响也有受到肩膀这个骨骼想影响,它们都有一个影响值,那么在OGRE中,我们需要做一个限定,我们这边是限定每个顶点最多受到四个骨骼的影响,如果我们发现每个顶点超过四个骨骼,那么我们需要截取按照权重顺序的前四个,在做归一化处理。

mesh/subMesh中会保存蒙皮的信息,也就是顶点和骨骼之间的索引关系,如下图所示:

OGRE动画系统--骨骼动画_第1张图片


就是记录着顶点索引-骨骼索引-权重 这一组数据值。

在骨骼文件中还记录着骨骼的绑定信息和骨骼动画信息如下所示:

OGRE动画系统--骨骼动画_第2张图片

骨骼绑定信息就是骨骼的变换信息(SRT信息)。

骨骼动画信息如下:


OGRE动画系统--骨骼动画_第3张图片

就是一系列的animation/track/keyframe信息。

最后就是骨骼的父子关系:


OGRE动画系统--骨骼动画_第4张图片

是不是很简单呢。

最后说明一个注意点,你要注意在计算关键帧的时候,计算变换位置是在父空间下,而计算旋转等是在本地空间下,之前在做Mesh文件解析的时候就是都是在父空间下,造成看起来很诡异,所以大家需要注意。


你可能感兴趣的:(OGRE动画系统--骨骼动画)