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

 

 

Свойство index в After Effects это номер слоя в композиции. Это полезный инструмент в выражениях, который позволяет слоям взаимодействовать друг с другом или адаптировать поведение в зависимости от их положения в стопке слоев.

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

Вы можете использовать index для создания эффекта задержки (delay) между слоями. Например, если вы хотите, чтобы каждый слой начинал анимацию с небольшой задержкой относительно предыдущего:

delay = 1; // Задержка в секундах
opacity = 100 * (time — index * delay);

Примените это выражение к параметру, например, к непрозрачности (Opacity). В результате первый слой начнет анимацию через 1 секунду, второй через 2 секунды и так далее.

Допустим, вы хотите, чтобы позиция каждого слоя по оси Y увеличивалась в зависимости от его индекса:

offset = 50; // Смещение для каждого слоя[transform.position[0], transform.position[1] + index * offset];

Здесь каждый слой будет смещаться вниз на 50 пикселей относительно предыдущего.

С помощью index можно обращаться к свойствам соседних слоев. Например, чтобы позиция текущего слоя зависела от позиции слоя выше:

thisComp.layer(index — 1).transform.position;

Это выражение заставит текущий слой копировать позицию слоя, находящегося выше него в композиции. Если слой с индексом 1 (самый верхний), выражение вызовет ошибку, поэтому можно добавить проверку:

if (index > 1) {
thisComp.layer(index — 1).transform.position;
} else {
transform.position; // Оставить текущую позицию для верхнего слоя
}

index начинается с 1 для самого верхнего слоя в композиции.
Если слой находится в прекомпозиции, index будет относиться к его порядку внутри этой прекомпозиции.
Можно комбинировать index с другими функциями, такими как thisComp.numLayers (общее количество слоев), чтобы создавать более сложные эффекты.

offset = 50; // Смещение для каждого слоя по оси Y для четных слоев[transform.position[0], transform.position[1] + random(index).toFixed(0) * offset];

offset = 50; // Смещение для каждого слоя по оси X для нечетных слоев[ transform.position[0] + random(index).toFixed(0) * offset , transform.position[1]];