AE循环表达式终极教程:4个内置表达式+全场景用法,新手也能快速上手
系统学影视后期
2026年02月04日 01:36

# AE循环表达式终极教程:4个内置表达式+全场景用法,新手也能快速上手

在AE制作动画时,重复动作(比如循环旋转、往返移动、持续运动)是高频需求。如果手动复制关键帧,不仅繁琐还容易出错,而AE内置的4个循环表达式,能轻松搞定所有循环场景,效率直接翻倍!

今天就带大家全面吃透AE循环表达式——从基础类型到参数差异,再到进阶控制技巧,新手也能一步步学会,看完直接套用~

## 一、先搞懂:4个核心循环表达式(基础必备)

AE内置的4个循环表达式,核心逻辑一致,仅适用场景有区别,先记牢这组“公式”:

- loopIn(type = "cycle", numKeyframes = 0)

- loopOut(type = "cycle", numKeyframes = 0)

- loopInDuration(type = "cycle", duration = 0)

- loopOutDuration(type = "cycle", duration = 0)

后面所有用法,都是围绕这4个表达式的参数调整展开,先记住“type(循环类型)、numKeyframes(关键帧数量)、duration(时长)”这三个核心参数,就能灵活变通~

## 二、关键技巧:4种循环类型(type参数用法)

所有循环表达式的`type`参数,都支持4种循环模式,以最常用的`loopOut`为例,用“关键帧1、2、3、4、5”做示例,一看就懂:

### 1. 圆形循环(cycle):重复同一动作

表达式:loopOut(type="cycle", numkeyframes=0)

效果:按关键帧顺序无限重复,模式为「12345→12345→12345……」

适用场景:需要固定重复的动作,比如时钟指针旋转、小球匀速弹跳、图标循环闪烁等。

### 2. 乒乓循环(pingpong):往返式循环

表达式:loopOut(type="pingpong", numkeyframes=0)

效果:正向播放完关键帧后反向回放,模式为「12345→54321→12345→……」

适用场景:往返运动,比如滑块左右移动、光线明暗交替、元素上下摆动等,避免动作生硬转折。

### 3. 偏移循环(Offset):自动延伸动作

表达式:loopOut(type="Offset", numkeyframes=0)

效果:根据现有关键帧轨迹,自动推算后续动作,模式为「123→456789……」(无限延伸至画面外)

适用场景:需要持续推进的动作,比如人物连续走台阶、文字依次滚动、粒子持续流动等,只需做一套动作,表达式自动补全后续。

### 4. 持续循环(continue):延续运动状态

表达式:loopOut(type="continue")

效果:延续最后一帧的运动方向和速度,无限延伸,模式为「123→3+n→……」(直至超出合成画面)

适用场景:加速/减速后的持续运动,比如物体抛出去后的惯性移动、光线匀速延伸、镜头持续推拉等。

## 三、核心差异:In/Out与numkeyframes/Duration怎么选?

很多人分不清“loopIn”和“loopOut”、“numkeyframes”和“duration”,其实核心是“循环方向”和“循环范围”的区别,用具体例子讲明白:

### 1. In vs Out:循环是“向前”还是“向后”?

- loopIn:在关键帧设定的时间段「之前」循环

举例:如果关键帧设定在6-8秒(一套完整动作),那么6秒之前的时间,会一直循环6-8秒的动作;到6秒时,衔接关键帧正常完成最后一套动作,8秒结束循环。

注:循环起始位置会根据前面空出的时长自动推算,不用手动调整。

- loopOut:在关键帧设定的时间段「之后」循环

举例:如果关键帧设定在4-6秒(一套完整动作),那么4秒之前的时间画面静止;4秒开始执行关键帧动作,6秒完成后,无限循环这套动作。

注:loopOut的循环开始时间,永远以第一帧关键帧为准,自定义开始时间仅限定“是否生效”,不改变起始点。

### 2. numkeyframes vs Duration:循环“关键帧”还是“时长”?

- numkeyframes(关键帧数量):控制参与循环的关键帧范围

默认值为0(循环所有关键帧),手动调整规则:

- loopIn中:numkeyframes=1→循环前2个关键帧,numkeyframes=2→循环前3个关键帧(依次递增);

- loopOut中:numkeyframes=1→循环最后2个关键帧,numkeyframes=2→循环最后3个关键帧(依次递增)。

适用场景:只想循环部分关键帧动作(比如前3个关键帧的旋转,忽略后面的位移)。

- Duration(时长):控制参与循环的动作时长

默认值为0(循环整套动作),手动调整规则:

- loopInDuration(duration=1):循环关键帧时间段中「前1秒」的动作(比如4-6秒的动作,只循环4-5秒部分);

- loopOutDuration(duration=1):循环关键帧时间段中「最后1秒」的动作(比如4-6秒的动作,只循环5-6秒部分)。

适用场景:只想循环动作中的某个片段(比如物体加速的最后1秒,持续循环该状态)。

## 四、进阶用法:自定义循环的开始/结束时间

默认循环是“从关键帧开始到合成结束”,但实际制作中,常需要限定循环时段(比如只在2-10秒循环),用下面的条件表达式就能实现:

```

timeToStart = 2; // 循环开始时间(单位:秒)

timeToStop = 10; // 循环结束时间(单位:秒)

if ((time > timeToStart) && (time < timeToStop)) {

loopIn(type="pingpong",numkeyframes=0); // 可替换为任意循环表达式

} else {

value; // 非循环时段保持原始状态

}

```

### 关键说明:

1. `&&`表示“同时满足”:只有时间在「开始时间-结束时间」之间,循环才生效;

2. 可自由替换循环表达式:把`loopIn(type="pingpong",numkeyframes=0)`换成任意之前讲的循环类型(比如`loopOut(type="cycle",numkeyframes=1)`);

3. 特殊规则:loopIn的结束时间由最后一帧关键帧控制,loopOut的开始时间由第一帧关键帧控制,自定义参数仅限定“循环是否生效”,不改变关键帧本身的循环逻辑;

4. 便捷技巧:可以搭配AE的“滑块控件”,把开始/结束时间做成可拖动的滑块,不用手动修改代码,调整更高效。

## 五、新手避坑&快速套用指南

1. 不确定用In还是Out?记住:想在关键帧「之前」循环用loopIn,想在关键帧「之后」循环用loopOut(loopOut更常用);

2. 只循环部分动作?用numkeyframes(按关键帧数量)或duration(按时长),默认0即可循环全部;

3. 循环动作生硬?优先选pingpong(往返)或Offset(偏移),避免动作突然转折;

4. 快速套用:先确定循环类型(比如cycle),再选In/Out(比如loopOut),最后按需调整numkeyframes/duration,不用死记硬背,多试两次就熟练。

AE循环表达式的核心就是“用参数控制循环的类型、范围、时段”,4个基础表达式+4种循环类型+2个核心参数,就能覆盖90%的循环场景。

新手可以先从最简单的`loopOut(type="cycle",numkeyframes=0)`开始,用一个简单的关键帧动作(比如旋转)测试效果,再逐步尝试其他类型和参数调整~ 熟练后,再也不用手动复制关键帧,动画制作效率直接翻倍!

如果有具体的循环场景(比如文字滚动、粒子循环),可以在评论区留言,帮你针对性写表达式~