Выражения в After Effects. Метод substring. Извлечение строки

 

 

В After Effects выражение substring(startIndex, endIndex) используется для извлечения подстроки из строки, хранящейся в переменной tc. Этот метод работает аналогично JavaScript, так как выражения в After Effects основаны на JavaScript/ExtendScript.

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

Как это работает:
substring(startIndex, endIndex):

startIndex — индекс символа, с которого начинается подстрока (включительно).
endIndex — индекс символа, на котором подстрока заканчивается (не включается в результат).
Индексы начинаются с 0.

————-
4

tc = «HelloWorld»;
tc.substring(3, 8); //Вернет подстроку с 3-го по 7-й символы: «loWor»

Если tc содержит меньше 8 символов, метод вернет подстроку до конца строки. Например, для tc = «AE2023»:
tc.substring(3, 8) вернет «2023» (так как строка заканчивается на 5-м индексе).
Если tc — это свойство текстового слоя (например, text.sourceText), убедитесь, что строка содержит достаточно символов.

—————————
5

Чтобы извлечь часть времени (часы, минуты) из строки с таймкодом:

tc = «12:34:56»;
tc.substring(3, 5); // Вернет «34»

Индексы всегда начинаются с 0.
Если endIndex не указан, подстрока будет до конца строки (например, tc.substring(3)).

———————
1

timeToTimecode(time, 30);

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

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

//Таймер обратного отсчёта

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

—————————-
4

Анимация «написания текста» по одному символу
Симулируем эффект «набора текста» — по мере роста времени, отображается всё больше букв:

n = Math.floor(time * 2); // скорость набора 2 символа в секунду
text.sourceText.substring(0, n);

Текст появляется по одной букве

——————-
6

Удалить первые 3 символа текста

text.sourceText.substring(3); //Текст без первых 3 символов

———————-
6

Отображение последних N символов

t = text.sourceText;
t.substring(t.length — 4); //Последние 4 символа строки

———————
6

Дополнительно: задержка начала

fullText = text.sourceText;
delay = 2;
charsPerSecond = 10;
n = Math.floor((time — delay) * charsPerSecond);
n = Math.max(0, n); // чтобы не было отрицательных значений
fullText.substring(0, n);

———————
6

Сделать курсор мигающим в конце строки
Добавь символ курсора (например, «|»)

fullText = text.sourceText;
charsPerSecond = 10;
n = Math.floor(time * charsPerSecond);
shownText = fullText.substring(0, n);

// мигающий курсор
cursor = (Math.floor(time * 2) % 2 == 0) ? » |» : » «;
shownText + cursor;

————————
6

Текст печатается по словам, а не по буквам

fullText = text.sourceText;
words = fullText.split(» «); // разбиваем на массив слов
wordsPerSecond = 1.5; // скорость: 1.5 слова в секунду
n = Math.floor(time * wordsPerSecond);
n = Math.min(n, words.length); // не выйти за пределы
words.slice(0, n).join(» «);

split(» «) — превращает строку в массив слов.
words.slice(0, n) — берёт первые n слов.
join(» «) — собирает их обратно в строку через пробелы