À propos des expressions

Essayez d’utiliser des expressions pour créer et relier des animations complexes, sans pour autant faire appel à des dizaines ou des centaines d’images clés créées manuellement. Une expression est un petit logiciel (très proche d’un script) qui évalue la valeur de la propriété d’un calque, à un moment spécifique. Tandis que les scripts invitent une application à réaliser une action, une expression indique qu’une propriété est égale à une valeur.

Grâce aux expressions, vous pouvez créer des relations entre les propriétés de calque et utiliser les images clés d’une propriété pour animer dynamiquement d’autres calques. Par exemple, vous pouvez utiliser l’icône de sélection pour lier des propriétés de chemin. Un masque peut ainsi emprunter le chemin d’un tracé ou d’un objet calque de forme.

Le langage des expressions est basé sur le langage JavaScript standard, mais il n’est pas nécessaire de maîtriser ce langage pour les utiliser. Pour créer des expressions, vous pouvez utiliser l’icône de sélection ou copier des exemples simples que vous modifiez en fonction de vos besoins.

Remarque :

il existe deux sources d’exemples d’expressions : le modèle de projet Echantillonneur expressions (Fichier > Parcourir les modèles de projet) et les animations prédéfinies de la catégorie Comportements (Animation > Parcourir les paramètres prédéfinis).

Les animations prédéfinies peuvent comprendre des expressions, voire être entièrement constituées par une expression. Les animations prédéfinies qui utilisent des expressions plutôt que des images clés sont parfois appelées comportements.

Vous pouvez continuer à ajouter ou à modifier les images clés de la propriété même après lui avoir ajouté une expression. Une expression peut prendre la valeur d’une propriété telle que définie par ses images clés. Cette valeur peut servir à générer de nouvelles valeurs modifiées. Par exemple, l’expression suivante de la propriété Rotation d’un calque ajoute 90 degrés à la valeur de la propriété Rotation, en complément du mouvement des images clés :

  value + 90

Certaines méthodes (comme l’option wiggle) opèrent directement sur les valeurs de propriété avec une image clé. Reportez-vous à la section Méthodes et attributs Property (référence de l’expression).

L’expression suivante sur la propriété Position d’un calque conserve le mouvement de l’image clé du calque et entraîne un léger tremblement :

  wiggle(10, 10)

Remarque :

vous serez plus efficace si vous utilisez l’expression wiggle plutôt que l’option Tremblement.

Lorsque vous animez du texte, vous pouvez utiliser le sélecteur d’expression pour spécifier à quel niveau une propriété d’animation doit affecter chaque caractère de texte. Vous pouvez ajouter un ou plusieurs sélecteurs d’expressions à un groupe d’animation, qui peut lui-même contenir une ou plusieurs propriétés.

Utilisation des expressions

Vous pouvez entrer des expressions complètes en les tapant à la main ou à l’aide du menu Langage d’expression. Vous pouvez également créer une expression avec l’icône de sélection ou coller une expression provenant d’un exemple ou d’une autre propriété.

Vous pouvez effectuer toutes les opérations relatives aux expressions dans le panneau Montage, mais vous trouverez peut-être plus pratique de faire glisser l’icône de sélection vers une propriété du panneau Options d’effet. Vous entrez et modifiez des expressions dans le champ d’expression, un champ de texte redimensionnable dans le graphique temporel. Le champ d’expression apparaît près de la propriété en mode d’affichage des bandes de durée des calques. Il apparaît au bas de l’éditeur de graphiques en mode Editeur de graphiques. Vous pouvez saisir l’expression dans un éditeur de texte, puis la copier dans le champ d’expression. Lorsque vous ajoutez une expression à une propriété de calque, une expression par défaut s’affiche dans le champ d’expression. L’expression par défaut ne fait quasiment rien, elle définit la valeur de propriété à elle-même, ce qui vous permet de modifier facilement l’expression vous-même.

Interface des expressions du panneau Montage en mode d’affichage des bandes de durée des calques
Interface des expressions du panneau Montage en mode d’affichage des bandes de durée des calques

A. Option Activer l’expression B. Bouton Afficher graphique postexpression C. Icône de sélection D. Menu Langage d’expression E. Champ de l’expression 

Lorsque vous modifiez une expression, toutes les prévisualisations sont suspendues. Une barre rouge apparaît en bas des panneaux en attendant que vous quittiez le mode d’édition de texte.

Les valeurs d’une propriété qui contient une expression s’affichent en rouge ou rose.

Pour vous familiariser avec les expressions, vous pouvez créer une expression simple avec l’icône de sélection, puis modifier le comportement de l’expression à l’aide d’opérateurs mathématiques simples, tels que ceux énumérés dans le tableau suivant :

Symbole

Fonction

+

Addition

-

Soustraction

/

Division

*

Multiplication

*-1

Inverser l’original, par exemple : sens horaire inverse à la place de sens horaire

Vous pouvez, par exemple, multiplier le résultat par deux en tapant *2 à la fin de l’expression, ou vous pouvez le diviser par deux en tapant /2 à la fin de l’expression.

Lorsque vous saurez modifier les expressions, vous pourrez associer ces opérations simples et faire bien d’autres choses encore. Vous pourrez par exemple ajouter /360*100 à la fin d’une expression pour passer de la plage 0-360 à la plage 0-100. Cette modification s’avère très utile pour adapter les valeurs d’un cadran à 360 degrés à un curseur gradué en pourcentage.

