Выражения. Свойство scale в After Effects

 

 

Свойство scale (Масштаб) в After Effects используется для изменения размера слоя.

Список эффектов и не только After Effects
Выражения After Effects список

Если вы хотите, чтобы слой увеличивался или уменьшался со временем, можно использовать выражение, которое изменяет масштаб на основе времени.

scale + time * 10;

transform.scale + time * 10;

x = 100 + time * 10;
y = 100 + time * 10;[x, y];

Scale = 100 + time * 10; // Увеличивает масштаб на 10% каждую секунду[Scale, Scale];

scale = 100 + time * 10; // Если написать scale то будет ошибка. Это слово зарезервированно в After Effects[scale, scale];

value = transform.scale + time * 10; // Выскочит ошибка. Название переменной надо писать с большой буквы[value, value];

x = thisLayer.scale[0] + time * 100;
y = thisLayer.scale[1] + time * 100;[x, y];

———————

Масштаб может изменяться в зависимости от прозрачности слоя.

Scale = 100 + opacity * 2;[Scale, Scale];

Создайте эффект пульсации, используя синусоидальную функцию.

freq = 2; // Частота пульсации
amp = 20; // Амплитуда изменения масштаба
baseScale = 100; // Базовый масштаб
Scale = baseScale + Math.sin(time * freq * Math.PI * 2) * amp;[Scale, Scale];

Масштаб можно связать с другими свойствами, например, с положением (Position) или прозрачностью (Opacity).

// Масштаб уменьшается, когда слой движется вверх
yPos = position[1];
Scale = 100 + (yPos / 5);[Scale, Scale];

Масштаб может изменяться в зависимости от времени, например, увеличиваться каждые 2 секунды

x = scale[0] +100 + Math.floor(time / 2) * 10;
y = scale[1] +100 + Math.floor(time / 2) * 10;[x, y];

Масштаб одного слоя можно связать с масштабом другого слоя.

targetLayer = thisComp.layer(«Слой-фигура 1»);
targetScale = targetLayer.scale[0]; // Получаем масштаб по X другого слоя[targetScale, targetScale];

Можно ограничить масштаб, чтобы он не выходил за определенные пределы.

minScale = 50;
maxScale = 200;
Scale = 100 + time * 10;
Scale_2 = Math.min(Math.max(Scale, minScale), maxScale);[Scale_2, Scale_2];

Масштаб одного слоя может зависеть от позиции другого слоя (например, чем дальше объект, тем меньше он становится).

target = thisComp.layer(«Слой-фигура 1»).transform.position;
dist = length(target, thisComp.layer(«Слой-фигура 2»).transform.position);
scaleFactor = 10000 / dist;[scaleFactor, scaleFactor];

target — позиция другого слоя.
dist — расстояние между слоями.
scaleFactor — масштаб обратно пропорционален расстоянию.

Если Фигура внутри слоя фигуры, то scale не работает напрямую. Доступ к масштабу конкретной фигуры
content(«ShapeName»).transform.scale

content(«Эллипс 1»).transform.scale + time * 100;

content(«Эллипс 1»).scale + time * 100; // Ошибка

В стандартных слоях scale и transform.scale эквивалентны, но в слоях фигур «scale» относится к масштабу слоя, а «transform.scale» используется для доступа к масштабу вложенных фигур. Это понимание важно для точной работы с анимацией и выражениями, особенно в сложных проектах.