Scripts & Expressions [After Effects] + Mon script AutoComps
Lorsque j’ai débuté After Effects vers 2010 , pour mon propre plaisir car j’étais encore en poste en tant que développeur web, je n’ai pas mis très longtemps pour comprendre qu’After Effects met à notre disposition toute une panoplie de fonctionnalités pour coder avec nos petites mains des automatisations via :
- les expressions d’abord car c’est le plus simple et directement accessible via nos calques (cf exemples ci-après),
- les scripts qui demandent évidemment quelques notions de développement mais ça nous permet de créer tout un système pour répondre à un besoin spécifique.
LES EXPRESSIONS
Les expressions dans After Effects permettent d’automatiser, de lier ou de contrôler dynamiquement des propriétés sans keyframes manuelles. Elles sont écrites en JavaScript (ou tout du moins une version spécifique à AE) et peuvent, par exemple :
- synchroniser des animations entre plusieurs calques (comme faire suivre la position d’un calque à un autre),
- générer des mouvements procéduraux (comme un tremblement aléatoire),
- créer des comportements conditionnels (comme déclencher une animation si un curseur dépasse un certain seuil),
- ou encore réagir à l’audio, au temps, ou à des sliders de contrôle.
En résumé, les expressions te permettent de gagner du temps, d’être plus souple et de faire des animations intelligentes et adaptables.
Voici 3 exemples d’expressions que j’utilise très régulièrement.
1. Effectuer une rotation automatique en fonction du temps (la plus basique)
time * 45;
time = valeur de temps où se situe le curseur de la timeline
ex : à 1s, time = 1, à 2s, time = 2, etc.
Donc dans cet exemple, l’objet fait automatiquement une rotation avec une vitesse de 45°/s.
2. Faire clignoter aléatoirement un objet
if(wiggle(2,50) < 50)
0;
else
100;
ou plutôt en écriture allégée
wiggle(2,50) < 50 ? 0 : 100
Ici, 2 fois par seconde, l’objet a une opacité de 0 ou 100 de manière aléatoire.
En mettant juste wiggle(2,50), l’opacité varie de manière aléatoire entre 0 et 100, ce qui est différent puisque les valeurs intermédiaires sont possibles, ce qui donne un effet de clignotement plus doux.
NB : La transparence du carré est définie sur 50% évidemment 😉
3. Adapter la longueur d’un trait (un rectangle très fin) à la taille d’un texte
x = thisComp.layer(« Mon Texte »).sourceRectAtTime().width;
y = content(« Rectangle 1 »).content(« Rectangle Path 1 »).size[1];
[x,y]
LES scripts
Les scripts dans After Effects permettent d’automatiser des tâches complexes ou répétitives à grande échelle, directement dans l’interface du logiciel. Contrairement aux expressions (qui contrôlent des propriétés dans un projet), les scripts agissent sur la structure du projet lui-même : ils peuvent créer des compositions, importer des fichiers, générer des calques, appliquer des effets, modifier des dizaines d’éléments en un clic, etc.
Ils sont écrits en JavaScript (ExtendScript) et permettent de gagner un temps fou pour les workflows récurrents et de créer des outils personnalisés pour répondre à des besoins spécifiques de production.
Il existe déjà beaucoup de scripts et plugins que l’on peut facilement trouver sur aescripts.
Voici une liste non exhaustive des outils que je te conseille en priorité car je les utilise très très régulièrement :
- FX Console : ajout d’un moteur de recherche minimaliste pour appliquer des effets très rapidement
- Duik Angela : la petite boîte à tout faire, à la base pour le rig mais ça va bien au-delà
- Flow : pour ajuster les courbes sans prise de tête
- TextEvo 2 : pour animer rapidement et simplement nos typographies
- Scale Composition : (inclus de base dans AE File>Scripts) pour mettre à l’échelle une composition en un clic
Pourquoi développer son propre script ?
Il se peut qu’un projet en particulier nécessite de mettre en place une automatisation pour à la fois gagner du temps et éviter le travail rébarbatif.
Pour chaque rayon, un écran, qui présente à la fois le look et le modèle présenté lors du défilé ; soit environ 80 looks donc 80 écrans !
L’idée
Je jette quelques coups d’oeil sur l’internet de l’époque et j’ai vite compris les mécaniques et les possibilités offertes par l’API d’After Effects, avec une documentation déjà très complète.
Après quelques ratés, incompréhensions, bugs divers et variés, arrive la fin de journée…
Le résultat
Je clique sur un bouton pour exécuter mon script et bim ! Mes 80 vidéos sont prêtes en même pas 30 minutes, que du bonheur !
Je n’ose imaginer les dégâts mentaux sur ma propre personne si j’avais dû effectuer cette modification à la main sur les 80 vidéos ^^
Mon script AutoComps
Evidemment, le script original pour ce projet H&M était vraiment spécifique à cette mission, et je me suis dit que ce serait vraiment pas mal d’avoir une version autonome qui peut être utile à tout projet qui nécessite des exports en masse à partir d’un template.
Et c’est alors que j’ai repris de zéro le travail pour en faire une version générique, en y ajoutant une interface utilisateur pour simplifier la mise en place.
De nos jours, il existe désormais des plugins et scripts permettant de générer des compositions à partir d’une feuille de données, comme par exemple CompsFromSpreadsheet, mais c’est la plupart du temps de grosses usines à gaz. Et je tenais absolument à garder quelque chose de très simple et minimaliste.
En gros, on sélectionne un fichier CSV, on clique sur un bouton, ça génère autant de compositions que de lignes dans la base de données. Bref, c’est tout bête mais tellement utile parfois.
Pour aller à contre-courant de cette société de plus en plus individualiste, je te mets bien évidemment à disposition ce script pour que tu puisses le tester à ton tour et ainsi voir si ça peut t’aider pour tes projets.
Sachant qu’à la base, je l’ai vraiment conçu pour mes propres besoins, il sera sûrement amené à évoluer.
Voici quelques pistes d’upgrade auxquelles je pense :
- prise en compte des styles italique et souligné,
- prise en compte d’images et/ou vidéos dans le template,
- réécriture du code pour que ce soit vraiment clean pour les éventuelles futures updates,
- les options hors de l’interface principale, histoire que ce soit enregistré une bonne fois pour toutes et que ce soit encore plus minimaliste,
- ajout d’un paramètre pour le dossier des exports dans la file de rendu
- ajout d’un paramètre pour définir quelle est la colonne à prendre en compte pour nommer les compositions (par défaut ici, c’est la première colonne)
LE SCRIPT !
Tu peux télécharger le script gratuitement via ce lien gumroad.
