AE表达式|指数缩放表达式代码

AE表达式|指数缩放表达式代码

指数缩放(Exponential Scale)AE表达式

使用简单的表达式将线性缩放关键帧转换为平滑的指数增长。

// 计算指数缩放  
s = Math.exp(transform.scale[0] / 21.667905) - 1;  
[s, s]; // 将相同的结果应用于 X 和 Y 轴缩放  

// s = 指数版本的缩放  
// 21.667905 是一个预先计算的常数,将 0–100% 映射到 0–100% 的输出范围  
// 这样:  
// - 0% 关键帧变为 0% 实际缩放  
// - 100% 关键帧变为 100% 实际缩放  
// - 50% 变为 ~9% 实际缩放(因为指数曲线的原因)  

// 最后一行输出 [s, s] 以保持缩放均匀

应用位置

将此表达式应用于图层的缩放(Scale)属性。
它在形状、文本、预合成或任何具有缩放值的对象上效果都很好。
确保“保持比例”(Constrain Proportions)选项开启,否则它只会影响 X 轴缩放。

工作原理

这段表达式的酷之处在于:
仍然可以像往常一样使用关键帧(设置值、添加缓动,甚至使用保持关键帧),但代替单调的线性缩放,这个表达式调整输出,使其以指数方式变化。

为什么这很重要?

因为视觉上,从 1% 到 2% 的变化是一个巨大飞跃(将大小翻倍),而从 99% 到 100% 几乎没有变化。这个表达式修正了这种不平衡,使增长或缩小的感觉更平滑和更自然。

背后的技巧如下:

  • 它获取缩放关键帧值(通常在 0% 到 100% 之间),
  • 将其输入到指数函数(Math.exp()),
  • 然后调整结果,以确保 100% 保持为 100%,而其他所有值以曲线、更加自然的方式增长。

那个常数 21.667905 是经过仔细选择的,以确保数学运算在 0% 到 100% 之间对齐得很好。

因此,如果发现缩放动画感觉过于僵硬或平坦(即使设置了缓动),这个表达式是一个不错的选择。它在动画需要平滑增长的元素(如用户界面元素、信息图表或抽象运动)时尤为有效。

未经允许不得转载:Aemuban.com » AE表达式|指数缩放表达式代码
分享到:
赞(0) 打赏

评论抢沙发

评论前必须登录!

搜索验证

请完成计算后继续搜索

答案错误,请重试