本人主要从事图形图象工作,空闲之余接触了一些游戏编程,特写一些编程心得,本文
适合没有接触过人物动画编程的初学者,希望游戏制作的大虾们指点,交流。
在以前还有没接触人物动画编程的时候,觉得通过编程让人物动起来一定是一件很麻烦
的事情,尤其是初学者,大都会摸不着头脑,碰到诸如骨骼动画之类,似乎无从下手。但是
当你了解了它们的格式,就会发现其实真正的人物动画的制作并不是在编程阶段,而是在模
型构建阶段,程序员主要做工作的是掌握模型文件的格式,将存储在人物模型中的各种信息,
如顶点,面片,材质,骨骼或顶点运动的关键帧序列等信息读入内存然后用你熟悉的 SDK
绘制出来,再根据时间采用线性或者球形插值对动作序列的关键帧进行插值,不断变换顶点
坐标,从而得到了一系列连续的人物动画,听起来确实不难吧!当然你也可以在程序里自己
控制人物每一帧每一个关节的运动,我想做游戏的很少有人这么做吧。下面我向大家介绍一
下自己是如何编写人物动画程序的。本人从事的图形图象开发主要是基于 OpenGL 和 OSG
因此范例程序将采用 OpenGL 或 OSG。先声明一下,本人的语言表达能力很差,请大家多
多谅解指正。
考虑到没有接触过人物模型的朋友,我首先从人物模型的结构讲起,游戏人物编程主要
采用的人物模型格式有 Quake 里的md2,md3,Half Life 里的 mdl,Doom里的 md5,还有
典型的骨骼动画模型 ms3d…,至于3dmax 的模型,本人觉得太麻烦!在此我说两个有代表
性的 Md3,和 ms3d,其它的模型都大同小异,只要你了解了它们的格式,程序实现都不难。
1