Использование выражения After Effects для написания сценария простого теневого поведения - PullRequest
0 голосов
/ 22 мая 2018

Я работаю над проектом AE, где около 50 Emojis должны иметь тень на полу. Чтобы упростить задачу, я попытался добавить выражение, которое автоматически сжимает и увеличивает тени в зависимости от расстояния смайликов доэтаж.

Вот то, что я пробовал

Подход Drop Shadow

Вы можете видеть, что тень растет и уменьшается, но не в том направлении.Поэтому, когда эмодзи приближается к полу, оно сжимается, а когда расстояние увеличивается, оно увеличивается.Мне нужно противоположное текущему поведению.

Как мне этого добиться?

Это выражение я использовал для свойства 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]

Спасибо за ваше время.

1 Ответ

0 голосов
/ 22 мая 2018

Основной концепцией здесь является отображение значений из одного диапазона в другой.Вы хотите сказать, что (например), когда расстояние изменяется от 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 );
...