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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
Ссылки, описания, дополнительная информация для моих уроков на YouTube
Canonical Link
Аватара пользователя

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

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


Теги:

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

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

Мне нужно было создать такой слой под текстом (подложку), который сам бы менял размер при изменении содержимого текстового слоя. Это стало возможным благодаря тому, что в одной из последних версий 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 КБ) 16331 просмотр
Expression Controls.jpg
Expression Controls.jpg (11.72 КБ) 16331 просмотр

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

Для размера:

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

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 КБ) 16331 просмотр
thisLayer.parent.jpg
thisLayer.parent.jpg (13.9 КБ) 16331 просмотр


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



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

Теги:


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

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

Сейчас этот форум просматривают: CommonCrawl [Bot]