Prise en charge du scripting pour les axes de police variable

Dernière mise à jour le 21 janv. 2026

Découvrez comment utiliser ExtendScript pour accéder aux axes d’une police variable et les contrôler dans After Effects.

Dans After Effects, vous pouvez utiliser ExtendScript pour accéder aux axes de police variable et les contrôler. Cela signifie que vous pouvez automatiser les modifications de propriétés comme Épaisseur, Largeur et Inclinaison sur les calques de texte, ce qui facilite la création d’animations dynamiques sans ajuster manuellement chaque paramètre.

API Font Object

Accéder aux axes d’une police

// Obtenir l'objet police du Calque de texte
var textLayer = comp.layer("My Text");
var sourceText = textLayer.property("Source Text");
var textDocument = sourceText.value;
var fontObject = textDocument.fontObject;

// Vérifier si la police a des axes variables
if (fontObject && fontObject.designAxesData) {
var axes = fontObject.designAxesData;

for (var i = 0; i < axes.length; i++) {
var axis = axes[i];
$.writeln("Axe : " + axis.name);
$.writeln(" Étiquette : " + axis.tag);
$.writeln(" Min : " + axis.minValue);
$.writeln(" Max : " + axis.maxValue);
$.writeln(" Par défaut : " + axis.defaultValue);
}
}

Ajouter des animateurs d’axe avec du Script

Créer une composition et un calque de texte

// Créer une composition et un calque de texte
var comp = app.project.items.addComp("Variable Font Demo", 1920, 1080, 1, 30, 30);
var textLayer = comp.layers.addText("Hello World");

Définir la police en tant que police variable

// Définir la police sur une police variable
var textDocument = textLayer.property("Source Text").value;
textDocument.font = "ShantellSans"; // ou tout nom de police variable
textLayer.property("Source Text").setValue(textDocument);

Obtenir la propriété de texte et le groupe d'animateurs

// Obtenir la propriété de texte et le groupe d'animateurs
var textProp = textLayer.property("Text");
var animators = textProp.property("Animators");

Ajouter un nouvel animateur

// Ajouter un nouvel animateur
var animator = animators.addProperty("ADBE Text Animator");
var animatorProps = animator.property("ADBE Text Animator Properties");

Ajouter un axe de police variable à l’aide d’une balise à 4 caractères

// Ajouter un axe de police variable en utilisant son étiquette de 4 caractères
// Étiquettes communes : « wght » (Épaisseur), « wdth » (Largeur), « ital » (Italique), « slnt » (Inclinaison)
var weightAxis = animatorProps.addVariableFontAxis("wght");

Définir une valeur sans image clé

// Définir une Valeur (pas d'image clé)
weightAxis.setValue(700);

Créer des images clés

// Ou créer des images clé
var italicAxis = animatorProps.addVariableFontAxis("ital");
italicAxis.setValueAtTime(0, 0);
italicAxis.setValueAtTime(2, 1);

Vérifier les axes disponibles

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;
}