Фон для текста в After Effects с автоматическим изменением размера (sourceRectAtTime) +проект

Ссылки, описания, дополнительная информация для моих уроков на YouTube
Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Фон для текста в After Effects с автоматическим изменением размера (sourceRectAtTime) +проект


Теги:

Сообщение #1 aeplug » 26 ноя 2019, 14:24

фон для текста After Effects.gif
фон для текста After Effects.gif (113.24 КБ) 16029 просмотров
фон для текста After Effects.gif
фон для текста After Effects.gif (113.24 КБ) 16029 просмотров

Мне нужно было создать такой слой под текстом (подложку), который сам бы менял размер при изменении содержимого текстового слоя. Это стало возможным благодаря тому, что в одной из последних версий After Effects появилась новая функция для выражений sourceRectAtTime(). Она позволяет получить размеры таких динамических слоев, как Shape Layers и текст, и уже с помощью обычных выражений привязывать к ним любые другие доступные параметры.
https://www.youtube.com/watch?v=UoLtU6IsNXA
Но есть некоторые неприятные особенности, связанные с текстом, разбитым на несколько строк. Дело в том, что After Effects в таком случае ставит якорную точку на первой строчке, и позиционировать обычную фигуру по центру так не получится. Ну и большинство методов в интернете рассчитаны на одну строку и не работают так как мне надо. Но удалось найти рабочий метод.
8-) Проект урока доступен спонсорам и за небольшой вклад в развитие канала.
Скачать проект урока для After Effects
https://boosty.to/aeplug/posts/b907d9b9 ... f527f8c090
https://motiondash.gumroad.com/l/proj249
https://www.patreon.com/posts/file-for-249-63067827
https://www.youtube.com/post/UgkxU9uwIm ... PMrtGsAS51
https://vk.com/wall-45155656_19737

В качестве подложки под текст я использовал шейповый прямоугольник, его надо во первых привязать к тексту, чтобы он всегда следовал за ним. Для удобного изменения параметров я еще докинул на него несколько управляющих элементов из группы Expression Controls. Один позволяет выбирать главный слой, с которого снимаются параметры, и два слайдера для отдельного изменения размера подложки по каждой оси. Этого делать не обязательно, но тогда придется все параметры менять каждый раз самому прямо в коде.
Expression Controls.jpg
Expression Controls.jpg (11.72 КБ) 16028 просмотров
Expression Controls.jpg
Expression Controls.jpg (11.72 КБ) 16028 просмотров

Сама же магия заключается в двух выражениях на положение слоя и его размер с тем самым sourceRectAtTime().
Выражения подложки для текста.jpg
Выражения подложки для текста.jpg (29.73 КБ) 16028 просмотров
Выражения подложки для текста.jpg
Выражения подложки для текста.jpg (29.73 КБ) 16028 просмотров

Для размера:

Код: Выделить всё

l=effect("Layer Control")("Layer");
rect=l.sourceRectAtTime();
[rect.width+effect("X")("Slider"),rect.height+effect("Y")("Slider")]

Для положения:

Код: Выделить всё

l=effect("Layer Control")("Layer");
rect=l.sourceRectAtTime();
[rect.left+rect.width/2,rect.top+rect.height/2]

А еще можно вместо ручного указания слоя через Layer Control привязываться непосредственно к его родителю через thisLayer.parent, и значит можно выкинуть еще один параметр из настроек, так как для этого метода это будет один и тот же слой.
thisLayer.parent.jpg
thisLayer.parent.jpg (13.9 КБ) 16028 просмотров
thisLayer.parent.jpg
thisLayer.parent.jpg (13.9 КБ) 16028 просмотров


  :info:  
Полезные ссылки:



Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах

Теги:


Вернуться в «Мои уроки»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей