Ae:表达式应用举例

通过几个最常用的对象、属性及函数(方法)来了解 After Effects 表达式的使用。

有关表达式语法基础,请参阅:

Ae:表达式语法基础(合集)

有关表达式可引用的对象、属性及函数的说明,请参阅:

Ae 表达式语言引用(合集)

1、时间相关

time

返回合成的当前时间值。以秒为单位,数值(number)类型。

比如,当播放指示器位于 1 秒时,time 返回 1,2 秒时,则返回 2。

利用 time 可做出一些随时间变化的动画效果。比如,为“旋转”属性添加表达式,实现 1 秒钟旋转 360° 的动画。

time*360

sourceRectAtTime(t=time,includeExtents=false)

获取图层在指定时间 t 的矩形边界信息。

参数

t :可选。指定要获取矩形边界的时间点,单位为秒。默认为当前时间 time。

includeExtents :可选。布尔(boolean)类型,默认为 false。如果设置为 true,则包含扩展边界。

返回值

返回具有四个属性的对象:top(上边界)、left(左边界)、width(宽度)以及 height(高度)。

例如,为参数化矩形形状图层的形状路径的“大小”属性添加表达式,使其水平大小等于文本图层“MEDIATEA”的当前时间下的宽度。

x = thisComp.layer("MEDIATEA").sourceRectAtTime().width;[x,value[1]]

当使用文本动画制作工具添加“字符间距”或“缩放”等关键帧动画时,形状始终保持与文字同宽。

2、索引相关

index

获取图层在时间轴面板中的索引号,数值(number)类型。

时间轴面板的 # 列中,最上面的图层的索引号为 1,向下依次增加。

例 1,为 3D 文字图层的“Z 位置”属性添加表达式,然后多次复制图层后,文字有“挤出”的假 3D 效果。

transform.zPosition + (index - 1 )

例 2,为图层的“旋转”属性添加表达式,复制图层后,每个图层依次旋转 30°。

transform.rotation + (index-1)*30

3、属性值相关

value

返回指定属性的当前时间的值。

单独使用 value 时,表示表达式所在属性的值。

例如,为文本图层的“源文本”添加表达式,以显示“小球”图层的“位置”属性的属性名及属性值。

x = thisComp.layer("小球").transform.position; x.name + ':' + [Math.round(x.value[0]),Math.round(x.value[1])].toString()

说明:

“位置”属性的值是一个数组,数组后面可跟下标(索引号)来获得其中第几个元素的值,下标是从 0 开始的。value[0] 代表 X 轴的值,value[1] 代表 Y 轴的值。

valueAtTime(t)

返回属性在指定时间 t 时的值。

参数:

t :要采样的时间,以秒为单位。

返回值

与 value 相同,类型可以是数值(number)、数组(array)或字符串(string),具体取决于属性的类型。

使用 time - x 的形式作为参数,可用于实现延迟错帧动画。

比如,为一根钟摆的形状图层设置“旋转”关键帧动画,并为“旋转”属性添加表达式。

valueAtTime(time - index/10)

复制多次形状图层,即可产生非常有规律的钟摆动画。

linear(t, tMin, tMax, value1, value2)

将输入值 t 从范围 [tMin, tMax] 线性地映射到范围 [value1, value2],从而控制属性值的线性变化。

参数:

t :要映射的输入值。

tMin :输入范围的最小值。

tMax :输入范围的最大值。

value1 :输出的起始值。

value2 :输出的结束值。

返回值

线性映射后的数值或数组。

当 t <= tMin 时,返回 value1。当 t >= tMax 时,返回 value2。当 tMin < t < tMax 时,返回线性插值后的值。

例如,为“不透明度”属性添加表达式,使之在时间 0 到 6 秒,值从 20% 线性变化到 80%。

linear(time, 0, 6, 20, 80)

4、摆动相关

wiggle(freq, amp, octaves=1, amp_mult=0.5, t=time)

让属性值随时间按指定的频率和幅度进行随机变化。

一般来说,使用前两个参数就够用了,即:

wiggle(freq, amp)

参数:

freq:每秒摆动的次数(频率)。

amp:相对于原属性值的正、负摆动的幅度。

返回值:

返回随机摆动(抖动)的属性值(数值或数组)。

比如,“旋转”属性值为 100,当 amp 参数设为 50 时,“旋转”属性值将在 50 ~ 150 范围之内随机摆动。

例 1,仅在水平方向摆动。

//添加“位置”属性表达式wiggled = wiggle(5,50);//仅在水平方向摆动,垂直方向使用原值[wiggled[0],position[1]]

例 2,为形状图层添加以下表达式。之后,复制多个形状图层,以创建随机舞动的星形效果。

//形状图层的“位置”属性表达式wiggle(2,300);
//形状图层的“缩放”属性表达式x = wiggle(2,20)[0];[x,x]
//形状图层的“不透明度”属性表达式wiggle(1,100)

例 3,对文字图层 MEDIATEA 添加“填充”效果,并使“颜色”摆动。

//对“填充”效果中的“颜色”属性添加表达式wiggle(3,30)

然后将下方线条(形状图层)的“描边颜色”链接到“填充”效果的“颜色”属性。

5、循环相关

loop 类循环函数使用的前提条件是必须有关键帧动画,循环相当于将已有的关键帧动画进行重复播放。

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

用于设置关键帧动画的出点循环。即,从最后一个关键帧开始重复播放指定动画段,直到图层出点。

参数:

type :循环类型。

包括:

--cycle :重复运动,类似于 1234 1234 的循环。

--pingpong :往复运动,类似于 4321234 的来回循环。

--continue:持续最后的运动,类似于 1234 (4+4.1)(4+4.2)(4+4.3) ... 的重复。

--offset :阶梯式持续之前的运动,类似于 1234(4+4.1n)(4+4.2n)(4+4.3n)...的递增循环。

numKeyframes :可选。值为 0 时(默认),表示循环全部关键帧。为 n 时,表示循环倒数 n 段关键帧。

如以下动画所示,云朵使用了 continue 类型,太阳使用了 offset 类型,太阳光线使用了 cycle 类型,小树使用了 pingpong 类型。

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

用于设置关键帧动画的入点循环。即,从图层的入点开始重复播放指定的动画段,直到第一个关键帧。

//示例:从图层入点开始,往返播放第1个关键键到第3个关键帧之间动画段落loopIn("pingpong",2);

当第一个关键帧没有在图层入点时,可考虑使用 loopIn。参数使用与 loopOut 近似。

“点赞有美意,赞赏是鼓励”

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值