使用 After Effects 表达式编写简单的阴影行为脚本



我正在做一个AE项目,其中大约50个表情符号应该在地板上有一个阴影。为了使事情变得更容易,我尝试添加一个表达式,该表达式会根据表情符号到地板的距离自动缩小和增加阴影。

这是我尝试过的

投影方法

你可以看到阴影在增长和缩小,但方向错误。因此,当表情符号靠近地板时,它会缩小,而当距离更大时,它会变大。我需要与当前行为相反的方法。

我该如何实现?

这是我用于阴影层的缩放属性的表达式。阴影层与表情符号层是分开的。所以我有一个只有 2 层的构图。

var y = thisComp.layer("smile").position[1];
var dist = Math.sqrt( Math.pow((this.position[0]-this.position[0]), 2) + Math.pow((this.position[1]-y), 2) );
newValue = dist ;
xScale = newValue;
yScale = newValue;
[xScale,yScale]

谢谢你的时间。

这里的基本概念是将值从一个范围映射到另一个范围。您想说(例如(当距离在 0 和 100 之间变化时,刻度应该在 1 和 0 之间按比例变化。

function map ( x, oldMin, oldMax, newMin, newMax ) {
return newMin + ( x - oldMin ) / ( oldMax - oldMin ) * ( newMax - newMin );
}
var minDistance = 0;
var maxDistance = 100;
var maxScale = 1;
var minScale = 0;
xScale = yScale = map( dist, minDistance, maxDistance, maxScale, minScale );

最新更新