Neyko FX
← Tous les articles← All articles
Expressions & ScriptsExpressions & Scripts

Scripts ExtendScript pour After Effects : le guide de démarrage pour motion designers non-développeurs

Publié le Published on

This article is currently available in French only. The page chrome is translated, the article body is not yet.

Chaque fois que vous répétez la même série d'actions dans After Effects, vous perdez du temps facturable. Renommer une centaine de calques, appliquer un preset à toute une composition, réorganiser des solides : ces tâches sont pénibles, pas créatives. ExtendScript existe précisément pour automatiser ce genre de routine, et il est accessible bien plus tôt que vous ne le pensez.

Pas besoin de sortir d'une école d'ingénieurs ni de connaître JavaScript depuis dix ans. ExtendScript est le dialecte de script qu'After Effects comprend nativement, et sa logique de base est lisible comme de l'anglais technique. Ce guide s'adresse aux motion designers qui produisent quotidiennement dans AE et qui veulent écrire leurs premiers scripts utiles sans passer par une formation de développeur.

Comprendre ce qu'est ExtendScript et comment AE l'exécute

ExtendScript est une implémentation d'ECMAScript 3, le même ancêtre que JavaScript moderne. Adobe l'utilise dans toute sa suite créative depuis les années 2000 : Illustrator, InDesign, Photoshop et After Effects partagent ce langage commun, avec chacun leur propre modèle objet pour accéder à leurs éléments internes.

Dans After Effects, ce modèle objet s'appelle l'OM (Object Model). Il vous donne accès à tout : le projet ouvert (app.project), ses compositions (app.project.items), les calques dans ces compositions, leurs propriétés, leurs keyframes, leurs effets. Chaque élément de l'interface a une représentation objet que vous pouvez lire et modifier par script.

Un script ExtendScript est simplement un fichier texte avec l'extension .jsx. Pour l'exécuter dans AE, vous allez dans Fichier > Scripts > Exécuter le fichier de script, ou vous placez votre fichier dans le dossier Scripts d'AE pour le retrouver directement dans le menu. Aucune compilation, aucune installation compliquée : vous écrivez, vous sauvegardez, vous exécutez.

Installer et configurer un environnement de travail minimal

Visual Studio Code est l'éditeur recommandé. Il est gratuit, léger, et dispose d'une extension dédiée : Types for Adobe. Cette extension ajoute l'autocomplétion pour toute l'API After Effects, ce qui signifie qu'en tapant app.project., VS Code vous propose la liste des propriétés disponibles. Pour quelqu'un qui débute, c'est une aide considérable.

Installez VS Code, puis ajoutez l'extension via la marketplace intégrée en cherchant « Types for Adobe ». Créez un dossier de travail, ouvrez-le dans VS Code, et créez votre premier fichier mon_script.jsx. Vous avez maintenant un environnement fonctionnel.

Activez aussi dans les préférences d'After Effects l'option Autoriser les scripts à écrire des fichiers et accéder au réseau, dans la section Scripting et expressions. Sans cette case cochée, certains scripts ne pourront ni lire ni écrire de fichiers sur le disque, ce qui bloque rapidement dès que vous voulez faire quelque chose d'utile.

Les quatre concepts fondamentaux à maîtriser en premier

Avant d'écrire quoi que ce soit d'ambitieux, quatre concepts suffisent pour couvrir 80 % des besoins courants en studio.

Les variables : elles stockent une valeur pour la réutiliser. var comp = app.project.activeItem; stocke la composition active dans une variable nommée comp. Vous pouvez ensuite écrire comp.name pour lire son nom, comp.width pour sa largeur. C'est immédiat.

Les boucles : elles permettent de répéter une action sur chaque élément d'une liste. Un classique en motion design, c'est la boucle sur les calques d'une composition. for (var i = 1; i <= comp.numLayers; i++) { var layer = comp.layer(i); } parcourt tous les calques un par un. Notez que les calques AE sont indexés à partir de 1, pas de 0 : c'est une des spécificités à retenir.

Les conditions : if (layer.name === "BG") { } exécute un bloc de code seulement si la condition est vraie. Combinez une boucle et une condition, et vous pouvez par exemple verrouiller tous les calques dont le nom contient le mot "fond" sans toucher aux autres.

