toute l'information sur la réalisation vidéo numérique
 
 
les faqs tutoriaux news tests et comparatifs fiches Repaire themes annuaires chercher forums


Tutoriaux After Effects      Le langage des expressions  par nab



L'escargot


L'escargot fait référence au petit icône en forme de spirale qui apparait lorsque nous ajoutons une expression à une propriété.

l'escargot

Cet outil va nous permettre d'écrire des expressions "sans effort". Regardons ce qui se passe si l'on amène l'escargot ( en maintenant le click sur l'icône et en déplaçant la souris) jusqu'à la propriété d'échelle.

l'escargot pour lier

L'expression suivante est apparue:

scale[ 0 ]

Elle signifie "Affecter à la rotation la valeur de la première composante du vecteur échelle". La rotation est un vecteur de dimension 1, en revanche l'échelle est un vecteur de dimension 2. On ne peut donc pas affecter à la rotation un vecteur de dimension 2, si bien que After Effects ne va sélectionner que la première composante de ce vecteur échelle (qui correspond à l'échelle hoizontale de notre calque).

La rotation du calque est dorénavant liée à son échelle (à son échelle horizontale plus précisément).

Si nous décidons d'animer l'échelle de notre calque, il va également s'animer en rotation.

Mettons par exemple 4 clés sur la propriété d'échelle (pour modifier uniquement la composante horizontale de l'échelle, cliquons sur l'icône représentant un maillon de chaîne, le "huit" couché), clé1:0, clé2:90, clé3:90, clé4:0. Nous obtenons l'animation suivante



Lorsque la taille du solide augmente (ou plutôt la valeur de son échelle horizontale), sa rotation augmente proportionnellement.


Allons maintenant un peu plus loin, créons un deuxième solide ("Rouge uni 1") et relions (à l'aide de l'escargot) sa propriété d'échelle à la propriété de rotation de notre calque d'origine ("Jaune uni 1"). Voilà à quoi ressemble notre fenêtre de montage:

lien entre les propriétés

et l'animation qui en résulte



Que s'est-il passé ? Une nouvelle expression a fait son apparition dans la propriété d'échelle de notre calque rouge:

      temp = thisComp.layer( " Jaune uni 1 " ).rotation ;
      [ temp , temp ]


La première instruction définit une variable "temp" (on parle également de "déclarer une variable") à laquelle on affecte la valeur de la rotation du calque "Jaune uni 1" qui fait lui-même partie de notre composition "thisComp".
La deuxième ligne, étant ici considérée comme la dernière instruction de l'expression, est assimilée à une affectation de valeur à la propriété concernée (ici l'échelle du calque rouge).
L'échelle de notre calque est un vecteur de dimension 2, il n'est donc pas possible de lui affecter directement la valeur de la rotation, qui elle, est un vecteur de dimension 1. C'est pourquoi After Effects par défaut va créer un vecteur de dimension 2, en attribuant à chacune de ses composantes la valeur de la rotation (ici stockée dans la variable "temp").


Profitons de cette occasion pour aller encore un peu loin dans la manipulation d'expressions. Effaçons l'expression du calque rouge et les points clés du calque jaune pour faire un autre test.
Commençons par animer l'échelle verticale du calque jaune, clé1:0, clé2:100, clé3:0. A l'aide de l'escargot relions la propriété d'échelle du calque rouge à celle du calque jaune. L'expression qui apparait automatiquement dans la propriété d'échelle du calque rouge est la suivante:

      thisComp.layer( " Jaune uni 1 " ).scale ;

L'échelle du calque jaune et celle du calque rouge étant de même dimension (i.e. 2), il n'y a pas de problèmes de compatibilité. Les deux calques auront à chaque instant la même échelle.

Modifions maintenant cette expression comme indiqué sur la capture suivante:

modifier l'expression donnée par l'escargot

Notons qu'il est également possible de pointer l'escargot vers une seule des composantes d'une propriété. Si l'on souhaite récupérer uniquement la valeur verticale de l'échelle par exemple, il suffit de faire glisser l'escargot jusqu'à cette composante, plutôt que sur le nom même de la propriété. Ce qui aurait évité dans notre cas d'avoir à modifier l'expression délivrée par l'escargot.

Si nous avons bien compris la partie précédente nous devons nous rendre compte que l'expression calcule simplement le double de l'échelle verticale du calque jaune et l'applique au calque rouge. Cependant comme nous sommes encore au début de notre apprentissage, il vaut mieux détailler pas à pas l'expression.
La première instruction

      y = thisComp.layer( " Jaune uni 1 " ).scale[ 1 ] ;

déclare la variable "y" et lui affecte la valeur de la deuxième composante du vecteur échelle du calque "Jaune uni 1" (i.e. son échelle verticale).

La deuxième instruction est

      [ scale[ 0 ] , 2 * y ] ;

Il s'agit de la dernière instruction évaluée dans l'expression, After Effects considèrera donc que le résultat de cette instruction sera la valeur à affecter à la propriété d'échelle du calque rouge.

Le vecteur représenté possède 2 composantes, il est donc de dimension 2. Il doit être de dimension 2 puisque l'échelle de notre calque est de dimension 2.

La première composante "scale[0]" fait référence à l'échelle horizontale du calque rouge, lorsque l'expression n'est pas prise en compte (i.e. la valeur de la propriété lorsque nous désactivons l'expression en cliquant sur le symbole "="), dans notre exemple cette valeur est 100 et reste à 100 tout au long de l'animation.

La seconde composante "2*y" indique simplement que l'on affecte à la deuxième composante du vecteur échelle de notre calque rouge, 2 fois la valeur de l'échelle verticale du calque jaune.

En faisant une prévisualisation, nous obtenons cette animation:





Remarque

Nous allons fréquemment être amenés à modifier ou compléter l'expression "de base" délivrée par l'utilisation de l'escargot pour créer des expressions plus élaborées. L'escargot est simplement un outil pour éviter d'avoir à réécrire à la main des "bouts" d'expressions tels que "thisComp.layer("Jaune uni 1").scale" dans notre exemple. C'est uniquement pour nous faciliter le travail, mais cet outil n'est absolument pas indispensable. Si vous préférez tout écrire à l'aide de votre clavier vous êtes libre de le faire, le résultat sera le même. Néanmoins je vous conseille de l'utiliser car en plus du gain de temps il vous assure de ne pas faire d'erreur dans l'orthographe notamment.