
随机闪烁透明度(Random Flicker Opacity)AE表达式
创建一种闪烁效果,在 0 和设定的透明度之间切换。可以通过基于帧的速度设置,控制闪烁的频率。
// 设置每次闪烁持续的帧数 speed = 10; // 每次闪烁持续的帧数 maxOpacity = value; // 使用你手动设置的透明度值 // 计算正弦波,生成闪烁效果 n = Math.sin(time / thisComp.frameDuration * (1 / speed) * Math.PI); // 根据计算结果设置透明度 n <= 0 ? 0 : maxOpacity;
应用位置
将此表达式应用于任何具有秒表的属性,但通常用于:
变换(Transform) > 透明度(Opacity)
选择图层 → 按 T 访问透明度 → 按住 Alt + 点击秒表 → 粘贴代码。
工作原理
设置闪烁速度
speed = 10;
这设定了闪烁的频率。它告诉表达式每 10 帧完成一个完整的闪烁周期。如果希望闪烁更快,可以使用更小的数字,如 3 或 5;如果希望闪烁较慢,可以试试 15 或 20。
获取最大透明度
maxOpacity = value;
这行代码仅获取图层设置的透明度值。如果图层透明度设置为 70%,那么在闪烁时,它就会变为“开启”状态的值。无需硬编码这个数字——它会自动使用图层的透明度设置。
计算闪烁波形
n = Math.sin(time / thisComp.frameDuration * (1 / speed) * Math.PI);
这是闪烁效果的核心。工作原理如下:
time / thisComp.frameDuration 将当前时间转换为帧数。
(1 / speed) 将速度值转化为频率。
乘以 Math.PI 是为了将正弦波的形状调整得更为平滑,使其在指定的帧数内完成一个完整的上下循环。
结果是一个正弦波,在正负值之间有规律晃动,基于帧数的变化。
设置透明度
n <= 0 ? 0 : maxOpacity;
这是一个简单的条件语句:
如果正弦波为零或负值,透明度设置为 0。
如果为正值,透明度跃升至设定的值(如 70)。
因此图层在 关闭(off)和开启(on)之间以可预测的循环闪烁。
这个随机闪烁透明度表达式可以为动画增添生动和动态效果!

评论0