Le menu Langage d’expression du panneau Montage contient les éléments spécifiques à After Effects utilisables dans une expression. Il est particulièrement utile pour choisir des éléments et connaître leur syntaxe : c’est la référence des éléments utilisables. Lorsque vous choisissez un objet, un attribut ou une méthode dans le menu, After Effects l’insère automatiquement dans le champ de l’expression, au point d’insertion. Si le texte est sélectionné dans le champ d’expression, le texte de la nouvelle expression remplace le texte sélectionné. Si le point d’insertion ne se trouve pas dans le champ d’expression, le texte de la nouvelle expression remplace tout le texte dans le champ.

Le menu Langage d’expression contient la liste des arguments et des valeurs par défaut. Cette convention permet de se souvenir facilement des éléments que vous pouvez modifier lorsque vous écrivez une expression. Par exemple, dans le menu Langage, la méthode de tremblement de la catégorie Propriété s’affiche sous la forme : wiggle(freq, amp, octaves=1, amp_mult=.5, t=time). Cinq arguments sont répertoriés entre parenthèses à la suite de wiggle. Le signe = présent dans les trois derniers arguments indique que l’utilisation de ces arguments est facultative. Si vous ne leur attribuez aucune valeur, ils prennent par défaut les valeurs 1, 0,5 et l’instant courant, respectivement.

Remarque :

Remplacez le nom des arguments inscrit dans le menu Langage d’expression par des valeurs réelles.

Jeff Almasol propose un script traitant automatiquement des expressions, lesquelles apportent des modifications. Par exemple, le script peut être utilisé pour supprimer ou activer automatiquement des expressions désactivées. Pour plus détails, rendez-vous sur le site Web redefinery de Jeff Almasol.

Ajout, désactivation, liaison ou suppression d’une expression

  • Pour ajouter une expression à une propriété, sélectionnez la propriété dans le panneau Montage, puis choisissez Animation > Ajouter l’expression ou appuyez sur Alt + Maj + = (Windows) ou Option + Maj + = (Mac OS). Vous pouvez également maintenir enfoncée la touche Alt (Windows) ou Option (Mac OS) en cliquant sur le bouton du chronomètre en regard du nom de la propriété dans le panneau Montage ou Effets.
  • Pour lier un ensemble de propriétés sur plusieurs calques et compositions, utilisez des liens de propriété.
    Sélectionnez une propriété ou un ensemble de propriétés, puis choisissez Édition > Copier avec des liens de propriété ou Édition > Copier avec des liens de propriété relatifs, puis collez ces propriétés sur un calque dans une composition. Les propriétés collées restent connectées au calque à partir duquel elles ont été copiées. De cette manière, toute modification apportée à la propriété d’origine est répercutée sur toutes les instances des liens de propriété collés.
    Vous pouvez même copier un calque entier avec des liens de propriété et le coller pour créer des copies qui suivent les modifications apportées à l’original.

    La commande Copier avec des liens de propriété relatifs fonctionne comme la commande Copier avec des liens de propriété, mais la commande Copier avec des liens de propriété relatifs crée des expressions qui ne font pas référence à la composition source par son nom. Cette commande conserve un lien relatif entre le calque avec l’expression et le calque contenant la composition. Cette commande peut s’avérer utile lorsque vous souhaitez, par exemple, déplacer des calques avec expressions d’une composition vers une autre, tout en laissant les calques faire référence à un calque de commande qui se trouve dans la même composition uniquement. Les expressions créées avec la commande Copier avec des liens de propriété relatifs sont identiques à celles créées à l’aide de l’icône de sélection d’expressions.

    Le résultat de la copie de la propriété Position d’un calque avec la commande Copier avec des liens de propriété relatifs est le suivant :

    thisComp.layer("control_layer").transform.position

    Le résultat de la copie de la propriété Position d’un calque avec la commande Copier avec des liens de propriété est celui qui s’affiche ci-dessous, qui fait référence spécifiquement à la composition source du calque dans l’expression :

    comp("source_comp").layer("control_layer").transform.position

  • Pour désactiver momentanément une expression, cliquez sur le bouton Activer l’expression . Lorsque l’expression est désactivée, le bouton est barré d’un trait oblique .
  • Pour supprimer une expression d’une propriété, sélectionnez la propriété dans le panneau Montage, puis choisissez Animation > Supprimer l’expression, ou maintenez la touche Alt (Windows) ou Option (Mac OS) enfoncée en cliquant sur le bouton du chronomètre en regard du nom de la propriété dans le panneau Montage ou Effets.

Modification d’une expression à l’aide de l’icône de sélection

Même si vous ne connaissez pas le langage JavaScript ni le langage des expressions After Effects, vous pouvez utiliser l’icône de sélection pour tirer parti des expressions. Faites glisser l’icône de sélection d’une propriété à l’autre pour relier les propriétés à une expression. Le texte de l’expression s’affiche dans le champ de l’expression au point d’insertion. Si le texte est sélectionné dans le champ d’expression, le texte de la nouvelle expression remplace le texte sélectionné. Si le point d’insertion ne se trouve pas dans le champ d’expression, le texte de la nouvelle expression remplace tout le texte dans le champ.

Faites glisser l’icône de sélection vers une propriété
Faites glisser l’icône de sélection vers une propriété pour créer un lien vers la valeur de la propriété.

Vous pouvez faire glisser l’icône de sélection sur le nom ou la valeur d’une propriété. Si vous la faites glisser sur le nom de la propriété, l’expression obtenue affiche toutes les valeurs comme s’il n’y en avait qu’une. Par exemple, si vous faites glisser l’icône de sélection sur le nom de la propriété Position, une expression de ce type s’affiche :

  thisComp.layer("Layer 1").transform.position

Si vous faites glisser l’icône de sélection vers l’une des valeurs de la propriété Position (valeur y par exemple), une expression de ce type s’affiche (dans laquelle les coordonnées x et y de la propriété sont liées à la valeur y de la propriété Position) :

  temp = thisComp.layer("Layer 1").transform.position[1]; 
  [temp, temp]

