Выражение динамического масштабирования объектов
254
Рассмотрим выражение (Expression), которое динамически масштабирует слой/слои в зависимости от его/их близости к другому объекту.
ВЫРАЖЕНИЕ.
// Определите целевые и управляющие слои
target = thisComp.layer("Объект");
controller = thisComp.layer("Контроллер");
// Получите максимальные значения масштаба и диапазона от контроллера
maxScale = controller.effect("Масштаб")("Slider");
range = controller.effect("Диапазон")("Slider");
// Вычислить расстояние между целью и текущим слоем
dist = length(target.position, position);
// Коэффициент масштабирования в зависимости от расстояния
scaleFactor = ease(dist, 0, range, maxScale, 100);
// Возвращает значение масштаба для осей X и Y
[scaleFactor, scaleFactor];
КАК РАБОТАТЬ С ДАННЫМ ВЫРАЖЕНИЕМ?1. Создайте композицию
2. В композиции создайте, объект (Это может быть,
фигура, картинка, либо другая композиция) и
два Null объекта.
3. Переименуйте
Null объекты на те имена, названия, которые укажите в скрипте. У меня это (
Объект и Контролер).
Null под названием "Объект" будет отвечать за перемещение, то есть к нему можно будет, потом, через лассо привязать любой объект, в примере у меня это курсор мыши.
Null под названием "Контролер" к нему будут добавлены два "Slider Control" которы будут отвечать за масштаб и диапазон.
4. К Null под названием "Контролер" добавляем два "
Slider Control"
5. "
Slider Control" переименовываем на те названия которые указаны в скрипте в данном случае у нас это (
Масштаб и Диапазон)
6. К объекту, к параметру "
Scale" масштаб добавляем выражение которое можно скопировать в начале статьи.
7. Измените значение у Слайдеров под названием (
Масштаб и Диапазон)
8. Анимируйте расположение
Null под названием "
Объект"
Обратите внимание! Вы можете к Null под названием "Объект" привязать любой другой объект. Вы можете объект в нашем случае это жёлтый шар продублировать сколько угодно раз, и на все копии будет распространяться действия выражения.
Автор выражения: Avnish Parker