Ae 表达式语言引用:Layer - Properties

360影视 2025-01-19 09:11 2

摘要:Layer - Properties (图层属性和方法)组允许访问和控制图层的基本变换属性、音频电平、时间重映射、标记以及图层名称等。通过这些属性和方法,可以实现动态动画、效果控制、时间管理和图层互动,极大地提升 After Effects 项目的灵活性和创作

Layer - Properties (图层属性和方法)组允许访问和控制图层的基本变换属性、音频电平、时间重映射、标记以及图层名称等。通过这些属性和方法,可以实现动态动画、效果控制、时间管理和图层互动,极大地提升 After Effects 项目的灵活性和创作效率。

anchorPoint

获取图层的锚点属性值。

锚点是图层变换(如旋转、缩放)的中心点。

返回值 :返回锚点在图层坐标系中的坐标值(Array) [x, y] 或 [x, y, z],各分量的单位为像素。

应用:

//示例 :将锚点设置为图层中心并同步位置// 获取图层宽度和高度var w = width;var h = height;// 设置锚点为图层中心anchorPoint = [w / 2, h / 2];// 保持位置不变value;

position

获取图层的位置属性值。

返回值 :返回位置的坐标值(Array) [x, y] 或 [x, y, z],各分量的单位为像素。

若图层无父级,位置为世界空间坐标;若有父级,位置为父级坐标系中的位置。

应用:

//示例:使图层沿 X 轴缓慢移动。// 定义移动速度var speed = 50; // 像素/秒// 计算新的 X 位置var newX = position[0] + speed * time;// 保持 Y 位置不变[newX, value[1]];

scale

获取图层的缩放属性值。

返回值 :表示为百分比的缩放值(Array) [x%, y%] 或 [x%, y%, z%]。

应用:

//示例:使图层随时间放大和缩小,形成呼吸效果// 定义缩放幅度和速度var amplitude = 20; // 百分比var frequency = 2; // Hz// 计算缩放变化var scaleChange = Math.sin(time * frequency * 2 * Math.PI) * amplitude;// 应用到 Scale 属性[100 + scaleChange, 100 + scaleChange];

rotation

获取图层的旋转属性值。

返回值 :返回图层的旋转度数(Number)。对于 3D 图层,它返回 Z 轴的旋转值。

应用:

//示例:使图层持续以固定速度旋转。// 定义旋转速度var rotationSpeed = 30; // 度/秒// 计算旋转角度rotationSpeed * time;

opacity

返回图层的不透明度属性值。

返回值 :返回图层的不透明度的百分比(Number)。

应用:

//示例:使图层在特定时间段内逐渐显现和消失// 定义淡入淡出时间var fadeStart = inPoint;var fadeEnd = inPoint + 2; // 前2秒淡入var fadeOutStart = outPoint - 2; // 后2秒淡出var fadeOutEnd = outPoint;// 计算不透明度if (time fadeOutStart && time

audioLevels

获取图层的音频电平属性值。

返回值 :返回一个二维数组(Array)[left, right],分别表示左声道和右声道的音量值(dB),以分贝为单位。

此值不是源材料的音频轨道的振幅,而是音频电平属性的值,可能会受关键帧影响。

应用:

//示例:使图层的不透明度随音频音量变化// 获取音频级别(右声道)var amp = audioLevels[1];// 将分贝值映射到不透明度范围linear(amp, -48, 0, 0, 100);

timeRemap

获取图层的时间重映射属性值。

时间重映射允许图层的播放速度和顺序发生变化。

返回值 :当前的时间重映射值(Number),单位为秒。

应用:

在图层上右击,选择“时间/启用时间重映射”,快捷键 Ctrl + Alt + T。图层上将多出一个“时间重映射”属性。

//示例 1:为“时间重映射”属性添加表达式,使图层的播放时间倒转。// 获取图层的总持续时间var totalDuration = outPoint - inPoint;// 计算倒放的时间totalDuration - (time - inPoint);//示例 2:为“时间重映射”属性添加表达式,使图层在特定时间段内暂停播放。// 定义暂停时间点var pauseStart = inPoint + 2; // 开始暂停var pauseEnd = pauseStart + 1; // 暂停1秒if (time

marker

获取图层中的所有标记属性。

返回值 :图层中的标记属性集合(Object)。

应用:

当无法通过标记编号直接访问图层标记,可使用 marker.key(name) 方法。

marker.key(index)

获取指定索引的图层标记 。

参数 :

index :标记的索引号(Number)。

返回值 :指定索引的标记对象(Object)。

应用:

索引基于时间顺序,1 为第一个标记。

// 示例:使图层在标记 1 和 2 之间执行不透明度变化动画//获取索引为 1 和 2 的标记时间var m1 = marker.key(1).time;var m2 = marker.key(2).time// 线性映射不透明度linear(time, m1, m2, 0, 100);

marker.key(name)

获取指定名称的图层标记 。

参数 :

name :标记的名称(String)。指的是在标记对话框的注释字段中键入的标记名称。

返回值 :指定名称的标记对象(Object)。

应用:

通过标记的名称获取对应的标记对象。如果存在多个同名标记,返回时间上最早的一个。

//示例:在标记 "Start" 时启动位置动画。// 获取标记 "Start" 的时间var animStart = marker.key("Start").time;// 定义动画持续时间var animDuration = 3; // 秒// 线性映射位置if (time

marker.nearestKey(t)

获取最接近指定时间 t 的图层标记。

参数 :

t :以秒为单位的数值(Number)。

返回值 :最接近时间 t 的标记对象(Object)。

应用:

//示例 1:返回图层上最接近 1 秒时间的标记的时间marker.nearestKey(1).time//示例 2:使图层在最近标记时间触发颜色变化。// 获取当前时间附近的最近标记var nearestMarker = marker.nearestKey(time);// 定义颜色变化if (time == nearestMarker.time) {[1, 0, 0, 1]; // 红色} else {[0, 0, 0, 1]; // 黑色}

marker.numKeys

获取图层中标记的总数。

返回值 :图层中标记的总数量(Number)。

应用:

//示例 :循环访问图层中所有标记并打印其时间// 获取标记总数totalMarkers = thisLayer.marker.numKeys;// 循环遍历每个标记for (i = 1; i

获取图层的名称。

返回值 :返回图层的名称(String)。

应用:

//示例:根据图层名称动态调整颜色。// 获取图层名称var layerName = thisLayer.name;// 根据名称设置颜色switch(layerName){case "Red Layer": [1, 0, 0, 1]; break; // 红色case "Green Layer": [0, 1, 0, 1]; break; // 蓝色case "Blue Layer": [0, 0, 1, 1]; break; // 蓝色default: [1, 1, 1, 1]; // 白色}

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

来源:人尔个个

相关推荐