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

合集下载

数字动漫制作中的角色绑定与骨骼动画技巧

数字动漫制作中的角色绑定与骨骼动画技巧

数字动漫制作中的角色绑定与骨骼动画技巧随着科技的进步和数字媒体的发展,数字动漫制作已经成为了一种极具创意和表现力的艺术形式。

在数字动漫中,角色绑定和骨骼动画技巧起着至关重要的作用。

本文将探讨数字动漫制作中的角色绑定和骨骼动画技巧,并介绍一些相关的技术和工具。

首先,角色绑定是数字动漫制作中的一个重要环节。

角色绑定是指将虚拟角色的各个部分与骨骼系统连接起来,以便能够对角色进行动画控制。

通过角色绑定,动画师可以更加方便地操控角色的动作,使其更加自然和流畅。

角色绑定的关键在于将角色的各个部分与骨骼系统进行关联,并设置各种约束和控制器,以实现角色的各种动作。

在数字动漫制作中,常用的角色绑定工具有Maya、3ds Max等。

其次,骨骼动画技巧是数字动漫制作中不可或缺的一部分。

骨骼动画是指通过对角色的骨骼系统进行控制,使其产生各种动作效果。

骨骼动画技巧的关键在于对角色的骨骼系统进行细致的调整和控制,以实现真实和生动的动画效果。

在数字动漫制作中,骨骼动画技巧需要动画师具备一定的解剖学和动态学的知识,以便能够准确地模拟人体的运动和姿态。

同时,骨骼动画技巧还需要动画师具备良好的艺术感和审美能力,以便能够创造出富有表现力和吸引力的动画效果。

除了角色绑定和骨骼动画技巧,数字动漫制作中还有一些其他的技术和工具。

例如,动画蒙皮技术可以使角色的皮肤和骨骼系统进行绑定,以实现更加真实和逼真的动画效果。

此外,动画师还可以使用动画路径和关键帧技术来控制角色的移动和动作。

动画路径是指在三维空间中定义角色的运动轨迹,而关键帧则是指在动画序列中定义角色的关键动作。

通过使用动画路径和关键帧技术,动画师可以更加精确地控制角色的动作和表情。

总之,数字动漫制作中的角色绑定和骨骼动画技巧是实现真实和生动动画效果的关键。

通过合理的角色绑定和精细的骨骼动画技巧,动画师可以创造出富有表现力和吸引力的数字动漫作品。

当然,数字动漫制作还涉及到许多其他的技术和工具,如渲染技术、特效技术等,这些都是数字动漫制作中不可或缺的一部分。

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

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

