摘要:源合成(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; imask(index)
通过蒙版的序号 检索图层中某个特定蒙版的属性。
参数 :
index :要检索的蒙版序号(Number)。从 1 开始, 按照“时间轴”面板中蒙 版的排列顺序计算。
返回值 : 指定序号的蒙版对象(Object)。
应用:
//示例:使蒙版2的蒙版羽化与蒙版1的一致maskFeather = mask(1).maskFeather;maskFeather“点赞有美意,赞赏是鼓励”
来源:烨伟教育