Si vous faites glisser l’icône de sélection sur un calque, un masque ou un effet qui n’a pas un nom unique dans ce contexte local, After Effects le renomme. Par exemple, s’il existe plusieurs masques nommés « Masque » sur un même calque et que vous faites glisser l’icône de sélection vers l’un d’eux, After Effects le renomme « Masque 2 ».

Le format des expressions créées avec l’icône de sélection est déterminé par la préférence Ecriture en anglais compact par l’icône de sélection d’expression (Edition > Préférences > Général (Windows) ou After Effects > Préférences > Général (Mac OS)). Par défaut, l’icône de sélection crée des expressions compactes en langue anglaise, qui utilisent les noms des propriétés tels qu’ils apparaissent dans le panneau Montage pour les propriétés dans une expression. Etant donné que ces noms sont codés dans l’application et ne changent jamais, les expressions fonctionnent même si After Effects est exécuté dans une langue autre que l’anglais. Tous les noms de propriété que vous pouvez modifier sont entourés de guillemets doubles et restent identiques dans toutes les langues. Si vous n’envisagez pas de partager vos projets dans d’autres langues, vous pouvez désactiver cette préférence. Cette préférence n’a aucune incidence sur le nom ou les propriétés des effets.

Exemple d’expression en anglais compact :

  thisComp.layer("Layer 1").transform.position

La même expression, autre qu’anglais compact :

  thisComp.layer("Layer 1")("Transform")("Position")

Remarque :

l’option par défaut correspondant à l’anglais compact, c’est cette langue qui sera utilisée dans la plupart des exemples et illustrations de cette documentation.

  1. Faites glisser l’icône de sélection vers une autre propriété du panneau Montage ou Effets.
  2. Si vous le souhaitez, modifiez l’expression par défaut dans le champ d’expression.

Remarque :

Si vous utilisez l’icône de sélection pour créer une expression de référence à un calque portant le même nom qu’un autre calque de cette composition, le nom du calque ciblé est modifié. Pour former le nom du nouveau calque, le logiciel utilise le nom de l’ancien, suivi d’un chiffre. Cette modification s’avère nécessaire pour s’assurer que l’expression fait bien référence à un seul calque de la composition.

Modification manuelle d’une expression

  1. Passez en mode d’édition de texte en cliquant dans le champ d’expression.

    Remarque :

    Lorsque vous activez le mode d’édition de texte, l’expression complète est sélectionnée. Cliquez dans l’expression pour y placer le point d’insertion (sinon, l’expression complète sera remplacée).

  2. Saisissez ou modifiez le texte dans le champ de l’expression. Vous pouvez utiliser le menu Langage d’expression.

    Remarque :

    Pour afficher l’expression complète, faites glisser le bas ou le haut du champ d’expression pour le redimensionner.

  3. Pour quitter le mode d’édition de texte et activer l’expression, utilisez l’une des méthodes suivantes :
    • Appuyez sur la touche Entrée du pavé numérique.

    • Cliquez à l’extérieur du champ de l’expression.

Exemple : utilisation des éléments du langage d’expressions pour écrire une expression

Pour apprendre à écrire des expressions, consultez l’exemple pour vous familiariser avec les éléments du langage d’expressions After Effects. L’expression créée dans cet exemple relie la propriété Position de Solide 1 à celle de Solide 2, le mouvement de Solide 2 étant décalé de deux secondes par rapport à celui de Solide 1.

  1. Créez deux calques solides : Solide 1 et Solide 2.

  2. Utilisez des images clés pour animer les valeurs de la propriété Position du calque Solide 1 (voir À propos de l’animation, des images clés et des expressions).

  3. Sélectionnez la propriété Position pour Solide 2 et choisissez Animation > Ajouter l’expression ou Alt + clic (Windows) ou Option + clic sur le bouton chronomètre de la propriété. L’expression suivante est alors proposée par défaut :

      transform.position
  4. Saisissez directement le texte suivant sur transform.position :

      thisComp
  5. L’élément thisComp est un attribut global dont la valeur est un objet Comp représentant la composition actuelle. Pour déterminer ce qui peut suivre thisComp dans votre expression, recherchez la valeur renvoyée par thisComp à la section Objets, attributs et méthodes globaux (référence de l’expression).

    Notez que thisComp renvoie un objet Comp. Reportez-vous ensuite à la section Méthodes et attributs Comp (référence de l’expression) pour connaître les attributs et les méthodes que vous pouvez utiliser avec un objet Comp. layer(index) est une des options possibles. L’index (nombre) entre parenthèses indique le calque que vous souhaitez utiliser. Dans cet exemple, on considère que Solide 1 est le premier calque de la composition. Pour récupérer des valeurs dans le premier calque de la composition active, entrez .layer(1) à la fin de l’expression pour obtenir :

      thisComp.layer(1)
  6. Une fois encore, vérifiez dans le guide des éléments d’expression que layer(index) renvoie un objet Layer. Reportez-vous à la section Méthodes et attributs globaux Layer (référence de l’expression), puis recherchez-y l’élément que vous souhaitez utiliser. Par exemple, pour obtenir les valeurs de la propriété Position du calque, entrez .position à la fin de l’expression pour obtenir :

      thisComp.layer(1).position
  7. En consultant la section Méthodes et attributs globaux Layer (référence de l’expression), vous constatez que l’attribut position renvoie une propriété. Reportez-vous à la section Méthodes et attributs de propriété (référence de l’expression), qui explique que vous pouvez ajouter un facteur de temps à l’expression. Pour ajouter un instant spécifique, l’instant actuel plus deux secondes, par exemple, entrez .valueAtTime(time+2) à la fin de l’expression pour obtenir :

      thisComp.layer(1).position.valueAtTime(time+2)
  8. En consultant la section Méthodes et attributs Property (référence de l’expression), vous constatez que la méthode valueAtTime renvoie une valeur Number ou Array. Lorsqu’une expression renvoie un nombre (Number), un ensemble (Array) ou une valeur booléenne (Boolean) (« true » ou « false »), il n’est plus possible d’ajouter d’autres attributs ni méthodes à l’expression (en revanche, vous pouvez ajouter des opérateurs arithmétiques comme +, -, * ou /).