第24卷第2期苏 州 大 学 学 报(自然科学版)Vol 124No .22008年4月J OURNAL OF SUZ HOU UN I VERSI TY (NATURAL SC I ENCE EDITI ON )Apr .2008*收稿日期:2007-03-07基金项目:江苏省计算机信息处理技术重点实验室开放课题(K JS03062)作者简介:蒋德茂(1974-),男,江苏苏州人,实验师,主要从事多媒体应用技术研究.四元数在骨骼蒙皮动画中的应用蒋德茂,吕 强(1.苏州大学计算机科学与技术学院,江苏苏州 215006;2.苏州大学多媒体应用技术研究室,江苏苏州 215006;3.江苏省计算机信息处理技术重点实验室,江苏苏州 215006)摘 要:提出一种把骨骼蒙皮动画从三维动画软件中导出并在其他应用软件中还原的方案,阐述了四元数在骨骼蒙皮动画中所发挥的巨大作用.该方法对同类系统的设计研究具有一定的参考价值.关键词:四元数;骨骼动画;蒙皮动画;旋转中图分类号:TP391 文献标识码:A 文章编号:1000-2073(2008)02-0042-050 引 言在虚拟现实系统中(如三维漫游系统)引入角色动画可以增强系统的功能和表现力,骨骼蒙皮动画是角色动画的一种主流形式.其中骨骼动画是由各关节的旋转来实现的,蒙皮动画中网格各顶点的位置也是由关节的旋转来驱动的,但是用三维坐标来表示关节旋转比较困难,四元数就是解决这个问题的强大的数学工具.1 四元数与旋转1.1 四元数简介四元数(Quater n ion)理论是数学家H a m ilton 于1843年首先提出的.四元数可以看作是复数的推广,其形式为x i +y j +z k +w,其中w 为实数或者标量,i 、j 、k 为虚数部分.假设有两个四元数:q 1=x 1i +y 1j +z 1k +w 1,q 2=x 2i +y 2j +z 2k +w 2它们相乘的结果还是一个四元数,四元数的乘法定义如下:q 1@q 2=(w 1x 2+x 1w 2+y 1z 2-z 1y 2)i +(w 1y 2-x 1z 2+y 1w 2+z 1x 2)j +(w 1z 2+x 1y 2-y 1x 2+z 1w 2)k +(w 1w 2-x 1x 2-y 1y 2-z 1z 2)(1.1)1.2 将四元数应用于三维空间旋转1.2.1 理论基础图1 r 的角度位移(H ,n )四元数只是一个复数的扩展,直到1985年才由Shoe m ake 将其引入计算机图形学领域,成为一个用来构造强制变换的有力工具.我们把旋转定义为一个角度位移,由(H ,n )给出,其中H 是关于轴n 的旋转角(图1).由图1可推导出:R r =(cos H )r +(1-co s H )n (n #r)+(sin H )n @r可见通过角度位移来旋转向量r 可以通过一个四元数变换来实现.在这里四元数的应用如同一个矩阵,使向量发生了变化[1].值得注意的是,对于(H ,n )的角度和轴不是简单地放在四元数中,它们必须经过预处理.假设有一任意旋转轴的向量q (x q ,y q ,z q )与一旋转角度H ,将它们转换为四元数,则4个参数分别为x =si n (H /2)x q ,y =si n (H /2)y q ,z =si n (H /2)z q ,w =cos (H /2)(1.2)第2期 蒋德茂,吕 强:四元数在骨骼蒙皮动画中的应用431.2.2 直接用四元数表示旋转假设有一向量p (x ,y,z )对着一单位四元数q 作旋转,将p 视为无纯量的四元数x i +y j +z k,则向量的旋转经推导可得Ro t(p )=qpq -1 (q -1是q 的共轭)(1.3)1.2.3 用四元数的矩阵形式表示旋转式(1.4)中间的矩阵是由单位四元数q 转换而得的旋转变换矩阵.式(1.3)和式(1.4)在几何意义上是相同的.x3y 3z 3w 3=1-2(y 21+z 21)2(x 1y 1-w 1z 1)2(w 1y 1+x 1z 1)02(x 1y 1+w 1z 1)1-2(x 21+z 21)2(y 1z 1-w 1x 1)02(x 1z 1-w 1y 1)2(y 1z 1+w 1x 1)1-2(x 21+y 21)00001x 2y 2z 2w 2(1.4)2 从三维动画软件中导出骨骼蒙皮动画骨骼蒙皮动画是根据角色的身体运动方式而来的.角色的身体是一个网格(M esh)模型,网格的内部绑定了一个骨骼结构,当骨骼运动时,身体就会跟着骨骼一起运动.三维动画软件(如M aya)提供了强大的建模和动画的功能,在动画软件中制作角色的骨骼蒙皮动画,然后导出给其它系统使用是一个很好的思路.由于三维动画软件一般提供自身的API ,所以我们可以通过编写插件来导出骨骼蒙皮动画所需的各种数据.但我们首先需要定义这些数据的数据结构.2.1 关节的表示骨骼是由一定数量的关节按层次结构组合而成的,关节间构成一系列/父子0关系,如肘关节是肩关节的/儿子0,同时也是腕关节的/父亲0.关节的数据结构可采用如下形式表示:Joint_i dParent_j o i n t_idorientati o ntranslati o nrotation每个关节都有唯一的i d ,Parent_joint_i d 指向父关节的id ,从而实现层次关系;translation 描述了关节相对于父关节的位移,用一个三维向量表示;orienta ti o n 和r o tation 都是描述关节相对于父关节的旋转,都用四元数表示.它们的作用是不同的,在三维动画软件中骨骼一旦建立,各关节的orientation 就确定了,且作为初始状态不再改变,它的作用是建立了本关节的局部坐标系,rotation 则是描述关节在该局部坐标系下如何进行旋转.orientati o n 和ro tation 四元数的4个参数可按照式(1.2)计算得出,注意它们作为旋转轴还需要预处理成单位四元数.所幸这些步骤三维动画软件的API 都能帮你完成,我们要获得这些四元数,只需调用相应函数即可.例如,M aya API 提供的求关节orientati o n 属性的函数是M status get O rientation (M quaternion &quater n i o n)cons.t2.2 骨骼动画制作骨骼动画是通过旋转骨骼各个关节,让角色摆出所需的姿势并记录为关键帧来完成的.三维动画软件能自动对相邻两个关键帧之间的中间帧进行插补,连续播放时就形成动画.我们只需记录关节的关键帧号和旋转状态,就能描述整个骨骼动画,其中旋转状态就是2.1中关节的rotati o n ,因此它也是一个四元数.骨骼动画中某一关节的关键帧的数据结构可用如下形式表示:Fra m e_nu m ber rotati o n44苏州大学学报(自然科学版)第24卷2.3蒙皮动画给定一个已有细节的皮肤网格和一个相关的动画层次,我们的目标是当底层骨骼动起来的时候,产生一个自动地变形网格的方法,这个过程称为/蒙皮0(Sk i n ning)[2].蒙皮后皮肤上每个顶点都有了相应的权重(W e i g ht),这些权重定义了关节的运动对相关顶点的影响因子.权重的数据结构可采用如下形式表示: V ertex_id Jo int_i d W3个数据项分别表示:顶点id、影响此顶点的关节id、权重值W.若在三维动画软件中进行蒙皮时采用了/平滑蒙皮0[3],则每个顶点同时受最近的几个关节的影响,几个关节对顶点的影响力即权重值相加等于1.3用四元数来还原骨骼蒙皮动画获得了骨骼蒙皮动画所需的各个数据后,就可以利用它们在自己的系统中还原动画.3.1关键帧上骨骼姿态的还原图2的关节链可以近似地看作是人的手臂.圆形为关节,三角形为骨头,关节中的十字可看作是关节的orientati o n,十字上的坐标轴可看作是关节的rotation.在某个关键帧上转动肘关节后,orientati o n相对于父关节是不变的,而r o tation却与orientation产生了一个旋转,这个旋转在骨骼动画的关键帧的数据结构中表示为一个四元数.(a)手臂关节链的初始状态(b)在某个关键帧,旋转了肘关节图2M aya中关节链的旋转效果图要还原某个关键帧上的骨骼姿态,就必须计算该关键帧上的各个关节的绝对坐标和绝对旋转.坐标用向量表示,旋转用四元数表示,由图2可得如下伪代码:根关节绝对坐标=根关节transl a ti o n根关节绝对旋转=根关节orientation@根关节rotation(两个四元数相乘的结果也是一个四元数,在几何上表示旋转的累积,参考式(1.1))非根关节绝对旋转=父关节绝对旋转@本关节orientati o n@本关节ro tation非根关节绝对坐标(方法1)=父关节绝对坐标+父关节绝对旋转@本关节translati o n@父关节绝对反向旋转(加法后面的部分表示直接使用四元数来旋转向量,参考式(1.3))非根关节绝对坐标(方法2)=父关节绝对坐标+父关节绝对旋转的矩阵@本关节translati o n(加法后面的部分表示用四元数的矩阵来旋转向量,参考式(1.4))3.2骨骼动画的还原由于关键帧的数量有限,如果只用关键帧,播放出来的动画并不连续,所以需要按照某时刻与前后两个关键帧时刻的时间值插值计算出该时刻该骨骼相对于父骨骼的新变换矩阵[4].新的变换矩阵中的旋转矩阵是由四元数经过插值后转换而来的,四元数的插值有如下两种方法.3.2.1线性插值lerp(q1,q2,u)=q1(1-u)+q2u,u I[0,1]其中q1和q2是两个单位四元数,分别代表相邻两个关键帧上的关节旋转;u可看作关节旋转夹角范围内第2期 蒋德茂,吕 强:四元数在骨骼蒙皮动画中的应用45 的偏移.使用线性插值虽然能够求出插值,但会使两个关键帧之间的插值产生中间加速的运动[1],即旋转时的角速度不是匀速的,这对于还原骨骼动画很不利.3.2.2球面插值图3 球面线性插值由图3可推导得出:p =sle rp (q 1,q 2,u )=q 1sin (1-u )8s i n 8+q 2sin 8u si n 8其中q 1#q 2=cos 8u I [0,1],u I [0,1].球面插值解决了线性插值存在的问题,但球面插值自身也有问题.显然从四元数q 1到四元数q 2有正反两个方向的旋转路线,对于骨骼动画中关节的两个关键帧旋转来说应该有0<8<P ,否则会出现关节反转的情况.球面插值有对这种奇异问题处理的方法,但较为繁琐.由于骨骼动画对精确性的要求并不是很高,所以可以用一个相对简单的方法来解决这个问题.因为cos 8=q 1#q 2,我们可以设定一个非常接近1的值,当co s 8的绝对值大于这个值的时候采用线性插值,否则采用球面插值.3.3 蒙皮动画的还原蒙皮动画的还原就是要对皮肤网格上的各个顶点在每一帧的实际坐标位置进行还原.由于每个皮肤顶点的空间变换都是受若干关节影响的,即蒙皮动画是由骨骼动画驱动的,所以我们只需考虑在静态情况下骨骼的各个关节是如何去影响皮肤顶点具体位置的,而不用去关心蒙皮的动画.具体而言,顶点位置的计算可以采用两种方法.方法一:v =E n i=0M i d i w i (3.1)其中v 表示顶点的新位置;M i 表示与该顶点相关联的关节i 的当前世界变换矩阵;d i 表示从顶点初始位置到与该顶点相关联的第i 个关节初始位置的位移矢量;w i 表示与该顶点相关联的第i 个关节对该顶点影响的权重,所有权重的和应为1;n 表示与该顶点相关联的关节的数目.方法二:v =E n i=0M i M -1i 0v 0w i (3.2)其中M -1i 0表示与该顶点相关联的关节i 的初始状态世界变换矩阵;v 0为初始状态顶点位置.所谓/初始状态0,是指在三维动画软件(如M aya)中用骨骼绑定皮肤时角色模型所摆的姿势,一般是指两腿直立、双臂向两侧平举的姿态.为理解方便,暂不考虑权重,即假设每个顶点仅受一个关节的影响(n =0,w =1).那么式(3.1)和式(3.2)可分别简化为式(3.3)和式(3.4).v =M d 0=TRd 0(3.3) v =MM -10v 0=TRR -10T -10v 0(3.4)其中v 表示顶点的新位置;d 0表示从顶点初始位置到相关联的那个关节初始位置的位移矢量;M 表示关节的当前世界变换矩阵;M -10表示初始状态世界变换矩阵的逆矩阵;T 为关节当前的位移矩阵;R 为关节当前的旋转矩阵;R -10为关节初始状态时的旋转矩阵的逆矩阵;T -10为关节初始状态时的位移矩阵的逆矩阵.46苏州大学学报(自然科学版)第24卷图4中空心点表示关节,连接空心点的直线是骨头,实心点表示角色皮肤上的网格顶点.对式(3.3)和式(3.4)相比较可知d0=R-10T-10v0,由图4也能比较容易地理解这点,即v0按照相连关节的初始世界变换进行反方向的平移和反方向的旋转后可以求得d0.其中无论是R、R0还是它们的逆都是以四元数为基础的.(1)(2)图4关节旋转前后的蒙皮顶点变化两种方法都能计算出顶点的新位置,可根据具体情况选择使用.实际计算时还应将所有顶点的新位置按照每一关节的影响权重加权求和.4应用实例在本人参与的一个室内漫游系统中需要一个角色做一些行走、坐下、开关门窗等基本动作.如图5所示,按照文中所述方法首先构建描述骨骼蒙皮动画所需的数据结构,然后编写插件导出在M aya软件中预先制作好的角色走路的骨骼蒙皮动画数据,最后利用这些数据在应用程序中成功还原了这个角色的行走动画.(a)M aya中制作的骨骼蒙皮动画(b)编程还原的骨骼动画(c)编程还原的蒙皮动画图5骨骼蒙皮动画的测试截图5结语本文以四元数为线索提出了一个骨骼蒙皮动画导出和还原的方法,同时在导出和还原的过程中也反证了四元数及其矩阵形式在表示空间旋转上的巨大作用.在解决了角色骨骼蒙皮动画这个技术点后,也就摆脱了大多数漫游系统中只以第一人称视角漫游场景的限制,增加角色动画使漫游系统的表现力和沉浸感增强.下一步要做的是角色的多个基本动作的动画衔接混合,其中也必然会涉及到四元数的应用.(下转第51页)第2期祁华成,张广泉:基于特征点的构件度量方法51[12]胡军,李宣东,郑国梁,等.基于场景规约的构件式系统设计分析与验证[J].软件学报,2006,29(40):513-525.[13]R oger S P ress m an.Soft w are Eng i neering A P rac ti tioner.sA pproach[M].S i x t h Edition.Be iji ng:Ch i naM achi ne P ress,2007:341-344.M etrics on co mponents based on feature pointQ iH uacheng,Zhang Guangquan(Schoo l ofC o m pu ter S ci ence and Techn ol ogy,Suzhou Un i v.,Su z hou215006,Ch i na)Abst ract:Reusab le soft w are based t h e technology of co m ponent and the thought of refactoring prospects to reso lve soft w are cr i s is,but at present there is lack o f no r m al for m s gu i d i n g ho w to choose re liable co m ponents and to desi g n reusab le co m ponents,w h i c h can be sound l y reso l v ed in v irtue of feature point and auto m ata.F irstly this paper puts for w ard t h e concept o f feature po i n t on co m ponent to descri b e ex ter nal static features and inner l o g ic str ucture m ean-w hile.Feature auto m ata is constructed to depict the contex;t Secondly feature auto m ata is used to distill effecti v e co m-ponent feat u re poin;t And then co m ponent feature pr obability is co m puted by tha;t Lastly the m etric result is ca lcula-t ed by the analog ic m ethod of f u ncti o n po i n.t A practica l case is fi n ally shown to va lida te the m etric w ay.K ey w ords:co m ponen t feature po i n ts;feature auto m ata;feature probability(责任编辑:周建兰)(上接第46页)参考文献:[1]A lan W att.3D计算机图形学[M].第3版.北京:机械工业出版社,2005:387-390.[2]A ndrew K ir m se.游戏编程精粹4[M].北京:人民邮电出版社,2005:401-408.[3]A li as|w ave front.U si ng M aya:Character Setup[M].北京:中国青年出版社,2000:327-368.[4]A da m s J.A dvanced A ni m ation w it h D irect X[M].Boston:P rem ier P ress,2003:108-123.The application of Quaternion in Skeletal Skinned Ani m ationJiang De m ao,Lv Q i a ng(1.School of Co m puter S ci en ce and Technol ogy,Su z hou Un i v.,Suzhou215006,C hina;2.App lied M u lti m edia Technol ogy Lab,Suz hou U niv.,Suzhou215006,Ch i na;3.Provi n ci alKey Laboratory f or C o mpu ter Infor m ati on P rocess i ng Technol ogy,Su z hou Un iv.,Suzhou215006,C hina)Abst ract:A m ethod for exporting Skeleta l Skinned Ani m ation fro m3D ani m ation so ft w are and rebu ilding in o ther app lications w as put for ward,it expatiates on the great effect of Quaternion i n Skeletal Skinned An i m ation.These techno l o g ies are valuab le for the syste m s o f the sa m e kind.K ey w ords:Quaternion;SkeletalAn i m ation;Sk i n ned An i m ati o n;rota ti o n(责任编辑:周建兰)。

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

四元数在骨骼蒙皮动画中的应用
q 1 +Yj+ 1 q 1= i 1 1 k+ , 2=3i 2 2 2 C +Yj+Zk+ 2
它们 相乘 的结 果还 是一个 四元 数 , 四元 数 的乘 法定义 如下 :
q l×q 2= ( l 12+ 2+Y 2一ZY ) + ( Y 1 1 12 i 12一 2+Y 1 2+Z 2j+ 1 )

要 :提出一种把骨骼蒙皮动画从 三维动画软件中导出并在其他应用软件 中还原的方案 , 阐述 了四元数在
骨骼蒙皮动画 中所发挥 的巨大作用 . 该方法对 同类系统的设计研 究具有一定 的参考价值 关键词 :四元数; 骨骼动 画; 蒙皮动画 ; 旋转
中 图分 类号 : P 9 T 31 文献标识码 : A 文章 编 号 :10 2 7 (0 8 0 0 4 0 0 0— 0 3 20 )2— 0 2— 5
( 12一Y 2+Z ) 1 2+ Y l 1 k+( 2一 2 1 l2一YY 一 ) l2 l 2
1 2 将 四元数应 用 于三维 空间旋转 . 12 1 理 论基础 . .
四元 数只是一 个 复数 的扩展 , 到 18 才 由 Som k 其 引入 计算 机 图 直 95年 he ae将 形 学领域 , 为一个用 来构 造 强 制 变换 的有力 工 具 . 们 把旋 转 定 义 为 一 个 角度 成 我 位 移 , ( ,)给 出 , 中 0 关于 轴 ,的旋转 角 ( 1 . 由 0, 1 其 是 l 图 )
1 四元数与旋转
1 1 四元数 简介 .
四元数( ut n n 理论是数学家 H mln于 14 年首先提出的. Q a ri ) e o ai t o 83 四元数可以看作是复数的推广 , 其形
式 为 i +z , 中 为实 数或者标 量 ,、、 + k+ 其 i k为虚 数部分. j 假设 有两个 四元数 :

骨骼蒙皮动画(SkinnedMesh)的原理解析(一)

骨骼蒙皮动画(SkinnedMesh)的原理解析(一)

骨骼蒙皮动画(SkinnedMesh)的原理解析(一)一)3D模型动画基本原理和分类3D模型动画的基本原理是让模型中各顶点的位置随时间变化。

