动画中动态骨骼的实现方法和装置制造方法及图纸

技术编号:16039117 阅读:55 留言:0更新日期:2017-08-19 21:00
本发明专利技术公开了一种动画中动态骨骼的实现方法和装置。该实现方法包括:创建针对目标对象的骨骼关节树,其中,骨骼关节树中直接相连的两个关节中更接近根节点的关节为父关节,更远离根关节的关节为子关节;计算骨骼关节树中的关节在下一帧的位置信息;针对骨骼关节树中的至少一个子关节,将该子关节从当前帧到下一帧的位置变换转换为绕该子关节的父关节的旋转变换,从而通过旋转变换,将子关节移动到其下一帧的位置。由此,通过将关节的位置变换转换为绕其父关节的旋转变换,可以使得运动过程更加平滑,改善视觉体验。

【技术实现步骤摘要】
动画中动态骨骼的实现方法和装置
本专利技术涉及计算机动画
,特别是涉及一种动画中动态骨骼的实现方法和装置。
技术介绍
游戏中人物的走动,跑动,攻击等动作是必不可少,实现它们的方法一般采用帧动画或者骨骼动画。帧动画与骨骼动画的区别在于:帧动画的每一帧都是角色特定姿势的一个快照,动画的流畅性和平滑效果都取决于帧数的多少。而骨骼动画则是把角色的各部分身体部件图片绑定到一根根互相作用连接的“骨头”上,通过控制这些骨骼的位置、旋转方向和放大缩小而生成的动画。在3D游戏开发过程中,角色模型的动作表现通常是使用骨骼蒙皮动画来实现,标准的骨骼动画是由美术设计人员预先设计然后再输出到游戏应用程序当中,通过程序运算来播放模型在每一帧的动作表现。然而,预先设计好的动画表现并不能满足一些特殊的情形,比如随着人物的转动,身上的衣物轻盈的飘动起来;或者随着马匹的跑动,尾巴随着跑动作不同幅度地摆动等等。动态骨骼动画适用于这类情况,因为它的骨骼动作表现是在游戏运行过程中根据关联的骨骼信息动态计算出来的。使用动态骨骼除了使动画模型具有逼真的动作表现,还具有制作简单,控制便捷等特点,一般只需要美术设计人员预先将网本文档来自技高网...
动画中动态骨骼的实现方法和装置

【技术保护点】
一种动画中动态骨骼的实现方法,包括:创建针对目标对象的骨骼关节树,其中,所述骨骼关节树中直接相连的两个关节中更接近根节点的关节为父关节,更远离所述根关节的关节为子关节;计算所述骨骼关节树中的关节在下一帧的位置信息;针对所述骨骼关节树中的至少一个子关节,将该子关节从当前帧到下一帧的位置变换转换为绕该子关节的父关节的旋转变换,从而通过所述旋转变换,将所述子关节移动到其下一帧的位置。

【技术特征摘要】
1.一种动画中动态骨骼的实现方法,包括:创建针对目标对象的骨骼关节树,其中,所述骨骼关节树中直接相连的两个关节中更接近根节点的关节为父关节,更远离所述根关节的关节为子关节;计算所述骨骼关节树中的关节在下一帧的位置信息;针对所述骨骼关节树中的至少一个子关节,将该子关节从当前帧到下一帧的位置变换转换为绕该子关节的父关节的旋转变换,从而通过所述旋转变换,将所述子关节移动到其下一帧的位置。2.根据权利要求1所述的实现方法,其中,计算所述骨骼关节树中的关节在下一帧的位置信息包括:计算预定作用力下所述骨骼关节树中的关节在下一帧的位置信息,其中,所述预定作用力包括下列至少一项:重力;关节移动过程中受到的与移动方向相反的阻力;以及来自周围环境的干扰力。3.根据权利要求2所述的实现方法,其中,计算预定作用力下所述骨骼关节树中的关节在下一帧的位置信息包括:使用如下位置计算公式计算关节在下一帧的位置信息posn+1,posn+1=posn+(posn-posn-1)*(1-r)+(gv+d)*Δt2其中,posn+1为关节在下一帧的位置信息,posn为关节在当前帧的位置信息,posn-1为关节在上一帧的位置信息,r为阻力作用下的阻力系数,0≤r≤1,gv为重力在关节的长度方向上的法向方向上的重力分力作用下的加速度,d为干扰力作用下的加速度,Δt为上一帧与当前帧之间的时间间隔。4.根据权利要求3所述的实现方法,还包括:使用如下第一修正公式对计算得到的关节在下一帧的位置信息posn+1进行修正,其中,pos'n+1为关节经过补偿后在下一帧的位置信息,posp为关节的父关节的位置信息,len为关节到其父关节之间的关节臂的长度。5.根据权利要求1所述的实现方法,其中,将子关节在下一帧的位置信息与当前帧的位置信息之间的位置变换转换为绕该子关节的父关节的旋转变换包括:根据所述子关节在当前帧的位置信息,确定从所述父关节到所述子关节的当前方向向量;根据所述子关节在下一帧的位置信息以及当前帧的位置信息,确定所述子关节在其父关节坐标系下的移动向量;根据所述当前方向向量和所述移动向量,获取绕所述父关节进行旋转变换的四元数。6.根据权利要求5所述的实现方法,其中,将子关节在下一帧的位置信息与当前帧的位置信息之间的位置变换转换为绕该子关节的父关节的旋转变换还包括:使用四元数插值算法对所述四元数进行插值运算,以得到缓冲四元数;基于所述缓冲四元数对所述父关节和所述子关节进行旋转变换。7.根据权利要求1所述的实现方法,还包括:消除所述旋转变换在所述子关节与其父关节构成的轴向方向上的分量;通过消除后的旋转变换,将所述子关节移动到其下一帧的位置。8.根据权利要求1所述的实现方法,还包括:在检测到计算得到的所述关节在下一帧的位置信息与目标碰撞体发生碰撞的情况下,对所述关节的位置信息进行修正,以使得修正后所述关节在下一帧的位置信息基本满足以下条件:修正后所述关节位于所述目标碰撞体的边缘;修正后所述关节到其父关节之间的关节臂的长度不变。9.根据权利要求8所述的实现方法,其中,所述关节与所述目标碰撞体均为具有预定半径的球体,对所述关节的位置信息进行修正包括:使用如下第二修正公式对所述关节的位置进行修正:其中,pos”n+1为所述关节进行修正后在下一帧的位置信息,c1为所述关节修正前在下一帧的位置信息,c2为所述碰撞体的位置信息,r1为所述关节的半径,r2为所述碰撞体的半径,posp为所述关节的父关节的位置信息,len为所述关节到其父关节之间的关节臂的长度。10.根据权利要求1所述的实现方法,还包括:从与所述根关节直接相连的关节开...

【专利技术属性】
技术研发人员:洪智标
申请(专利权)人:广州爱九游信息技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1