转载:OGRE一起学(十二) 骨骼动画的读取和播放
第十二章 骨骼动画的读取和播放
OGRE 本身附带了两套比较完整的骨骼动画模型,保存在 OGRE\Samples\Media\models 目录下,一套是机器人 ( robot.mesh 和 robot.skeleton ) ,一套是忍者 ( ninja.mesh 和 ninja.skeleton ) 。其中忍者的模型多边形数比较高,动作也比较丰富和细腻。我们就使用这个现成的忍者模型来学习骨骼动画的读取和播放。
OGRE 的角色模型和骨骼动画是分开为两个不同格式的文件,
一个是 *.mesh 文件,在这个文件中,定义了角色的皮肤 (Skin) 模型、角色的材质名称 、以及角色对应的 *.skeleton 骨骼动画文件名;
在 *.skeleton 文件中,则定义了角色的骨骼 (Bones) 信息和骨骼动画序列,一个 *.skeleton 文件中至少包含一个骨骼定义部分和若干个骨骼动画序列,在 ninja.skeleton 文件中就包含了 Walk 、 Jump 、 Attack1 、 Idle2 等多个动画序列的定义。
至于如何知道 *.mesh 文件使用的材质名称和骨骼动画文件名,以及如何知道 *.skeleton 文件中定义了哪些动画序列,可以使用 OgreXMLConverter.exe 。这个工具在编译后的 ogrenew\Tools\XMLConverter\bin\release 目录下。本节不打算具体讲解这个工具的使用方法,以后和 3dsmax 的 OGRE 输出插件一起讲解,本节专讲如何读取和播放骨骼动画。
1. 引入新概念: FrameListener (帧接收器) 。