Плашки для текста с помощью выражений (expression) в After Effects.
Начало работы
Создаем новый текстовый слой с помощью двойного клика по Text Tool, и выравним текст в панели Paragraph по центру.
Создаем новый шейповый слой rectangle, с помощью двойного клика по инструменту Rectangle Tool.
Переместим шейповый слой ниже текстового на таймлайне. И выполним заливку шейпового слоя.
Всегда переименовывайте ваши слои, чтобы сохранить слои в организованном порядке и упростить выражения. Шейповый слой переименуем в “box”, а текстовый слой в “text”.
Итоговые выражения
Выражение (expression) для shape layer(box) > rectangle 1 > rectangle path 1 > size:
var mytext = thisComp.layer("text"); [ mytext.sourceRectAtTime().width, mytext.sourceRectAtTime().height]
Выражение (expression) для shape layer(box) > rectangle 1 > rectangle path 1 > position:
var mytextY= thisComp.layer("text").sourceRectAtTime().top; var mytextX= thisComp.layer("text").sourceRectAtTime().left; var boxsize=content("box").content("Rectangle Path 1").size; [mytextX+boxsize[0]/2, mytextY+boxsize[1]/2]
Анимация текста
Анимируем текст с помощью аниматоров, с использованием Range Selector, для параметра Start у Range Selector, выражение:
var cps = 20 ; var tmax = sourcetext.length / cps ; linear (time, 0, tmax, 0 , 100)
Модификация шейпового слоя
Ниже Rectangle path 1, внутри группы, добавим Offset Path 1, с нужным значением Amount.
Ниже Offset Path 1, внутри группы, будет стоять Fill 1 для заливки.
Ниже Fill 1, внутри группы, будет стоять Stroke 2 с включенным Dashes и белым цветом.
Ниже Stroke 2, внутри группы, будет стоять Stroke 1 с тем же цветом что и у Fill.
Chat bubble
Создаем новый шейповый слой polystar shape, с помощью двойного клика по инструменту Star Tool.
В параметрах Polystar Path 1: Type шейпа выберем polygon, настроим размер и rotation на -30.
Ниже группы Polystar 1, добавим группу Rectangle 1, в нем Rectangle Path 1 и ниже Offset path 1 с Amount: 20.
Ниже группы Rectangle 1 добавим Fill.
Добавим выражение для shape layer > Polystar 1 > Polystar Path 1 > position:
r=content("Polystar 1").content("Polystar Path 1").outerRadius/2; s=content("Rectangle 1").content("Rectangle Path 1").size; o=content("Rectangle 1").content("Offset Paths 1").amount; p=content("Rectangle 1").content("Rectangle Path 1").position; x=r+s[0]/2+o; [x,p[1]]
Выражение (expression) для shape layer > rectangle 1 > rectangle path 1 > size:
var mytext = thisComp.layer("text"); [ mytext.sourceRectAtTime().width, mytext.sourceRectAtTime().height]
Выражение (expression) для shape layer > rectangle 1 > rectangle path 1 > position:
var mytextY= thisComp.layer("text").sourceRectAtTime().top; var mytextX= thisComp.layer("text").sourceRectAtTime().left; var boxsize=content("Rectangle 1").content("Rectangle Path 1").size; [mytextX+boxsize[0]/2, mytextY+boxsize[1]/2]
Добавим на шейповый слой стиль слоя Stroke.
Источник: aexpr.wordpress.com