主要种类有Morph(变形)动画,关节动画和骨骼蒙皮动画(SkinnedMesh)。

从动画数据的角度来说,三者一般都采用关键帧技术,即只给出关键帧的数据,其他帧的数据使用插值得到。

但由于这三种技术的不同,关键帧的数据是不一样的。

Morph(渐变,变形)动画是直接指定动画每一帧的顶点位置,其动画关键中存储的是Mesh 所有顶点在关键帧对应时刻的位置。

关节动画的模型不是一个整体的Mesh,而是分成很多部分(Mesh),通过一个父子层次结构将这些分散的Mesh组织在一起,父Mesh带动其下子Mesh的运动,各Mesh中的顶点坐标定义在自己的坐标系中,这样各个Mesh是作为一个整体参与运动的。

动画帧中设置各子Mesh相对于其父Mesh的变换(主要是旋转,当然也可包括移动和缩放),通过子到父,一级级的变换累加(当然从技术上,如果是矩阵操作是累乘)得到该Mesh在整个动画模型所在的坐标空间中的变换(从本文的视角来说就是世界坐标系了,下同),从而确定每个Mesh在世界坐标系中的位置和方向,然后以Mesh为单位渲染即可。

关节动画的问题是,各部分Mesh中的顶点是固定在其Mesh坐标系中的,这样在两个Mesh结合处就可能产生裂缝。