Affichage des expressions et du graphique d’expression

En mode Editeur de graphiques, le champ de l’expression apparaît sous la forme d’une zone redimensionnable, en bas de l’éditeur de graphiques. Il affiche uniquement l’expression de la propriété sélectionnée. Pour afficher plusieurs champs d’expressions simultanément, le panneau Montage doit se trouver en mode d’affichage des bandes de durée des calques.

Remarque :

Pour passer du mode d’affichage des bandes de durée des calques au mode Editeur de graphiques, et inversement, appuyez sur les touches Maj + F3.

  • Pour afficher uniquement les propriétés affectées d’expressions, sélectionnez un ou plusieurs calques, puis appuyez sur EE.
  • Pour afficher le champ d’expression dans l’éditeur de graphiques, choisissez la commande Afficher le modificateur d’expression dans le menu Choisir le type de graphique et les options au bas de l’éditeur de graphiques. Lorsque vous ajoutez une expression à une propriété, le modificateur d’expression s’affiche, quel que soit ce paramètre.

Remarque :

Pour redimensionner le champ d’expression, faites glisser son bord inférieur vers le haut ou vers le bas.

  • Pour observer la manière dont une expression modifie la valeur ou le graphique de vélocité, cliquez sur le bouton Afficher graphique post-expression tout en gardant un œil sur la valeur ou le graphique de vélocité dans l’éditeur de graphiques.

    Le graphique aux couleurs atténuées indique la valeur ou la vélocité avant application de l’expression. Le graphique aux couleurs vives indique la valeur ou la vélocité après application de l’expression. L’activation de l’incrustation de graphique de la propriété Position modifie également l’affichage de la trajectoire dans le panneau Composition afin que vous puissiez visualiser l’effet de l’expression sur la trajectoire.

Remarque :

Vous pouvez utiliser le champ de recherche du panneau Montage pour rechercher des expressions et autres composants d’une propriété. Si la chaîne de recherche apparaît dans une expression, la propriété, les groupes et le calque qui la contiennent sont affichés dans la liste filtrée des résultats de recherche.

Développement d’expressions pour le texte source

La propriété Texte source d’un calque de texte est interprétée dans les expressions telles que les chaînes (String) JavaScript. Vous pouvez utiliser l’icône de sélection pour récupérer le texte source d’un autre calque de texte, mais sachez que seul le style du premier caractère du calque de destination est appliqué.

Pour plus de détails sur l’objet JavaScript String, consultez un ouvrage de référence JavaScript.

Entrez "\r" dans une expression de chaîne pour commencer une nouvelle ligne de texte. Par exemple, pour copier le texte original d’un calque sur le même calque et le répéter en majuscules sur une nouvelle ligne, utilisez l’expression suivante :

  text.sourceText + "\r" + text.sourceText.toUpperCase()

Ajouter un calque de texte à une composition et une expression à sa propriété Texte source permet un examen efficace des valeurs de propriétés d’autres calques. Par exemple, dans la propriété Texte source, l’expression suivante indique le nom et la valeur de la propriété Opacité du calque suivant dans l’ordre d’empilement des calques :

  thisComp.layer(index + 1).name + "\rOpacity = " + thisComp.layer(index + 1).opacity.value

L’exemple suivant indique le nom du métrage utilisé comme source du calque d’image le plus élevé dans l’ordre d’empilement à l’instant courant pour lequel l’option Vidéo est définie.

  source_footage_name = ""; 
  for (i = 1; i <= thisComp.numLayers; i++){ 
      if (i == index) continue; 
      my_layer = thisComp.layer(i); 
      if (! (my_layer.hasVideo && my_layer.active)) continue; 
      if (time >= my_layer.inPoint && time < my_layer.outPoint){ 
          try{ 
              source_footage_name = my_layer.source.name; 
          }catch(err1){ 
              source_footage_name = my_layer.name 
          } 
          break; 
      } 
  } 
  source_footage_name

Sur le site Web Red Giant TV, Aharon Rabinowitz propose un didacticiel vidéo et des exemples d’expression expliquant comment animer un résultat de jeu vidéo à l’aide de la propriété Texte source et d’un effet Curseur (effet Options pour expressions).

Ajout de commentaires à une expression

Si vous écrivez une expression complexe que vous prévoyez ou qu’une autre personne prévoit de réutiliser ultérieurement, ajoutez des commentaires expliquant le fonctionnement de l’expression et de ses éléments.

Enregistrement et réutilisation d’expressions

Une fois que vous avez rédigé une expression, vous pouvez l’enregistrer pour l’utiliser ultérieurement en la copiant et en la collant dans un éditeur de texte ou en l’enregistrant dans une animation prédéfinie ou un modèle de projet. Toutefois, dans la mesure où les expressions sont écrites en rapport avec d’autres calques d’un projet et qu’elles peuvent utiliser des noms de calques spécifiques, il est parfois nécessaire de modifier l’expression pour la transférer vers un autre projet.