Les fonctions : elles regroupent un bloc d'instructions réutilisable. function renameLayer(layer, newName) { layer.name = newName; } est une fonction simple. Appelez-la ensuite avec renameLayer(comp.layer(1), "Header");. Dès que vous écrivez la même chose deux fois, transformez-la en fonction.

Votre premier script concret : renommer des calques par lot

Écrivons un script qui prend la composition active et renomme chaque calque en ajoutant un préfixe. C'est une tâche réelle, répétitive, et la logique est directe.

var comp = app.project.activeItem;
if (!comp || !(comp instanceof CompItem)) {
alert("Sélectionnez une composition d'abord.");
} else {
app.beginUndoGroup("Renommer calques");
var prefix = "ANIM_";
for (var i = 1; i <= comp.numLayers; i++) {
var layer = comp.layer(i);
layer.name = prefix + layer.name;
}
app.endUndoGroup();
alert("Renommage terminé.");
}

Détaillons les points importants. app.project.activeItem récupère l'élément actif dans le panneau Projet : vérifier que c'est bien une CompItem évite de planter si l'utilisateur a sélectionné un footage. app.beginUndoGroup et app.endUndoGroup encapsulent toutes vos modifications dans une seule entrée d'historique Ctrl+Z : c'est une bonne pratique absolue, incluez-la dans chaque script qui modifie quelque chose. Ce script fait en quelques secondes ce qui prendrait plusieurs minutes à la main sur une composition de cinquante calques.

Déboguer sans se noyer : lire les erreurs et progresser

Quand un script plante, AE affiche une boîte d'alerte avec un message d'erreur et un numéro de ligne. Ce numéro est votre premier réflexe : allez à cette ligne dans VS Code, regardez ce qui s'y passe.

L'outil de débogage le plus simple disponible sans aucune configuration, c'est $.writeln(). Cette fonction écrit dans la console ExtendScript. Pour y accéder, ouvrez l'ESTK (ExtendScript Toolkit) si vous avez une ancienne version d'AE, ou utilisez le panneau Info d'AE qui affiche les sorties script dans certains contextes. Une alternative plus directe : utilisez alert() pour afficher la valeur d'une variable à un moment précis de l'exécution. Ce n'est pas élégant, mais c'est efficace quand vous cherchez d'où vient un problème.

Le message d'erreur le plus fréquent en débutant est Cannot read property 'x' of undefined. Il signifie que vous essayez d'accéder à une propriété d'un objet qui n'existe pas, souvent parce qu'aucune composition n'est sélectionnée ou qu'un calque n'a pas été trouvé. Ajoutez systématiquement une vérification avant d'accéder à un objet : if (comp) { ... }. Cette habitude seule élimine la majorité des plantages.

Ressources et étapes suivantes pour progresser efficacement

La documentation officielle la plus utile s'appelle After Effects Scripting Guide. Adobe la publie en ligne et elle liste exhaustivement chaque objet, propriété et méthode de l'API. Elle n'est pas conçue pour apprendre, mais pour consulter : une fois que vous savez chercher, elle répond à presque toutes vos questions.

Le forum AE Scripting sur les anciens boards Adobe ainsi que la communauté Reddit r/AfterEffects contiennent des années de scripts commentés. Chercher le nom d'une propriété spécifique suivi de ExtendScript dans Google donne régulièrement un exemple fonctionnel qu'on peut adapter.

Pour progresser rapidement, adoptez cette méthode : identifiez dans votre workflow une tâche que vous répétez au moins une fois par semaine, écrivez un script pour l'automatiser, même imparfait. Ensuite, améliorez-le chaque fois que vous le réutilisez. En quelques mois, vous aurez une bibliothèque de scripts adaptés à vos projets réels, bien plus utiles que n'importe quel script générique téléchargé. La prochaine étape naturelle est la création d'une ScriptUI : une interface avec des boutons et des champs, pour rendre vos scripts utilisables par des collaborateurs sans qu'ils touchent au code.

ConclusionConclusion

ExtendScript n'exige pas de devenir développeur. Il exige d'observer votre propre travail et d'identifier ce que vous répétez. Avec quatre concepts de base, un éditeur bien configuré et l'API After Effects à portée de recherche, un motion designer peut écrire des scripts qui font gagner des heures réelles dès la première semaine. Commencez petit, sur un problème concret, et construisez progressivement : c'est exactement comme apprendre à rigger un personnage ou à maîtriser les expressions, sauf que le résultat est un outil qui travaille à votre place.

Questions fréquentesFrequently asked questions

