Adobe

Exemples d’expressions


 
By clicking Submit, you accept the Adobe Terms of Use.
 

  • Ressources en ligne relatives à des exemples d’expressions
  • Exemple d’expression : déplacement d’un calque selon un cercle
  • Exemple d’expression : rotation des aiguilles d’une horloge
  • Exemple d’expression : placement d’un calque entre deux autres
  • Exemple d’expression : création d’une traînée d’images
  • Exemple d’expression : création d’un renflement entre deux calques
  • Exemple d’expression : opacité de fondu d’un calque 3D en fonction de la distance de la caméra
  • Exemple d’expression : obtention d’un calque 3D invisible si dos à la caméra
  • Exemple d’expression : basculement du calque à l’horizontale si dos à la caméra
  • Exemple d’expression : animation de l’échelle à chaque repère de calque
  • Exemple d’expression : lancement ou arrêt du tremblement à un moment déterminé
  • Exemple d’expression : mise en correspondance du plan focal de la caméra avec un autre calque

De nombreux exemples de cette section sont basés sur des expressions fournies par Dan Ebberts.

    Haut de la page

    Ressources en ligne relatives à des exemples d’expressions

    Sur son site Web MotionScript, Dan Ebberts propose des exemples d’expressions et des didacticiels pour apprendre à manier les expressions. Il propose notamment un excellent article traitant de la détection de collision.

    Trish et Chris Meyer proposent sur le site Web de ProVideo Coalition une série d’articles sur les expressions. Ces articles contiennent de nombreux exemples utiles.

    Sur son site Web, Colin Braley met à disposition un didacticiel et un projet-type qui expliquent comment utiliser des expressions pour qu’un calque en repousse d’autres naturellement.

    Le forum AE Enhancers contient de nombreux exemples et beaucoup d’informations utiles sur les expressions, ainsi que des scripts et des animations prédéfinies. Dans cet article posté sur le forum AE Enhancers, Paul Tuersley propose un didacticiel et un projet-type qui expliquent comment utiliser des expressions pour animer plusieurs calques en essaim.

    Sur son site Web, Rick Gerard illustre dans un exemple le roulement d’un objet carré sur un sol en conservant ses faces en contact avec le plan du sol.

    Sur le site Web Creative COW, Carl Larsen propose un didacticiel vidéo qui illustre l’utilisation des expressions et du lien de parenté pour lier la rotation d’un train de roues au mouvement horizontal d’un véhicule.

    Marcus Geduld dévoile quelques passages de son livre After Effects Expressions sur le site Web Focal Press. Dans la section intitulée « String Manipulation » (Manipulation de chaînes), Marcus montre ainsi comment utiliser le langage JavaScript de base pour manipuler le texte de la propriété Texte source d’un calque. Il explique même comment utiliser un ensemble de chaînes, de telle sorte que la propriété Texte source d’un calque puisse être définie sur un mot spécifique d’une liste. Dans la section intitulée « Physical Simulations » (Simulations physiques), Marcus montre comment utiliser des expressions pour les orbites, les rebonds, les mouvements de secouement et la détection de collision.

    Sur son site Web, Chris Zwar présente un exemple de projet qui permet de disposer automatiquement des images fixes ou des vidéos dans une grille (à l’instar d’un mur vidéo). Vous pouvez régler aisément la position et l’espacement à l’aide de curseurs connectés à un système d’expressions. Le projet comprend trois compositions : une pour les images fixes, une pour les vidéos et une pour créer un story-board automatique dans lequel la vidéo est échantillonnée à des intervalles définis par l’utilisateur et alignée dans une grille.

    Le site Web de JJ Gifford présente plusieurs projets-types illustrant l’utilisation des expressions.

    Dans le didacticiel vidéo qu’il propose sur son site Web, Rhys Enniks utilise des expressions, ainsi qu’un éventail d’animations de texte et de sélecteurs de plages, pour animer du texte comme s’il était saisi sur un écran d’ordinateur.

    Maltaannon (Jerzy Drozda, Jr.) propose sur son site Web un didacticiel vidéo qui explique comment utiliser les expressions pour créer un volumètre à l’aide des résultats de la commande Convertir les données audio en images clés.

    Sur son site Web graymachine, Harry Frank explique dans un didacticiel comment lire les données d’un fichier texte externe à l’aide des expressions.

    Haut de la page

    Exemple d’expression : déplacement d’un calque selon un cercle

    Vous pouvez également créer des expressions ne faisant pas appel aux propriétés d’autres calques. Par exemple, vous pouvez déplacer un calque selon un cercle parfait.

    1. Sélectionnez un calque, appuyez sur la touche P pour faire apparaître sa propriété Position dans le panneau Montage et cliquez sur le chronomètre à gauche du nom de la propriété tout en maintenant la touche Alt (Windows) ou Option (Mac OS) enfoncée.
    2. Entrez ce qui suit dans le champ d’expression :
        [(thisComp.width/2), (thisComp.height/2)] + [Math.sin(time)*50, -Math.cos(time)*50]
    Haut de la page

    Exemple d’expression : rotation des aiguilles d’une horloge

    Vous pouvez utiliser l’icône de sélection pour lier les valeurs de rotation entre plusieurs calques et animer les aiguilles de l’horloge (lorsque l’aiguille des heures parcourt une heure, l’aiguille des minutes fait un tour complet du cadran). Ce genre d’animation serait très long à mettre en place si vous deviez positionner les images clés des deux calques d’aiguille. Grâce à l’icône de sélection, quelques minutes suffisent.

    1. Importez ou créez deux calques longs et étroits pour l’aiguille des heures et l’aiguille des minutes (Voir la section Calques et métrages de couleur unie).
    2. Définissez les points d’ancrage aux extrémités des calques (voir la section Points d’ancrage du calque).
    3. Déplacez les calques de façon à placer les points d’ancrage au centre de la composition (voir la section Déplacement de calques dans l’espace).
    4. Positionnez les images clés de rotation de l’aiguille des heures (Voir la section Définition ou ajout d’images clés.)
    5. Sélectionnez la propriété Rotation pour le calque de l’aiguille des minutes et choisissez Animation > Ajouter l’expression.
    6. Faites glisser l’icône de sélection sur la propriété Rotation pour l’aiguille des heures. L’expression suivante est alors proposée :
        thisComp.layer("hour hand").rotation
    7. Pour faire en sorte que l’aiguille des minutes tourne douze fois plus vite que celle des heures, ajoutez *12 à la fin de l’expression, comme indiqué ci-après :
        thisComp.layer("hour hand").rotation*12

    Guy Chen nous fait découvrir sur After Effects Exchange, depuis le site Web d’Adobe, un projet simple dans lequel il approfondit cette idée en établissant une relation entre la rotation des aiguilles des minutes et des heures et la rotation de l’aiguille des secondes.

    Harry Frank propose, sur son site Web graymachine, un projet d’horloge dans lequel le mouvement des aiguilles est lié à un effet Options pour expressions (Paramètre angle) sur un calque nul qui contrôle l’heure (Voir la section Effets Options pour expressions.)

    Haut de la page

    Exemple d’expression : placement d’un calque entre deux autres

    Cet exemple d’expression positionne et maintient un calque à une distance équivalente de deux autres calques.

    1. Débutez avec trois calques (voir la section Création de calques).
    2. Animez la position des deux premiers calques dans le panneau Montage (voir la section Trajectoires).
    3. Sélectionnez le troisième calque, appuyez sur la touche P pour faire apparaître la propriété Position et appuyez sur le bouton du chronomètre  à gauche du nom de la propriété tout en maintenant la touche Alt (Windows) ou Option (Mac OS) enfoncée.
    4. Entrez ce qui suit dans le champ d’expression :
        (thisComp.layer(1).position + thisComp.layer(2).position)/2
    Haut de la page

    Exemple d’expression : création d’une traînée d’images

    Cet exemple d’expression indique qu’un calque doit rejoindre la position du calque de niveau supérieur dans le panneau Montage après un certain délai (dans ce cas, 0,5 seconde). Des expressions similaires peuvent être conçues pour d’autres propriétés géométriques.

    1. Commencez avec deux calques de couleur unie à une échelle de 30 % environ de la taille de la composition (Voir la section Calques et métrages de couleur unie).
    2. Animez la position du premier calque (voir la section Trajectoires).
    3. Sélectionnez le deuxième calque, appuyez sur la touche P pour faire apparaître la propriété Position et appuyez sur le bouton du chronomètre  à gauche du nom de la propriété tout en maintenant la touche Alt (Windows) ou Option (Mac OS) enfoncée.
    4. Entrez ce qui suit dans le champ d’expression :
        thisComp.layer(thisLayer, -1).position.valueAtTime(time - .5)
    5. Dupliquez le dernier calque cinq fois en le sélectionnant et en appuyant cinq fois sur Ctrl + D (Windows) ou Commande + D (Mac OS).

    Tous les calques suivent la même trajectoire avec un décalage de 0,5 seconde par rapport au précédent.

    Sur son site Web MotionScript, Dan Ebberts fournit d’autres exemples et techniques relatifs à la création de traînées d’images.

    Haut de la page

    Exemple d’expression : création d’un renflement entre deux calques

    Cet exemple d’expression synchronise le centre de l’effet de renflement d’un calque avec la position d’un autre calque. Vous pouvez par exemple créer l’effet d’une loupe qui se déplace sur un calque, la portion de l’image située en dessous grossissant, par effet de renflement, au fur et à mesure que la loupe (c’est-à-dire le calque situé au-dessus) se déplace. Cette expression utilise la méthode fromWorld qui garantit un bon fonctionnement de l’expression, quels que soient les déplacements du calque loupe (ou du calque situé en dessous). L’expression restera intacte, même si vous effectuez une rotation ou un changement d’échelle sur le calque sous-jacent.

    Vous pouvez utiliser d’autres effets avec cette expression (comme l’ondulation).

    1. Débutez avec deux calques, dont l’un pour la loupe (ou objet similaire comportant un trou central) nommé Loupe (voir la section Création de calques).
    2. Animez la position du calque Loupe (voir la section Trajectoires).
    3. Appliquez l’effet de renflement à l’autre calque (voir la section Application d’un effet ou d’une animation prédéfinie).
    4. Sélectionnez la propriété Centre de l’effet de renflement dans le panneau Montage et choisissez Animation > Ajouter une expression , ou appuyez sur Alt (Windows) ou sur Option (Mac OS) et cliquez sur le bouton chronomètre de la propriété.
    5. Sélectionnez le texte de l’expression proposée par défaut et entrez :
        fromWorld(thisComp.layer("Magnifier").position)
    Haut de la page

    Exemple d’expression : opacité de fondu d’un calque 3D en fonction de la distance de la caméra

     Appliquez l’expression suivante à la propriété Opacité d’un calque 3D :
      startFade = 500; // Start fade 500 pixels from camera. 
      endFade = 1500;  // End fade 1500 pixels from camera. 
      try{ // Check whether there's a camera. 
          C = thisComp.activeCamera.toWorld([0,0,0]); 
      }catch(err){ // No camera, so assume 50mm. 
          w = thisComp.width * thisComp.pixelAspect; 
          z = (w/2)/Math.tan(degreesToRadians(19.799)); 
          C = [0,0,-z]; 
      } 
      P = toWorld(anchorPoint); 
      d = length(C,P); 
      linear(d,startFade,endFade,100,0)

    Le fondu commence à une distance de 500 pixels de la caméra et se termine à 1 500 pixels de la caméra. La méthode d’interpolation linéaire sert à faire correspondre les valeurs de distance avec des valeurs d’opacité.

    Haut de la page

    Exemple d’expression : obtention d’un calque 3D invisible si dos à la caméra

     Appliquez l’expression suivante à la propriété Opacité d’un calque 3D :
      if (toCompVec([0, 0, 1])[2] > 0 ) value else 0

    Dan Ebberts explique cette expression sur son site Web MotionScript.

    Haut de la page

    Exemple d’expression : basculement du calque à l’horizontale si dos à la caméra

     Appliquez l’expression suivante à la propriété Echelle d’un calque 3D :
      if (toCompVec([0, 0, 1])[2] > 0 ) value else [-value[0], value[1], value[2]]
    Haut de la page

    Exemple d’expression : animation de l’échelle à chaque repère de calque

     Appliquez l’expression suivante à la propriété Echelle pour faire osciller un calque à chaque repère :
      n = 0; 
      t = 0; 
      if (marker.numKeys > 0){ 
          n = marker.nearestKey(time).index; 
          if (marker.key(n).time > time) n--; 
      } 
      if (n > 0) t = time - marker.key(n).time; 
        
      amp = 15; 
      freq = 5; 
      decay = 3.0; 
        
      angle = freq * 2 * Math.PI * t; 
      scaleFact = (100 + amp * Math.sin(angle) / Math.exp(decay * t)) / 100; 
      [value[0] * scaleFact, value[1] / scaleFact];
    Haut de la page

    Exemple d’expression : lancement ou arrêt du tremblement à un moment déterminé

    Vous pouvez utiliser n’importe quelle expression à la place de l’expression wiggle employée ici pour lancer et arrêter l’influence d’une expression à un moment déterminé.

    • Appliquez l’expression suivante à une propriété pour commencer à la faire osciller au bout de 2 secondes :
        timeToStart = 2; 
        if (time > timeToStart){ 
            wiggle(3,25); 
        }else{ 
            value; 
        }
    • Appliquez l’expression suivante à une propriété pour arrêter de la faire osciller au bout de 4 secondes :
        timeToStop = 4; 
        if (time > timeToStop){ 
            value; 
        }else{ 
            wiggle(3,25); 
        }
    • Appliquez l’expression suivante à une propriété pour commencer à la faire osciller au bout de 2 secondes et arrêter de la faire osciller au bout de 4 secondes :
        timeToStart = 2; 
        timeToStop = 4; 
          
        if ((time > timeToStart) && (time < timeToStop)){ 
            wiggle(3,25); 
        }else{ 
            value; 
        }
    Haut de la page

    Exemple d’expression : mise en correspondance du plan focal de la caméra avec un autre calque

     Appliquez l’expression suivante à la propriété Distance de mise au point d’un calque de caméra pour que sa distance de mise au point corresponde à la distance jusqu’au point d’ancrage d’un calque appelé « cible » :
      target = thisComp.layer("target"); 
      V1 = target.toWorld(target.anchorPoint) - toWorld([0,0,0]); 
      V2 = toWorldVec([0,0,1]); 
      dot(V1,V2);

    Dan Ebberts détaille cet exemple d’expression sur son site Web Motionscript.

    Voir aussi

    Ajout, modification et suppression d’expressions

    Création d’un calque de caméra et modification des paramètres de caméra

    Informations juridiques   |   Politique de confidentialité en ligne