首页 四元数在骨骼蒙皮动画中的应用

四元数在骨骼蒙皮动画中的应用

举报
开通vip

四元数在骨骼蒙皮动画中的应用四元数在骨骼蒙皮动画中的应用 (124 No. 2 Vo l自然科学苏 州 大 学 学 报 第 24 卷第 2 期 )版 2008 年 4 月 Ap r. 2008 ()JOURNAL O F SU ZHOU UN IV ER S ITY NA TURAL SC IENCE ED IT ION 四元数在骨骼蒙皮动画中的应用 蒋德茂 ,吕强 ( 215006; 1. 苏州大学 计算机科学与技术学院 ,江苏 苏州 215006; 2. 苏州大学 多媒体应用技术研究室 ,江苏 苏州 ) 3. 江苏省计算机信息处...

四元数在骨骼蒙皮动画中的应用
四元数在骨骼蒙皮动画中的应用 (124 No. 2 Vo l自然科学苏 州 大 学 学 报 第 24 卷第 2 期 )版 2008 年 4 月 Ap r. 2008 ()JOURNAL O F SU ZHOU UN IV ER S ITY NA TURAL SC IENCE ED IT ION 四元数在骨骼蒙皮动画中的应用 蒋德茂 ,吕强 ( 215006; 1. 苏州大学 计算机科学与技术学院 ,江苏 苏州 215006; 2. 苏州大学 多媒体应用技术研究室 ,江苏 苏州 ) 3. 江苏省计算机信息处理技术重点实验室 ,江苏 苏州 215006 摘 要 : 提出一种把骨骼蒙皮动画从三维动画软件中导出并在其他应用软件中还原的 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,阐述了四元数在 骨骼蒙皮动画中所发挥的巨大作用 . 该 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 对同类系统的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 研究具有一定的参考价值 . 关键词 : 四元数 ;骨骼动画 ;蒙皮动画 ;旋转 ( ) 文章编号 : 1000 - 2073 2008 02 - 0042 - 05 中图分类号 : TP391 文献标识码 : A 0 引言 ()在虚拟现实系统中 如三维漫游系统 引入角色动画可以增强系统的功能和 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 现力 ,骨骼蒙皮动画是角 色动画的一种主流形式 . 其中骨骼动画是由各关节的旋转来实现的 ,蒙皮动画中网格各顶点的位置也是由关 节的旋转来驱动的 ,但是用三维坐标来表示关节旋转比较困难 ,四元数就是解决这个问题的强大的数学工具. 1 四元数与旋转 1. 1 四元数简介 ()四元数 Q ua te rn ion理论是数学家 H am ilton于 1843年首先提出的. 四元数可以看作是复数的推广 ,其形 式为 x i + y j + zk + w , 其中 w 为实数或者标量 , i、j、k为虚数部分 . 假设有两个四元数 : q= xi + yj + zk + w, q= xi + yj + zk + w 1 1 1 1 1 2 2 2 2 2 它们相乘的结果还是一个四元数 ,四元数的乘法定义如下 : ) () (+ xw+ yz- zyi + wy- xz+ yw+ zxj +q×q= wx 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 ( )) ()1. 1 (+ xy- yx+ zwk + ww- xx- yy- zz wz 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1. 2 将四元数应用于三维空间旋转 1. 2. 1 理论基础 四元数只是一个复数的扩展 ,直到 1985 年才由 Shoem ake 将其引入计算机图 形学领域 ,成为一个用来构造强制变换的有力工具 . 我们把旋转定义为一个角度 (θ) (θ) 位移 ,由 , n 给出 ,其中 是关于轴 n 的旋转角 图 1 . 由图 1可推导出 : ( θ) ( θ) ( ) ( θ) R = co sr + 1 - co sn n ? r+ sinn ×rr 可见通过角度位移来旋转向量 r 可以通过一个四元数变换来实现 . 在这里四 [ 1 ] (θ) 元数的应用如同一个矩阵 ,使向量发生了变化 . 值得注意的是 ,对于 , n 的角 (θ)1 r的角度位移 , n 图 度和轴不是简单地放在四元数中 ,它们必须经过预处理 . 假设有一任意旋转轴的 ) ( θ向量 q x, y, z与一旋转角度 ,将它们转换为四元数 ,则 4个参数分别为 q q q ( )(θ) (θ) (θ) (θ) 1. 2 x = sin / 2 x, y = sin / 2 y, z = sin / 2 z, w = co s / 2 q q q 3 收稿日期 : 2007 - 03 - 07 ( ) 基金项目 : 江苏省计算机信息处理技术重点实验室开放课题 KJ S03062 ( ) 作者简介 : 蒋德茂 1974 - ,男 ,江苏苏州人 ,实验师 ,主要从事多媒体应用技术研究 . 1. 2. 2 直接用四元数表示旋转 ( ) 假设有一向量 p x, y, z对着一单位四元数 q 作旋转 , 将 p 视为无纯量的四元数 x i + y j + zk ,则向量的旋 转经推导可得 - 1 - 1 ) ( )( ( )Ro t p = qpq q是 q 的共轭 1. 3 1. 2. 3 用四元数的矩阵形式表示旋转 ( )( )( ) 式 1. 4 中间的矩阵是由单位四元数 q 转换而得的旋转变换矩阵 . 式 1. 3 和式 1. 4 在几何意义上是相 同的. 2 2 ()x( )( )x2 wy+ xz1 - 2 y+ z2 xy- wz0 321 1 1 1 1 1 1 1 1 1 2 2 yy )( ( ( )0 3+ wz - 2 x)21 2 xy2 yz- wx + z 1 1 11 11 1 1 1 1 ( )1. 4 = 2 2 zz 3)( )( 2( 0 - wy 2 yz+ wx2 x2 xz 1 - ) + y 1 1 1 1 1 1 11 11 ww 320 1 0 0 2 从三维动画软件中导出骨骼蒙皮动画 ()骨骼蒙皮动画是根据角色的身体运动方式而来的. 角色的身体是一个网格 M e sh模型 ,网格的内部绑定 了一个骨骼结构 ,当骨骼运动时 ,身体就会跟着骨骼一起运动 . ()三维动画软件 如 M aya提供了强大的建模和动画的功能 ,在动画软件中制作角色的骨骼蒙皮动画 ,然后 导出给其它系统使用是一个很好的思路. 由于三维动画软件一般提供自身的 A P I,所以我们可以通过编写插 件来导出骨骼蒙皮动画所需的各种数据. 但我们首先需要定义这些数据的数据结构. 2. 1 关节的表示 骨骼是由一定数量的关节按层次结构组合而成的 ,关节间构成一系列“父子 ”关系 ,如肘关节是肩关节的“儿子 ”,同时也是腕关节的“父亲 ”. 关节的数据结构可采用如下形式表示 : Jo in t_ id Pa ren t_ jo in t_ id o rien ta tion tran sla tion ro ta tion 每个关节都有唯一的 id, Pa ren t_ jo in t_ id指向父关节的 id,从而实现层次关系 ; tran sla tion描述了关节相对 于父关节的位移 ,用一个三维向量表示 ; o rien ta tion和 ro ta tion都是描述关节相对于父关节的旋转 ,都用四元数 表示. 它们的作用是不同的 ,在三维动画软件中骨骼一旦建立 ,各关节的 o rien ta tion 就确定了 ,且作为初始状 态不再改变 ,它的 作用 是 建立 了本 关 节的 局部 坐标 系 , ro ta tion 则是 描述 关节 在 该 局 部 坐 标 系 下 如 何 进 行 旋转. ( )o rien ta tion和 ro ta tion四元数的 4个参数可按照式 1. 2 计算得出 ,注意它们作为旋转轴还需要预处理成 单位四元数 . 所幸这些步骤三维动画软件的 A P I都能帮你完成 ,我们要获得这些四元数 ,只需调用相应函数即 () 可 . 例如 , M aya A P I提 供 的 求 关 节 o rien ta tion 属 性 的 函 数 是 M sta tu s ge tO rien ta tion M qua te rn ion&qua te rn ion con st. 2. 2 骨骼动画 制作骨骼动画是通过旋转骨骼各个关节 ,让角色摆出所需的姿势并记录为关键帧来完成的 . 三维动画软件能自动对相邻两个关键帧之间的中间帧进行插补 ,连续播放时就形成动画. 我们只需记录关节的关键帧号 和旋转状态 ,就能描述整个骨骼动画 ,其中旋转状态就是 2. 1 中关节的 ro ta tion,因此它也是一个四元数 . 骨骼 ()44 苏 州 大 学 学 报 自然科学版 第 24 卷 2. 3 蒙皮动画 给定一个已有细节的皮肤网格和一个相关的动画层次 ,我们的目标是当底层骨骼动起来的时候 ,产生一 [ 2 ] ( ) 个自动地变形网格的方法 ,这个过程称为“蒙皮 ”Sk inn ing. 蒙皮后皮肤上每个顶点都有了相应的权重 () W e igh t,这些权重定义了关节的运动对相关顶点的影响因子 . 权重的数据结构可采用如下形式表示 : V e rtex_ id Jo in t_ id W 3个数据项分别表示 :顶点 id、影响此顶点的关节 id、权重值 W. 若在三维动画软件中进行蒙皮时采用了 [ 3 ] “平滑蒙皮 ”,则每个顶点同时受最近的几个关节的影响 ,几个关节对顶点的影响力即权重值相加等于 1. 3 用四元数来还原骨骼蒙皮动画 获得了骨骼蒙皮动画所需的各个数据后 ,就可以利用它们在自己的系统中还原动画 . 3. 1 关键帧上骨骼姿态的还原 图 2的关节链可以近似地看作是人的手臂. 圆形为关节 ,三角形为骨头 ,关节中的十字可看作是关节的o rien ta tion,十字上的坐标轴可看作是关节的 ro ta tion. 在某个关键帧上转动肘关节后 , o rien ta tion 相对于父关节 是不变的 ,而 ro ta tion却与 o rien ta tion产生了一个旋转 ,这个旋转在骨骼动画的关键帧的数据结构中表示为一 个四元数 . ( )( )a手臂关节链的初始状态 b在某个关键帧 ,旋转了肘关节 图 2 M a ya 中关节链的旋转效果图 要还原某个关键帧上的骨骼姿态 ,就必须计算该关键帧上的各个关节的绝对坐标和绝对旋转 . 坐标用向 量表示 ,旋转用四元数表示 ,由图 2可得如下伪代码 : 根关节绝对坐标 =根关节 tran sla tion 根关节绝对旋转 =根关节 o rien ta tion ×根关节 ro ta tion (( ) ) 两个四元数相乘的结果也是一个四元数 ,在几何上表示旋转的累积 ,参考式 1. 1 非根关节绝对旋转 =父关节绝对旋转 ×本关节 o rien ta tion ×本关节 ro ta tion () 非根关节绝对坐标 方法 1 =父关节绝对坐标 +父关节绝对旋转 ×本关节 tran sla tion ×父关节绝对 反向旋转 (( ) ) 加法后面的部分表示直接使用四元数来旋转向量 ,参考式 1. 3 () 非根关节绝对坐标 方法 2 =父关节绝对坐标 + 父关节绝对旋转的矩阵 ×本关节 tran sla tion (( ) ) 加法后面的部分表示用四元数的矩阵来旋转向量 ,参考式 1. 4 3. 2 骨骼动画的还原 由于关键帧的数量有限 ,如果只用关键帧 ,播放出来的动画并不连续 ,所以需要按照某时刻与前后两个关 [ 4 ] 键帧时刻的时间值插值计算出该时刻该骨骼相对于父骨骼的新变换矩阵 . 新的变换矩阵中的旋转矩阵是 由四元数经过插值后转换而来的 ,四元数的插值有如下两种方法 . 3. 2. 1 线性插值 ( ) ( ) le rp q, q, u = q1 - u + qu , u ? [ 0, 1 ]1 2 1 2 其中 q和 q是两个单位四元数 ,分别代表相邻两个关键帧上的关节旋转 ; u可看作关节旋转夹角范围内 1 2 [ 1 ] 的偏移. 使用线性插值虽然能够求出插值 ,但会使两个关键帧之间的插值产生中间加速的运动 ,即旋转时 的角速度不是匀速的 ,这对于还原骨骼动画很不利 . 3. 2. 2 球面插值 由图 3可推导得出 : ( )ΩΩ sin 1 - u sinu ( ) + qp = sle rp q, q, u = q 21 2 1ΩΩsin sin Ω其中 q?q= co su ? [ 0, 1 ] , u ? [ 0, 1 ]. 1 2 球面插值解决了线性插值存在的问题 ,但球面插值自身也有问题 . 显然从四 元数 q到四元数 q有正反两个方向的旋转路线 ,对于骨骼动画中关节的两个关键 1 2 图 3 球面线性插值 Ω π 帧旋转来说应该有 0 <<,否则会出现关节反转的情况. 球面插值有对这种奇 异问题处理的方法 ,但较为繁琐 . 由于骨骼动画对精确性的要求并不是很高 ,所以可以用一个相对简单的方法 Ω Ω来解决这个问题. 因为 co s= q?q,我们可以设定一个非常接近 1的值 ,当 co s的绝对值大于这个值的时 1 2 候采用线性插值 ,否则采用球面插值. 3. 3 蒙皮动画的还原 蒙皮动画的还原就是要对皮肤网格上的各个顶点在每一帧的实际坐标位置进行还原. 由于每个皮肤顶点 的空间变换都是受若干关节影响的 ,即蒙皮动画是由骨骼动画驱动的 ,所以我们只需考虑在静态情况下骨骼 的各个关节是如何去影响皮肤顶点具体位置的 ,而不用去关心蒙皮的动画 . 具体而言 ,顶点位置的计算可以采 用两种方法 . 方法一 : n ( )3. 1 v = M dw i i i? i = 0 其中 v表示顶点的新位置 ; M 表示与该顶点相关联的关节 i的当前世界变换矩阵 ; d表示从顶点初始位置到 i i 与该顶点相关联的第 i个关节初始位置的位移矢量 ; w 表示与该顶点相关联的第 i个关节对该顶点影响的权 i 重 ,所有权重的和应为 1; n 表示与该顶点相关联的关节的数目. 方法二 : n - 1 ( )3. 2 v = vw M M 0 iii0? i = 0 - 1 其中 M 表示与该顶点相关联的关节 i的初始状态世界变换矩阵 ; v 为初始状态顶点位置. 所谓“初始状 i0 0 ()态 ”,是指在三维动画软件 如 M aya中用骨骼绑定皮肤时角色模型所摆的姿势 ,一般是指两腿直立 、双臂向 两侧平举的姿态. ( ) ( ) 为理解方便 ,暂不考虑权重 ,即假设每个顶点仅受一个关节的影响 n = 0, w = 1 . 那么式 3. 1 和式( )( )( ) 3. 2 可分别简化为式 3. 3 和式 3. 4 . ( )v = M d= TR d3. 3 0 0- 1 - 1 - 1 ( )v = M M v= TR RTv3. 4 0 0 0 0 0 其中 v表示顶点的新位置 ; d表示从顶点初始位置到相关联的那个关节初始位置的位移矢量 ; M 表示关节的 0 - 1 当前世界变换矩阵 ; M 表示初始状态世界变换矩阵的逆矩阵 ; T 为关节当前的位移矩阵 ; R 为关节当前的 0 - 1 - 1 旋转矩阵 ; R 为关节初始状态时的旋转矩阵的逆矩阵 ; T为关节初始状态时的位移矩阵的逆矩阵. 0 0 ()46 苏 州 大 学 学 报 自然科学版 第 24 卷 ( )图 4中空心点表示关节 ,连接空心点的直线是骨头 ,实心点表示角色皮肤上的网格顶点. 对式 3. 3 和式 - 1 - 1 ( )3. 4 相比较可知 d= RTv,由图 4也能比较容易地理解这点 ,即 v按照相连关节的初始世界变换进行 0 0 0 0 0 反方向的平移和反方向的旋转后可以求得 d. 其中无论是 R、R还是它们的逆都是以四元数为基础的 .0 0 ( )( )1 2 图 4 关节旋转前后的蒙皮顶点变化 两种方法都能计算出顶点的新位置 ,可根据具体情况选择使用. 实际计算时还应将所有顶点的新位置按 照每一关节的影响权重加权求和 . 4 应用实例 在本人参与的一个室内漫游系统中需要一个角色做一些行走 、坐下 、开关门窗等基本动作. 如图 5 所示 , 按照文中所述方法首先构建描述骨骼蒙皮动画所需的数据结构 ,然后编写插件导出在 M aya软件中预先制作 好的角色走路的骨骼蒙皮动画数据 ,最后利用这些数据在应用程序中成功还原了这个角色的行走动画 . ( ) ( )( )aM aya中制作的骨骼蒙皮动画 b编程还原的骨骼动画 c编程还原的蒙皮动画 图 5 骨骼蒙皮动画的测试截图 5 结语 本文以四元数为线索提出了一个骨骼蒙皮动画导出和还原的方法 ,同时在导出和还原的过程中也反证了 四元数及其矩阵形式在表示空间旋转上的巨大作用. 在解决了角色骨骼蒙皮动画这个技术点后 ,也就摆脱了 大多数漫游系统中只以第一人称视角漫游场景的限制 ,增加角色动画使漫游系统的表现力和沉浸感增强 . 下 一步要做的是角色的多个基本动作的动画衔接混合 ,其中也必然会涉及到四元数的应用 . () 下转第 51页 ( ) [ 12 ] 胡 军 ,李宣东 ,郑国梁 ,等 . 基于场景规约的构件式系统设计分析与验证 [ J ]. 软件学报 , 2006, 29 40 : 513 - 525. [ 13 ] Roge r S P re ssm an. Softwa re Enginee ring A P rac titione r’s App roach [M ]. Sixth Ed ition. B e ijing: Ch ina M ach ine P re ss, 2007: 341 - 344. M e tr ic s on com pon en ts ba sed on fea ture po in t Q i H uacheng, Zhang Guangquan ( )Schoo l of Comp u te r Sc ience and Techno logy, Suzhou U n iv. , Suzhou 215006 , Ch ina A b stra c t: R eu sab le softwa re ba sed the techno logy of componen t and the though t of refac to ring p ro sp ec ts to re so lve softwa re c risis, bu t a t p re sen t the re is lack of no rm a l fo rm s gu id ing how to choo se re liab le componen ts and to de sign reu sab le componen ts, wh ich can be sound ly re so lved in virtue of fea tu re po in t and au tom a ta. F irstly th is p ap e r p u ts fo rwa rd the concep t of fea tu re po in t on componen t to de sc ribe exte rna l sta tic fea tu re s and inne r logic struc tu re m ean2 wh ile. Fea tu re au tom a ta is con struc ted to dep ic t the con text; Second ly fea tu re au tom a ta is u sed to d istill effec tive com 2 ponen t fea tu re po in t; A nd then componen t fea tu re p robab ility is comp u ted by tha t; L a stly the m e tric re su lt is ca lcu la t2 ed by the ana logic m e thod of func tion po in t. A p rac tica l ca se is fina lly shown to va lida te the m e tric way. Key word s: componen t fea tu re po in ts; fea tu re au tom a ta; fea tu re p robab ility () 责任编辑 :周建兰 ()上接第 46 页 参考文献 : [ 1 ] A lan W a tt. 3D 计算机图形学 [M ]. 第 3版 . 北京 :机械工业出版社 , 2005: 387 - 390. [ 2 ] A nd rew Kirm se. 游戏编程精粹 4 [M ]. 北京 :人民邮电出版社 , 2005: 401 - 408. [ 3 ] A lia s |wavefron t. U sing M aya: Cha rac te r Se tup [M ]. 北京 :中国青年出版社 , 2000: 327 - 368. [ 4 ] A dam s J. A dvanced A n im a tion w ith D irec tX [M ]. Bo ston: P rem ie r P re ss, 2003: 108 - 123. The a pp l ica t ion of Qua tern ion in Ske le ta l Sk inn ed An im a t ion J iang D em ao, L v Q iang ( 1. Schoo l of Comp u ter Sc ience and Techno logy, Suzhou U n iv. , Suzhou 215006 , Ch ina; 2. App lied M u ltim ed ia Techno logy L ab, Suzhou U n iv. , Suzhou 215006 , Ch ina; )3. P rovinc ia l Key L abo ra to ry fo r Comp u te r Info rm a tion P roce ssing Techno logy, Suzhou U n iv. , Suzhou 215006 , Ch ina A b stra c t: A m e thod fo r expo rting Ske le ta l Sk inned A n im a tion from 3D an im a tion softwa re and rebu ild ing in o the r app lica tion s wa s p u t fo rwa rd, it exp a tia te s on the grea t effec t of Q ua te rn ion in Ske le ta l Sk inned A n im a tion. The se techno logie s a re va luab le fo r the system s of the sam e k ind. Key word s: Q ua te rn ion; Ske le ta l A n im a tion; Sk inned A n im a tion; ro ta tion
本文档为【四元数在骨骼蒙皮动画中的应用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_321575
暂无简介~
格式:doc
大小:63KB
软件:Word
页数:13
分类:生活休闲
上传时间:2017-09-25
浏览量:21