一种实现动画间平滑过渡的方法技术

技术编号:3804769 阅读:237 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种实现动画间平滑过渡的方法,包括步骤:(a)分别获取前一个动作的末姿势矩阵和后一个动作的始姿势矩阵;(b)将上述两个动作的姿势矩阵分别拆解为缩放、旋转、平移三个分量;(c)对上述缩放、旋转、平移三个分量分别进行插值运算,获得新的缩放、旋转、平移分量;(d)将上述插值运算后获得的缩放、旋转、平移分量整合为中间动作的姿势矩阵;(e)将上述中间动作的姿势矩阵应用到动作姿势,进行平滑过渡。本发明专利技术的显著特点在于中间过渡时动画不会失真,具有连贯的、平滑的过渡效果。

【技术实现步骤摘要】

本专利技术涉及计算机图像处理技术,特别涉及一种实现动画之间平滑过渡的方法。
技术介绍
在动画设计过程中,我们可以将角色动画看作是一个角色的关键动作的序列,而通过动作捕捉或者人手打造的关键动作,它们的起始姿势和结束姿势都是不尽相同的。因此,动画之间的平滑过渡技术就是为了使关键动作之间能够实现连贯的平滑的过渡效果。现有技术,可以利用计算机根据角色的关键动作的始、末姿势,计算出两个动作之间的过渡动画,从而实现动画间的平滑过渡。 如果需要由一个动画平滑过渡到另一个动画,通过对当前动作的骨骼位置和下一个动作的骨骼位置进行插值运算,然后在更新动画时,根据时间计算出两个位置之间的插值,最后利用计算出来的值更新骨骼的位置,就可以实现两个动画间的过渡。但是,如果直接对表示角色的关键动作的位置的矩阵进行插值运算(如图1所示),得出来的动画效果将会失真。以线性插值为例,直接对矩阵中的各个数值进行插值运算,并不等于对动作的缩放、旋转、平移等各个分量的插值运算的结果。虽然矩阵统一表示了缩放、旋转、平移,但是矩阵是以余弦函数Cosine值表示旋转的,而一般的旋转分量是以角度来表示的,由于角度与Cosine值的互换并不是线性的,所以直接插值会导致动画间过渡的失真。 例如,于2008年7月16日公开的中国专利技术专利申请CN 101223555A,公开了一种动画间的平滑过渡方法,采用其中所述的“快照和替换”传递行为,使第二动画正好在第一动画结束的那一点处“开始”,从而实现第一和第二动画之间的过渡。通常两个不同动画之间的起始和结束动作是不同的,如果采用上述的“快照和替换”传递行为,直接由第一动画的结束动作过渡至第二动画的起始动作,没有中间过渡动作,容易出现动作之间的不连贯。
技术实现思路
基于现有技术中存在的缺陷,本专利技术的目的在于提供一种采用对相关动作进行中间插值的方法实现动画间的过渡,具有动作过渡平滑、衔接连贯等特点。 本专利技术所采用的技术方案,包括以下步骤 (a)分别获取前一个动作的末姿势矩阵和后一个动作的始姿势矩阵; (b)将上述两个动作的姿势矩阵分别拆解为缩放、旋转、平移三个分量; (c)对上述缩放、旋转、平移三个分量分别进行插值运算,获得新的缩放、旋转、平移分量; (d)将上述插值运算后获得的缩放、旋转、平移分量整合为中间动作的姿势矩阵; (e)将上述中间动作的姿势矩阵应用到动作姿势,进行平滑过渡。 上述步骤(d)中的中间动作的姿势矩阵以 缩放(S)×旋转(R)×平移(T)的顺序组合,其中缩放(S)、旋转(R)、平移(T)分别为缩放、旋转、平移分量。 上述旋转分量表示为其中x、y、z为单位向量,θ为旋转角度。所述旋转分量的矩阵表示为 其中x、y、z为单位向量,θ为旋转角度。 上述缩放分量表示为S={Sx,Sy,Sz},其中Sx、Sy、Sz为三维向量。所述缩放分量的矩阵表示为 其中Sx、Sy、Sz为三维向量。 上述平移分量表示为T={Tx,Ty,Tz},其中Tx、Ty、Tz为三维向量。所述平移分量的矩阵表示为 其中Tx、Ty、Tz为三维向量。 本专利技术通过提取动画中关键动作的骨骼位置值,将其矩阵拆解为缩放、旋转、平移三个分量,然后对这三个分量分别计算其插值,最后再整合到一个中间矩阵,再将该中间矩阵应用到动画中,从而实现动画间的平滑过渡,其显著特点在于中间过渡时动画不会失真,具有连贯的、平滑的过渡效果。 附图说明 图1是现有技术采用的直接插值法的的流程图; 图2是本专利技术的流程示意图。 具体实施例方式 下面结合附图对本专利技术的具体结构作进一步的描述。 本专利技术所述动画间的平滑过渡方法是指在动画制作过程中,实现将前一个动作的末姿势(结束姿势)和后一个动作的始姿势(起始姿势)连贯起来,使两个动作之间平滑过渡。 如图2所示,本专利技术所述的平滑过渡方法通过以下步骤实现 (a)分别获取前一个动作的末姿势的骨骼位置值,以矩阵Matrix1表示;以及后一个动作的始姿势的骨骼位置值,以矩阵Matrix2表示; (b)将上述两个动作的姿势矩阵Matrix1和Matrix2分别拆解为缩放(Scaling1,Scaling2)、旋转(Rotation1,Rotation2)、平移(Translate1,Translate2)三个分量; (c)对上述缩放(Scaling1,Scaling2)、旋转(Rotation1,Rotation2)、平移(Translate1,Translate2)三个分量分别进行插值运算,获得新的缩放(Scaling)、旋转(Rotation)、平移(Translate)分量; (d)将上述插值运算后获得的缩放(Scaling)、旋转(Rotation)、平移(Translate)分量整合为中间动作的姿势矩阵Matrix; (e)将上述中间动作的姿势矩阵Matrix应用到动作姿势,进行平滑过渡。 下面进一步介绍变换矩阵(中间动作的姿势矩阵)和缩放、旋转、平移三个分量之间的拆分和互相转换。本实施例中,变换矩阵是以缩放(S)×旋转(R)×平移(T)这个顺序组合起来的。 1、旋转矩阵 沿X,Y,Z轴旋转的矩阵可以表示为 空间中任意的旋转都可以由上述这三个矩阵的组合来表示,本专利技术是以角-轴形式表示旋转矩阵的。也就是用一个单位向量{x,y,z}和一个旋转角度θ来表示。θ的定义为以单位向量为正方向,沿逆时针旋转的度数。 旋转矩阵表示为 旋转分量可以由四元素Q表示为 其中x、y、z为单位向量,θ为旋转角度。 由四元素Q生成矩阵M,可以由最后一个分量计算出θ,然后再求出x、y、z三个分量。由矩阵M提取四元素Q,可以先将对角线上的元素相加,也就是先求出矩阵的迹,得出1+2cosθ,从而求得θ,然后再将对角线两侧元素相减,分别求出x、y、z。 2、缩放分量与矩阵 缩放分量可以由一个三维向量表示为S={Sx,Sy,Sz};缩放矩阵可以表示为其中Sx、Sy、Sz为三维向量。 缩放分量与缩放矩阵的互换比较简单,但是需要考虑当一个矩阵同时表示缩放与旋转的情况。这里以前面介绍过的R{θx}为例,来说明当变换矩阵整合了缩放和旋转的情况 可以看出,M的行向量的长度就是对应缩放因子的值。同样,以角-轴表示的旋转矩阵成有相同的特征。 所以在拆分缩放和旋转分量时,需要先计算出缩放值,再将矩阵的每一行除以对应的缩放值,再计算旋转矩阵。 3、平移分量与矩阵 由于一个三维坐标{x,y,z},不能由一个3×3的矩阵完成。需要使用齐次坐标{x,y,z,1},平移矩阵表示为 其中Tx、Ty、Tz为三维向量。 平移的分量也可以由一个三维向量表示T={Tx,Ty,Tz},平移分量与缩放矩阵的互换也是比较简单的。 与图1中所示的直接插值的过渡方法相比,本专利技术通过提取动画中关键动作的骨骼位置值,将其矩阵拆解为缩放、旋转、平移三个分量,然后对这三个分量分别计算其插值,最后再整合到一个中间矩阵,再将该中间矩阵应用到动画中,从而实现动画间的平滑过渡,其显著特点在于中间过渡时动画不会失真,具有连贯的、平滑的过渡效果。权利要求1.,其特征在于,包括以下步骤(a)分别本文档来自技高网
...

【技术保护点】
一种实现动画间平滑过渡的方法,其特征在于,包括以下步骤: (a)分别获取前一个动作的末姿势矩阵和后一个动作的始姿势矩阵; (b)将上述两个动作的姿势矩阵分别拆解为缩放、旋转、平移三个分量; (c)对上述缩放、旋转、平移三个 分量分别进行插值运算,获得新的缩放、旋转、平移分量; (d)将上述插值运算后获得的缩放、旋转、平移分量整合为中间动作的姿势矩阵; (e)将上述中间动作的姿势矩阵应用到动作姿势,进行平滑过渡。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄卓威
申请(专利权)人:广州市八丁动漫网络科技有限公司
类型:发明
国别省市:81[中国|广州]

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

1