Ae:表达式应用举例
更新时间:2025-03-22 10:51 浏览量:5
通过几个最常用的属性及函数(方法)来了解 After Effects 表达式的使用。
有关表达式语法基础,请参阅:
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(高度)。
//示例:为参数化矩形形状图层的形状路径的“大小”属性添加表达式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)//复制多次形状图层,即可产生非常有规律的钟摆动画请参阅:
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)
用于设置关键帧动画的入点循环。即,从图层的入点开始重复播放指定的动画段,直到第一个关键帧。
当第一个关键帧没有在图层入点时,可考虑使用 loopIn。参数使用与 loopOut 近似。
请参阅:
“点赞有美意,赞赏是鼓励”