【AE表达式】loop 循环详解

原文:MDS链接

After Effects中的循环表达式。循环一系列关键帧。步行循环,徽标展示,背景设计等等时,循环可以减少大量工作。

示例

loopOut();
loopIn("pingpong");
loopOut("offset",2);
loopOutDuration("cycle",3);

参数

参数可以分为3个部分:"属性","循环类型"和"修饰符"。

属性:

  • loopIn:在最后一个关键帧的向前循环(常用)
  • loopOut:在第一个关键帧的向后循环
  • loopInDuration:在最后一个关键帧的向后循环,不过是基于时间
  • loopOutDuration:在第一个关键帧的向前循环,不过是基于时间

循环类型:

如果什么都不填的话,默认循环类型为’cycle’。

cycle 循环 【AE表达式】loop 循环详解 重复K1~K3的动画
pingpong 乒乓 【AE表达式】loop 循环详解 K1到K3后,再从K3回到K1,如此往复
offset 偏移 【AE表达式】loop 循环详解 K1到K3后,以K3作为新的“K1”点(起始点),重复这段动画
continue 持续 【AE表达式】loop 循环详解 K1到K3后,根据K3的方向与速度。直接按直线跑了

修饰符:控制循环哪几个关键帧

循环属性 loopIn vs loopOut

【AE表达式】loop 循环详解

loopOut和loopIn。本质完全相同,只是有一个区别:

loopOut(); //在最后一个关键帧的向后循环
loopIn(); //在第一个关键帧的向前循环

循环类型

cycle 循环

无限循环关键帧。到达最后一个关键帧后,会从第一个关键帧开始,重复循环。
【AE表达式】loop 循环详解

示例:

loopOut(); 或者loopOut("cycle");
loopIn(); 或者loopIn("cycle");

pingpong 乒乓

循环“往复”,像乒乓球一样,一去一回。

【AE表达式】loop 循环详解

 

示例:

loopOut("pingpong");
loopIn("pingpong");

offset 偏移

通过在起始值上加或减去结束值,然后将差值应用于最终关键帧或开始关键帧再次循环。这么解释令人困惑,但请看上面的示例。如您所见,offset将继续循环运动,在结尾处叠加之前的效果,而不会恢复为原始起始值。

在我看来,Offset循环类型是功能最强大且潜在有用的循环类型,但它永远也不会得到应有的重视。

【AE表达式】loop 循环详解

例子:

loopOut("offset");
loopIn("offset");

continue 持续

按照最后一个关键帧的速度/值持续下去。直到……永远。

【AE表达式】loop 循环详解

例子:

loopOut("continue");
loopIn("continue");

【AE表达式】loop 循环详解

注意:选择表达式窗口左侧的小图形按钮,在图形编辑器(称为AE表达式图形)中看到循环continue运动的直观表示。

【AE表达式】loop 循环详解

参数修饰符

要循环哪些关键帧。如果有5个关键帧的序列,则可以告诉After Effects仅循环最后2个。这只需添加一个逗号和一个数字即可。

【AE表达式】loop 循环详解

该数字告诉After Effects在修改后的循环中应包含多少个关键帧。例如,修饰符为1的loopOut属性将仅包含2个关键帧:最后一个关键帧和之前的关键帧。以下是一些示例,因此我们位于同一页面上:

loopOut("pingpong",1); // 将在最后两个关键帧之间循环
loopIn("offset",2);  //将在前三个关键帧之间循环。

修饰符只能应用于循环,乒乓和偏移三种类型。

loopInDuration vs loopOutDuration

【AE表达式】loop 循环详解

loopInDuration("pingpong",2);
loopOutDuration("offset", 4);

他俩与loopIn()和loopOut()非常相似。

但有一个主要区别:当将参数修饰符应用于"持续时间循环属性"时,它是基于时间(秒)循环。
基本上,如果在duration循环属性之后添加逗号和数字,则表达式将基于秒而不是关键帧进行循环。我认为这种循环用处不大。

给TA充电
共{{data.count}}人
人已充电
AEAE文章AE表达式

【AE表达式案例】给数组的所有小数取整,不用For

2020-7-26 15:47:57

AE

【设计】[排版#1] 排版知识:视觉动线 -oooooohmygosh

2020-8-12 10:15:43

2 条回复 A文章作者 M管理员
  1. 好好好

  2. 有个地方写错了。
    —————————————————-
    1loopOut(); //循环到最后一个关键帧之前
    2loopIn(); //在第一个关键帧之后循环
    —————————————————-
    写反了

个人中心
今日签到
搜索