【表达式】全网最硬核的sourceRectTime()教程

全名:sourceRectAtTime(t = time, includeExtents = false)

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

范围:仅适用于形状图层,可根据需要增加图层范围的大小;也可增加段落文本图层(After Effects 15.1 及更高版本)的大小,此时它会返回段落框的范围。

示例:thisComp.layer(1).sourceRectAtTime().width //返回本合成图层1的宽度 以上为官方解释

【表达式】全网最硬核的sourceRectTime()教程

大家知道,一点平面点的坐标可以写为[x,y],一个横坐标x表示水平的位置,一个纵坐标y表示竖直的位置。

4个返回值

  • 上边界:最上面的Y数值(可认为边线的y坐标)
  • 左边界:最左边的X数值(可认为边线的x坐标)
  • 宽度:从最左边到最右边的长度值(可以理解为一段距离)
  • 高度:从最上面到最下面的长度值(可以理解为一段距离)
  • 基准点:起始坐标点位于合成的正中央。上左边界值,是基于合成正中央的基准点进行计算的
  • 补充:想要恢复基准点很简单,只要把所有参数都reset即可

【表达式】全网最硬核的sourceRectTime()教程

使用范围

形状图层 如果是矩形(蓝色的),可以用形状参数的size设置。非规则的多边形(红色的)虽然没法手动设置,但是可以获取,比如下方蓝色与红色的高宽均为(530,686)

【表达式】全网最硬核的sourceRectTime()教程

文字图层 一般可以更改字体大小进行更改。

【表达式】全网最硬核的sourceRectTime()教程

注: 形状的top和left属性可以根据形状-矩形1-矩形变换(位置和缩放),进行更改。不能通过图层本身的变换(位置和缩放)更改 文字

其他参数

第一参数:time

很简单,表达式是获取XX秒XX图像的四大属性,time就是取秒。 比如我K个形状动画,大小从0秒的 (0,0)到10秒的(1000,1000) 这时候我想获取第8秒形状的高宽 a=thisComp.layer(形状图层); b=a.sourceRectAtTime(t = 8); [b.width.toFixed(),b.height.toFixed()] //返回[800,800]

第二参数:includeExtents

include = 包含,Extents = 扩展。加起来就是是否包含拓展 大家都知道,形状和文本图层是可以增加描边的。不过他俩在这里的机制不一样。请听我细细道来

【表达式】全网最硬核的sourceRectTime()教程
【表达式】全网最硬核的sourceRectTime()教程

形状图层 include = true :那么要把形状的描边计算在内 include = false :描边不算

【表达式】全网最硬核的sourceRectTime()教程

文字图层 include = true :算的是文字段落框的高宽,描边不算 include = false :正常计算文字的高宽,描边计算

【表达式】全网最硬核的sourceRectTime()教程## 如何应用

1.自适应调整锚点,以下把锚点始终调整到形状正中心,至于其他位置可以自己改参数。参考链接:MDS的表达式教程

a = thisComp.layer(Text1).sourceRectAtTime();
height = a.height;
width = a.width;
top = a.top;
left = a.left;
x = left + width/2;
y = top + height/2;
[x,y];

【表达式】全网最硬核的sourceRectTime()教程

2.制作模板,文字自动生成底框 根据文字自动生成底框(b站)

当然,我更推荐Jake In Motion的那个视频,油管链接

3.其他自己想

给TA充电
共{{data.count}}人
人已充电
AEAE文章

【表达式】数据驱动,数据可视化

2020-7-16 1:56:12

AEAE插件/脚本

【AE拓展】Mocode 表达编辑器

2020-7-22 0:20:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索