骨骼动画的基本原理【注:自撰技术文档】.doc_第1页
骨骼动画的基本原理【注:自撰技术文档】.doc_第2页
骨骼动画的基本原理【注:自撰技术文档】.doc_第3页
骨骼动画的基本原理【注:自撰技术文档】.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

骨骼动画的基本原理【注:自撰技术文档】本文由shilxfly贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 骨骼动画的基本原理 Tuesday, August 31, 2010 By Lixing Shi 一、3DS MAX 建模软件的骨骼动画制作过程 首先,在 3DS MAX 中绘制角色的网格模型,然后,创建角色的脊椎关节。一般是 在角色模型的背部曲线上依次单击鼠标, 创建出一根根骨骼。 先创建的骨骼为随后创建 的骨骼的父骨骼,而后者为前者的子骨骼,如此形成一条具有父子层次关系的骨骼链。 用同样的方法,可建立更多的骨骼链。单击“Select and Link”工具按钮,将各条骨骼 链连接在一起,建立起角色的完整骨骼架构。 接着,进行曲面与骨骼的绑定。选择某部分的角色曲面,利用“Add”按钮添加该 曲面的各个骨骼。 单击“Dummy”命令按钮,在骨骼位置上创建虚拟物体,即控制手柄,这样就可 以利用这个控制手柄对骨骼进行旋转,从而测试出角色动画的效果。 从以上 3DS MAX 建模软件中骨骼动画制作的基本流程可以了解到,骨骼和蒙皮顶 点的关系、 骨骼之间的父子关系的构成方法以及如何利用骨骼的运动来带动蒙皮顶点的 运动。 二、.X 文件中骨骼动画的存储方式与 Direct3D 对模型的控制原理 y z x 关节点1 (骨骼1的坐标系) 机器手网格 骨骼1 (骨骼2的坐标系) 骨骼2 (骨骼3的坐标系) 关节点2 (世界坐标系) 皮 肤 网 格 、 关 节 点 、 骨 骼 以 及 相 关 坐 标 系 关节点3 骨骼3 如 3 个部分。 次在上 、前 和手 的 Mesh 部选定骨骼,形成 中的 3 条骨骼。 中,骨 骼 1 是骨骼 2 的父骨骼,骨骼 2 是骨骼 3 的父骨骼。 角色网格的 一个顶点 有一个 部坐标,这 顶点 部坐标构成.X 文件的 Mesh 对 的 。 在角色网格中 点击鼠标, 为角色网格 置一系 的骨骼。 鼠标的首次点击位置 1 , 上角 顶 的坐标系为世界坐标系。机器手的网格分为上 、前和手 就是该骨骼的首关节点, 尾关节点由再次点击鼠标选定子骨骼时确定, 尾关节点则是子 骨骼的首关节点。 在每一条骨骼上建立一个骨骼坐标系。由于骨骼坐标系会随着骨骼的运动而运动, 骨骼上的皮肤顶点的骨骼坐标在骨骼的运动过程中保持不变。 y z x (世界坐标系) 皮 肤 网 格 、 关 点P 机器手网格 骨骼1 骨骼2 节 点 、 骨 骼 以 及 相 关 坐 标 系 点P 骨骼3 2 中的点 P,在骨骼 2 的坐标系 的坐标保持不变。 由于 个 子骨骼的坐标系,一定 在一个坐标变 Aframe, 子骨骼 关系 皮上顶点的骨骼坐标 Xchild 该顶点在 骨骼坐标系中的坐标 Xfather Xfather = Xchild*Aframe, Aframe 子骨骼的骨骼 。 骨骼 次关系中 网格顶点坐标的 Frame 于 上 的 骨骼 的 骨骼坐标系定 世界坐标系 在的坐标系 就是 的 坐标系 , ,每个骨骼 一个骨骼 , 就是在.X 中 的一系 次关系的 Frame 中的变 。 骨骼 , 骨骼 皮顶点 在骨骼坐标系 的坐标 世界坐标。 世界 根Frame 世界坐标系 注:矩阵An为骨骼矩阵 矩阵AN为局部变换矩阵 世界坐标系(顶点的世界坐标Xworld) *(A1) 第2层Frame 第M层Frame(整体组合) 第m层Frame(局部组合) 局部坐标系1 *(AMAM-1A2) 局部坐标系M(网格顶点的局部坐标Xlocal) *(AmAm-1AM+1) *(AnAn-1AmAM+1) 某高层骨骼坐标系m(网格顶点的骨骼坐标Xm ) *(AnAn-1Am-1) *(AnAn-1AmAM+1)-1 某低层骨骼坐标系n(网格顶点的骨骼坐标Xn ) 第n层Frame(低层骨骼) 图3 其中,矩阵“(AnAn-1AmAM+1) ”称为骨骼的权重矩阵,是从局部坐标系所在的 框架开始遍历到该骨骼,通过各层的骨骼矩阵左乘,然后求逆计算出来的。骨骼的权重 矩阵就是在.X 文件中各个骨骼的 Skin Weights 对象中的偏移矩阵,用来反响求出顶点在 所属骨骼的坐标系下的坐标。 现在烤炉骨骼绕关节点的旋转。如图 2 所示,骨骼 2 绕关节点 2 抬起,即骨骼 2 绕关节点 2 轴线的一个旋转变换。旋转后,骨骼 2 的骨骼矩阵(即相对于父骨骼 1 的坐 标系)发生改变,而其他子骨骼的骨骼矩阵维持不变。由此看出,应用反应父子相对关 系的骨骼矩阵来存储骨骼动画的运动变化,需要较少的数据更新。在.X 文件中,骨骼在 某一帧时刻的 Animation Key 矩阵对象就是这些骨骼矩阵。 此时, 通过骨骼矩阵自定向下进行乘法累积, 可获得旋转后的各个骨骼的世界坐标 变换矩阵。设旋转后的骨骼 2 世界坐标变换矩阵为 W2,顶点旋转后的世界坐标 Xworld_new 和骨骼坐标 Xframe_new 满足关系式 Xworld_new = Xframe_new*W2,由于 顶点 相对于它 的骨骼坐标系 的坐标在 旋转过程中保 持不变, 从 而 Xframe_new = Xframe_0,因此有 Xworld_new = Xframe_0*W2。 顶点坐在骨骼的权重矩阵为 H, 顶点最初始的 Mesh 局部坐标为 X0。 根据权重矩阵 的定义,有 Xframe_0 = X0*H。从而 Xworld_new = Xframe_0*W2 = X0*H*W2,这说明旋 转后的顶点世界坐标等于顶点最初始状态下的局部坐标与权重矩阵以及所在骨骼的世 界坐标变换矩阵的乘积。 通常,关节点附近的网格顶点可以收到多个骨骼的控制。如下图的点 P -1 y z x (世界坐标系) 皮 肤 网 格 、 关 节 点 、 骨 P 机器手网格 骨骼1 骨骼2 骼 以 及 相 关 坐 标 系 P 骨骼3 4 机器手 手 3 骨骼 3D weight

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论