1 – programmation avec After Effects

Scripts et Expressions

Deux approches de la programmation sont accessible dans After Effects. Les expressions et les scripts.

  • Les expressions sont associées à des propriétés de calques et évaluées lors du rendu.
  • Les scripts sont des fichiers externes (.jsx) qui sont évalués à l’exécution du script.

Si ces deux modes de programmation se basent sur le même langage de programmation (JavaScript), on peut noter qu’ils ne s’exécutent pas dans le même environnement. Ils existent donc de nombreuses différences dans les objets et fonctions accessibles d’un mode de programmation à l’autre.

historique des expressions et outils de scripting dans After Effects

Si les expressions apparaissent en 2001 dans la version 5 d’After Effects, le scripting apparaît quand à lui dans la version 6, en 2003. On peut, depuis cette date, tracer les avancées du scripting dans After Effects :

date version avancée
2001 5.0 apparition des expressions
2003 6.0 apparition du scripting
2006 7.0 éditeur de script ExtendScript Toolkit 1
~ 2007 ? CS3 éditeur de script ExtendScript Toolkit 2
2007 CS3
~ 2008 ? CS4 éditeur de script ExtendScript Toolkit 3
2010 CS5
éditeur de script ExtendScript Toolkit 3.5
2012 CS6 After Effects CS6 Scripting Guide
? CC éditeur de script ExtendScript Toolkit CC
2014 CC 2014.1 (13.1) amélioration des possibilités de scriptage des calques textes
2014 CC 2014.2 (13.2) amélioration des possibilités de scriptage des calques textes
2017 CC 2017 (14.0) amélioration des possibilités de scriptage
18 octobre 2017 CC (15.0) import JSON / accès aux points des chemins via les expressions
3 avril 2018 CC (15.1) import de fichiers CSV et TSV
15 octobre 2018 CC (16.0) nouveau moteur JavaScript pour les expressions

Remarques

On peut remarquer que le moteur JavaScript utilisé pour les expressions à été mis à jour en octobre 2018.

Toutefois, concernant les scripts, After Effects utilise encore JavaScript en version 3. La version 3 de JavaScript date de 1999. Et le dernier guide de scripting date de 2012.

Autre élément que l’on va voir par la suite, l’éditeur de script d’Adobe est aujourd’hui classé « application ancienne » et n’apparaît plus par défaut dans les applications Adobe CC.

Si les expressions et scripts dans After évoluent et semblent avoir bénéficiées de mise à jour récentes, on ne peut pas dire que la situation soit très claire, et pourrait être amenée à évoluer prochainement.

(Comment ? Je ne saurais dire.)

sources de documentation

outil : ExtendScript Toolkit

Depuis la versiion 7 d’After Effects (2006) est fourni un outil d’édition de scripts : le logiciel adobe ExtendScript Toolkit. Celui-ci a connu plusieurs versions, mais est actuellement relégué par Adobe au rang d”« application ancienne ».

installation

Se référer à la documentation relative : _ressource-estoolkit.

interface de l’ExtendScript Toolkit

  1. barre de menu
  2. zone d’édition du script
  1. onglets
  2. liste déroulante du logiciel visé
  3. ?
  4. boutons de contrôle de l’exécution
  1. panneaux
  1. console JavaScript (permet de faire du debug)
  2. scripts (permet d’accéder aux dossiers de scripts des logiciels Adobe)
  3. points d’arrêt (breakpoints) : outil de debug
  4. pile d’appels (call stack) : outil de debug
  5. navigateur de données (data browser) : affiche le contenu de l’objet global $ et permet de naviguer dedans
  6. fonctions (functions)

Autre élément intéressant : dans le menu « Aide », ouvrez l”« outil de visualisation d’object model ».

exercice 1 : commencer à manipuler les outils à notre disposition

exercice 1, étape 1 : documentation en ligne

Rendez-vous sur la version en ligne du document « After Effects CS6 Scripting Guide » et prenez quelques minutes pour parcourir un peu ce document.

Note

Observez comment le document est divisé grâce au menu de gauche, et parcourez une ou deux pages.

