【AE表达式】必看系列!原来AE表达式有这么多

UP主笔记
记笔记
lr恋雨偏打伞
2023-02-11 00:20126粉丝
关注
---- Global ----
thisLayer 引用当前所在的图层。
thisProperty 引用当前表达式所在的属性。
comp(name) 引用一个指定名字的合成,name是合成的名称。
footage(name) 引用一个指定名字的素材,name是素材的名称。
thisComp.time 当前合成的持续时间,以秒为单位。
thisProperty.value 当前属性的值,在表达式计算以前。
colorDepth 当前项目颜色深度值,例如每通道为16位时,返回16。
posterizeTime(framesPerSecond) 设置当前属性的表达式运行的帧速率。
framesPerSecond 是一个整数,表示每秒的帧,不会影响其他属性,例如在旋转属性上使用,并不会影响位置的帧速率。
假设当前合成每秒30帧,则表达式的值每秒需要计算30次,如果使用的是随机数,
每秒将生成30个不同的值,我们想限制它的生成速度,就必须使用这个表达式,
例如 posterizeTime(10) ; random() 限制每秒仅生成10个值。
将默认为当前合成时间的 t 的值转换为整数数目的帧。
每秒的帧数在 fps 参数中指定,
该参数默认为当前合成的帧速率 (1.0/thisComp.frameDuration)。
isDuration 参数默认为 false,
如果 t 值表示两个时间的差值而非绝对时间则为 true。
绝对时间向下舍入到负无穷;持续时间向远离零的方向舍入(向上舍入为正值)。
framesToTime(frames, fps = 1.0 / thisComp.frameDuration)
timeToFrames 的反向。返回与必需的 frames 参数对应的时间。
timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 30, isDuration = false)
将 t 的值转换为表示时间码的字符串。
例如:timeToTimecode(20) 输出 00:00:20:00
参数 t 和 isDuration 同 timeToFrames。
timecodeBase 值默认为 30,用于指定一秒内的帧数。
timeToNTSCTimecode(t = time + thisComp.displayStartTime, ntscDropFrame = false, isDuration = false)
将 t 转换为表示 NTSC 时间码的字符串。
参数 t 和 isDuration 同 timeToFrames。
如果 ntscDropFrame 为 false(默认值),
则结果字符串为 NTSC 未丢帧时间码。
如果 ntscDropFrame 为 true,则结果字符串为 NTSC 丢帧时间码。
timeToFeetAndFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, framesPerFoot = 16, isDuration = false)
将 t 的值转换为表示胶片和帧的英尺的字符串。
例如:timeToFeetAndFrames(32.3) 输出 0060+09
参数 t、fps 和 isDuration 同 timeToFrames。
framesPerFoot 参数指定一英尺胶片中的帧数。
它默认为 16,是 35 毫米素材的最常见速率。
timeToCurrentFormat(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)
将 t 的值转换为表示采用当前项目设置显示格式的时间的字符串。
所有参数同 timeToFrames。
---- Vector Math ----
sub(vec1, vec2) 相减两个数组。
mul(vec, amount) 将数组 vec 的每个元素与 amount 相乘。
div(vec, amount) 将数组 vec 的每个元素与 amount 相除。
clamp(value, limit1, limit2) 将 value 限制在 limit1 和 limit2 之间。
dot(vec1, vec2) 返回 vec1 和 vec2 两个数组的点(内)积。
cross(vec1, vec2) 返回 vec1 和 vec2 两个数组的矢量叉积。
normalize(vec) 同 div(vec, length(vec))。
length(vec) 返回数组 vec 的元素个数,返回一个整数。
length(point1, point2) 返回两个点的距离,point 是一个数组。
lookAt(fromPoint, atPoint)
参数 fromPoint 是您要定向的图层的世界空间中的位置。
参数 atPoint 是您要将图层指向的世界空间中的点。
所有参数和返回值都是一个拥有三个元素的数组 Array[3]。
返回值可用作“方向”属性的表达式,使图层点的 Z 轴指向 atPoint。
此方法对摄像机和光照特别有用。
如果您对摄像机使用此表达式,请关闭自动方向。
例如,聚光灯的方向属性的以下表达式会将光点指向同一合成中的 1 号图层的锚点:
lookAt(position, thisComp.layer(1).position)
---- Random Number ----
设置 random() 等表达式的随机数种子,常用于当生成的随机数列不满意时。
offset 可以输入任意一个数,生成新的随机数列。
timeless 如果为 true 则不使用当前计算时间作为随机种子的输入,如果为 false 则值会随着计算时间而更改。
random() 返回一个 0-1 的随机数。
random(maxValOrArray) 返回一个 0 到 maxValOrArray 的值或数组。
random(minValOrArray, maxValOrArray) 返回minValOrArray到maxValOrArray的随机值或数组。
gaussRandom() 返回一个高斯(钟型)分布的 0-1 随机数。
gaussRandom(maxValOrArray) 返回一个 0 到 maxValOrArray 高斯(钟型)分布的随机值或数组。
gaussRandom(minValOrArray, maxValOrArray) 返回minValOrArray到maxValOrArray高斯(钟型)分布的随机值或数组。
noise(valOrArray) 返回范围 -1 到 1 中的数值。噪声实际上不是随机的;它基于柏林噪声,这意味着相邻的两个输入值的返回值往往也是相邻的。此类噪声在您需要看似随机且相差不会很大的数值序列时(在对任何明显随机的自然运动进行动画制作时通常就如此)非常有用。示例:rotation + 360 * noise(time)
高斯(钟型)分布的随机数 90% 在指定的范围内,10% 在指定的范围外。
---- Interpolation ----
当 t <= tMin 时返回 value1。当 t >= tMax 时返回 value2。
当 tMin < t < tMax 时,返回 value1 和 value2 之间的线性插值。
例如,不透明度属性的以下表达式可导致不透明度值在 0 秒到 6 秒的时间内从 20% 线性渐变为 80%:linear(time, 0, 6, 20, 80)
linear(t, value1, value2)
当 t 介于 0 到 1 时返回从 value1 到 value2 进行线性插值的值。
当 t <= 0 时返回 value1。当 t >= 1 时返回 value2。
t、tMin 和 tMax 是数值,value1 和 value2 是数值或数组。
返回数值或数组。
ease(t, tMin, tMax, value1, value2)
ease(t, value1, value2)
与具有相同参数的 linear 类似,
只不过插值渐进和渐出以使开始点和结束点的速度为 0。
此方法会产生一个非常流畅的动画。
t、tMin 和 tMax 是数值,value1 和 value2 是数值或数组。
返回数值或数组。
easeIn(t, tMin, tMax, value1, value2)
类似于 ease,只不过切线仅在 tMin 一侧为 0 且插值在 tMax 一侧是线性的。
easeIn(t, value1, value2)
类似于 ease,只不过切线仅在 value1 一侧为 0 且插值在 value2 一侧是线性的。
easeOut(t, tMin, tMax, value1, value2)
类似于 ease,只不过切线仅在 tMax 一侧为 0 且插值在 tMin 一侧是线性的。
easeOut(t, value1, value2)
类似于 ease,只不过切线仅在 value2 一侧为 0 且插值在 value1 一侧是线性的。
---- Color Conversion ----
rgbToHsl(rgbaArray) 将 RGBA 转换为 HSLA。
hslToRgb(hslaArray) 将 HSLA 转换为 RGBA。
hexToRgb(hexString) 将八位十六进制表示的字符串转换为 RGBA。
所有返回值和参数 rgbaArray、hslaArray 都是一个包含四个元素的数组,
数组中的所有元素全部介于 0.0 到 1.0 范围内。
RGBA 分别表示 红色、绿色、蓝色和 Alpha 通道;
HSLA 分别表示 色相、饱和度、亮以及 Alpha 通道;
hexToRgb("00FF00FF") 将输出 [0, 1, 0, 1]。
---- Other Math ----
degreesToRadians(degrees) 将度转换为弧度,返回结果数值。
radiansToDegrees(radians) 将弧度转换为度,返回结果数值。
degrees 一个数值,需要转换的度的值;
radians 一个数值,需要转换的弧度的值。
---- JavaScript Math ----
Math.cos(value) 求一个数的余弦值。
Math.acos(value) 求一个数的反余弦值。
Math.tan(value) 求一个数的正切值。
Math.atan(value) 求一个数的反正切值。
Math.atan2(y, x) 求 y/x 的反正切值。
Math.sin(value) 求一个数的正弦值。
Math.sqrt(value) 求一个数的正平方根。
Math.exp(value) 求 e 的 value 次方,e 是自然对数的底。
Math.pow(value, exponent) 求 value 的 exponent 次方。
Math.log(value) 求对数。
Math.abs(value) 求一个数的绝对值。
Math.round(value) 将一个浮点数四舍五入。
Math.ceil(value) 将一个浮点数向上取整。
Math.floor(value) 将一个浮点数向下取整。
Math.min(value1, value2) 返回两个值的最小值。
Math.max(value1, value2) 返回两个值的最大值。
Math.PI 返回一个数值 3.141592653589793
Math.E 返回一个数值 2.718281828459045
Math.LOG2E 返回一个数值 1.4426950408889634
Math.LOG10E 返回一个数值 0.4342944819032518
Math.LN2 返回一个数值 0.6931471805599453
Math.LN10 返回一个数值 2.302585092994046
Math.SQRT2 返回一个数值 1.4142135623730951
Math.SORT1_2 返回一个数值 0.7071067811865476
---- Comp ----
thisComp.layer(index) 引用一个在当前合成的指定索引的图层。
thisComp.layer(name) 引用一个在当前合成的指定名称的图层。
thisComp.layer(otherLayer, ralIndex) 检索属于 otherLayer 上面或下面的 relIndex 图层的图层。otherLayer 是图层对象,relIndex 是数值。
thisComp 是引用当前所在的合成,引用在其他合成中的图层请使用 comp
例如:comp(”First”).layer(1).name
返回在一个名称为 First 的合成中第一个图层的图层名称。
thisComp.marker.key(index) 引用一个当前合成中指定索引的 MarkerKey。
thisComp.marker.key(name) 引用一个当前合成中指定名称的 MarkerKey。
thisComp.marker.nearestKey(t) 时间最接近 t 的 MarkerKey。
thisComp.marker.numKeys 返回当前合成中 MarkerKey 总数量。
MarkerKey 是一个在合成中的时间标记,在时间轴最右侧有两个按钮,按下第一个会
在当前合成的时间轴上打上一个时间标记,默认名称为数字 1。
需要注意的是,如果引用的 MarkerKey 不存在,表达式会直接报错,
包括引用合成或图层等对象,如果不存在,表达式都将报错。
thisComp.numLayers 返回当前合成中的图层数量。
thisComp.activeCamera 返回当前帧渲染合成的摄像机。
thisComp.width 返回当前合成宽度。
thisComp.height 返回当前合成高度。
thisComp.duration 返回当前合成的持续时间。
thisComp.ntscDropFrame 如果时间码是丢帧格式则返回 true。
thisComp.displayStartTime 返回当前合成的开始时间。
thisComp.frameDuration 返回当前合成的一帧的持续时间。
thisComp.shutterAngle 返回当前合成的快门角度值。
thisComp.shutterPhase 返回当前合成的快门相位(单位:度)。
thisComp.bgColor 返回有四个元素的数组表示当前合成背景颜色。
thisComp.pixelAspect 返回当前合成的像素长宽比。
thisComp.name 返回当前合成的名称。
---- Footage ----
footage(string) 引用一个指定名称的素材文件。例如:footage(”image”).width 获取一个名为 image 的素材的宽度。
footage(string).width 返回素材的宽度。
footage(string).height 返回素材的高度。
footage(string).duration 返回素材的持续时间。
footage(string).frameDuration 返回素材的一帧的持续时间。
footage(string).ntscDropFrame 如果素材丢帧则返回 true。
footage(string).pixelAspect 返回素材的像素长宽比。
footage(string).name 返回素材在项目面板中的名称。
---- Camera ----
thisComp.thisLayer.pointOfInterest 返回摄像机在世界空间中的目标点值。
thisComp.thisLayer.zoom 返回摄像机的缩放值。
thisComp.thisLayer.depthOfField 如果景深开启,返回 1,否则返回 0。
thisComp.thisLayer.focusDistance 返回摄像机的焦距值。
thisComp.thisLayer.aperture 返回摄像机的光圈值。
thisComp.thisLayer.blurLevel 返回百分比的摄像机模糊层次值。
thisComp.thisLayer.active 如果是当前合成的活动摄像机返回true
以上所有属性仅在 thisLayer 引用的是摄像机图层时生效。
可以更改其他方法引用其他图层,但必须是一个摄像机图层。
---- Light ----
thisComp.thisLayer.pointOfInterest 返回光照在世界空间中的目标点值。
thisComp.thisLayer.intensity 返回百分比的光照强度值。
thisComp.thisLayer.color 返回光照颜色,Array[4]。
thisComp.thisLayer.coneAngle 返回光照的锥形角度(单位:度)。
thisComp.thisLayer.coneFeather 返回百分比光照锥形羽化值。
thisComp.thisLayer.shadowDarkness 返回百分比光照阴影深度值。
thisComp.thisLayer.shadowDiffusion 返回光照阴影扩散值。
同样的,thisLayer 必须引用的是一个光照图层。
---- Effect ----
effect(string) 引用一个效果,string 是效果名称。
effect(index) 引用一个效果,index 是效果索引。
例如:effect(”三色调”) 引用了一个名称为“三色调”的效果。
effect(string).active 如果效果(fx)打开,返回 true。
effect(string).param(name) 返回效果中的属性,name 是效果名称。
effect(string).param(index) 返回效果中的属性,index 是效果索引。
effect(string).name 返回效果的名称。
例如:effect(”三色调”).param(”高光”) 将返回当前图层中的“三色调”中的
“高光”属性中的值,该表达式默认引用当前图层,完整的应该是以下写法:
thisComp.thisLayer.effect(string)
引用其他图层应该更改 thisLayer 的引用。
---- Property ----
value 返回属性在当前时间的值。
valueAtTime(t) 返回属性在指定时间(以秒为单位)的值。
velocity 返回当前时间的临时速度值。
velocityAtTime(t) 返回指定时间的临时速度值。
speed 返回默认时间的空间速度值。
speedAtTime(t) 返回指定时间的空间速度值。
name 返回属性或属性组的名称。
numKeys 返回属性的关键帧数目。
propertyIndex 返回与其属性组中的其他属性相关的属性的索引。
propertyGroup(countUp = 1) 返回与对其编写表达式的属性相关的属性组。
wiggle(freq, amp, octaves = 1, amp_mult = .5, t = time) 随机摇动(摆动)属性值。
freq 值是每秒摆动的频率。
amp 值是向其应用了此值的属性单位中的振幅。
octaves 是要加在一起的噪声的八度数。此值控制摆动的详细程度。
使此值高于默认值 1 可在摆动中包括更高的频率,
使此值低于默认值 1 可在摆动中包括振幅谐波。
amp_mult 是 amp 乘以每个八度的值。此值控制谐波减弱的速度。
默认为 0.5;使其更接近 1 可以与基本频率相同的振幅添加谐波,
使其更接近 0 可以添加更少的细节。
t 是基础启动时间。此值默认为当前时间。
如果您希望输出成为在不同时间采样的属性值的摆动,请使用此参数。
对于二维属性(例如缩放),
以下示例按相同值摆动两个维度:v = wiggle(5, 10); [v[0], v[0]];
以下示例仅摆动 Y 轴:v = wiggle(5, 10); [value[0], v[1]];
temporalWiggle(freq, amp, octaves = 1, amp_mult = .5, t = time)
在摆动的时间对属性进行采样。参数同 wiggle。
为使此函数有意义,必须对其采样的属性制作动画,
因为此函数只更改采样时间而不是值。
smooth(width = .2, samples = 5, t = time)
随着时间的推移平滑属性值,将值的大而短的偏差转换为更小、分布更均匀的偏差。
此平滑通过在指定时间向属性值应用框滤镜来完成。
width 值是平均滤镜的时间(以秒为单位)范围。
samples 值是随着时间均匀分布的分离样本的数目;
为更大的平滑度使用更大的值(但性能下降)。
通常,您会希望 samples 是奇数,以便当前时间的值包括在平均数中。
loopIn(type = “cycle”, numKeyframes = 0)
循环从向图层的出点前进的图层的第一个关键帧中计算的时间段。该循环从图层的入点播放。
numKeyframes 值确定循环的段:
循环的段是图层从第一个关键帧到 numKeyframes+1 个关键帧的部分。
例如,loopIn("cycle", 3) 循环以第一个和第四个关键帧为界的段。
默认值为 0 意味着所有关键帧都会循环。
type 可以是以下值:
“cycle” 重复指定段。
“pingpong” 重复指定段,向前和向后交替。
“offset” 重复指定段,但会按段开始和结束时属性值的差异乘以段已循环的次数偏移每个周期。
“continue” 不重复指定段,但继续基于第一个或最后一个关键帧的速度对属性进行动画制作。
例如,如果图层的缩放属性的最后一个关键帧是 100%,
则图层将继续从 100% 缩放到出点,而不是直接循环回出点。
此类型不接受 keyframes 或 duration 参数。
loopOut(type = “cycle”, numKeyframes = 0)
循环从向图层的入点后退的图层的最后一个关键帧中计算的时间段。循环一直播放到图层的出点。
要循环的片段由指定数量的关键帧决定。
numKeyframes 值设置要循环的关键帧段的数量;指定范围从最后一个关键帧向后进行计算。
例如,loopOut("cycle", 1) 循环以最后一个关键帧和倒数第二个关键帧为界的段。
默认值为 0 意味着所有关键帧都会循环。
您可以使用关键帧循环方法来重复一系列关键帧。
您可以对多数属性使用这些方法。
例外包括无法用“时间轴”面板中的简单数值表示的属性,
例如源文本属性、路径形状属性以及色阶效果的直方图属性。
过大的关键帧或持续时间值修剪为最大允许值。过小的值会导致不变的循环。
type 值同 loopIn。
loopInDuration(type = “cycle”, duration = 0)
循环从向图层的出点前进的图层的第一个关键帧中计算的时间段。
该循环从图层的入点播放。要循环的片段由指定的持续时间决定。
duration 值设置要循环的段中的合成秒数;
指定的范围从第一个关键帧进行计算。
例如,loopInDuration("cycle", 1) 循环整个动画的第一秒。
默认的 0 意味着要循环的段开始于图层出点。
type 值同 loopIn。
loopOutDuration(type = “cycle”, duration = 0)
循环从向图层的入点后退的图层的最后一个关键帧中计算的时间段。
循环一直播放到图层的出点。要循环的片段由指定的持续时间决定。
duration 值设置要循环的段中的合成秒数;
指定的范围从最后一个关键帧进行计算。
例如,loopOutDuration("cycle", 1) 循环整个动画的最后一秒。
默认的 0 意味着要循环的段开始于图层入点。
type 值同 loopIn。
---- Key ----
key(number).value 返回关键帧的值。
key(number).time 返回关键帧所在的时间。
key(number).index 返回关键帧的索引。
number 是当前帧的编号,
例如:key(5).time 是获取当前第五帧所在的时间。
---- Marker Key ----
marker.key(index).duration 返回合成标记的持续时间。
marker.key(index).comment 返回合成标记中的注释内容的字符串。
marker.key(index).chapter 返回标记对话框中的章节内容的字符串。
marker.key(index).url 返回标记对话框中的URL内容的字符串。
marker.key(index).frameTarget 返回标记对话框中的帧目标内容的字符串。
marker.key(index).eventCuePoint 如果标记对话框中的提示点内容类型是事件。
marker.key(index).cuePointName 返回标记对话框中的提示点名称字符串。
marker.key(index).parameters 返回标记对话框中的参数名称和参数值内容。
marker.key(index).protectedRegion 合成标记可看作受保护区域时返回true。
完整的写法应该是 thisComp.marker.key(index) 引用一个当前合成中的合成标记。
index 是合成标记的索引,另外,还有以下方法可以引用一个合成标记:
thisComp.marker.nearestKey(time) 引用一个最接近 time 时间的合成标记。
---- Project ----
thisProject.fullPath 这个项目保存的绝对路径,未保存则返回空。
thisProject.bitsPerChannel 这个项目的颜色深度,返回 8、16 或 32。
thisProject.linearBlending 这个项目使用 1.0 灰度系数混合颜色返回 true。
- 2
- 18
- 10