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

本文详细解析After Effect中的loopOut和loopIn表达式,探讨不同参数设置下,如何控制循环范围,包括numKeyframes为0和1的情况。结合实例,展示循环在关键帧动画中的应用与效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 前言

通过阅读本文,您将收获以下知识点

  • loopIn(type, numKeyframes) 
  • loopOut(type, numKeyframes) 
  • loopInDuration(type, duration) 
  • loopOutDuration(type, duration) 

以及它们各自在不同 typenumKeyframes / duration 下的区别;

本文默认您已经具备了 AE 中关键帧(KeyFrame)的基础概念,并且以下的演示都是基于 4 个关键帧(依次从左到右)小车,如下所示

4 个关键帧,当前小车处在第三个关键帧的 Position 

 我们先从比较简单 loopOut 开始(loopIn 的思维稍稍有点反人类,但是转过弯来就容易理解了)

 一、loopOut

loopOut 的功能:从最后一个关键帧开始循环,直到超过你所设置的时间限制。

 首先,我们来看看 loopOut 表达式的形式,它一共由两个参数构成,

  • 第一个参数表示 循环的类型(默认是 cycle 类型),
  • 第二个参数用于指示 进行循环片段的关键帧帧数(默认是 0,意味着所有关键帧都会被循环)。
loopOut(type="cycle", numKeyframes=0)

1. numKeyframes = 0  

 实际的效果如图所示

loopOut("cycle", 0)

关键帧在 timeline 中的位置

 从 Position 和时间的曲线关系可知,小车从左向右的运动是周期性重复(即循环所有关键帧)的,直到到达 Timeline 的终点。

Position 与时间的曲线图

 2. numKeyframes = 1

 现在我们尝试把 numKeyFrame 设置为 1 ,看看会发生什么

loopOut("cycle", 1)

numKeyframes = 1

 从 Position 和时间的关系图中我们可以看到 loopOut在 最后一帧 和 倒数第二帧 之间的 Position 进行循环的,即 N 和 N - 1 的位置(这里的 N 表示关键帧总数,本例为 4)。

同理,我们可以大胆推论,如果 numKeyframes = 2 的话,则是 NN - 2 之间进行循环

numKeyframes = 2

 上图也印证了我们的推论。

可能有的机智的读者会想:如果 numKeyframes 的值超过范围会发生什么?(即 numKeyframes >= N)

在此我先按下不表,后文稍后会提到。

 二、loopIn

loopInloopOut 虽然函数看起来很类似,但 它是从时间线一开始就会循环,接着某一个时刻到达 第一个关键帧,仍会继续执行(但之后不再循环),直到达到 最后一个关键帧 为止

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

1. numKeyframes = 0 

我们还是以 cycle 类型、numKeyframes = 0 为例,效果如下

loopIn("cycle", 0)

 注意关键帧在时间线上的位置,关键帧前面需要空出一段时间用于 loopIn 循环

关键帧前面空出一段时间

对应的 Position 曲线图如下,显然 在遇到第一个关键帧之前,已经执行了两次循环,直到到达最后一个关键帧的 Position 就停止移动。 

Position 随着时间变化的曲线

但是有一点需要 注意,就是如果从时间线开始到第一个关键帧的时间 ( time0),不是第一个关键帧到最后一个关键帧周期时间 (time1) 的 整数倍 的话(即 time0 无法整除 time1),则可能出现以下 Position 不符合预期的情况(起始位置跑到了最后一帧的 Position

loopIn("cycle", 0)

Position 随着时间变化的曲线

2. numKeyframes = 1

现在我们尝试把 numKeyframes 设置为 1 试试

loopIn("cycle", 1)

从位置曲线上,我们很容易看出来,numKeyframes = 1 使得循环仅在 第一个 Position第二个 Position 之间进行 

Position 随着时间变化的曲线

 感兴趣的同学可以尝试其他的值,我这里就不具体演示了,总结起来 numKeyframes 的作用就是 “指定进行循环的片段范围:循环片段是层中从第一个关键帧到 numKeyframes+1 关键帧的部分”,默认值 0 表示所有关键帧都循环。

LoopIn 和 LoopOut 选择关键帧范围的顺序刚好相反,前者是正序,后者是逆序

理论上可以在大多数属性上使用循环表达式。但是有些 例外的情况 ——

  • 时间轴面板中不能用简单数值表示的属性,例如 源文本属性路径形状属性 和用于 级别效果的直方图属性
  • 太大的关键帧或持续时间值会被裁剪到最大允许值;
  • 值太小会导致一个常量循环。

未完待续

AE表达式,方便AE学习者 在详细讲解表达式之前,我们先总体了下在详细讲解表达式之前,我们先总体了下在详细讲解表达式之前,我们先总体了下在详细讲解表达式之前,我们先总体了下在详细讲解表达式之前,我们先总体了下在详细讲解表达式之前,我们先总体了下在详细讲解表达式之前,我们先总体了下在详细讲解表达式之前,我们先总体了下在详细讲解表达式之前,我们先总体了AE中元素之间的关系,据我所知在中元素之间的关系,据我所知在中元素之间的关系,据我所知在中元素之间的关系,据我所知在中元素之间的关系,据我所知在中元素之间的关系,据我所知在AE中主要有五种方法建立元素之间的关系要有五种方法建立元素之间的关系要有五种方法建立元素之间的关系要有五种方法建立元素之间的关系要有五种方法建立元素之间的关系要有五种方法建立元素之间的关系要有五种方法建立元素之间的关系: 关键帧关键帧:即使元素间没有必然的连接关系,你也可以通过设置键帧来为它们建立联。这即使元素间没有必然的连接关系,你也可以通过设置键帧来为它们建立联。这即使元素间没有必然的连接关系,你也可以通过设置键帧来为它们建立联。这即使元素间没有必然的连接关系,你也可以通过设置键帧来为它们建立联。这即使元素间没有必然的连接关系,你也可以通过设置键帧来为它们建立联。这是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。是最普通的种连接关系,这方法也灵活但很不利于修改和调试。 合并嵌套: 你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作你可以将几个图层起放置于新合成中,这很像其他应用程序的组操作种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。种将多层素材元作为单独处理设置的方法。 父子连接: 不用嵌套为图层建立不用嵌套为图层建立不用嵌套为图层建立不用嵌套为图层建立不用嵌套为图层建立层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变层级关系的方法,在父子连接中任何应用于变化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父化都会立即影响子层级,而针对的设置不到父。 动力学脚本: 像表达式样,动力学脚本是像表达式样,动力学脚本是像表达式样,动力学脚本是像表达式样,动力学脚本是像表达式样,动力学脚本是像表达式样,动力学脚本是像表达式样,动力学脚本是AE中内置的简单功能,动力学脚本可以为当前中内置的简单功能,动力学脚本可以为当前中内置的简单功能,动力学脚本可以为当前中内置的简单功能,动力学脚本可以为当前中内置的简单功能,动力学脚本可以为当前中内置的简单功能,动力学脚本可以为当前中内置的简单功能,动力学脚本可以为当前中内置的简单功能,动力学脚本可以为当前中内置的简单功能,动力学脚本可以为当前图层创建基于另个或属性的关键帧。例如,你可以使用动力学脚本令模拟图层创建基于另个或属性的关键帧。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShaderJoy

您的打赏是我继续写博客的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值