Выражения в After Effects Метод timeToTimecode создание таймеров

 

 

Метод timeToTimecode в After Effects используется в выражениях для преобразования времени (в секундах) в строку тайм-кода в формате SMPTE (например, HH:MM:SS:FF). Он полезен для создания таймеров, отображения времени композиции или слоя, а также для автоматизации задач, связанных с временной шкалой.

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

Синтаксис метода

timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 30, isDuration = false);

t:- Время в секундах (по умолчанию — текущее время композиции).
timecodeBase: Частота кадров в секунду (например, 30 для NTSC, 25 для PAL).
isDuration: Если true, тайм-код отображается как длительность (без отрицательных значений).

Показать тайм-код текущего времени композиции на текстовом слое.
Создайте текстовый слой.
Раскройте свойства слоя, выберите Source Text, нажмите Alt + клик на секундомере, чтобы добавить выражение.
Введите следующее выражение

timeToTimecode(time, 30);

Текстовый слой будет отображать тайм-код в формате 00:00:00:00 (часы:минуты:секунды:кадры) для текущего времени композиции с частотой 30 кадров/с.

—————————

timeToTimecode(time + thisComp.displayStartTime, 30, true);

————————————

Таймер обратного отсчёта
Таймер, который отсчитывает время от заданного значения (например, 10 секунд) до 0.

Создайте текстовый слой.
Добавьте выражение к свойству Source Text

if (10 — time < 0) {
«00:00:00:00»;
} else {
timeToTimecode(10 — time, 30);
}

Таймер будет показывать обратный отсчёт от 00:00:10:00 до 00:00:00:00. Если время истекло, отображается 00:00:00:00

—————————-

Вариант для более короткого формата (например, только MM:SS):

if (10 — time < 0) {
«00:00»;
} else {
tc = timeToTimecode(10 — time, 30);
tc.substring(3, 8); // Извлекает MM:SS
}

——————

Отображение времени начала слоя
Показать тайм-код, соответствующий времени начала слоя (inPoint).
Создайте текстовый слой. Добавьте выражение к Source Text

timeToTimecode(thisLayer.inPoint, 25);

Текстовый слой отобразит тайм-код, соответствующий моменту входа слоя на таймлайн (например, 00:00:02:00 для 2 секунд при 25 кадрах/с).
Пояснение: thisLayer.inPoint возвращает время начала слоя в секундах, а timecodeBase = 25 задаёт частоту кадров PAL.

—————

Отображение исходного тайм-кода видеослоя
Вы можете использовать sourceTime(t = time) для отображения исходного тайм-кода видеоматериала на текстовом слое.
Создайте композицию с видеослоем.
Добавьте текстовый слой (Layer > New > Text).
Для свойства «Исходный текст» (Source Text) текстового слоя добавьте выражение:

var videoLayer = thisComp.layer(«Одноэтажная Америка 2.mp4»);
var st = videoLayer.sourceTime(time);
timeToTimecode(st);

videoLayer.sourceTime(time) получает исходное время видеослоя в текущий момент композиции.
timeToTimecode(st) преобразует это время в формат тайм-кода (например, «00:00:05:12»).

В результате текст будет показывать исходный тайм-код видео, даже если к нему применено перераспределение времени.

——————————

Анимация с использованием ползунка
Цель: Управлять временем тайм-кода с помощью ползунка для гибкой настройки.
Создайте новый слой (например, Null).

Добавьте эффект Slider Control (Эффекты → Управление выражениями → Ползунок).
Создайте текстовый слой и добавьте выражение к Source Text:

var slider = thisComp.layer(2).effect(«Элемент управления «Ползунок»»)(1);

timeToTimecode(slider, 30);

time; //Добавить для свойства Ползунок еффекта «Элемент управления Ползунок»

Результат: Значение ползунка (в секундах) преобразуется в тайм-код. Например, если ползунок равен 10, отобразится 00:00:10:00.
Это полезно для тестирования или создания анимированных таймеров, где время можно контролировать ключевыми кадрами ползунка.

 

Частота кадров: Убедитесь, что timecodeBase соответствует частоте кадров композиции (например, 24, 25, 30, 60). Проверить частоту кадров можно в настройках композиции.

Форматирование: Используйте метод substring() для извлечения нужной части тайм-кода (например, только минуты и секунды).

Комбинирование с другими свойствами: timeToTimecode можно использовать с inPoint, outPoint, time, или значениями ползунков для создания сложных эффектов.

Ограничение в скриптах: В отличие от выражений, метод timeToTimecode недоступен напрямую в скриптах After Effects. Для этого нужно использовать обходные пути, например, временный текстовый слой с выражением.