CyanSalt / notebook

3 stars 0 forks source link

在 After Effects 中为文字设置背景 #6

Open CyanSalt opened 6 years ago

CyanSalt commented 6 years ago

path: after-effects-text-background


AE 的文本是不能设置背景的,需要通过形状来模拟,通过为矩形形状路径的尺寸指定表达式可以实现背景矩形与文字尺寸同步变化。

使用 var textLayer = thisComp.layer(index) 获取文本节点之后,通过 textLayer.sourceRectAtTime() 可以获得一个类似于 BoundingClientRect 的对象,可通过此对象获取 width 和 height 属性。

sourceRectAtTime 接受两个参数,第一个参数是以秒为单位的 time,如果不传则默认是当前时间,如果需要指定入点可以传入 time - s.InPoint;第二个参数为 Boolean,意义暂时不明。

值得注意的是,Bodymovin/lottie-web 对 sourceRectAtTime 的支持似乎有些问题,尤其是当文字使用范围选择器的情况下。这种情况也可以通过为 sourceRectAtTime 设置一个确定的时间点来计算出一个值,再使用缩放等帧动画来实现动效。