After Effects에서 가변 글꼴 축에 액세스하고 제어하기 위한 ExtendScript에 대해 알아보세요.
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자리 태그를 사용해 가변 글꼴 축 추가
\n // 일반적인 태그: \"wght\" (두께), \"wdth\" (폭), \"ital\" (기울임꼴), \"slnt\" (기울임)
\n var weightAxis = animatorProps.addVariableFontAxis(\"wght\");
키프레임 없이 값 설정
// 값 설정 (키프레임 없음)
weightAxis.setValue(700);
키프레임 만들기
// 또는 키프레임 만들기
\n var italicAxis = animatorProps.addVariableFontAxis(\"ital\");
\n italicAxis.setValueAtTime(0, 0);
\n italicAxis.setValueAtTime(2, 1);
사용 가능한 축 확인
function getAvailableAxes(textLayer) {
\n var sourceText = textLayer.property(\"Source Text\");
\n var textDoc = sourceText.value;
\n var fontObj = textDoc.fontObject;
\n
\n if (!fontObj || !fontObj.designAxesData) {
\n return [];
\n }
\n
\n var axisInfo = [];
\n for (var i = 0; i < fontObj.designAxesData.length; i++) {
\n var axis = fontObj.designAxesData[i]