Grâce à une syntaxe JavaScript normale, vous pouvez définir vos propres fonctions dans des expressions. Dans cet exemple, une fonction est définie pour calculer la moyenne de deux valeurs. La dernière ligne utilise cette fonction :

  function average(a, b) 
  { 
    return (a + b) / 2; 
  } 
  average(position, thisComp.layer(1).position);

Remarque :

vous devez entièrement définir chaque fonction dans chaque expression où elle est utilisée. Il n’existe pas de bibliothèque globale de fonctions où vous pouvez effectuer des ajouts.

Si vous voulez enregistrer une expression pour l’utiliser dans un autre projet, il est préférable d’y ajouter des commentaires (voir Ajout de commentaires à une expression). Utilisez également des variables. Elles permettent de modifier les valeurs à un seul emplacement.

Par exemple, cette expression est assortie d’un commentaire à plusieurs lignes (au début) qui explique sont fonctionnement et d’un commentaire court (après déclaration et initialisation d’une variable) qui indique le but de la variable :

  /*  This expression on a Source Text property reports the name 
      of a layer and the value of its Opacity property. */  
    
  var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer  
    
  thisComp.layer(myLayerIndex).name + ": \rOpacity = " +   thisComp.layer(myLayerIndex).opacity.value

Vous pouvez enregistrer une animation prédéfinie contenant une expression et la réutiliser dans d’autres projets à condition que l’expression ne fasse pas référence à des propriétés absentes de ces projets. Lorsque vous enregistrez une animation prédéfinie dans laquelle une propriété dispose d’une expression, mais ne comporte aucune image clé, seule l’expression est enregistrée. Si la propriété comporte une ou plusieurs images clés, l’animation prédéfinie enregistrée contient l’expression ainsi que toutes les valeurs d’images clés.

Vous pouvez copier une expression d’une propriété de calque, avec ou sans les images clés de cette propriété.

  • Pour copier une expression et des images clés d’une propriété dans d’autres propriétés, sélectionnez la propriété du calque source dans le panneau Montage, copiez la propriété du calque, sélectionnez les propriétés du calque cible et procédez au collage.
  • Pour copier une expression d’une propriété dans d’autres propriétés sans copier les images clés, sélectionnez la propriété source, choisissez Edition > Copier l’expression seulement, sélectionnez les propriétés cibles, puis procédez au collage.

Remarque :

La copie d’une expression sans images clés s’avère utile lorsque vous souhaitez copier simultanément plusieurs expressions et les coller dans un ou plusieurs calques ou lorsque vous souhaitez copier une expression et la coller dans plusieurs calques.

Remarque :

normalement, comme pour le collage des images clés et autres éléments, vous pouvez coller l’élément dans le calque cible et After Effects se charge de déterminer la propriété cible du collage. Vous pouvez, par exemple, procéder de cette façon pour copier les propriétés Position d’un calque à l’autre. Vous devez cependant sélectionner vous-même la propriété cible si vous collez une expression d’une propriété Position dans une propriété Echelle.

Paul Tuersley propose le script pt_ExpressEdit pour gérer et modifier les expressions.

Effets Options pour expressions

Utilisez un effet Options pour expressions pour ajouter une option permettant de manipuler les valeurs d’une ou de plusieurs propriétés en reliant la propriété à l’option à l’aide d’expressions. Un seul paramètre peut agir simultanément sur plusieurs propriétés.

Les noms des effets Options pour expressions indiquent le type d’option de propriété proposé : Paramètre angle, Paramètre case, Paramètre couleurs, Paramètre calque, Paramètre point d’effet, Paramètre glissière. After Effects CS5.5 et versions ultérieures comprend également un point de contrôle 3D.

Remarque :

Si vous appliquez une animation prédéfinie depuis la catégorie Animations prédéfinies > Shapes (Formes) > Backgrounds (Arrière-plans), vous verrez un effet personnalisé Contrôle de forme animée dans le panneau Options d’effet. Cet effet personnalisé est un effet de contrôle d’expression spécialisé qui a été conçu spécialement pour ces animations prédéfinies. Vous pouvez copier et coller cet effet sur d’autres calques, ou vous pouvez l’enregistrer sous forme d’animation prédéfinie de sorte que vous pourrez l’appliquer partout ailleurs.

Vous pouvez appliquer des effets Options pour expression à un calque en les faisant glisser sur le calque depuis le panneau Effets et paramètres prédéfinis, comme pour n’importe quel autre effet.

Vous pouvez appliquer des effets Options pour expression à n’importe quel calque. Si vous les appliquez à un calque nul, vous pourrez ensuite utiliser simplement ce calque comme calque de contrôle. A partir de ce contrôle, vous pouvez ensuite ajouter des expressions aux propriétés d’autres calques. Par exemple, vous pouvez ajouter l’effet Paramètre glissière à un calque nul (Nul 1) et appliquer cette expression aux propriétés Position de plusieurs calques :

  position+[0,10*(index-1)*thisComp.layer("Null 1").effect("Slider Control")("Slider")]

Dans cet exemple, lorsque vous faites glisser le curseur, tous les calques comportant cette expression bougent. Les calques portant des numéros d’index élevés (en bas du panneau Montage) exécutent un déplacement plus important que ceux portant des numéros d’index faibles (intervalles de 10 pixels). Vous pouvez positionner les images clés du curseur sur le calque nul ; tous les autres calques s’animent en conséquence.

Il est souvent utile de renommer chaque instance d’un effet Options pour expressions pour indiquer son utilisation. Par exemple, le fait de renommer une instance d’effet Paramètre couleurs en couleur du ciel permet de savoir plus facilement ce que cet effet contrôle. Vous pouvez renommer chaque instance d’un effet Options pour expressions tout comme vous le faites pour n’importe quel objet : sélectionnez-la dans le panneau Montage ou dans le panneau Options d’effet, puis appuyez sur la touche Entrée (Windows) ou Retour (Mac OS) du clavier.

