Ae 表达式语言引用:Footage

360影视 2025-01-18 00:07 2

摘要:Footage(素材属性和方法)组提供了一系列用于访问和操作项目面板中素材属性的方法,包括获取宽度、高度、持续时间、像素宽高比等基础属性,以及处理数据驱动动画的高级方法。

Footage(素材属性和方法)组提供了一系列用于访问和操作项目面板中素材属性的方法,包括获取宽度、高度、持续时间、像素宽高比等基础属性,以及处理数据驱动动画的高级方法。

width

获取素材的宽度。

参数:无

返回值:素材的宽度(Number),以像素为单位。

应用:

//示例 1:动态设置图层宽度为素材宽度// 获取素材宽度fw = footage("mediaTEA.jpg").width;// 获取合成宽度cw = thisComp.width;// 计算缩放百分比,使素材宽度适应合成宽度scaleX = (cw / fw) * 100;// 保持Y轴缩放不变[scaleX, value[1]];//示例 2:根据素材宽度调整图层位置(右对齐)// 获取素材宽度fw = footage("mediaTEA.jpg").width;// 设置图层X位置为合成宽度减去素材宽度的一半,实现右对齐xPos = thisComp.width - (fw * (transform.scale[0] / 100)) / 2;// 保持Y位置不变yPos = position[1];// 设置图层位置[xPos, yPos];

height

获取素材的高度。

参数:无

返回值:素材的高度(Number),以像素为单位。

应用:

//示例:根据素材高度调整图层位置(顶部对齐)// 获取素材高度fh = footage("mediaTEA.jpg").height;// 设置图层Y位置为素材高度的一半,实现顶部对齐yPos = (fh * (transform.scale[1] / 100)) / 2;// 保持X位置不变xPos = position[0];// 设置图层位置[xPos, yPos];

duration

获取素材的 持续时间 。

参数:无

返回值:素材的高度(Number),以秒为单位。

应用:

//示例 1:在素材结束时触发动画// 获取素材持续时间fdur = footage("example.mp4").duration;// 判断当前时间是否超过素材持续时间if (time >= fdur) {// 设置不透明度为0%0;} else {// 保持不透明度为100%100;}//示例 2:根据素材持续时间调整动画速度// 获取素材持续时间fdur = footage("mediaTEA.mp4").duration;// 计算动画速度,使其在素材持续时间内完成一圈旋转rotationSpeed = 360 / fdur;// 应用到旋转属性time * rotationSpeed;

frameDuration

获取素材中每帧的持续时间 。

参数:无

返回值:每帧的持续时间(Number),以秒为单位。

应用:

// 示例:创建基于帧数的闪烁效果// 获取每帧的持续时间fd = footage("example.mp4").frameDuration;// 计算当前帧数currentFrame = Math.floor(time / fd);// 每隔10帧闪烁一次if (currentFrame % 20

ntscDropFrame

判断素材的时间码丢帧格式。

参数:无

返回值:Boolean。如果时间码是丢帧格式,则返回 true。否则返回 false。

应用:

//示例 :根据时间码格式调整显示文本// 获取素材ft = footage("example.mov");// 检查素材是否为 Drop-Frame 时间码if (ft.ntscDropFrame) {"Drop-Frame 时间码";} else {"Non-Drop-Frame 时间码";}

pixelAspect

获取素材的像素长宽比。

参数:无

返回值:像素长宽比(Number)。

应用:

示例 :根据像素宽高比调整图层缩放,防止图像变形// 获取素材像素宽高比par = footage("example.jpg").pixelAspect;// 设置图层缩放比例,调整X轴以保持图像比例[100 * par, 100];

name

获取素材的名称。

参数:无

返回值:在项目面板中所显示的素材的名称(String)。

应用:

//根据素材名称调整图层属性(例如颜色)// 获取素材名称ftName = footage("example.png").name;// 根据素材名称设置图层颜色if (ftName === "mediaTEA") {effect("填充")("颜色") = [1, 0, 0, 1]; // 红色} else {effect("填充")("颜色") = [0, 1, 0, 1]; // 绿色}

