Узнайте о некоторых возможностях ExtendScript для доступа к осям меняющихся шрифтов и управления ими в After Effects.
В After Effects можно использовать ExtendScript для доступа к осям меняющихся шрифтов и управления ими. Это означает, что вы можете автоматизировать изменения таких свойств, как Толщина, Ширина и Скос в текстовых слоях, что упрощает создание динамичных анимаций без ручной настройки каждого параметра.
API объекта шрифта
Доступ к осям шрифта
// Получить объект шрифта из текстового слоя
var textLayer = comp.layer("My Text");
var sourceText = textLayer.property("Source Text");
var textDocument = sourceText.value;
var fontObject = textDocument.fontObject;
// Проверить, есть ли у шрифта меняющиеся оси
if (fontObject && fontObject.designAxesData) {
var axes = fontObject.designAxesData;
for (var i = 0; i < axes.length; i++) {
var axis = axes[i];
$.writeln("Axis: " + axis.name);
$.writeln(" Tag: " + axis.tag);
$.writeln(" Min: " + axis.minValue);
$.writeln(" Max: " + axis.maxValue);
$.writeln(" Default: " + axis.defaultValue);
}
}
Добавление аниматоров осей с помощью скрипта
Создайте слой-фигуру и текстовый слой
// Создать композицию и текстовый слой var comp = app.project.items.addComp("Variable Font Demo", 1920, 1080, 1, 30, 30); var textLayer = comp.layers.addText("Hello World");
Установить для шрифта значение меняющегося шрифта
// Установить меняющийся шрифт var textDocument = textLayer.property("Source Text").value; textDocument.font = "ShantellSans"; // или любое имя меняющегося шрифта textLayer.property("Source Text").setValue(textDocument);
Получить свойство текста и группу аниматоров
// Получить свойство текста и группу аниматоров var textProp = textLayer.property("Text"); var animators = textProp.property("Animators");
Добавить новый аниматор
// Добавить новый аниматор var animator = animators.addProperty("ADBE Text Animator"); var animatorProps = animator.property("ADBE Text Animator Properties");
Добавить ось меняющегося шрифта, используя ее 4-символьный тег
// Добавить ось меняющегося шрифта, используя ее 4-символьный тег // Распространенные теги: "wght" (Weight), "wdth" (Width), "ital" (Italic), "slnt" (Slant) var weightAxis = animatorProps.addVariableFontAxis("wght");
Установить значение без ключевого кадра
// Установить значение (без ключевого кадра) weightAxis.setValue(700);
Создание ключевых кадров
// Или создать ключевые кадры var italicAxis = animatorProps.addVariableFontAxis("ital"); italicAxis.setValueAtTime(0, 0); italicAxis.setValueAtTime(2, 1);
Проверка доступных осей
function getAvailableAxes(textLayer) {
var sourceText = textLayer.property("Source Text");
var textDoc = sourceText.value;
var fontObj = textDoc.fontObject;
if (!fontObj || !fontObj.designAxesData) {
return [];
}
var axisInfo = [];
for (var i = 0; i < fontObj.designAxesData.length; i++) {
var axis = fontObj.designAxesData[i];
axisInfo.push({
name: axis.name,
tag: axis.tag,
min: axis.minValue,
max: axis.maxValue,
default: axis.defaultValue
});
}
return axisInfo;
}