第三类就是骨骼蒙皮动画即SkinnedMesh了,骨骼蒙皮动画的出现解决了关节动画的裂缝问题,而且效果非常酷,发明这个算法的人一定是个天才,因为SkinnedMesh的原理简单的难以置信,而效果却那么好。

骨骼动画的基本原理可概括为:在骨骼控制下,通过顶点混合动态计算蒙皮网格的顶点,而骨骼的运动相对于其父骨骼,并由动画关键帧数据驱动。

一个骨骼动画通常包括骨骼层次结构数据,网格(Mesh)数据,网格蒙皮数据(skin info)和骨骼的动画(关键帧)数据。

3Dmax蒙皮技巧:将模型与骨骼绑定实现动画效果

3Dmax蒙皮技巧:将模型与骨骼绑定实现动画效果

3Dmax蒙皮技巧:将模型与骨骼绑定实现动画效果3Dmax是一款功能强大的三维建模和渲染软件,可以用于制作游戏角色、动画、建筑模型等。

在制作角色动画时,将模型与骨骼绑定是非常重要的步骤之一。

本文将为大家介绍使用3Dmax进行蒙皮技巧的步骤,实现模型与骨骼的绑定,从而实现动画效果。

以下是详细步骤:1. 准备模型和骨骼:首先,你需要准备好要进行蒙皮的模型和骨骼。

模型可以是你自己建模的角色,也可以是下载的现成模型。

骨骼是指角色的骨架,可以通过3Dmax自带的骨骼工具或者其他插件来创建。

2. 设置模型和骨骼的层次结构:在3Dmax中,可以通过层级管理器来设置模型和骨骼的层次结构,使其显示在正确的位置上,并方便进行后续操作。

可以使用拖拽的方式将模型和骨骼分别放在对应的层级下。

3. 选择要进行蒙皮的模型:在3Dmax界面中,选择要进行蒙皮的模型,然后进入修改器列表,选择“快速蒙皮”或者“皮肤”进行操作。

4. 添加一个蒙皮调整器:在修改器列表中,点击“添加”按钮,选择“蒙皮”或者“皮肤”作为模型的一个新的修改器。

添加完毕后,在蒙皮调整器的设置面板中,可以进行一些基本设置,比如设置骨骼的影响半径、蒙皮权重等。

5. 将骨骼绑定到模型上:在蒙皮调整器中,选择“选择骨骼”按钮,然后在视图区域中选择要绑定的骨骼。

选择完毕后,点击“绑定”按钮,将骨骼绑定到模型上。

6. 调整蒙皮权重:在绑定骨骼后,模型会根据骨骼的运动而变形。

但是通常需要通过调整蒙皮权重来优化模型的变形效果。

在3Dmax中,可以使用“顶点编辑器”或者“蒙皮修改器”来调整蒙皮权重。

选择相应的工具后,点击模型上的顶点或者区域,调整权重值,使模型在动画过程中更好地跟随骨骼的运动。

7. 进行动画测试:在调整完蒙皮权重后,可以进行动画测试,查看模型与骨骼绑定的效果。

在3Dmax中,可以通过时间轴或者曲线编辑器来设置和编辑动画,让骨骼按照预定的路径和节奏进行运动。

8. 优化和修复问题:在进行动画测试时,可能会发现一些问题,比如模型变形不自然、模型撕裂等。

骨骼动画技术原理

骨骼动画技术原理

骨骼动画技术原理咱先想象一下啊,你有一个超级酷炫的动画角色,就像那些在游戏里跑来跑去或者在动画电影里活灵活现的小家伙。

那骨骼动画呢,就像是给这个角色搭了一副神奇的骨架。

你看啊,真实的人有骨骼来支撑身体,让我们能做出各种各样的动作。

在骨骼动画里也是一样的道理。

这个骨骼可不是咱们生物课上看到的那种真骨头哦,而是用数据构建起来的虚拟骨架。

比如说,有一根代表手臂的骨骼,还有一根代表腿的骨骼,就像搭积木一样把这些骨骼按照角色的形状搭好。

这些骨骼可都不是死的哦。

它们就像有魔法一样,可以动起来。

每个骨骼都有自己的位置、旋转角度和缩放比例这些属性。

就好比你的手臂骨骼,它可以在肩膀这个关节处旋转,还能伸长缩短(缩放)呢。

这就像是你自己在做伸展运动或者摆各种有趣的姿势。

那这个骨骼怎么就带动整个角色动起来了呢?这就涉及到一个很关键的东西——蒙皮。

蒙皮就像是给骨骼穿上了一层漂亮的衣服,这个衣服就是角色的外形啦。

比如说,这个角色是个可爱的小狐狸,那小狐狸的皮毛、脸蛋这些外形就是蒙皮。

当骨骼动的时候,蒙皮就会跟着动。

就像你穿着一件紧身衣,你身体动的时候,衣服也会跟着身体的形状改变。

不过呢,这个蒙皮跟着骨骼动可没那么简单。

它要根据骨骼的运动精确地变形,这样才能让角色看起来自然。

比如说,当小狐狸的手臂骨骼弯曲的时候,手臂上的蒙皮要很平滑地弯曲,不能出现那种奇怪的褶皱或者撕裂的感觉。

再说说动画师是怎么控制这些骨骼运动的吧。

动画师就像是一个神奇的魔法师。

他们会设定关键帧。

啥是关键帧呢?就像是在时间轴上做标记。

比如说,在第1秒的时候,小狐狸的手臂是伸直的,这就是一个关键帧。

然后在第3秒的时候,动画师想让小狐狸的手臂弯曲起来去拿一个苹果,这又是一个关键帧。

那中间这两秒呢,计算机就会根据这两个关键帧自动计算出手臂是怎么从伸直慢慢弯曲的,这个过程就叫做插值。

就像你在两点之间画一条平滑的线一样,计算机在两个关键帧之间生成平滑的动作。

而且啊,骨骼动画还有层次结构呢。

关于四元数的几何意义和物理应用

关于四元数的几何意义和物理应用

关于四元数的几何意义和物理应用四元数是一种用来表示旋转的数学工具,由一个实部和三个虚部组成。

它起源于19世纪,最早是由爱尔兰数学家威廉·汉密尔顿提出的。

在几何中,四元数可以用来表示旋转和旋转群的变换。

在物理学中,四元数被广泛应用于描述刚体运动、航天器姿态控制、电子游戏的图形渲染等领域。

首先,我们来讨论四元数的几何意义。

四元数由一个实部和三个虚部组成,可以表示为q = a + bi + cj + dk,其中a为实部,(b,c,d)为虚部。

四元数有一些特殊的性质,例如,它可以用来表示三维空间中的旋转,在空间中的每一个点都有一个与之关联的四元数,通过四元数的乘法运算可以实现点的旋转。

这就使得四元数成为一种非常强大的旋转表示工具。

四元数还有一种重要的几何意义,即可以用来表示方位角和旋转轴。

在四元数中,实部a表示旋转的角度,虚部(b,c,d)表示旋转轴的坐标。

这使得我们可以方便地进行旋转操作,而无需进行复杂的矩阵计算。

通过四元数的乘法运算,我们可以将多个旋转操作合并为一个旋转操作,从而降低了计算的复杂度。

在物理学中,四元数有着广泛的应用。

首先,四元数被广泛应用于描述刚体的旋转。

刚体是在空间中保持形状和体积不变的物体,例如飞机、汽车等。

通过四元数,我们可以非常方便地描述刚体在空间中的姿态变换。

这在航天器姿态控制、机器人运动控制等领域都有着重要的应用。

其次,四元数还被用于电子游戏的图形渲染。

在电子游戏中,我们需要不断地渲染图像以呈现动态的场景。

通过使用四元数来表示物体的旋转,我们可以在游戏中实现非常流畅的旋转动画,同时减少计算的复杂度。

