4 заметки с тегом

скрипты

Новая версия скрипта для титровальной плашки

Некоторое время назад я опубликовал свой скрипт, создающий удобную для работы в After Effects титровальную плашку. А на днях — пост о том, как её можно ещё больше автоматизировать. И вот теперь, наконец, у меня дошли руки, чтобы доработать свой скрипт, чтобы он сразу из коробки умел понимать размеры текста внутри себя.

С момента последнего поста о скрипте, он уже прошёл несколько итераций, поэтому сейчас расскажу о всех новых функциях.

По аналогии с Wipe Out Horizontal и Wipe Out Vertical появились Wipe In Horizontal и Wipe In Vertical. Теперь можно заанимировать появление и исчезновение плашки через эти значения, а параметры Width и Height оставить без ключей — благодаря этому можно редактировать их значения и быть уверенным, что новых ненужных ключей не создастся и анимация не поедет.

Появился параметр Parent. Можно создать несколько копий одной плашки и указать у всех них в качестве родителя одну, теперь параметры высоты и ширины будут наследоваться от неё всеми остальными слоями. Например, можно разнести их по глубине или использовать один из слоёв как маску для какого-нибудь блика. Значения Wipe In / Wipe Out не наследуются, чтобы оставить больше простора для творчества.

Теперь, если прилинковать плашку к тексту и включить чекбоксы Use Parent Text Width и Use Parent Text Height, плашка начнёт автоматически изменять свои размеры в зависимости от размеров текстового слоя. Не обязательно при этом включать обе галочки. В этом режиме параметры Width и Height превращаются в контроллеры отступов слева/справа и сверху/снизу соответственно. Также пришлось добавить ещё один параметр Line Height, регулирующий высоту одной строки. Последнюю, придётся высчитывать вручную, для этого рекомендую собрать следующую композицию:

Выровняв слой по нижнему краю букв верхней строки, выставить Height (здесь — высота отступов сверху и снизу) на 0 и регулировать Line Height, пока нижний край плашки не поравняется с нижним краем букв второй строки. Всё, теперь надо умножить получившееся число на 2 и высота строки вычислена, можно собирать плашку в тот вид, в каком она должна быть. Плашка будет подстраиваться по высоте текста корректно.

Автоматические размеры под размер текста будут работать только при параметре Parent установленном на None.

Версия скрипта получила номер 1.4 и доступна для скачивания на странице загрузок.

2017   ae   выражения   оптимизация   скрипты   текст

Автоматические размеры плашки в зависимости от размеров текста внутри неё

Придумал тут, как улучшить свой скрипт, создающий параметрическую плашку для текста. Шейповый слой нужно привязать к текстовому слою, из которого скрипт будет брать значение ширины и, при желании, высоты текста. Затем в параметр Width нужно прописать следующий код:

text = thisLayer.parent.sourceRectAtTime(time,false); // Указываем родительский слой
w = text.width; // Достаём значение ширины
x = 150; // Указываем сумму отступов справа и слева в пикселях
w + x

Если нужно, регулировать плашку и по высоте, то есть два варианта

Вариант попроще

В параметр Height нужно прописать:

text = thisLayer.parent.sourceRectAtTime(time,false); // Указываем родительский слой
h = text.height; // Достаём значение высоты
x = 150; // Указываем сумму отступов сверху и снизу в пикселях
h + x

Минус этого способа — высота плашки будет меняться в зависимости от того, есть ли у букв в тексте выносные элементы. Буква «р» увеличит высоту плашки на несколько пикселей за счёт выносного элемента снизу. Заглавная «Ё» увеличит ещё на несколько пикселей за счёт двух точек над «Е».

Вариант посложнее

Чтобы высота плашки не зависела от наличия или отсутствия выносных элементов у букв в Height вместо предыдущего кода нужно прописать следующее:

text = thisLayer.parent.text.sourceText; // Указываем родительский слой
lines = text.split(/\r?\n|\r/); // Создаём массив из строк
count = lines.length; // Достаём количество строк из массива
x=60; // Указываем сумму отступов снизу и сверху
h = 130; // Прописываем высоту одной строки
count*h + x

