同学们大家好,在这节课中我们来系统地学习下loopOut表达式。
loopOout表达式本质是根据所做的关键帧动画进行循环,所以使用该表达式的时候,务必要保证添加表达式的属性是需要有关键帧动画的。
接下来,我们将通过一些简单的动画,去解释下loopOut表达式的作用。
1. Cycle模式:
当前的动画是这样子的,右下角为当前时间。合成时长一共有6s。
当前的动画即为小球循环的效果,这个是通过对形状层的旋转属性做动画实现的。当前的效果在2s之后就已经停止了,如果我想让这个动画循环播放的话,可以打开该层的旋转参数,按住Alt点击左边的码表,添加表达式,loopOut(type = "cycle", numKey s = 0),那么当前的效果就是这样子了。
当前的这种模式也是loopOut表达式的默认模式了,在默认情况下,这种表达式是在最后一个关键帧动画结算完成之后,再从第一个关键帧开始继续往后结算动画。
1. Pingpong模式:
还是以这个效果举例子,比如说,我需要让这个小球以开始的顺时针方向运动一圈之后,然后再倒放一遍,也就是以逆时针的方向再运动到其初始状态的位置。诸如此类的效果只需要在该表达式loopOut(type = "cycle", numKey s = 0)的基础上,把cycle修改成pingpong即可,即loopOut(type = "pingpong", numKey s = 0)。效果如下:
3. Offset模式
没有添加任何表达式的画面效果如下图所示:
该动画是对一个形状层的旋转参数做动画,动画曲线如下图:
对Rotation参数添加表达式loopOut(type = "offset", numKey s = 0),效果如下:
很明显,秒针的动画发生了循环,只不过不一样的地方是在于,每一次循环的时候都是基于上次循环的结束数值等量发生数值偏移,动画曲线如下:
红色区域内的实现为关键帧动画,虚线部分则为通过添加loopOut表达式所得到的循环动画的动画曲线。
4. Continue
这种类型的表达式书写方式有点特殊,只需要输入一下这一行就可以了
loopOut("continue")
该表达式的作用是采样动画的最后一个关键帧的速度,继续将这个属性沿着这个速度进行下去。
下图是个小火箭的动画,没有添加表达式。
火箭的位移路径如下:
对位移属性添加loopOut("continue"),效果如下:
如果我把火箭的动画路径调整成如下图所示:
那么动画就如下所示:
很明显,当前的火箭的运动轨迹和速度,就是按照最后一个关键帧的速度和方向继续进行的。这个就是continue的循环类型的结算方式,不过该类型的循环在制作动画的时候,出场的机会不多,大家有个印象并了解即可。
未经允许不得转载:
鬼谷云课堂 » AE表达式-loopOut讲解