Remarque :

Pour modifier la plage d’une commande, cliquez sur la valeur de la propriété soulignée avec le bouton droit de la souris (Windows) ou en maintenant la touche Contrôle enfoncée (Mac OS) et choisissez Modifier la valeur dans le menu contextuel.

Ressources supplémentaires sur les effets Options pour expression

Jerzy Drozda, Jr. (Maltaannon) propose, sur le site Web Motionworks, une démonstration particulièrement explicite des effets Paramètre angle et Options pour expression.

Todd Kopriva, pour sa part, explique comment utiliser la méthode sampleImage et l’effet Paramètre point d’effet pour un point donné au cours d’une correction colorimétrique. Pour en savoir plus, rendez-vous sans attendre sur son blog After Effects Region of Interest.

Conversion d’une expression en images clés

Dans certains cas, il est utile de convertir une expression en images clés. Par exemple, pour figer les valeurs d’une expression, vous pouvez la convertir en images clés, puis ajuster les images clés en conséquence. Vous pouvez également procéder à cette conversion pour accélérer le rendu d’expressions longues à évaluer. Lors de la conversion d’une expression en images clés, After Effects évalue l’expression, crée une image clé pour chaque image, puis désactive l’expression.

  1. Dans le panneau Montage, sélectionnez la propriété dans laquelle figure l’expression, puis choisissez Animation > Assistant d’image clé > Convertir l’expression en images clés.

Langage des expressions

Le langage des expressions After Effects est basé sur JavaScript 1.2 et intègre des objets complémentaires. After Effects n’utilise que le noyau standard de JavaScript 1.2 et non les extensions spécifiques aux navigateurs Web. After Effects contient son propre ensemble d’objets complémentaires (comme Layer, Comp, Footage et Camera), lesquels vous permettent d’obtenir la plupart des valeurs d’un projet After Effects.

Bien que le langage des expressions soit basé sur un langage de script, il existe une différence subtile, mais néanmoins essentielle, entre un script et une expression : tandis qu’un script invite une application à réaliser une action, une expression indique qu’une propriété est égale à une valeur.

Pour plus de détails sur JavaScript, reportez-vous à un ouvrage de référence JavaScript.

Lorsque vous créez des expressions, gardez à l’esprit les considérations suivantes :

  • La valeur d’une expression est la valeur de la dernière instruction évaluée.

  • JavaScript est un langage qui respecte la casse.

  • Les instructions ou lignes sont séparées par des points-virgules.

  • Les espaces entre les mots sont ignorés, sauf dans une chaîne.

En JavaScript, une valeur contenue dans un objet est appelée propriété. Dans After Effects, cependant, le terme propriété se réfère à des composants de calque définis dans le panneau Montage. C’est pour cette raison qu’After Effects désigne les propriétés JavaScript par les termes méthodes ou attributs. Dans la pratique, la différence entre une méthode et un attribut est que la méthode réalise généralement une opération pour créer sa valeur de sortie (retour), tandis qu’un attribut fait simplement référence à une valeur existante pour déterminer sa valeur de sortie (retour). Il est plus facile de distinguer une méthode d’un attribut en observant les parenthèses suivant le nom de la méthode et entourant ses arguments d’entrée.

Un objet est un élément contenant d’autres objets, attributs et méthodes. Les compositions, les calques et les métrages sont des exemples d’objets. Plus précisément, les éléments de compositions, de calques et de métrages sont des objets globaux, ce qui signifie qu’ils peuvent être utilisés dans n’importe quel contexte sans référence à un objet de niveau supérieur.

Accès aux attributs et aux méthodes

Vous pouvez utiliser le langage des expressions pour accéder aux attributs et aux méthodes des propriétés des calques. Pour accéder à une valeur, utilisez une chaîne de références d’objet dont les éléments sont séparés par l’opérateur point (.). Vous pouvez également utiliser des parenthèses pour chaîner des références d’objet au-delà du niveau du calque (par exemple, pour faire référence à des propriétés d’effet, des masques ou des animations de texte). Par exemple, pour lier la propriété Opacité dans le calque A à la propriété Intensité de l’effet Flou gaussien dans le calque B, entrez l’expression suivante dans le champ d’expression pour la propriété Opacité du calque A :

  thisComp.layer("Layer B").effect("Gaussian Blur")("Blurriness")

En lisant cette expression de gauche à droite, vous progressez de l’objet contenant de niveau supérieur jusqu’à la propriété spécifique :

  • L’objet global utilisé fait référence à la composition actuelle : thisComp.

  • Un objet de calque spécifique de cette composition est désigné par son nom : layer("Layer B").

  • Un objet d’effet spécifique de ce calque est désigné par son nom : effect("Gaussian Blur").

  • Une propriété spécifique de cet effet est désignée par son nom : ("Blurriness").

Pour le n-ième composant d’une propriété multidimensionnelle, tel que le composant y d’un point de contrôle d’effet, ajoutez [n] à la fin, comme suit :

  thisComp.layer("Layer B").effect("Advanced Lightning")("Origin")[1]

L’objet par défaut de toute expression est la propriété sur laquelle elle est rédigée, suivi du calque contenant l’expression ; il est donc inutile de spécifier la propriété. Par exemple, une expression de tremblement écrite sur la propriété Position d’un calque peut être écrite des deux façons suivantes :

  wiggle(5, 10) 
  position.wiggle(5, 10)

