王江春
摘 要 本文介绍了使用开发源代码骨骼动画引擎Cal3D实现人物动作运动控制的方法,详细介绍了从基础动画数据组织到程序编制及控制的整体过程。
关键词 骨骼动画
一、概述
骨骼动画技术是3D动画领域的一项比较高级的技术,由于其生动、逼真的效果,在影视制作、动态仿真等领域起着重要的作用。骨骼动画的含义是使用一系列的骨骼去带动一张皮肤进行运动。其特点是:第一,作为皮肤的网格是一个整体,而不是分成区段的。在简单的区段动画中,一个复杂的物体是由许多“坚硬”的段组成的,最典型和常见的例子是人体,是由头、躯干、手臂、腿、脚等组成,而躯干又分上身、下身,手臂又分上臂、前臂和手,腿部又分为大腿和小腿。分别为这些段定义运动,就可以组成人体的较复杂的运动了。第二,皮肤的形状是可以改变的,并且完全是由与其相关的骨骼决定的。当前支持骨骼动画技术的引擎很多,Cal3D就是一款较为先进的开源骨骼动画引擎(http://cal3d.sf.net)。
它是基于关键帧的骨骼动画,把数据分为三部分:骨骼(skeleton),网格(mesh)和动画(animation transformation)。由一个文本配置文件记录,每个动画文件是独立的,一个角色如果有5个动作时,就会有五个相对应的动画文件(如图1所示)。
支持动作混合(animation blending),可以实现两个动作的混合执行。例如一个奔跑动作动画和射击动作动画的混合,达到奔跑射击的效果。
短小精悍,渲染部分需要外部引擎实现,易于集成到其他3D引擎中。
图1 Cal3D支持的骨骼动画人物运动
二、建立 Cal3D的动画数据
为了使用Cal3D,需要建立骨骼动画的基本运动数据。这里使用常规建模软件3DMax来建立人物动画。用Max 7附带Character Studio 4.0建立了一段跑步动作(如图2所示)。(具体细节省略,有兴趣的可以参阅3DMAX相关资料)。Cal3D动画中最重要部分是MAX插件,它可让画师把动态角色输出成为程序员可用的格式。下面讲述具体输出步骤。
|