AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】

在前一篇文章《AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【一】》,我们讲解了 loopIn/loopOut 在不同 numKeyframes 的情况下的一些区别,但是 type 类型都是默认的 cycle,那么这篇文章则来辨析一下它们在不同 type 下会产生哪些变化。

 

首先,我们来看一下 type 支持的几种类型的定义

cycle(默认) 简单重复特定的关键帧片段
pingpong 前后往复地重复指定的关键帧片段
offset 重复特定的关键帧片段,但每次循环的偏移量(比如位置)是根据片段开始和结束时的属性值(比如速度)的差 乘以 该段循环的次数来计算得到。
continue 不重复指定的片段,但会根据第一个或最后一个关键帧的速度继续动画属性。例如,如果一个图层的缩放属性的最后一个关键帧是100%,那么这个图层将继续以100% 的缩放持续到关键帧的出点,而不是直接循环回到出点。此类型不接受关键帧或持续时间参数。

 

 

 

接下来,我们来看看这四种类型实际的效果分别是怎么样的。

 

"pingpong"

 

1. loopOut

 

 numKeyframes = 0 的情况下,效果如图

在第一帧和第四帧(最后一帧)的 Position 之间 “往复” 运动

 

 从下图也可以看出 Position 是随着时间周期性 “起伏” 的

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第1张图片 Position 和时间的关系

 

  numKeyframes = 1 的情况下,效果如图

 

标题

 

 也和我们上一篇文章所解释的那样, loopOut 是从最后一帧开始,逆向再找 numKeyframe  个关键帧,彼此之间进行循环。

 

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第2张图片

 

2. loopIn

 

 loopIn 在 numKeyframes = 0 的情况下,也是在第一个关键帧之前进行 “往复” 的循环,直到到达最后一个关键帧,才终止运动

 

 我这里由于人为得将第一个关键帧设置的位置如下图,所以只来回了两次半。实际的效果会因为您的设置不同而产生一些差异。

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第3张图片

 

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第4张图片 Position “起伏” 了两次半

 

当 numKeyframe = 1 时,起伏的范围不再是所有关键帧,而是在第一个和第二个关键帧之间进行循环,即 1 和 numKeyframe + 1。然后,和之前一样也是在最后一个关键帧的 Position 停止了运动。

 

 值得注意的是,小车运动的起始位置并不是第一个关键帧所在的位置,原因我在上一篇文章《AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【一】》也提过,是时间没有整除的关系。

 

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第5张图片

 

"offset"

 

1. loopOut

 在 numKeyframes = 0 时,如下图所示,当小车到达最后一个关键帧后,会重新以第一个关键帧的速度进行循环,同时位置还不断累加,直到超出屏幕区域。

 速度的周期循环如下图白线所示,红线是对应的位置曲线

 

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第6张图片 红:位置曲线;白:速度曲线

 

在 numKeyframes = 1 时,小车在到达了最后一个关键帧后,会仍然保持最后一个关键帧的速度继续前进,直到超出屏幕区域。

 

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第7张图片 numKeyframes = 1

 

  为了更进一步对比,我们再看看 numKeyframes = 2 时的情况,即最后一个关键帧和倒数第二个关键帧的速度之间进行循环。同样,小车还是继续前进,直到超出屏幕区域位置。

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第8张图片 numKeyframes = 2

 

2. loopIn

 在 numKeyframes = 0 时,如下图所示,在第一个关键帧以前的 Position 都超出了屏幕位置,所以小车是不显示的,直到时间到达了第一个关键帧,然后小车才会出现,并继续往前,接着当时间到达了最后一个关键帧,小车则停止运动。

 速度的周期循环如下图白线所示,红线是对应的位置曲线

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第9张图片 红:位置曲线;白:速度曲线

 

在 numKeyframes = 1 时,明显位置曲线 “起伏” 的幅度较小,因为该片段的起始速度和结束速度,都是第一个关键帧的速度(如上侧的白线虚线所示),所以位置的变化可以视作匀速递增。

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第10张图片 numKeyframes = 1

 

 同样,为了更进一步对比,我们再看看 numKeyframes = 2 时的情况,即第一个关键帧和第二个关键帧的速度之间进行循环。由于速度的差异,所以位置的变化也略有 “起伏”

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第11张图片 numKeyframes = 2

 

 

"continue"

 

由于 type 为 continue 时,不允许使用 numKeyframes,所以情况十分简单了。

1. loopOut

 这里使用的是最后一个关键帧的速度来进行位置更新(最后小车就超出了屏幕区域)

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第12张图片 以最后一个关键帧的速度循环

2. loopIn

这里使用的是第一个关键帧的速度来进行位置更新(小车从屏幕左侧区域进入,刚开始不可见)

AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】_第13张图片 以第一个关键帧的速度循环

 

(未完待续)

 

你可能感兴趣的:(AEJoy,——,特别的,AE,入门教程,After,Effect,AE)