Insérez le calque et la propriété lorsque vous les extrayez d’un autre calque, ainsi que la propriété sur laquelle l’expression est rédigée. Par exemple, une expression écrite sur la propriété Opacité du calque B, la liant à la propriété Rotation du calque A, aura l’aspect suivant :

  thisComp.layer("Layer A").rotation

Remarque :

Pour étudier d’autres exemples d’expressions, utilisez l’icône de sélection pour relier une propriété de calque à une autre et examinez les expressions qui en résultent.

Sur son site Web redefinery, Jeff Almasol propose un script qui vous permet de déterminer comment faire référence à une propriété dans les expressions.

Ensembles et propriétés multidimensionnelles

Un ensemble (Array) est un type d’objet qui stocke un jeu ordonné de plusieurs nombres. Il se présente sous la forme d’une liste de nombres séparés par des virgules, apparaissant entre crochets, comme dans cet exemple :

  [10, 23]

Vous pouvez affecter un objet d’ensemble (Array) à une variable, afin de faciliter les références aux valeurs d’ensemble dans le reste de l’expression. Par exemple :

  myArray = [10, 23]

La dimension d’un objet d’ensemble correspond au nombre d’éléments dans l’ensemble. La dimension de myArray est 2. Dans After Effects, les propriétés peuvent avoir des dimensions différentes en fonction du nombre de leurs arguments de valeur. Dans le langage des expressions, les valeurs des propriétés sont soit des valeurs uniques (objets de nombre Number) ou des ensembles (objets d’ensemble Array).

Le tableau suivant donne des exemples de propriétés et de dimensions associées :

Dimension

Propriété

1

Rotation °

Opacité %

2

Echelle [x=largeur, y=hauteur]

Position [x, y]

Point d’ancrage [x, y]

Niveaux audio [gauche, droit]

3

Echelle [largeur, hauteur, profondeur]

Position 3D [x, y, z]

Point d’ancrage 3D [x, y, z]

Orientation [x, y, z]

4

Couleur [rouge, vert, bleu, alpha]

Vous pouvez accéder aux éléments individuels d’un objet d’ensemble en utilisant des parenthèses et un numéro d’index pour indiquer l’élément requis. Les éléments d’un objet d’ensemble sont indexés à partir de 0. Si l’on se base sur l’exemple précédent, l’élément myArray[0] a la valeur 10 et l’élément myArray[1] a la valeur 23.

Les deux expressions suivantes sont équivalentes :

  [myArray[0], 5] 
  [10, 5]

Les ensembles de la propriété Position sont indexés comme suit :

  • position[0] indique la coordonnée x de la position.

  • position[1] indique la coordonnée y de la position.

  • position[2] indique la coordonnée z de la position.

Les couleurs sont représentées par des ensembles en quatre dimensions [rouge, vert, bleu, alpha]. Dans les projets ayant un codage des couleurs de 8bpc ou 16 bpc, chaque valeur d’un ensemble va de 0 (noir) à 1 (blanc). Le rouge, par exemple, peut aller de 0 (aucune couleur) à 1 (rouge). [0,0,0,0] correspond donc à du noir transparent et [1,1,1,1] à du blanc complètement opaque. Dans les projets ayant un codage des couleurs de 32 bpc, les valeurs inférieures à 0 et supérieures à 1 sont autorisées.

Si vous utilisez un index supérieur à l’index du composant de dimension maximale d’un objet d’ensemble, After Effects renvoie une erreur. Par exemple, myArray[2] génère une erreur mais position[2] renvoie la coordonnée z de la position.

Dans le langage des expressions After Effects, de nombreuses propriétés et méthodes utilisent des objets d’ensemble en tant qu’arguments ou en renvoient en tant que valeurs. Par exemple, thisLayer.position est un objet d’ensemble bidimensionnel ou tridimensionnel, selon qu’il s’agit d’un calque 2D ou 3D.

Si vous voulez écrire une expression qui garde la valeur y d’une animation de Position, mais fixe la valeur x à 9, utilisez l’expression suivante :

  y = position[1]; 
  [9,y]

Ou plus succinctement encore :

  [9, position[1]]

Il s’agit d’une règle importante : voici donc un autre exemple. Si vous voulez combiner la valeur de position x du calque A avec la valeur de position y du calque B, vous devez utiliser l’expression suivante :

  x = thisComp.layer("Layer A").position[0];  
  y = thisComp.layer("Layer B").position[1];  
  [x,y]

Vous pouvez créer une expression faisant référence à une seule valeur de l’ensemble d’une propriété 2D ou 3D. Sauf indication contraire, c’est la première valeur qui est utilisée. Par exemple, si vous faites glisser l’icône de sélection de la propriété Rotation du calque A à la propriété Echelle du calque B, l’expression suivante apparaît :

  thisComp.layer("Layer B").scale[0]

Par défaut, cette expression utilise la première valeur de la propriété Echelle, qui est la largeur. Si vous préférez utiliser la hauteur, faites glisser l’icône de sélection directement vers la deuxième valeur (et non plus sur le nom de la propriété) ou modifiez l’expression comme suit :

  thisComp.layer("Layer B").scale[1]

A l’inverse, si vous faites glisser l’icône de sélection de la propriété Echelle du calque B à la propriété Rotation du calque A, After Effects crée automatiquement une variable, lui attribue la valeur à une dimension de la propriété Rotation, puis utilise cette variable pour les deux dimensions de la propriété Echelle :

  temp = thisComp.layer(1).transform.rotation; 
  [temp, temp]

Vecteurs

De nombreuses méthodes et propriétés d’After Effects utilisent ou renvoient des vecteurs. After Effects utilise un vecteur pour faire référence à un ensemble si ce dernier représente un point ou une direction dans l’espace. La propriété position d’After Effects, par exemple, renvoie un vecteur.