sourceText

获取 文件的内容作为字符串。

参数:无

返回值: 文件的内容(String)。

应用:

//示例 1:从 JSON 文件获取数据并解析// 获取 JSON 文件内容jsonString = footage("data.json").sourceText;// 解析 JSON 字符串为对象var myData = JSON.parse(jsonString);// 获取特定数据myData.sampleValue;//示例 2:动态显示 JSON 数据(例如在文本层中)// 获取 JSON 文件内容jsonString = footage("data.json").sourceText;// 解析 JSON 字符串为对象var myData = JSON.parse(jsonString);// 显示特定数据在文本层myData.sampleValue.toString;

提示:

eval 方法可用于将字符串转换为一个 sourceData 对象数组。

var myData = eval(footage("sample.json").sourceText);myData.sampleValue;

sourceData

获取 文件的数据作为 sourceData 对象的一个数组。

参数:无

返回值: 文件文件的数据数组(Array),结构取决于 JSON 文件的内容。

应用:

// 示例 1:获取 JSON 数据中的颜色信息// 获取 JSON 数据var myData = footage("data.json").sourceData;// 获取第一个数据对象的颜色myData[0].Color;// 示例 2:根据 JSON 数据调整图层位置// 获取 JSON 数据var myData = footage("data.json").sourceData;// 获取第一个数据对象的位置信息posX = myData[0].PositionX;posY = myData[0].PositionY;// 设置图层位置[position[0] + posX, position[1] + posY];// 示例 3:对于名为 Color 的数据流,以下属性将从第一个数据对象返回 Color 的值。footage("sample.json").sourceData[0].Color

dataValue(dataPath)

获取 文件中特定静态或动态数据流的值。

参数:

dataPath :定义层级路径到目标数据流的路径(Array)。

返回值:指定数据流的值。

应用:

// 示例 1:获取第一个子节点的数据。// 获取第一个子节点的数据value1 = footage("data.mgjson").dataValue([0]);// 示例 2:获取第二个组中第一个子节点的数据。value2 = footage("sample.mgjson").dataValue([1][0])

dataKeyCount(dataPath)

获取 文件中特定动态数据流的样本数量。

参数:

dataPath :定义层级路径到目标动态数据流的路径(Array)。

返回值:指定动态数据流的样本数量(Number)。

应用:

// 示例 1:返回第一个子节点的样本计数count1 = footage("sample.mgjson").dataKeyCount([0]) // 示例 2:返回第二个组中第一个子节点的样本计数count2 = footage("sample.mgjson").dataKeyCount([1][0])

dataKeyTimes(dataPath,t0=startTime,t1=endTime)

获取 文件中特定动态数据流的样本时间。

参数:

dataPath :定义层级路径到目标动态数据流的路径(Array)。

t0 :可选。样本的时间跨度的开始时间(Number) ,以秒为单位。默认为 startTime。

t1 :可选。样本的时间跨度的结束时间 (以秒为单位)。默认为 endTime。

返回值:指定动态数据流的样本时间数组。

应用:

// 示例 1:获取第一个子节点在1秒到3秒之间的样本时间times = footage("sample.mgjson").dataKeyTimes([0], 1, 3)//示例 2:获取第二组中第一个子节点的所有样本时间times = footage("data.mgjson").dataKeyTimes([1, 0])

dataKeyValues(dataPath,t0=startTime,t1=endTime)

获取 文件中特定动态数据流的样本值。

参数:

dataPath :定义层级路径到目标动态数据流的路径(Array)。

t0 :可选。样本的时间跨度的开始时间(Number) ,以秒为单位。默认为 startTime。

t1 :可选。样本的时间跨度的结束时间 (以秒为单位)。默认为 endTime。

返回值:指定动态数据流的样本值数组。

应用:

// 示例 1:获取第一个子节点在1秒到3秒之间的样本值values = footage("data.mgjson").dataKeyValues([0], 1, 3)// 示例 2:获取第二组中第一个子节点的所有样本值values = footage("data.mgjson").dataKeyValues([1, 0])

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

来源:鸿祺教育

相关推荐