Prise en charge du scripting pour les axes de police variable

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

// Obtention de l’objet police à partir du calque de texte
var textLayer = comp.layer("My Text");
var sourceText = textLayer.property("Source Text");
var textDocument = sourceText.value;
var fontObject = textDocument.fontObject;

// Pour vérifier si la police possède des axes variables
if (fontObject && fontObject.designAxesData) {
    var axes = fontObject.designAxesData;

    for (var i = 0; i < axes.length; i++) {
        var axis = axes[i];
        $.writeln(&quot;Axis: &quot; + axis.name);
        $.writeln(&quot;  Tag: &quot; + axis.tag);
        $.writeln(&quot;  Min: &quot; + axis.minValue);
        $.writeln(&quot;  Max: &quot; + axis.maxValue);
        $.writeln(&quot;  Default: &quot; + 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(&quot;Variable Font Demo&quot;, 1920, 1080, 1, 30, 30);
var textLayer = comp.layers.addText(&quot;Hello World&quot;);

Définir la police en tant que police variable

// Définir la police en tant que police variable
var textDocument = textLayer.property(&quot;Source Text&quot;).value;
textDocument.font = &quot;ShantellSans&quot;;  // or any variable font name
textLayer.property(&quot;Source Text&quot;).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(&quot;Text&quot;);
var animators = textProp.property(&quot;Animators&quot;);

Ajouter un nouvel animateur

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

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

// Ajouter un axe de police variable à l’aide d’une balise à 4 caractères
// Balises courantes : « wght » (weight, épaisseur), « wdth » (width, largeur), « ital » (italique), « slnt » (slant, inclinaison)
var weightAxis = animatorProps.addVariableFontAxis(&quot;wght&quot;);

Définir une valeur sans image clé

// Définir une valeur (sans image clé)
weightAxis.setValue(700);

Créer des images clés

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

Vérifier les axes disponibles

function getAvailableAxes(textLayer) {
    var sourceText = textLayer.property(&quot;Source Text&quot;);
    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;
}

Adobe, Inc.

Recevez de l’aide plus rapidement et plus facilement

Nouvel utilisateur ?