骨骼动画的基本原理
TuesdayAugust312010ByLixi
gShi
一、3DSMAX建模软件的骨骼动画制作过程首先,在3DSMAX中绘制角色的网格模型,然后,创建角色的脊椎关节。一般是
在角色模型的背部曲线上依次单击鼠标,创建出一根根骨骼。先创建的骨骼为随后创建的骨骼的父骨骼,而后者为前者的子骨骼,如此形成一条具有父子层次关系的骨骼链。用同样的方法,可建立更多的骨骼链。单击“Selecta
dLi
k”工具按钮,将各条骨骼链连接在一起,建立起角色的完整骨骼架构。
接着,进行曲面与骨骼的绑定。选择某部分的角色曲面,利用“Add”按钮添加该曲面的各个骨骼。
单击“Dummy”命令按钮,在骨骼位置上创建虚拟物体,即控制手柄,这样就可以利用这个控制手柄对骨骼进行旋转,从而测试出角色动画的效果。
从以上3DSMAX建模软件中骨骼动画制作的基本流程可以了解到,骨骼和蒙皮顶点的关系、骨骼之间的父子关系的构成方法以及如何利用骨骼的运动来带动蒙皮顶点的运动。二、X文件中骨骼动画的存储方式与Direct3D对模型的控制原理
yz世界坐标系
x
皮
肤
关节点1
网
骨骼1的坐标系
格
、
机器手网格
关节点2
关
节
骨骼1
点
骨骼2的坐标系
、
骨
骨骼2
骨骼3的坐标系
骼
以
及
关节点3
相
关
坐
骨骼3
标
系
图1如图所示,左上角最顶端的坐标系为世界坐标系。机器手的网格分为上臂、前和手掌3个部分。逐次在上臂、前臂和手掌的Mesh内部选定骨骼,形成图中的3条骨骼。其中,骨骼1是骨骼2的父骨骼,骨骼2是骨骼3的父骨骼。角色网格的每一个顶点都有一个局部坐标,这些顶点局部坐标构成X文件的Mesh对象的数据。在角色网格中相继点击鼠标,为角色网格设置一系列的骨骼。鼠标的首次点击位置
f就是该骨骼的首关节点,尾关节点由再次点击鼠标选定子骨骼时确定,尾关节点则是子骨骼的首关节点。
在每一条骨骼上建立一个骨骼坐标系。由于骨骼坐标系会随着骨骼的运动而运动,骨骼上的皮肤顶点的骨骼坐标在骨骼的运动过程中保持不变。
yz世界坐标系
x
皮
肤
网
格
、
机器手网格
点P’
关
节
骨骼1
点
、
骨
骨骼2
骼
以
及
点P
相
关
坐
骨骼3
标
系
图2如图中的点P,在骨骼2的坐标系下的坐标保持不变。由于任意两个父子骨骼的坐标系,一定存在一个坐标变换矩阵Aframe,使得子骨骼蒙皮上顶点的骨骼坐标Xchild与该顶点在父骨骼坐标系中的坐标Xfather满足如下关系式XfatherXchildAframe,矩阵Aframe称为子骨骼的骨骼矩阵。如果将根骨骼(层次关系中处于最上层r