Ae 表达式语言引用:Layer - Sub-Objects

B站影视 2025-01-18 13:56 3

摘要:源合成(Comp)是指图层引用的另一个合成,而源素材(Footage)则是指直接导入的媒体文件(如图像、视频、音频等)。

Layer - Sub-Objects(图层子对象属性和方法)组提供了用于访问和操作图层相关的源合成、源素材以及图层内部的效果和蒙版的方法。

source

获取图层的源合成对象或源素材对象。

参数 :无

返回值 : 返回图层的源合成或源素材对象(Object)。

源合成(Comp)是指图层引用的另一个合成,而源素材(Footage)则是指直接导入的媒体文件(如图像、视频、音频等)。

应用:

//示例 1:获取源图层的位置属性// 获取源合成或源素材的第一个子图层的位置sourceLayerPosition = thisComp.layer(5).source.layer(1).transform.position;// 应用到当前图层的位置sourceLayerPosition;//示例 2:获取源素材的宽度并应用到当前图层的缩放// 获取源素材的宽度sourceWidth = source.width;// 设置当前图层的X轴缩放为源宽度的百分比,保持Y轴缩放不变[ (sourceWidth / thisLayer.width) * 100, value[1] ];

sourceTime(t=time)

获取图层源在指定时间 t 对应的时间值。

参数 :

t :可选。指定要获取源时间的时间点(Number),单位为秒。默认为 time。

返回值 :指定时间点对应的源时间(Number),单位为秒。

应用:

此方法允许你在表达式中同步或偏移源图层的时间。

//示例 1:同步源合成中图层的位置到当前图层// 获取源合成对象sourceComp = source;// 获取源时间对应的时间值srcTime = sourceTime(time);// 获取源合成中的 "Moving Layer" 图层movingLayer = sourceComp.layer("mediaTEA");// 获取源图层在源时间点的位置movingPosition = movingLayer.transform.position.valueAtTime(srcTime);// 应用到当前图层的位置movingPosition;//示例 2:创建时间偏移效果// 定义时间偏移量(例如,延迟1秒)timeOffset = 1;// 获取源时间对应的时间值srcTime = sourceTime(time - timeOffset);// 获取源合成中的图层(假设为第一个图层)sourceLayer = source.layer(1);// 获取源图层在偏移时间点的位置sourcePosition = sourceLayer.position.valueAtTime(srcTime);// 应用到当前图层的位置sourcePosition;

sourceRectAtTime(t=time,includeExtents=false)

获取图层在指定时间 t 的矩形边界信息,包括顶部、左侧、宽度和高度。

参数 :

t :可选。指定要获取矩形边界的时间点(Number),单位为秒。默认为 time。

includeExtents :Boolean,可选。默认为 false。如果设置为 true,则包含扩展边界。

返回值 :返回具有四个属性的 JavaScript 对象:[上边界 top、左边界 left、宽度 width、高度 height]。

应用:

此方法特别适用于形状图层和文本图层。

//动态调整图层的 Scale 属性以匹配源文本的宽度// 获取源文本图层sourceText = thisComp.layer("m");// 获取源文本的边界框textBounds = sourceText.sourceRectAtTime(time, false);textWidth = textBounds.width;textHeight = textBounds.height;// 获取当前图层的边界框originalBounds = thisLayer.sourceRectAtTime(time, false);originalWidth = originalBounds.width;originalHeight = originalBounds.height;// 计算新的 X/ Y轴缩放比例scaleX = (textWidth / originalWidth) * 100;scaleY = (textHeight / originalHeight) * 100;// 设置 Scale 属性[scaleX, scaleY];

effect(name)

通过效果名称检索图层中某个特定效果。效果控制点始终位于图层空间中。

参数 :

name :要检索的效果名称(String),可以是默认名称或用户自定义名称。

返回值 : 指定名称的效果对象(Object)。如果多个效果具有相同名称,将返回“效果控件”面板中最上面的那个效果。

应用:

//示例 1:返回“高斯模糊”的“模糊度”属性值effect("高斯模糊")("模糊度")//示例 2:根据“色调”效果的颜色属性动态改变别的效果颜色属性// 获取“色调”效果的“将黑色映射到”颜色属性tintColor = effect("色调")("将黑色映射到");// 动态改变颜色,例如根据时间循环颜色值newColor = [Math.abs(Math.sin(time)),Math.abs(Math.cos(time)),0.5,1];newColor;

effect(index)

通过效果的序号检索图层中某个特定效果。 效果控制点始终位于图层空间中 。

参数 :

index :要检索的效果序号(Number),从 1 开始, 按照“效果控件”面板中效果的排列顺序计算。

返回值 : 指定序号的效果对象(Object)。

应用:

// 示例:根据第一个效果的“模糊度”属性调整图层的不透明度opacityEffect = effect(1)("模糊度");// 根据时间调整不透明度opacityEffect + Math.sin(time) * 20;

mask(name)

通过蒙版名称检索图层中的蒙版。

参数 :

name :要检索的蒙版名称(String),可以是默认名称或用户自定义名称。

返回值 : 指定名称的蒙版对象(Object)。如果多个蒙版具有相同名称,将返回“时间轴”面板中最上面的那个蒙版。

应用:

//示例 1:动态调整遮罩路径的 Y 轴坐标// 获取当前遮罩的 Path 对象var s = mask("蒙版 1")("蒙版路径");// 获取所有顶点坐标var pts = s.points;// 获取入切线和出切线var inTans = s.inTangents;var outTans = s.outTangents;// 判断路径是否闭合var closed = s.isClosed;// 初始化新的顶点数组var newPts = ;// 遍历所有顶点,修改 Y 坐标for (var i = 0; i

mask(index)

通过蒙版的序号 检索图层中某个特定蒙版的属性。

参数 :

index :要检索的蒙版序号(Number)。从 1 开始, 按照“时间轴”面板中蒙 版的排列顺序计算。

返回值 : 指定序号的蒙版对象(Object)。

应用:

//示例:使蒙版2的蒙版羽化与蒙版1的一致maskFeather = mask(1).maskFeather;maskFeather

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

来源:烨伟教育

相关推荐