此外,四元数还被应用于量子力学中描述粒子的自旋。

在量子力学中,自旋是描述粒子内部旋转的属性。

通过使用四元数,我们可以方便地描述粒子在空间中的自旋状态。

总之,四元数在几何中的几何意义和在物理中的物理应用是非常广泛的。

它可以用来表示旋转、方位角和旋转轴,方便地进行旋转操作。

四元数在刚体姿态运动可视化仿真中的应用

四元数在刚体姿态运动可视化仿真中的应用

32Journal of Measurement Science and Instrumentation Vol. 8 No. 1, Mar. 2017 Application of quaternion in visual simulationof rigid body motionH U A N G J in-y a n g,X IN C h a n g-fa n,M A Y u n-jia n,J IA Y i-x ia n{School of Mechatronics Engineering,North University o f China,Taiyuan 030051, China)Abstract:In recent years, with the extensive applications of high performance computer and the rapid development of the atti­tude control of the spacecraft, quaternion theory has been widely used. Compared with Euler angles,quaternion not only is simple calculation, but also can avoid the singularity problem of Euler angles, therefore it is widely used in the attitude control of spacecraft. In this paper, Simulink simulation technology is used to establish a rigid attitude simulation model with quaterni­on method and virtual reality scene by virtual reality modeling language (V RM L) is used to achieve attitude motion visualiza­tion The simulation results show that the Simulink simulation model can accurately reflect the attitude motion of the rigid body, which is valuable for the research of the attitude control of the spacecraft.Key words:rigid body attitude;quaternion;visualization;virtual realityCLD number:V412. 4+2 Document code:AArticle ID:1674-8042(2017)01-0032-05 doi:10. 3969/j. issa 1674-8042. 2017. 01. 0060 IntroductionIn th e tra d itio n a l flig h t d y n a m ic s,E u le r angles o f th e spacecraft u s u a lly re p re se nt th e rig id b o d y a tt i­tu d e s, n am ely th e precession, n u ta tio n and sp in an­gles. T h is approach is n o t su ita b le fo r a large range o f a ttitu d e m o tio n, because in special circum stances, a c e rta in a ttitu d e angle becomes u n d e fin e d w h e n th e n u ta tio n angle is 90° in th e k in e m a tic equa tio n sin g u- la r ity[1"2]. In o rd e r to e lim in a te th e s in g u la rity o f E u­le r angle? th e q u a te rn io n is used to replace th e E u le r angle to re p re se nt th e a ttitu d e m o tio n to m a in ta in a lin e a r e q u a tio n^.In1843,W illia m R H e stablished th e q u a te rn io n th e o ry, b u t i t d id n o t have p ra c tic a l a p p lica tio n s in a v e ry lo n g tim e. In recent y e a rs,q u a te rn io n has a w id e range o f a p p lica tio n s in a irc ra ft guidance and a t­titu d e c o n tro l system w ith th e d evelopm ent o f com­p u te r te c h n o lo g y[4 5]. Since th e c a lc u la tio n is s im p le, it can n o t o n ly avoid th e s in g u la rity p ro b le m o f E u le r angle? b u t also achieve th e f u ll capacity o f th e a irc ra ft a ttitu d e to w o rk. T h e re fo re,i t is w id e ly used in spacecraft a ttitu d e c o n tro l and n a v ig a tio n s o lu tio n,especially in th e large angle a ttitu d e d e te rm in a tio n system.M a tla b6. 0 and la te r versions add aerospace b lo c k- set in to S im u lin k, in c lu d in g th e equations o f m o tio n, m o tio n e n v iro n m e n t, a c tu a to rs,flig h t e n v iro n m e n t and a n im a tio n m odules? w h ic h are m a in ly used fo r m is s ile system s im u la tio n and a r tille r y tra je c to ry sim- u la tio n M. V R M L is th e v irtu a l re a lity m o d e lin g la n­guage, w h ic h is used to b u ilt up th e m o d e l o f 3D scene. V R M L file is a te x t d e s c rip tio n o f th e v irtu a l space,i t can be a pplied to any te x t e d ito r (s u c h as N o te p a d,etc. ),and file e xte n sio n is w r l”[6].1 QuaternionQ uaternion? also k n o w n as E u le r s y m m e tric pa­ra m e te r ?is used to p ro v id e an a lte rn a tiv e use o f d i­re c tio n cosine m a trix fo r d e s c rip tio n o f th re e-d im e n-Received date:2016-12-15Foundation items:Natural Science Foundation of Shanxi Province (No. 201601D102002) Corresponding author:HUANG Jin-yang (289221542@qq. com)HUANG Jin-yang, et al. /Application of quaternion in visual simulation of rigid body motion33sional space coord in a te system o f m a in d ire c tio n®,w h ic h can avoid s in g u la ritie s. I t can be observed th a t th e n u m b e r o f s in g u la rity w h e n n u ta tio n angle be­comes 0° o r p itc h angle is close to90°.A s th e nam e im plies? a q u a te rn io n q com prises fo u r num bers. I t can be epressed asq =q Y^⑴w h e re g is th e v e c to r p a rt iq = q i i Jr q2j Jr q:i k)j and q〇is th e scalar p a rt.W e w ill re s tric t o u r a tte n tio n to u n it quaternions? w h ic h is th a t || q \\=1.In is case, th e re isg〇=cos 妥,q =s i n j-w,(2)w h e re u is u n it v e c to r along E u le r axis a ro u n d w h ic h in e rtia l reference fra m e is ro ta te d in to b o d y-fix e d fra m e;and 6is E u le r p rin c ip a l ro ta tio n angle.2 Rigid body rotation and its kinematicC〇3hIsh—(J〇l (J〇2(3)Eq. (3)is a sta n d a rd rig id fix e d ro ta tio n a l E u le r e­q u a tio n, w h e re Ii?J2and J3are th e m o m e n ts o f in e r­tia along th e th re e axes o f in e rtia l co o rd in a te〇ji?〇n and 〇>3are a n g u la r v e lo c ity com ponents w ith o f the b o d y co o rd in a te system re la tiv e to in e rtia l coordinate s y s te m;and M1?M2and M3are e x te rn a l m o m e n ts a­lo n g th e th re e axes o f th e com ponents.T h e k in e m a tic e q uation is described b y q u a te rn io n, and th e d e riv a tiv e o f th e tim e is「0~COl—C〇2•1c o i0C〇3q =YC〇2—C〇30C〇2一W l_(4)T h e q u a te rn io n can be o b ta in e d b y in te g ra tin g Eq. (4). A c c o rd in g to th e in itia l values o f E u le r an­g le s, th e in itia l c o n d itio n o f q is g ive n b yrepresentationT h e rig id b o d y m o tio n consists o f tra n s la tio n and ro ta tio n aro u n d th e center o f mass. L e t Oxyz be in­e rtia l coord in a te s y s te m,and th e o rig in is a fix e d p o in t o f th e system. T h e b o d y coord in a te system is fix e d on th e rig id b o d y[9]. T h e rig id b o d y axis is re­garded as th e p rin c ip a l axis o f th e fix e d p o in t, th e n th e fix e d p o in t o f th e rig id b o d y is ro ta te d asc〇i=kh h—C〇2C〇3M,XC〇2=h—h—C〇lC〇3M2hg〇=cos 4cos 4cos 4 + sin4sin |s i n4,Q l =sin 4cos 4cos 4 - cos 4sin |s i n4,g2=cos 善sin 寻cos 普十 sin善cos 鲁sin普,(5)g3=cos 4cos 4sin4 - sin4sin 4cos 4,w h e re^ is precession a n g le;9 is n u ta tio n angle and tpis sp in angle. T h e coord in a te is con ve rte d b y u sin g3­1-3 approach. T h a t is th e fir s t ro ta tio n angle is p re­cession angle? th e second is n u ta tio n a n g le,and theth ir d tim e is sp in angle.T h e d ire c tio n cosine m a trix Q is o b ta in e d fro m qua­te rn io n q asQgf —^一g!2(仍仍十g3g4)2(g ig3—q iq d2(gig2—q^qO— g?十— g!十g!2(g2g3 十g:g4)2(gig3十仍心)2(g2gs—qiqD一 g〖一 十gi—(6)w h e re QQT = 1.T a k in g th e ro ta tio n sequence o f 3-1-3 a p p ro a ch,th e q u a te rn io n is n o rm a liz e d,th e n E u le r angle e x­pression is o b ta in e d bygigs +q〇q2\qzq^ ~q〇qi >?<0 =arcos(g? — gf — g!十 g雪),(7) ,^(qiq?, ~q〇q2 \d j =a rcta n~~丨.、\qzqs +q〇qi 'arctan34Journal of Measurement Science and Instrumentation Vol. 8 No. 1,Mar. 20173 Modeling and visual simulation ofheavy top3. 1 Mathematical modelF ig. 1 show s th e s y m m e tric heavy top. O is n o t o n­ly th e o rig in, b u t also th e fix e d p o in t o f th e s y s te m;z axis o f to p is ta ke n as th e axis o f th e coordinate system Oxyz.T h e distance betw een th e center o f mass and th e center o f mass is d.T h e basic param eters o f th e heavy to p are as fo l­lo w s:i T L ^1k g•>d^0. 04 m•,Ii == 12 ==0. 002k g• ^ h=0.0008k g• m2and ^ = 9. 8m/s2.T h e e x te rn a l to rq u e m u st be expressed in body fix e d fra m e asM=d k X (— ?ngK) =—mgd(k X K).(8) T h e th re e com ponents o f M can be o b ta in e d fro m th e ro ta tio n m a trixMi =mgdcosips’m d,M2=— ?ngd sirupsind ^(9)M3=0.3. 2 Visual simulation modelC re a tin g a system usin g S im u lin k s im u la tio n m odel is v e ry in tu itiv e?easy to use and sim p le connection to th e m odule. T h e m odel o u tp u t is connected to V R M L w ith V R s in k v irtu a l re a lity scene observa­tio n s and rig id b o d y ro ta tio n to achieve th e visu a liza­tio n. F ig. 2 is a v isu a l s im u la tio n m odel.Fig. 2 Visual simulation model of rigid body motion4 Simulation resultsF ig. 3 show s th a t th e precession angle (p),n u ta­tio n angle (6)and spin (0) angle v a ry w ith tim e. A l­th o u g h c p and ip ste a d ily v a ry w ith tim e, th e ir ranges are betw een 0° and 360°,w h ic h e xplains th e ir saw­to o th-lik e appearance. In th is s im u la tio n, th e to p is s p in n in g a round its s ta tio n a ry s y m m e try axis (z a xis) w h e n it is released. T h e n u ta tio n angle changes fro m 60° to75° and re tu rn s to its o rig in a l o rie n ta tio n. T hisHUANG Jin-yang, et al. f Application of quaternion in visual simulation of rigid body motion35 n u ta tio n repeats at a frequency o f s lig h tly less th a n6cycles per second.300200S100Fig. 3 Precession angle ((p) , nutation angle (6)and spin (y/) angle varing with timeF ig. 4 is th e v isu a l s im u la tio n re s u lt o f th e heavy to p based on V R M L.Fig. 4 Virtual reality modeling of heavy top5 ConclusionC o n tra s t to d ire c tio n cosine m a trix, th e a m ount calculated b y th e ro ta tio n m a trix can avoid th e e x is t­ence o f th e E u le r angles s in g u la rity b y usin g q u a te r­n io n in rig id b o d y dynam ics. A n d visu a l s im u la tio n o f rig id b ody m o tio n can be achieved b y using S im u lin k aerospace b lo ckse t and v irtu a l re a lity to o lb o x. T h is m e th o d is cle a r, a sm a ll am o u n t o f w o r k, easy to m o d ify, b u t also has good v isu a l effects. T h e sim u la­tio n can also be applied to rig id b ody tra je c to ry,ro c k e t tra je c to ry and tra je c to ry c o n tro l and o th e r m odels.References[1] ZHANG Hao-cheng. Reseach on quaternions based orbitdynamics and control of spacecraft. Harbin: Harbin Insti­tute of Technology, 2014.[2] JIA Yi-xian, MA Yun-jian, NIU Yun-ha. Visual simula­tion of rigid body attitude motion based on quaternion.Mechanical & Electrical Technology, 2015153-51*[3] QIAO Xiang-wei. Attitude Determination algorithm basedon quaternion nonlinear filter for spacecraft. Harbin:Har­bin Engineering University, 2011.[4] CHEN Wei. Research and application of attitude angle es­timation algorithm based on quaternion and Kalman filter.Qinhuangdao:Yanshan University, 2015[5] ZHOU Jiang-hua, MIAO Yu-hong, LI Hong. Research ofattitude simulation using quaternion. Flight Dynamics, 2000, 18(4). 28-33..[6] MA Li-bin, LIN Du. Ulation of exterior trajectory basedon Matlab. Journal of North University of China, 2006, 27(5):412-415.[7] XIN Chang-fan, SU Yue-bin, GAO Jian. Visual Simula­tion of Three-dimensional Interacti¥fe Guidance Law. Jour­nal of Projectiles, Rockets, Missiles and Guidance, 2010, 30(6);13-16.[8] XIAO Shang-bin. The method of quaternion and its appli­cation. Advances In Mechanics, 1993,23(2):249-260.36Journal of Measurement Science and Instrumentation V ol.8 No. 1, Mar. 2017[9] XUN Xiao-ming,ZHONG Wan-xie. Symplectic conserva- rameters. Applied Mathematics and Mechanics,2014,35tion integration of rigid body dynamics with quaternion pa- (1) :1-11.四元数在刚体姿态运动可视化仿真中的应用黄金阳,辛长范,马云建,贾意弦(中北大学机电工程学院,山西太原030051)摘要:近年来,随着高性能计算机的广泛应用及飞行器姿态控制研究的迅速发展,四元数理论得以广泛应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第24卷第2期苏 州 大 学 学 报(自然科学版)Vol 124No .22008年4月J OURNAL OF SUZ HOU UN I VERSI TY (NATURAL SC I ENCE EDITI ON )Apr .2008*收稿日期:2007-03-07基金项目:江苏省计算机信息处理技术重点实验室开放课题(K JS03062)作者简介:蒋德茂(1974-),男,江苏苏州人,实验师,主要从事多媒体应用技术研究.四元数在骨骼蒙皮动画中的应用蒋德茂,吕 强(1.苏州大学计算机科学与技术学院,江苏苏州 215006;2.苏州大学多媒体应用技术研究室,江苏苏州 215006;3.江苏省计算机信息处理技术重点实验室,江苏苏州 215006)摘 要:提出一种把骨骼蒙皮动画从三维动画软件中导出并在其他应用软件中还原的方案,阐述了四元数在骨骼蒙皮动画中所发挥的巨大作用.该方法对同类系统的设计研究具有一定的参考价值.关键词:四元数;骨骼动画;蒙皮动画;旋转中图分类号:TP391 文献标识码:A 文章编号:1000-2073(2008)02-0042-050 引 言在虚拟现实系统中(如三维漫游系统)引入角色动画可以增强系统的功能和表现力,骨骼蒙皮动画是角色动画的一种主流形式.其中骨骼动画是由各关节的旋转来实现的,蒙皮动画中网格各顶点的位置也是由关节的旋转来驱动的,但是用三维坐标来表示关节旋转比较困难,四元数就是解决这个问题的强大的数学工具.1 四元数与旋转1.1 四元数简介四元数(Quater n ion)理论是数学家H a m ilton 于1843年首先提出的.四元数可以看作是复数的推广,其形式为x i +y j +z k +w,其中w 为实数或者标量,i 、j 、k 为虚数部分.假设有两个四元数:q 1=x 1i +y 1j +z 1k +w 1,q 2=x 2i +y 2j +z 2k +w 2它们相乘的结果还是一个四元数,四元数的乘法定义如下:q 1@q 2=(w 1x 2+x 1w 2+y 1z 2-z 1y 2)i +(w 1y 2-x 1z 2+y 1w 2+z 1x 2)j +(w 1z 2+x 1y 2-y 1x 2+z 1w 2)k +(w 1w 2-x 1x 2-y 1y 2-z 1z 2)(1.1)1.2 将四元数应用于三维空间旋转1.2.1 理论基础图1 r 的角度位移(H ,n )四元数只是一个复数的扩展,直到1985年才由Shoe m ake 将其引入计算机图形学领域,成为一个用来构造强制变换的有力工具.我们把旋转定义为一个角度位移,由(H ,n )给出,其中H 是关于轴n 的旋转角(图1).由图1可推导出:R r =(cos H )r +(1-co s H )n (n #r)+(sin H )n @r可见通过角度位移来旋转向量r 可以通过一个四元数变换来实现.在这里四元数的应用如同一个矩阵,使向量发生了变化[1].值得注意的是,对于(H ,n )的角度和轴不是简单地放在四元数中,它们必须经过预处理.假设有一任意旋转轴的向量q (x q ,y q ,z q )与一旋转角度H ,将它们转换为四元数,则4个参数分别为x =si n (H /2)x q ,y =si n (H /2)y q ,z =si n (H /2)z q ,w =cos (H /2)(1.2)第2期 蒋德茂,吕 强:四元数在骨骼蒙皮动画中的应用431.2.2 直接用四元数表示旋转假设有一向量p (x ,y,z )对着一单位四元数q 作旋转,将p 视为无纯量的四元数x i +y j +z k,则向量的旋转经推导可得Ro t(p )=qpq -1 (q -1是q 的共轭)(1.3)1.2.3 用四元数的矩阵形式表示旋转式(1.4)中间的矩阵是由单位四元数q 转换而得的旋转变换矩阵.式(1.3)和式(1.4)在几何意义上是相同的.x3y 3z 3w 3=1-2(y 21+z 21)2(x 1y 1-w 1z 1)2(w 1y 1+x 1z 1)02(x 1y 1+w 1z 1)1-2(x 21+z 21)2(y 1z 1-w 1x 1)02(x 1z 1-w 1y 1)2(y 1z 1+w 1x 1)1-2(x 21+y 21)00001x 2y 2z 2w 2(1.4)2 从三维动画软件中导出骨骼蒙皮动画骨骼蒙皮动画是根据角色的身体运动方式而来的.角色的身体是一个网格(M esh)模型,网格的内部绑定了一个骨骼结构,当骨骼运动时,身体就会跟着骨骼一起运动.三维动画软件(如M aya)提供了强大的建模和动画的功能,在动画软件中制作角色的骨骼蒙皮动画,然后导出给其它系统使用是一个很好的思路.由于三维动画软件一般提供自身的API ,所以我们可以通过编写插件来导出骨骼蒙皮动画所需的各种数据.但我们首先需要定义这些数据的数据结构.2.1 关节的表示骨骼是由一定数量的关节按层次结构组合而成的,关节间构成一系列/父子0关系,如肘关节是肩关节的/儿子0,同时也是腕关节的/父亲0.关节的数据结构可采用如下形式表示:Joint_i dParent_j o i n t_idorientati o ntranslati o nrotation每个关节都有唯一的i d ,Parent_joint_i d 指向父关节的id ,从而实现层次关系;translation 描述了关节相对于父关节的位移,用一个三维向量表示;orienta ti o n 和r o tation 都是描述关节相对于父关节的旋转,都用四元数表示.它们的作用是不同的,在三维动画软件中骨骼一旦建立,各关节的orientation 就确定了,且作为初始状态不再改变,它的作用是建立了本关节的局部坐标系,rotation 则是描述关节在该局部坐标系下如何进行旋转.orientati o n 和ro tation 四元数的4个参数可按照式(1.2)计算得出,注意它们作为旋转轴还需要预处理成单位四元数.所幸这些步骤三维动画软件的API 都能帮你完成,我们要获得这些四元数,只需调用相应函数即可.例如,M aya API 提供的求关节orientati o n 属性的函数是M status get O rientation (M quaternion &quater n i o n)cons.t2.2 骨骼动画制作骨骼动画是通过旋转骨骼各个关节,让角色摆出所需的姿势并记录为关键帧来完成的.三维动画软件能自动对相邻两个关键帧之间的中间帧进行插补,连续播放时就形成动画.我们只需记录关节的关键帧号和旋转状态,就能描述整个骨骼动画,其中旋转状态就是2.1中关节的rotati o n ,因此它也是一个四元数.骨骼动画中某一关节的关键帧的数据结构可用如下形式表示:Fra m e_nu m ber rotati o n44苏州大学学报(自然科学版)第24卷2.3蒙皮动画给定一个已有细节的皮肤网格和一个相关的动画层次,我们的目标是当底层骨骼动起来的时候,产生一个自动地变形网格的方法,这个过程称为/蒙皮0(Sk i n ning)[2].蒙皮后皮肤上每个顶点都有了相应的权重(W e i g ht),这些权重定义了关节的运动对相关顶点的影响因子.权重的数据结构可采用如下形式表示: V ertex_id Jo int_i d W3个数据项分别表示:顶点id、影响此顶点的关节id、权重值W.若在三维动画软件中进行蒙皮时采用了/平滑蒙皮0[3],则每个顶点同时受最近的几个关节的影响,几个关节对顶点的影响力即权重值相加等于1.3用四元数来还原骨骼蒙皮动画获得了骨骼蒙皮动画所需的各个数据后,就可以利用它们在自己的系统中还原动画.3.1关键帧上骨骼姿态的还原图2的关节链可以近似地看作是人的手臂.圆形为关节,三角形为骨头,关节中的十字可看作是关节的orientati o n,十字上的坐标轴可看作是关节的rotation.在某个关键帧上转动肘关节后,orientati o n相对于父关节是不变的,而r o tation却与orientation产生了一个旋转,这个旋转在骨骼动画的关键帧的数据结构中表示为一个四元数.(a)手臂关节链的初始状态(b)在某个关键帧,旋转了肘关节图2M aya中关节链的旋转效果图要还原某个关键帧上的骨骼姿态,就必须计算该关键帧上的各个关节的绝对坐标和绝对旋转.坐标用向量表示,旋转用四元数表示,由图2可得如下伪代码:根关节绝对坐标=根关节transl a ti o n根关节绝对旋转=根关节orientation@根关节rotation(两个四元数相乘的结果也是一个四元数,在几何上表示旋转的累积,参考式(1.1))非根关节绝对旋转=父关节绝对旋转@本关节orientati o n@本关节ro tation非根关节绝对坐标(方法1)=父关节绝对坐标+父关节绝对旋转@本关节translati o n@父关节绝对反向旋转(加法后面的部分表示直接使用四元数来旋转向量,参考式(1.3))非根关节绝对坐标(方法2)=父关节绝对坐标+父关节绝对旋转的矩阵@本关节translati o n(加法后面的部分表示用四元数的矩阵来旋转向量,参考式(1.4))3.2骨骼动画的还原由于关键帧的数量有限,如果只用关键帧,播放出来的动画并不连续,所以需要按照某时刻与前后两个关键帧时刻的时间值插值计算出该时刻该骨骼相对于父骨骼的新变换矩阵[4].新的变换矩阵中的旋转矩阵是由四元数经过插值后转换而来的,四元数的插值有如下两种方法.3.2.1线性插值lerp(q1,q2,u)=q1(1-u)+q2u,u I[0,1]其中q1和q2是两个单位四元数,分别代表相邻两个关键帧上的关节旋转;u可看作关节旋转夹角范围内第2期 蒋德茂,吕 强:四元数在骨骼蒙皮动画中的应用45 的偏移.使用线性插值虽然能够求出插值,但会使两个关键帧之间的插值产生中间加速的运动[1],即旋转时的角速度不是匀速的,这对于还原骨骼动画很不利.3.2.2球面插值图3 球面线性插值由图3可推导得出:p =sle rp (q 1,q 2,u )=q 1sin (1-u )8s i n 8+q 2sin 8u si n 8其中q 1#q 2=cos 8u I [0,1],u I [0,1].球面插值解决了线性插值存在的问题,但球面插值自身也有问题.显然从四元数q 1到四元数q 2有正反两个方向的旋转路线,对于骨骼动画中关节的两个关键帧旋转来说应该有0<8<P ,否则会出现关节反转的情况.球面插值有对这种奇异问题处理的方法,但较为繁琐.由于骨骼动画对精确性的要求并不是很高,所以可以用一个相对简单的方法来解决这个问题.因为cos 8=q 1#q 2,我们可以设定一个非常接近1的值,当co s 8的绝对值大于这个值的时候采用线性插值,否则采用球面插值.3.3 蒙皮动画的还原蒙皮动画的还原就是要对皮肤网格上的各个顶点在每一帧的实际坐标位置进行还原.由于每个皮肤顶点的空间变换都是受若干关节影响的,即蒙皮动画是由骨骼动画驱动的,所以我们只需考虑在静态情况下骨骼的各个关节是如何去影响皮肤顶点具体位置的,而不用去关心蒙皮的动画.具体而言,顶点位置的计算可以采用两种方法.方法一:v =E n i=0M i d i w i (3.1)其中v 表示顶点的新位置;M i 表示与该顶点相关联的关节i 的当前世界变换矩阵;d i 表示从顶点初始位置到与该顶点相关联的第i 个关节初始位置的位移矢量;w i 表示与该顶点相关联的第i 个关节对该顶点影响的权重,所有权重的和应为1;n 表示与该顶点相关联的关节的数目.方法二:v =E n i=0M i M -1i 0v 0w i (3.2)其中M -1i 0表示与该顶点相关联的关节i 的初始状态世界变换矩阵;v 0为初始状态顶点位置.所谓/初始状态0,是指在三维动画软件(如M aya)中用骨骼绑定皮肤时角色模型所摆的姿势,一般是指两腿直立、双臂向两侧平举的姿态.为理解方便,暂不考虑权重,即假设每个顶点仅受一个关节的影响(n =0,w =1).那么式(3.1)和式(3.2)可分别简化为式(3.3)和式(3.4).v =M d 0=TRd 0(3.3) v =MM -10v 0=TRR -10T -10v 0(3.4)其中v 表示顶点的新位置;d 0表示从顶点初始位置到相关联的那个关节初始位置的位移矢量;M 表示关节的当前世界变换矩阵;M -10表示初始状态世界变换矩阵的逆矩阵;T 为关节当前的位移矩阵;R 为关节当前的旋转矩阵;R -10为关节初始状态时的旋转矩阵的逆矩阵;T -10为关节初始状态时的位移矩阵的逆矩阵.46苏州大学学报(自然科学版)第24卷图4中空心点表示关节,连接空心点的直线是骨头,实心点表示角色皮肤上的网格顶点.对式(3.3)和式(3.4)相比较可知d0=R-10T-10v0,由图4也能比较容易地理解这点,即v0按照相连关节的初始世界变换进行反方向的平移和反方向的旋转后可以求得d0.其中无论是R、R0还是它们的逆都是以四元数为基础的.(1)(2)图4关节旋转前后的蒙皮顶点变化两种方法都能计算出顶点的新位置,可根据具体情况选择使用.实际计算时还应将所有顶点的新位置按照每一关节的影响权重加权求和.4应用实例在本人参与的一个室内漫游系统中需要一个角色做一些行走、坐下、开关门窗等基本动作.如图5所示,按照文中所述方法首先构建描述骨骼蒙皮动画所需的数据结构,然后编写插件导出在M aya软件中预先制作好的角色走路的骨骼蒙皮动画数据,最后利用这些数据在应用程序中成功还原了这个角色的行走动画.(a)M aya中制作的骨骼蒙皮动画(b)编程还原的骨骼动画(c)编程还原的蒙皮动画图5骨骼蒙皮动画的测试截图5结语本文以四元数为线索提出了一个骨骼蒙皮动画导出和还原的方法,同时在导出和还原的过程中也反证了四元数及其矩阵形式在表示空间旋转上的巨大作用.在解决了角色骨骼蒙皮动画这个技术点后,也就摆脱了大多数漫游系统中只以第一人称视角漫游场景的限制,增加角色动画使漫游系统的表现力和沉浸感增强.下一步要做的是角色的多个基本动作的动画衔接混合,其中也必然会涉及到四元数的应用.(下转第51页)第2期祁华成,张广泉:基于特征点的构件度量方法51[12]胡军,李宣东,郑国梁,等.基于场景规约的构件式系统设计分析与验证[J].软件学报,2006,29(40):513-525.[13]R oger S P ress m an.Soft w are Eng i neering A P rac ti tioner.sA pproach[M].S i x t h Edition.Be iji ng:Ch i naM achi ne P ress,2007:341-344.M etrics on co mponents based on feature pointQ iH uacheng,Zhang Guangquan(Schoo l ofC o m pu ter S ci ence and Techn ol ogy,Suzhou Un i v.,Su z hou215006,Ch i na)Abst ract:Reusab le soft w are based t h e technology of co m ponent and the thought of refactoring prospects to reso lve soft w are cr i s is,but at present there is lack o f no r m al for m s gu i d i n g ho w to choose re liable co m ponents and to desi g n reusab le co m ponents,w h i c h can be sound l y reso l v ed in v irtue of feature point and auto m ata.F irstly this paper puts for w ard t h e concept o f feature po i n t on co m ponent to descri b e ex ter nal static features and inner l o g ic str ucture m ean-w hile.Feature auto m ata is constructed to depict the contex;t Secondly feature auto m ata is used to distill effecti v e co m-ponent feat u re poin;t And then co m ponent feature pr obability is co m puted by tha;t Lastly the m etric result is ca lcula-t ed by the analog ic m ethod of f u ncti o n po i n.t A practica l case is fi n ally shown to va lida te the m etric w ay.K ey w ords:co m ponen t feature po i n ts;feature auto m ata;feature probability(责任编辑:周建兰)(上接第46页)参考文献:[1]A lan W att.3D计算机图形学[M].第3版.北京:机械工业出版社,2005:387-390.[2]A ndrew K ir m se.游戏编程精粹4[M].北京:人民邮电出版社,2005:401-408.[3]A li as|w ave front.U si ng M aya:Character Setup[M].北京:中国青年出版社,2000:327-368.[4]A da m s J.A dvanced A ni m ation w it h D irect X[M].Boston:P rem ier P ress,2003:108-123.The application of Quaternion in Skeletal Skinned Ani m ationJiang De m ao,Lv Q i a ng(1.School of Co m puter S ci en ce and Technol ogy,Su z hou Un i v.,Suzhou215006,C hina;2.App lied M u lti m edia Technol ogy Lab,Suz hou U niv.,Suzhou215006,Ch i na;3.Provi n ci alKey Laboratory f or C o mpu ter Infor m ati on P rocess i ng Technol ogy,Su z hou Un iv.,Suzhou215006,C hina)Abst ract:A m ethod for exporting Skeleta l Skinned Ani m ation fro m3D ani m ation so ft w are and rebu ilding in o ther app lications w as put for ward,it expatiates on the great effect of Quaternion i n Skeletal Skinned An i m ation.These techno l o g ies are valuab le for the syste m s o f the sa m e kind.K ey w ords:Quaternion;SkeletalAn i m ation;Sk i n ned An i m ati o n;rota ti o n(责任编辑:周建兰)。

相关文档
最新文档