关键帧动画详解

关键帧动画是一种非常灵活的动画系统,利用它可以做出各式各样的动画效果。

什么是“关键帧”?

关键帧就是定义动画在关键时间的各项参数,其他时间的参数都由关键帧的参数插值得到。
因此要使用关键帧动画,首先必须了解在关键帧中可以设定哪些参数。

“关键帧”有哪些参数?

在无双引擎中,关键帧以Python数据类型“字典”的形式存放,例如:

 
我的关键帧 = 字典(时间=0, x=0, y=0, 旋转=0, 缩放X=1, 缩放Y=1, 透明度=255, 图片="背景\\背景1.png") 


下面详细介绍每个参数的意义:
时间:该关键帧出现的时间。默认为0。单位为秒。
x:图元的x坐标。默认为0。
y:图元的y坐标。默认为0。
旋转:图元的旋转值,为角度值(0-359,大于360时自动对360求模)。默认为0。
缩放X:图元在X方向的缩放值。默认为1。
缩放Y:图元在Y方向的缩放值。默认为1。
透明度:图元的透明度。默认为255。
图片:要使用的图片。默认为空(无图片)。

在定义关键帧时,并不需要写出每个参数。没有写出的参数会自动取上一个关键帧的值。
这样只需要在关键帧中设置变化了的值,非常方便。


关键帧动画示例

背景/前景卷轴效果

下面是一个简单的背景/前景卷轴效果,通过两张图片的平移动画,模拟了背景/前景的循环卷轴。
这个效果要求图片的边缘必须能够无缝连接起来,不然会看到一条明显的缝隙。

 
    平移特效1 = [ 
      字典(时间=0, x=-800, y=0, 图片="系统\\mask5.gif"), 
      字典(时间=5, x=0) 
    ] 
    平移特效2 = [ 
      字典(时间=0, x=0, y=0, 图片="系统\\mask5.gif"), 
      字典(时间=5, x=800) 
    ] 
    平移特效_模板 = 关键帧动画模板() 
    平移特效_模板.添加子动画(平移特效1) 
    平移特效_模板.添加子动画(平移特效2) 

背景局部放大效果

下面这个效果同时用到了图片平移和缩放,模拟了背景局部放大的效果。

 
    背景放大1 = [ 
      字典(时间=0, 图片="背景\\场景-侦探社-清晨.jpg"), 
      字典(时间=0.5, x=-200, y=-30, 缩放X=2, 缩放Y=2), 
    ] 
    背景局部放大_模板 = 关键帧动画模板() 
    背景局部放大_模板.添加子动画(背景放大1, loop = 否) # loop = 否 表示这个子动画是不循环的 

关键帧动画支持的指令

关键帧动画支持 显示 隐藏 淡入 淡出 震动 等指令。注意关键帧动画的结束由自身的 loop 属性控制,和 @完成动画() 这个API无关。

 
代码: 
  平移特效 = 平移特效_模板.克隆() 

  平移特效.显示() 
  平移特效.隐藏() 
  平移特效.淡入(0.5) 
  平移特效.淡出(1.5) 
  平移特效.震动(1.5) 


doc/keyframeanimation.txt · 最后更改: 2010/08/07 07:59 由 lance
到顶部