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 < fadeStart) {
0;
} else if (time < fadeEnd) {
linear(time, fadeStart, fadeEnd, 0, 100);
} else if (time > fadeOutStart && time < fadeOutEnd) {
linear(time, fadeOutStart, fadeOutEnd, 100, 0);
} else {
100;
}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 < pauseStart) {
time;
} else if (time < pauseEnd) {
pauseStart;
} else {
time - 1; // 调整后续时间
}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 < animStart) { value;}
else {
linear(time, animStart, animStart + animDuration, value, [400, 400]);}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 <= totalMarkers; i++) {
markerTime = thisLayer.marker.key(i).time;
// 执行操作,例如设置关键帧或调整属性
}name
获取图层的名称。
返回值 :返回图层的名称(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]; // 白色
}“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.