Toutefois, une fonction telle qu’audioLevels, qui renvoie un ensemble à deux dimensions (les niveaux des canaux droite et gauche), n’est pas appelée vecteur puisqu’elle ne représente ni un point ni une direction. Certaines fonctions d’After Effects acceptent les vecteurs en tant qu’arguments, mais cela n’est généralement utile que lorsque les valeurs représentent une direction. cross(vec1, vec2), par exemple, calcule un troisième vecteur à angle droit par rapport aux vecteurs d’entrée. Le produit croisé est utile si vec1 et vec2 sont deux vecteurs représentant des directions dans l’espace ; elle n’est d’aucune utilité s’ils représentent simplement deux ensembles arbitraires de nombres.

Indices et libellés

L’indexation des éléments Layer, Effect et Mask d’After Effects part de 1. Par exemple, le premier calque du panneau Montage est layer(1).

Il est généralement préférable d’utiliser le nom du calque, de l’effet ou du masque au lieu d’un nombre pour éviter les confusions et les erreurs s’ils sont déplacés ou en cas de modification des arguments lors des mises à jour et des mises à niveau du produit. Lorsque vous spécifiez un nom, entourez-le toujours de guillemets droits. Par exemple, la première de ces expressions est plus lisible que la seconde et continue à fonctionner même si vous modifiez l’ordre des effets :

  effect("Colorama").param("Get Phase From")  
  effect(1).param(2)

Temps d’expression

L’instant d’une expression est toujours celui de la composition (non du calque) et se mesure en secondes. L’instant par défaut de toute expression est l’instant de la composition auquel elle est évaluée. Les deux expressions suivantes utilisent le temps de composition par défaut et renvoient les mêmes valeurs :

  thisComp.layer(1).position 
  thisComp.layer(1).position.valueAtTime(time)

Pour utiliser un instant relatif, ajoutez une valeur temporelle incrémentielle à l’argument time. Par exemple, pour obtenir une valeur Position 5 secondes avant l’instant courant, utilisez l’expression suivante :

  thisComp.layer(1).position.valueAtTime(time-5)

Par défaut, les références temporelles aux propriétés dans les compositions imbriquées utilisent le temps par défaut initial des compositions et non le temps redistribué. Toutefois, si vous utilisez la fonction source pour récupérer une propriété, le temps redistribué est utilisé.

Par exemple, si la source d’un calque de la composition réceptrice est une composition imbriquée et que la composition réceptrice comporte un remappage temporel, lorsque vous obtenez les valeurs de position d’un calque de la composition imbriquée avec l’expression suivante, ces valeurs utilisent le temps par défaut de la composition :

  comp("nested composition").layer(1).position

Néanmoins, si vous accédez au calque 1 grâce à la fonction source, les valeurs de position utilisent le temps redistribué :

  thisComp.layer("nested composition").source.layer(1).position

Remarque :

si vous utilisez un instant spécifique dans une expression, le temps redistribué est ignoré.

Dans la mesure où les expressions opèrent sur le temps en unités de secondes (et non en images), il peut parfois s’avérer nécessaire d’utiliser des méthodes de conversion temporelle pour convertir les valeurs temporelles de manière à réaliser des opérations sur les images (Voir la section Méthodes de conversion temporelle (expression de référence)).

Erreurs dans les expressions

En cas d’échec de l’évaluation d’une expression, des erreurs d’expression s’affichent dans une bannière d’avertissement au bas des panneaux Composition et Calque. After Effects ne désactive pas l’expression, mais continue à l’évaluer. La bannière d’avertissement reste affichée tant que l’évaluation n’aboutit pas, c’est-à-dire, tant que l’expression n’a pas été corrigée ou manuellement désactivée.

Voici un exemple de bannière d’avertissement d’une erreur d’expression :

Exemple d’une erreur d’expression
Exemple d’une erreur d’expression

A. Flèche gauche ou droite B. Afficher l’expression C. Agrandir/Réduire l’avertissement 
  • La flèche vers la gauche ou vers la droite affiche l’erreur d’expression précédente ou suivante lorsque l’évaluation de plusieurs expressions a échoué.
  • Le bouton Afficher l’expression (loupe) affiche la propriété dont l’expression a échoué dans le panneau Montage. Si l’expression se trouve dans une autre composition, cette dernière s’ouvre.
  • Le bouton Agrandir/Réduire l’avertissement (flèches vers le haut/bas) affiche ou masque le texte d’erreur.

Le texte de l’erreur d’expression est affiché sur une seule ligne et est coupé à la largeur du panneau Composition.

Pour afficher tout le texte de l’erreur d’expression :

Cliquez sur en regard de l’expression. L’erreur complète s’affiche dans une boîte de dialogue.

Pour masquer la bannière d’avertissement :

Sélectionnez After Effects CC (Mac OS) ou Édition (Windows) > Préférences > Général et désactivez l’option « Afficher la bannière d’avertissement lorsque le projet contient des erreurs d’expression ».

Lorsque cette option est désactivée, la bannière d’avertissement reste cachée, même lorsque de nouvelles erreurs d’expression se produisent.

Réactivez cette option pour afficher les erreurs d’expression.

Ressources en ligne

De nombreux exemples de cette section reposent sur des exemples fournis par Dan Ebberts. Sur son site Web MotionScript, Dan a également rassemblé une collection impressionnante d’expressions et de didacticiels pratiques pour apprendre à manier les expressions.

Vous trouverez pléthore d’exemples et d’informations sur les expressions, assortis de scripts et d’animations prédéfinies, sur le forum AE Enhancers.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne