LaboScripts & Expressions [After Effects] + Mon script AutoComps

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.

J’ai donc dans ma besace un exemple concret du pourquoi du comment j’ai décidé de créer mon propre script.
 
Le projet
H&M Studio Spring / Summer 2017.
Suite à un défilé de mode H&M, tous les looks sont disponibles sur place dans une boutique éphémère où chaque rayon représente un look.
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 !
Le commun des mortels aurait créé une animation pour un look puis via des duplications et des modifications, aurait obtenu ses 80 vidéos, c’est facile certes mais c’est long et c’est chiant ^^, on va pas se mentir.
Le template est prêt

L’idée

Si je m’occupe de créer un template pour le premier look, ce serait absolument génial de générer les 79 autres looks via une base de données (ici un bête tableur).
Malheureusement, à cette période, il n’existait pas encore de plugins ou de scripts permettant d’exécuter cette tâche.
Du coup, j’ai pris mon courage à deux mains pour me programmer une journée de programmation (programmer une programmation, comme c’est original).

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 !

Fun fact : Le jour J, 2h avant le show, sans conviction, la cliente me demande si c’est possible de faire une modification sur le template. On sent à peine la joie s’installer dans mes yeux, je fais vite fait la mini-modification, je clique sur LE bouton, et 1/2h après tout est prêt : la satisfaction du client avant tout 🙂

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.

Une interface minimaliste

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.

Le tuto !

(Tu vas voir, c’est vraiment très simple.)

scroll-to-top