ExtendScript est-il différent de JavaScript ?

ExtendScript est basé sur ECMAScript 3, une version ancienne du standard JavaScript. Il manque donc des fonctionnalités modernes comme les arrow functions, les classes ES6 ou async/await. Pour After Effects, ce n'est pas un problème : les opérations de scripting sont synchrones par nature, et les bases du langage sont largement suffisantes pour automatiser des tâches complexes.

Peut-on utiliser ExtendScript avec After Effects 2024 et les versions récentes ?

Oui. Adobe a longtemps maintenu ExtendScript dans toutes les versions d'AE et continue de le faire. Les scripts .jsx fonctionnent dans les versions récentes sans modification. Adobe travaille également sur une migration vers UXP pour les extensions CEP, mais ExtendScript pour les scripts reste pleinement opérationnel.

Quelle est la différence entre un script et une expression dans After Effects ?

Une expression s'attache à une propriété spécifique d'un calque et s'évalue en temps réel à chaque frame de lecture. Un script s'exécute une seule fois, à la demande, et peut modifier n'importe quel élément du projet. Pour automatiser des actions, on utilise un script. Pour créer un comportement dynamique lié à l'animation, on utilise une expression.

Faut-il installer l'ExtendScript Toolkit pour écrire des scripts ?

Non. L'ESTK était l'environnement officiel Adobe, mais il n'est plus maintenu activement et n'est pas nécessaire. Visual Studio Code avec l'extension Types for Adobe offre une meilleure expérience : autocomplétion, coloration syntaxique, et gestion de fichiers plus confortable. L'ESTK reste utile uniquement pour accéder à son débogueur pas-à-pas, une fonctionnalité que VS Code ne remplace pas nativement pour ExtendScript.

Comment accéder à un calque spécifique par son nom plutôt que par son index ?

Utilisez comp.layer("NomDuCalque"). Cette méthode retourne le premier calque dont le nom correspond exactement à la chaîne passée en argument. Si aucun calque ne correspond, elle retourne null, ce qui provoquera une erreur si vous essayez d'accéder à ses propriétés sans vérification préalable. Testez toujours : var layer = comp.layer("BG"); if (layer) { /* votre code */ }.

Est-ce qu'un script peut créer des keyframes automatiquement ?

Oui. Accédez à la propriété du calque, puis utilisez la méthode setValueAtTime() pour définir une valeur à un instant donné, ce qui crée automatiquement un keyframe. Par exemple, layer.transform.opacity.setValueAtTime(0, 0) pose une keyframe d'opacité à 0% au début de la composition. Pour poser une série de keyframes, une boucle suffit.

Peut-on faire interagir un script avec des fichiers sur le disque dur ?

Oui, à condition d'avoir activé l'option Autoriser les scripts à écrire des fichiers dans les préférences AE. L'API ExtendScript expose les objets File et Folder, qui permettent de lire, écrire et créer des fichiers texte. C'est très utile pour exporter des données de projet (noms de calques, durées, timecodes) vers un CSV ou pour lire une liste de noms depuis un fichier externe.

Un script peut-il lancer un rendu dans la file d'attente de rendu d'AE ?

Oui. Vous pouvez ajouter une composition à la file de rendu avec app.project.renderQueue.items.add(comp), configurer les paramètres de sortie, puis déclencher le rendu avec app.project.renderQueue.render(). C'est la base des pipelines de rendu automatisés en studio, souvent combiné à une liste de compositions à traiter en batch.

Combien de temps faut-il pour écrire un premier script utile ?

Pour quelqu'un qui n'a jamais codé, compter une à deux heures pour installer l'environnement, comprendre la structure de base et produire un script fonctionnel qui fait une chose simple, comme renommer des calques ou verrouiller les calques d'un type donné. La courbe de progression est rapide les premières semaines parce que les besoins sont concrets et l'API After Effects est bien documentée.

La ScriptUI, c'est quoi et quand en a-t-on besoin ?

ScriptUI est le framework d'interface graphique intégré à ExtendScript. Il permet de créer des panneaux avec des boutons, des menus déroulants, des champs texte, directement dans After Effects. On en a besoin quand le script doit être utilisé par des collaborateurs qui ne lisent pas le code, ou quand il nécessite des paramètres variables que l'utilisateur saisit avant l'exécution. Pour un usage personnel et répétitif avec des valeurs fixes, un script sans interface suffit largement.