关键帧动画曲线的插值方法

文档序号:6356021阅读:320来源:国知局
专利名称:关键帧动画曲线的插值方法
技术领域
本发明涉及编剪辑软件及视音频后期特效处理与合成软件领域,具体涉及关键帧动画曲线的插值方法。
背景技术
任何动画要表现运动或变化,至少前后要给出两个不同的关键状态,而中间状态的变化和衔接电脑可以自动完成。帧是动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头,在动画软件的时间轴上巾贞表现为一格或一个标记。表不关键状态的巾贞叫做关键帧。所有影响画面图象的参数都可成为关键帧的参数,如位置、旋转角、纹理的参数等。关键帧技术是计算机动画中最基本并且运用最广泛的方法。在利用非线性编剪辑软件及视音频后期特效处理与合成软件,制作广告、片花、电影等的过程中,经常需要调节各项参数,设置关键帧,从而在时间上形成一个变化的效果。因此关键帧动画曲线是一种重要且常用的调节手段。关键帧动画曲线调节的方便快捷与否直接影响到视音频制作的效率。一条关键帧动画曲线由各个关键帧和它们之间的曲线组成,关键帧之间按照一定的内插方式形成曲线,关键帧之间的曲线可分为三类贝塞尔曲线,线性曲线和常量曲线,由关键帧的内插方式决定,首尾关键帧之外的曲线由外插方式决定。现有软件的关键帧动画曲线的内插方式一般有贝塞尔曲线和线性直线两种。但在实际应用中,有时需要在两个关键帧之间保持前一个关键帧的数值,这时贝塞尔曲线和线性直线的插值不能够满足需要。对于外插方式,现有软件一般仅有常量插值一种,不能够满足实际应用的需要。

发明内容
针对现有技术的缺陷与实际应用的需要,本发明的目的在于提供关键帧动画曲线的插值方法,实现关键帧动画曲线内插与外插方式的多样化,更好的满足实际应用的需要。为解决上述技术问题,本发明采用的技术方案如下关键帧动画曲线的插值方法,包括关键帧动画曲线的内插方法和关键帧动画曲线的外插方法,其特征在于所述内插方法是指常量内插,其具体方法为当时间线播放到某个关键帧与它的下一个关键帧之间时,获取该关键帧的内插方法标志量,若通过该标志量判断为常量插值,则获取该关键帧的坐标值,直接使用该关键帧的数值进行常量插值;所述外插方法包括线性外插和关键帧线性外插;进行外插的具体方式为当时间线处于首尾两个关键帧之外的区域时,获取关键帧的外插方式标志量,若通过该标志量判断为线性插值,则获取首/尾关键帧和它的前/后向控制点的坐标,计算线性方程,进行线性插值;若判断为关键帧线性插值,则获取首关键帧和第二个关键帧的坐标或者尾关键帧和倒数第二个关键帧的坐标,计算线性方程,进行关键帧线性插值。进一步,如上所述的插值方法,所述关键帧动画曲线的横坐标是时间,纵坐标是特技参数的参数值。进一步,如上所述的插值方法,所述前向控制点和后向控制点是指用来控制关键帧动画曲线中关键帧端点两侧的曲线变化趋势的关键帧的前后控制点。进一步,如上所述的插值方法,在进行线性外插时,当时间线小于首关键帧的时间值时,则获取首关键帧和它的前向控制点的坐标,计算线性方程,进行线性插值;当时间线大于尾关键帧的时间值时,则获取尾关键帧和它的后向控制点的坐标,计算线性方程,进行线性插值。进一步,如上所述的插值方法,在进行关键帧线性插值时,当时间线小于首关键帧的时间值时,则获取首关键帧和第二个关键帧的坐标,计算线性方程,进行关键帧线性插值;当时间线大于尾关键帧的时间值时,获取尾关键帧和倒数第二个关键帧的坐标,计算线性方程,进行关键帧线性插值。
再进一步,如上所述的插值方法,在进行线性外插时,当关键帧与其控制点的时间值相同时,线性外插的数值与关键帧的数值相等。更进一步,如上所述的插值方法,在进行关键帧线性外插时,若首关键帧和第二个关键帧的坐标或者尾关键帧和倒数第二个关键帧的坐标的时间值相同时,关键帧线性外插的值与首关键帧或者尾关键帧的数值相等。本发明的效果在于本发明在现有的关键帧动画曲线内插与外插的基础上,提出了新的内插与外插方法,即常量内插、线性外插和关键帧线性外插。通过常量内插解决了实际应用中需要在两个关键帧之间保持前一个关键帧的数值的需要;线性外插和关键帧线性外插,克服了现有外插方法仅一种常量外插的单一缺陷,为用户提供了更多的选择,更好的满足了实际应用的需要。