exercice 1, étape 2 : environnement de travail

Rendez-vous au chapitre « The After Effects Object Model » et observez le schéma de l’environnement accessible. Essayer, en vous aidant du navigateur de données, de reparcourir l’arbre de « application » à « item(s) ».

exercice 1, étape 3 : quelques réserves sur la documentation

Rendez-vous au chapitre « Elements of basic JavaScript relevant to After Effects scripting ». Que signifie ce titre ? Cherchez-y une référence au composant du langage JavaScript qu’est `Math <https://es5.github.io/#x15.8>`_. Le trouvez-vous ?. Maintenant, dans l’ESTK (ExtendScript Toolkit), utilisez le navigateur de données pour faire la même vérification. Ensuite, Refaites la recherche après avoir activé, dans le menu contextuel, l’affichage des « éléments JavaScript principaux ».

exercice 1, étape 4 : fonctions globales

Rendez-vous au chapitre « Global functions » et observez les fonctions globales auxquelles vous pouvez accéder.

Note

Les fonctions globales sont les fonctions directement contenues dans l’objet global, c’est à dire accessibles de partout

exercice 1, étape 5 : utiliser la console

Intéressez-vous aux fonctions write et writeln. Retrouvez-les dans le navigateur de données. Dans la documentation observez les informations indiquées, et tentez d’utiliser ces fonctions.

exercice 1, étape 6 : variables et persistance de l’environnement

  1. Essayer d’imprimer dans la console la valeur d’une variable que vous n’avez pas déclarée. Que se passe-t’il ?
  2. Maintenant, ajoutez une ligne contenant la déclaration et l’initialisation de la variable précédente. Que se passe-t-il ?
  3. Retirez maintenant la ligne ajoutée en 2. Que se passe-t-il ? Que peut-on en déduire ?

exercice 1, étape 7 : rappels

// je déclare un tableau d'éléments
var ma_phrase = ['un', 'petit', 'exercice', 'pour', 'se', 'dérouiller'];

// je déclare une fonction
function afficher_phrase ( phrase ) {
  /* j'indique ce que la fonction fait */

  // on boucle sur notre tableau
  for (var i = 0; i < phrase.length; i++) {

    // on affiche élément par élément dans le console,
    // suivi d'une espace
    $.writeln( phrase[i] + " " );
  }
}

// exécution de la fonction avec notre tableau en paramètre
afficher_phrase( ma_phrase );

exercice 1, étape 8 : créer un script pour créer une structure de projet

Demande : créer un script qui créé une structure de projet dans After Effects. Lorsque le script est exécuté, il créé la structure de dossiers et compositions suivante :

Dans le dossier racine :

  • un dossier « metrages » contenant :
    • un sous-dossier « videos »
    • un sous-dossier « vecteurs »
    • un sous-dossier « bitmaps »
    • un sous-dossier « autres »
  • un dossier « donnees »
  • un dossier « compositions »
  • un dossier « export », contenant :
    • une composition nommée « SD », 1280 par 720, 25 ips
    • une composition nommée « HD », 1920 par 1080, 50 ips

Utilisez les couleurs de label.

Pour réaliser cet exercice, il va vous falloir rechercher dans la documentation :

  • quel élément de l”« Object modèle » correspond au projet ?
  • quel sous-élément du projet correspond à la structure de fichiers ?
  • quelles méthodes de la structure de fichiers permettent de créer de nouveaux dossiers ou compositions ?
  • quelle méthode de l’objet Item permet de modifier le dossier parent d’un élément ?
  • Comment modifier la couleur de label d’un élément.

Procédez par étape :

  1. déterminez comment créer programmatiquement un dossier

2. déterminez comment créer programmatiquement une composition 2. déterminez comment mettre programmatiquement un dossier créé dans un autre dossier 2. déterminez comment modifier programmatiquement le label d’un élément

exercice 1, étape 9

Une fois votre script terminé, enregistrez-le en .jsx, et placez-le dans le dossier permettant à celui-ci d’apparaître dans « Fichiers → Scripts ». (Voir ici la documentation indiquant ou placer vos .jsx)