Изменение стилей текста и свойств текста с помощью элементов управления выражениями.
Используйте выражения для управления стилем текста в любом текстовом выражении или в шаблонах анимационного дизайна. Некоторые вещи, которые вы можете сделать с выражениями:
Связывайте несколько заголовков и обновляйте их стили одновременно (очень полезно для разработки заголовков).
Синхронизируйте шрифт, размер и стили в нескольких текстовых слоях.
Внесите глобальные изменения в свойства текста.
Задайте атрибуты стиля отдельных символов в текстовом слое.
После их установки для текстового слоя можно ссылаться на свойства этого слоя, чтобы быстро применять изменения ко всей композиции. В выражениях After Effects используются свойства для чтения (получения) значений стиля текста и методы функций для записи (установки) их внутри движка выражений. Это позволяет связывать стили текста в текстовых слоях либо настраивать элементы управления для их анимации или использования в шаблоне анимационного дизайна.
Перед началом использования выражений для редактирования свойств текста
Установите для Движка выражений значение «Javascript», выбрав Настройки проекта > Выражения > Движок выражений > Javascript.
Во всплывающем меню Язык выражений выберите Текст > Свойства > Свойства текстаили Текст > Стили.
Доступные текстовые атрибуты
Следующие атрибуты стиля текста можно прочитать и задать с помощью объекта style:
Шрифт
Размер шрифта
Псевдополужирный
Искусственный курсив
Все прописные
Малые прописные
Трекинг
Интерлиньяж
Автоинтерлиньяж
Отклонение от базовой линии
Заполнить (включить/выключить)
Цвет заливки
Обводка (включить/выключить)
Цвет обводки
Ширина обводки
Набор цифр
Масштабирование
Кернинг
Цумэ
Направление базовой линии
Параметр базовой линии
Во всплывающем меню «Язык выражений» перечислены все свойства текста, включая те, которые в настоящее время доступны в After Effects.
Во всплывающем меню «Язык выражений» перечислены все свойства текста, включая те, которые в настоящее время доступны в After Effects.
Свойство Исходный тексттекстового слоя преобразовывается выражениями в виде строки JavaScript. Сам текст можно прочитать с помощью sourceText, но он должен быть задан для объекта style с помощью метода setText, если атрибуты стиля изменяются. Просмотрите несколько примеров.
Выражения для текстовых слоев с абзацами
Начать новую строку текста
Для указания начала новой строки текста в строковом выражении можно использовать комбинацию символов \r. Например, чтобы скопировать исходный текст из одного слоя в тот же самый слой и повторить эту операцию для всех прописных символов в новой строке, используйте следующее выражение:
Кроме атрибутов стиля текста, также есть атрибуты абзацев. Их можно применять только ко всему текстовому слою. Атрибуты абзаца доступны только в After Effects.
Направление
Многострочный компоновщик
Отступ первой строки
Выключка
Тип интерлиньяжа
Левое поле
Правое поле
Пробел после
Пробел до
Зависание знаков пунктуации на латинице
Во всплывающем меню «Язык выражений» перечислены все свойства абзаца, включенные в After Effects.
Во всплывающем меню «Язык выражений» перечислены все свойства абзаца, включенные в After Effects.
Меню выражений и шрифты PostScript
При обращении к шрифтам в выражениях они должны использовать специальное «системное имя» (или аналогичное). Рекомендуется вставить это специальное имя из диалогового окна Текст > Шрифт > Выбрать шрифт, чтобы избежать ошибок выражения.
Откройте всплывающее меню Язык выражений и выберите Текст > Шрифт. Откроется диалоговое окно с раскрываемыми меню для выбора шрифта и шрифта для вставки в выражение.
В меню «Язык выражений» выберите гарнитуру и шрифт, которые необходимо вставить в выражение.
В меню «Язык выражений» выберите гарнитуру и шрифт, которые необходимо вставить в выражение.
Синхронизация шрифтов
Шрифты, на которые ссылаются только в Редакторе выражений, не записываются как шрифты, используемые проектом. Чтобы убедиться, что все шрифты, упомянутые в Редакторе выражений, будут автоматически синхронизироваться или заполнять диалоговое окно Разрешить шрифты, используйте все эти шрифты в слое, даже если этот источник слоя скрыт.
Объект style
Все свойства стилей для текстового слоя существуют в объекте style, доступ к которому осуществляется в свойстве Исходный текст с помощью указанных ниже действий.
// Использование всего пути к свойству Source Text
text.sourceText.style
// Использование общего имени текущего свойства
thisProperty.style
Использование стиля само по себе аналогично использованию любого из двух приведенных выше примеров, но это может сбивать с толку, если атрибуты стиля из нескольких текстовых слоев объединяются.
Атрибуты стилей других текстовых слоев также можно прочитать. Используйте лассо выбора, чтобы создать ссылку на другой текстовый слой в начале первого примера, показанного выше.
// Доступ к объекту стиля определенного текстового слоя
thisCompayer(“Other Layer Name”)extourceTexttyle;
Атрибуты стиля отдельных символов в текстовом слое
Кроме использования текстовых выражений с целью установки атрибутов стиля для всего текстового слоя, можно также задать атрибуты стиля для отдельных символов в слое. Преимуществом этого посимвольного элемента управления является автоматическое изменение размера текста, например при масштабировании букв, использовании надстрочных индексов или другого шрифта, как и при использовании стилей частей строки с панели Символ.
Чтобы вернуть значения стиля и фактического исходного текста в один момент времени, необходимо объединить функции getStyleAt и setText. Ниже приведены два примера того, как записать это выражение.
// Чтобы вернуть значения как стиля, так и фактического исходного текста во времени (сокращенная рука) var sourceTextProperty = thisComp.layer(“MAIN TEXT”).text.sourceText; var newStyle = sourceTextProperty.getStyleAt(0,0); newStyle.setText(sourceTextProperty);
// Для возврата значений как стиля, так и фактического исходного текста предыдущего слоя в порядке наложения слоев var sourceTextProperty = thisComp.layer(index - 1).text.sourceText; var newStyle = sourceTextProperty.getStyleAt(0,0); newStyle.setText(sourceTextProperty);
Выпадающий список шрифтов
Связывание шрифтов или стилей с раскрывающимся меню
Связывание шрифтов или стилей с раскрывающимся меню
Раскрывающиеся меню можно использовать для управления стилями текста, например для блокировки текстовых слоев определенными шрифтами. Это полезно для рекомендаций по брендам, шаблонов, включая шаблоны анимационного дизайна, и многого другого.
// Чтобы заблокировать текстовый слой для определенных шрифтов с помощью dropdown Menu Control var dropDownMenu = thisComp.layer(“LayerName”).effect(“Dropdown Menu Control”)(“Menu”); switch (dropDownMenu.value) { case 1 : text.sourceText.style.setFont(“Georgia”); break; case 2 : text.sourceText.style.setFont(“Impact”); break; по умолчанию : text.sourceText.style.setFont(“Tahoma”); }
Основной текстовый слой
Получение свойств текста из “Text Layer 1”, но переопределение размера шрифта и цвета заливки
Получение свойств текста из “Text Layer 1”, но переопределение размера шрифта и цвета заливки
Свяжите несколько текстовых слоев с основным контроллером шрифтов, чтобы управлять стилем текста нескольких слоев одновременно. Создайте два текстовых слоя и вставьте указанное ниже выражение в исходный текст одного из них.
// Чтобы получить все свойства текста из текстового слоя
thisCompayer(“Text Layer 1”)extourceTexttyle;
Можно получить стиль из текстового слоя, но переопределить определенные свойства текста, добавив значения с помощью функций set. Ниже приведены два примера использования цвета заливки и размера шрифта.
// Получить все свойства текста из “Text Layer 1”, но переопределить цвет заливки и размер шрифта с жестко закодированными значениями var newStyle = thisComp.layer(“Text Layer 1”).text.sourceText.style; newStyle.setFillColor(hexToRgb(“FF0000”)).setFontSize(100);
// Чтобы получить все свойства текста из “Text Layer 1”, но переопределить цвет заливки и размер шрифта с текущими текстовыми свойствами слоя var newStyle = thisComp.layer(“Text Layer 1”).text.sourceText.style; var currentFillColor = thisProperty.style.fillColor; var currentFontSize = thisProperty.style.fontSize; newStyle.setFillColor(currentFillColor).setFontSize(currentFontSize);
Примеры
Ниже приведены примеры получения доступа к значениям свойств текста в выражениях и их использования.
Шрифт
Ниже приведены примеры доступа к таким параметрам текстового слоя, как Шрифт, Размер шрифта, Псевдополужирный, Псевдокурсивный, Трекинг и Интерлиньяж.
// Чтобы вернуть имя шрифта для самого текстового слоя
textourceTexttyleont;
// Чтобы вернуть имя шрифта, используемого другим текстовым слоем{{n} ar otherLayer = thisCompayer(“Имя другого слоя”
otherLayerextourceTexttyleont;
// Чтобы вернуть значение размера шрифта для самого текстового слоя
textourceTexttyleontSize;
// чтобы вернуть значение размера шрифта для другого текстового слоя
var otherLayer = thisCompayer(“Имя другого слоя”
otherLayerextourceTexttyleontSize;
// Чтобы вернуть логическое значение значение того, является ли текст слоя Faux Bold или нет (True или False)
textourceTexttylesFauxBold;
// Чтобы вернуть логическое значение того, является ли текст слоя text Faux Italic или нет (True или False)
textourceTexttylesFauxItalic;
// Чтобы вернуть значение отслеживания текстового слоя в виде числа{{ n}extourceTexttyleracking;
// Чтобы вернуть значение интерлиньяжа текстового слоя в виде nu mber
textourceTexttyleeading;
Заливка
Ниже приведены примеры доступа к таким параметрам текстового слоя, как Заливка и Цвет заливки.
// Чтобы вернуть логическое значение того, применена ли к тексту слоя заливка (True или False)
textourceTexttylepplyFill;
// Чтобы вернуть значение цвета заливки текстового слоя
// По умолчанию возвращается массив значений RGB по шкале от 0 до 1,0
textourceTexttyleillColor;
// Установите цвет заливки текстового слоя с помощью setApplyFill и setFillColor
// Значения setFillColor определяются как массив RGB по шкале от 0 до 1,0
var newStyle = styleetApplyFill(true
newStyleetFillColor([1.0, 1.0, 1.0]
// Установите цвет заливки текстового слоя, заменив массив RGB от 0 до 1,0 на hexToRGB, чтобы определить значения цвета с помощью шестнадцатеричных значений
var newStyle = styleetApplyFill(true
newStyleetFillColor(hexToRgb(“FFFFFF”)
Заполнение значений RGB
// Чтобы вернуть красное (R) значение цвета заливки
text.sourceText.style.fillColor[0];
Примечание.
Для возврата значений цвета заливки для R, G или B текстового слоя, добавьте в скобки 0, 1 или 2 соответственно.
Обводка
Ниже приведены примеры доступа к таким параметрам текстового слоя, как Обводка, Цветобводки и Ширина обводки.
// Чтобы вернуть логическое значение того, применена ли к тексту слоя обводка (True или False)
textourceTexttylepplyStroke;
// Чтобы вернуть значение цвета обводки текстового слоя
// По умолчанию возвращается массив значений RGB по шкале от 0 до 1,0
textourceTexttyletrokeColor;
// Задайте цвет обводки текстового слоя с помощью setApplyStroke и setStrokeColor
// Значения setStrokeColor определяются как массив RGB по шкале от 0 до 1,0
var newStyle = styleetApplyStroke(true
newStyleetStrokeColor([1.0, 0.0, 0.0]
// Задайте цвет обводки текстового слоя, заменив массив RGB от 0 до 1,0 на hexToRGB для определения значений цвета с помощью шестнадцатеричных значений
var newStyle = styleetApplyStroke(true
newStyleetStrokeColor(hexToRgb(“FF0000”)
// Чтобы вернуть значение ширины обводки текстового слоя в виде числа
textourceTexttyletrokeWidth;
Значения RGB обводки
// Чтобы вернуть зеленое (G) значение цвета обводки
text.sourceText.style.strokeColor[1];
Примечание.
Для возврата значений цвета обводки для R, G или B текстового слоя, добавьте в скобки 0, 1 или 2 соответственно.
Функция getStyleAt
Используйте функцию get для возврата значений стиля определенного символа в необходимое время. В качестве index нужно указывать число, являющееся индексом буквы или символа, значение стиля которого необходимо получить. atTime также должно быть числом, указывающим время в композиции, из которого можно получить стиль, если стиль является ключевым кадром и меняется с течением времени.
text.sourceText.getStyleAt(index, atTime);
Примечание.
Использование text.sourceText.style аналогично использованию text.sourceText.getStyleAt(0,0).
// Получает стиль первого символа в начале временной шкалы
text.sourceText.getStyleAt(0,0);
Функции «Set»
Дополнительные функции set, которые могут использоваться по отдельности или в сочетании друг с другом для управления стилями в слоях. Каждая из приведенных функций вызывается для объекта style свойства исходного текста.
// Установка Arial в качестве используемого шрифта
styleetFont(“ArialMT”)
// Изменение размера шрифта на 80
styleetFontSize(80
// Включение псевдополужирности с помощью логического значения
styleetFauxBold(true)
// Включение псевдокурсива с помощью логического значения
styleetFauxItalics(true)
// Включение всех прописных с помощью логического значения
styleetAllCaps(true)
// Включение малых прописных с помощью логического значения
styleetSmallCaps(true)
// Установка числового значения отслеживания
styleetTracking(10
// Установка числового значения интерлиньяжа
styleetLeading(10
// Включение автоинтерлиньяжа с помощью логического значения
styleetAutoLeading(true
// Установка числового значения смещения базовой линии
styleetBaselineShift(10
// Установка числового значения ширины обводки
styleetStrokeWidth(10
// Установка для первой строки текстового слоя полужирного и более крупного шрифта
textourceTexttyleetFontSize(100, 0, 30)etFauxBold(true, 0, 30)
// Установка надстрочного индекса для символов
textourceTexttyleetBaselineOption(“superscript”,1,2)etBaselineOption(“superscript”, 9, 2)
Все функции set для текстовых стилей можно использовать вместе, чтобы с легкостью задать несколько атрибутов без необходимости каждый раз определять новый стиль, как показано в следующем примере.
Примечание.
Точка с запятой ставится только после самого последнего атрибута. Написание каждого атрибута в отдельной строке помогает облегчить чтение всей цепочки.
Дополнительнsые варианты использования выражений в исходном тексте
Добавление текстового слоя к композиции и добавление выражения к свойству Исходный текст помогает изучить значения свойств других слоев. Например, следующее выражение в свойстве Исходный текст сообщает имя и значение свойства Непрозрачность для следующего слоя в порядке размещения слоев:
В следующем примере сообщается имя элемента видеоряда, используемого в качестве источника самого верхнего слоя изображения в порядке наложения в текущий момент времени, для которого установлен переключатель «Видео»:
// Создать sourceFootageName как пустую строку
var sourceFootageName = “”;
// Перебираем все слои в композиции
for (var i = 1; i <= thisCompumLayers; i++) {
// Если i соответствует индексу этого слоя, перейти к следующему циклу
if (i == index) {
continue;
}
// Установить myLayer для текущая итерация цикла
var myLayer = thisCompayer(i
// Если в myLayer нет видео или он не активен, переходим к следующему циклу/слою
if ( !myLayerasVideo || !myLayerctive ) {
continue;
}
// Если myLayer активен в текущее время
if ( myLayerctive ) {
try {
// Задайте для sourceFootageName имя источника myLayer
sourceFootageName = myLayerourceame;{{n }} } catch ( err ) {
// Если у myLayer нет источника,
// установите для sourceFootageName имя myLayer
sourceFootageName = myLayerame;
// Остановить цикл
break ;
}
}
// Отобразить sourceFootageName
sourceFootageName;
Сохранение выражений в виде стилей
Выберите свойство Исходный текст с добавленными выражениями. Затем выберите Анимация > Сохранить шаблон настроек анимации, чтобы использовать выражения в других проектах. Шаблоны настроек анимации сохраняются на панели Эффекты и стили.