图I为通过本发明所述插值方法进行内插和外插的流程图;图2为现有内插方法的流程图;图3为现有外插方法的流程图;图4为利用本发明所述方法进行线性外插的示意图;图5为利用本发明所述方法进行关键帧线性外插的示意图。
具体实施例方式下面通过附图及具体实施例对本发明作进一步的描述。关键帧关键帧动画曲线是由关键帧按照一定的内插方式形成的曲线,关键帧之间的曲线可分为三类贝塞尔曲线,线性曲线和常量曲线,由关键帧的内插方式决定,而首尾关键帧之外的曲线由外插方式决定。在现有的关键帧动画曲线的插值方法中,内插有贝赛尔曲线和线性直线插值两种,外插仅有常量插值一种。系统默认的关键帧内插方式为贝塞尔插值,系统默认的关键帧动画曲线的外插方式为常量插值图2示出了现有技术中内插方法的流程图,在进行关键帧动画曲线的内插时,每个关键帧的接口上都带有一个内插方式的标志量,表明内插的方式。当时间线播放到某个关键帧与它的下一个关键帧之间时,系统会首先获取该关键帧的内插方式标志量,判断其内插方式,若判断为贝塞尔插值,则获取该关键帧和它的前向控制点坐标,以及下一个关键帧和它的后向控制点坐标,计算三次贝塞尔曲线的方程,进行贝塞尔曲线的插值;若判断为线性插值,则获取该关键帧和下一个关键帧的坐标,计算两者的线性方程,进行线性插值。其中,控制点是在三次贝塞尔曲线中的概念,即一条三次贝塞尔曲线由一个端点,该端点的前向控制点,第二个端点,第二个端点的后向控制点,共四个点的位置决定。所以一个端点共有前后向共两个控制点。在本发明中,一个关键帧就是一个端点,它带有前后向两个控制点。图3示出了现有技术中外插方法的流程图,当时间线处于首尾两个关键帧之外的区域进行外插时,若时间线小于首关键帧的时间值,则读取关键帧动画曲线的首关键帧坐标,时间线所在时间的参数数值和首关键帧的数值相同,保持不变;若时间线大于尾关键帧的时间值时,则读取关键帧动画曲线的尾关键帧坐标,时间线所在时间的参数数值和尾关键帧的数值相同,保持不变。为实现关键帧动画曲线内插与外插方式的多样化,更好的满足实际应用的需要, 本发明提供了关键帧动画曲线的插值方法,包括常量内插、线性外插和关键帧线性外插。图I示出了通过本发明所述的关键帧动画曲线的插值方法进行内插和外插的流程图。在进行内插时,如果通过读取关键帧内插方式标志量判断为常量内插,则读取关键帧的坐标,直接使用关键帧的坐标值进行插值。这样为某个关键帧选择了常量插值,则该关键帧与它下一个关键帧之间的参数数值将保持不变。常量插值实际上是产生了一种阶跃信号,当时间线播放到下一个关键帧时应以这个关键帧的数值为准,这时将产生数值的跳变。在进行外插时,首先通过读取关键帧外插方式标志量,如果通过该标识量判断为线性外插,在进行线性外插时,当时间线小于首关键帧的时间值时,则获取首关键帧和它的前向控制点的坐标,计算线性方程,进行线性插值;当时间线大于尾关键帧的时间值时,则获取尾关键帧和它的后向控制点的坐标,计算线性方程,进行线性插值。图4示出了利用该方法进行线性外插的示意图。由图中可以看出,在时间线小于首关键帧的时间值时,获取首关键帧A和它的前向控制点B的坐标,就可以计算线性方程,进行插值;在时间线大于尾关键帧的时间值时,则获取为关键帧C和它的后向控制点D的坐标进行插值。其中,对于首关键帧其后向控制点是与关键帧的端点重合的,尾关键帧的前向控制点是与关键帧的端点重合的,即首关键帧A的后向控制点是关键帧A的端点,尾关键帧C的前向控制点为关键帧C的端点。对于关键帧前/后向控制点位置的确认是现有的公知技术,在此不再赘述。在线性外插过程中,当关键帧和它的控制点的时间值相同时,它们建立的线性方程的斜率将无穷大,对于这种特殊情况,系统将会使外插的数值与关键帧的数值相等。如果通过外插方式标志量判断为关键帧线性外插,在进行关键帧线性外插时,当时间线小于首关键帧的时间值时,则获取首关键帧和第二个关键帧的坐标,计算线性方程,进行关键帧线性插值;当时间线大于尾关键帧的时间值时,则获取尾关键帧和倒数第二个关键帧的坐标,计算线性方程,进行关键帧线性插值。图5示出了利用该方法进行关键帧线性外插的示意图。由图中可以看出,在时间线小于首关键帧的时间值时,通过获取首关键帧E和第二个关键帧F的坐标,就可计算线性方程,进行插值;在时间线大于尾关键帧的时间值时,则获取尾关键帧G和倒数第二关键帧H的坐标,进行关键帧线性插值。
同样,在关键帧线性外插中,当两个关键帧的时间值相同时,它们建立的线性方程的斜率将无穷大,对于这种特殊情况,系统将会使外插的数值与首(尾)关键帧的数值相
坐寸o其中,内/外插方式标志量是一个枚举类型变量,通过这个枚举变量就可以区分类型,该标志量的实现可以有多种方式。对于通过计算线性方程,进行线性外插和关键帧的线性外插,线性方程是现有技术,定义为y = f (X), f具有如下特性f (x+y) = f (X) +f (y);f (ax) = af (x);其中,a为任意常数。
对于本发明来说,以时间线小于首关键帧的时间值时,获取首关键帧和它的前向控制点的坐标,计算线性方程,进行线性插值首关键帧为例,其计算方程为(Y1Itl) / (X1-X0)一 (Yo—/ (x0—X2);其中,对于线性插值X(l,y0分别为首关键帧的横纵坐标,X1, Y1分别为首关键帧的前向控制点的横纵坐标,x2, y2分别为外插点的横纵坐标;对于关键帧线性插值Xtl, y0分别为首关键帧的横纵坐标,X1, Y1分别为第二个关键帧的横纵坐标,x2, y2分别为外插点的横纵坐标。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.关键帧动画曲线的插值方法,包括关键帧动画曲线的内插方法和关键帧动画曲线的外插方法,其特征在于 所述内插方法是指常量内插,其具体方法为当时间线播放到某个关键帧与它的下一个关键帧之间时,获取该关键帧的内插方式标志量,若通过该标志量判断为常量插值,则获取该关键帧的坐标值,直接使用该关键帧的坐标值进行常量插值; 所述外插方法包括线性外插和关键帧线性外插;进行外插的具体方式为当时间线处于首尾两个关键帧之外的区域时,获取关键帧的外插方式标志量,若通过该标志量判断为线性插值,则获取首/尾关键帧和它的前/后向控制点的坐标,计算线性方程,进行线性插值;若判断为关键帧线性插值,则获取首关键帧和第二个关键帧的坐标或者尾关键帧和倒数第二个关键帧的坐标,计算线性方程,进行关键帧线性插值。
2.如权利要求I所述的插值方法,其特征在于所述关键帧动画曲线的横坐标是时间,纵坐标是特技参数的参数值。
3.如权利要求I所述的插值方法,其特征在于所述前向控制点和后向控制点是指用来控制关键帧动画曲线中关键帧端点两侧的曲线变化趋势的关键帧的前后控制点。
4.如权利要求I所述的插值方法,其特征在于在进行线性外插时,当时间线小于首关键帧的时间值时,则获取首关键帧和它的前向控制点的坐标,计算线性方程,进行线性插值;当时间线大于尾关键帧的时间值时,则获取尾关键帧和它的后向控制点的坐标,计算线性方程,进行线性插值。
5.如权利要求I所述的插值方法,其特征在于在进行关键帧线性插值时,当时间线小于首关键帧的时间值时,则获取首关键帧和第二个关键帧的坐标,计算线性方程,进行关键帧线性插值;当时间线大于尾关键帧的时间值时,则获取尾关键帧和倒数第二个关键帧的坐标,计算线性方程,进行关键帧线性插值。
6.如权利要求I或2所述的插值方法,其特征在于在进行线性外插时,当关键帧与其控制点的时间值相同时,线性外插的数值与关键帧的数值相等。
7.如权利要求I或3所述的插值方法,其特征在于在进行关键帧线性外插时,若首关键帧和第二个关键帧的坐标或者尾关键帧和倒数第二个关键帧的坐标的时间值相同时,关键帧线性外插的值与首关键帧或者尾关键帧的数值相等。
全文摘要
本发明公开了关键帧动画曲线的插值方法,包括常量内插、线性外插和关键帧线性外插。常量内插是通过关键帧的内插方式标志量判断为常量插值时,直接使用该关键帧的数值进行常量插值实现的;这种内插方法解决了实际应用中需要在两个关键帧之间保持前一个关键帧的数值的需要。线性外插是通过当关键帧的外插方式标志量判断为线性插值时,获取首/尾关键帧和它的前/后向控制点的坐标,通过计算线性方程进行插值的;关键帧线性外插是通过获取首关键帧和第二个关键帧的坐标或者尾关键帧和倒数第二个关键帧的坐标,计算线性方程进行插值。这两种外插方法克服了现有外插方法仅一种常量外插的单一缺陷,为用户提供了更多的选择,更好的满足了实际应用的需要。
文档编号G06T13/00GK102682459SQ20111006153
公开日2012年9月19日 申请日期2011年3月15日 优先权日2011年3月15日
发明者李磊, 见良, 郑鹏程 申请人:新奥特(北京)视频技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1