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

Using After Effects Expression To Script A Simple Shadow Behavior

我正在做一个 AE 项目,其中大约 50 个表情符号应该在 floor.To 上有阴影 floor.To 让事情变得更容易表情符号到地板上。

这是我试过的方法

Drop Shadow Approach

你可以看到影子在变大变小,但方向不对。因此,当表情符号靠近地板时,它会缩小,而当距离更远时,它会变大。我需要与当前行为相反的东西。

我该如何实现?

这是我对阴影层的 scale 属性 使用的表达式。阴影层与表情符号层是分开的。所以我的构图只有 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 );