Минус этого способа — понадобится несколько минут, чтобы вычислить высоту строки. Параметр Font Size, казалось бы, должен отвечать именно за это число, но нет. Поэтому рекомендую сперва установить x на 0 и поиграться со значениями. Если у кого-то есть идеи, как можно выяснить высоту строки не методом тыка, буду рад почитать в комментариях.

После всех этих манипуляций мы получаем пару связанных друг с другом слоёв, которую можно копировать сколько угодно раз, всё будет отлично работать.

2017   ae   выражения   скрипты   текст

Скрипт, создающий регулируемую плашку для титров

Мне часто приходится оформлять титровальные плашки. Объём текста на плашках всегда разный и их размер нужно постоянно корректировать. Чтобы упростить эту задачу, я написал скрипт для After Effects.

Скрипт создаёт шейповый слой с группой. Внутри группы лежит прямоугольник.

В эффектах слоя — куча слайдеров и чекбоксов для управления шейпом.

Width и Height регулируют размеры прямоугольника.
Roundness скругляет углы.
Centre Horizontal и Centre Vertical отвечают за центровку шейпа или выравнивание по левому краю. Для регулировки по правому шейп надо отразить по скейлу.
Wipe Out Horizontal и Wipe Out Vertical уменьшают ширину и высоту шейпа слева направо и сверху вниз.

Но титровальные плашки для разных проектов должны быть разными. Поэтому основную группу внутри слоя можно копировать и видоизменять, главное — не трогать выражения в параметрах прямоугольника.
Можно сделать так:

Стрелочками выделена основная группа, которая создаётся скриптом. Здесь она скопирована три раза.

Весь кайф в том, что внешний вид плашки нужно настроить только один раз. Теперь можно менять её размер, а скрипт позаботится о том, чтобы ничего нигде не поехало: параметр слоя Scale мы не трогаем, а значит прилинкованный текст не исказится, а Stroke будет одинаковой толщины независимо от размеров плашки.

Скрипту я дал гордое имя vk_BubbleRig. Он встраивается в ft_Toolbar (для этого в комплектном архиве есть иконка), либо запускается через File > Scripts > Run Script File...

Скачать скрипт можно на странице загрузок. Распространяется он «как есть», но я буду рад замечаниям и предложениям по его улучшению.

Обновлено
Новая версия скрипта

2017   ae   скрипты

Скрипт, создающий удобный риг для камеры

Работая не первый год в After Effects, я стал замечать, что многие разные по сути задачи требуют для своего решения примерно одних и тех же самодельных упрощающих работу инструментов. Их создание каждый раз заново отнимало время и вскоре я пришёл к осознанию того, что необходимо этот процесс автоматизировать.

Тогда я начал писать скрипты. С тех пор количество этих скриптов несколько выросло. И сейчас, когда я обзавёлся собственным сайтом, я решил эти скрипты опубликовать.

А начать решил со скрипта, который создаёт удобный для анимирования риг камеры.

Скрипт, которому я дал гордое имя «vk_CameraRig» создаёт камеру и три нуля, привязанных друг к другу. Случайные числа в названиях позволяют добавлять любое необходимое количество ригов в одну композицию. Нули (а точнее нуль Camera Head) служат для камеры таргетом.

В окне Effect Controls лежат слайдеры и крутилки для управления камерой.

Параметр Distance отвечает за расстояние от камеры до таргета. Pan, Head и Bank регулируют повороты по трём осям. Остальные параметры — это вынесенные для удобства самые часто используемые параметры камеры.

Position в это меню я выносить не стал, так как намного удобнее двигать нуль красно-зелёно-синими стрелочками на экране, чем через окно Effect Controls.

Скрипт встраивается в ft_Toolbar (для этого в комплектном архиве есть иконка) либо запускается через File > Scripts > Run Script File...

Скачать скрипт можно на странице загрузок. Распространяется он «как есть», но я буду рад замечаниям и предложениям по его улучшению.

2017   ae   скрипты