마지막 업데이트 날짜
2026년 1월 21일
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자리 태그를 사용하여 가변 글꼴 축 추가 // 일반적인 태그: "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;
}