Viele der in diesem Abschnitt genannten Beispiele basieren auf Expressions von Dan Ebberts.

Online-Ressourcen für Expression-Beispiele

Darüber hinaus bietet Dan Ebberts auf seiner Motionscript-Website Beispiel-Expressions und Lehrgänge mit Erläuterungen für die Arbeit mit Expressions an. Dort finden Sie beispielsweise eine hervorragende Seite zur Kollisionserkennung.

Colin Braley zeigt auf seiner Website anhand eines Lehrgangs und eines Beispielprojekts, wie mit Expressions erreicht werden kann, dass eine Ebene andere Ebenen auf natürlich wirkende Weise abstößt.

Im AE Enhancers-Forum finden Sie viele Beispiele und nützliche Informationen zu Expressions sowie Skripte und Animationsvorgaben: In diesem Beitrag im AE Enhancers-Forum verdeutlicht Paul Tuersley anhand eines Lehrgangs und eines Beispielprojekts, wie mit Expressions mehrere Ebenen in einem Schwarm animiert werden können.

Rick Gerard zeigt auf seiner Website anhand eines Beispiels, wie ein quadratisches Objekt so auf dem Boden gerollt werden kann, dass die Seiten in Kontakt mit dem Boden bleiben.

Carl Larsen bietet auf der Creative COW-Website einen Video-Lehrgang an, in dem erläutert wird, wie Sie mit Expressions und hierarchischen Anordnungen die Rotation von Rädern mit der horizontalen Bewegung eines Fahrzeugs in Beziehung setzen können.

Chris Zwar bietet auf seiner Website ein Beispielprojekt zum automatischen Anordnen von Standbildern oder Videos in einem Raster (z. B. einer Video-Wand) an. Sie können die Positionen und Abstände problemlos mit Schiebereglern anpassen, die mit einem System von Expressions verknüpft sind. Das Projekt enthält drei Kompositionen: eines für Standbilder, eines für Videos und eines zum Erstellen von automatischen Storyboards, in denen in benutzerdefinierten Intervallen ein Video aufgenommen und in einem Raster angeordnet wird.

Auf JJ Giffords Website finden Sie mehrere Beispielprojekte zur Verwendung von Expressions.

Maltaannon (Jerzy Drozda, Jr.) stellt auf seiner Website einen Video-Lehrgang zur Verfügung, der Ihnen zeigt, wie Sie Expressions verwenden, um mit den Ergebnissen des Befehls „Audio in Keyframes konvertieren“ eine Lautstärkeanzeige zu erstellen.

Harry Frank hat auf seiner /graymachine-Website eine Schulung veröffentlicht, in der die Verwendung von Expressions für das Lesen von Daten aus einer externen Textdatei erläutert wird.

Expression-Beispiel: Ebene kreisen lassen

Sie können Expressions erstellen, ohne dazu die Eigenschaften aus anderen Ebenen verwenden zu müssen. Sie können eine Ebene in einem exakten Kreis kreisen lassen.

  1. Wählen Sie eine Ebene aus, drücken Sie „P“, um deren Eigenschaft „Position“ im Zeitleistenfenster anzuzeigen, und klicken Sie bei gedrückter Alt-Taste (Windows) bzw. Wahltaste (Mac OS) auf die Stoppuhr links neben dem Eigenschaftsnamen.
  2. Geben Sie Folgendes in das Expression-Feld ein:
      [(thisComp.width/2), (thisComp.height/2)] + [Math.sin(time)*50, -Math.cos(time)*50]

Expression-Beispiel: Zeiger einer Uhr drehen

Mit dem Expression-Auswahlwerkzeug können Sie die Drehungswerte der Ebenen verknüpfen, um die Uhrzeiger zu animieren. Während sich der Stundenzeiger von Stunde zu Stunde bewegt, legt der Minutenzeiger den gesamten Umfang des Zifferblatts zurück. Diese Art von Animation würde ziemlich lange dauern, wenn Sie für beide Zeigerebenen Keyframes einrichten müssten. Mit dem Expression-Auswahlwerkzeug brauchen Sie hierfür nur ein paar Minuten.

  1. Importieren oder erstellen Sie zwei lange, schmale Farbflächenebenen: eine für den Stundenzeiger („hour hand“) und eine für den Minutenzeiger („minute hand“). (Siehe Farbflächenebenen und vollflächig farbige Footageelemente.)
  2. Legen Sie die Ankerpunkte an den Enden der Ebenen fest. (Siehe Ankerpunkte von Ebenen.)
  3. Verschieben Sie die Ebenen so, dass die Ankerpunkte sich in der Mitte der Komposition befinden. (Siehe Verschieben von Ebenen im Raum.)
  4. Richten Sie Keyframes für die Eigenschaft „Drehung“ der Stundenzeigerebene ein. (Siehe Festlegen oder Hinzufügen von Keyframes.)
  5. Wählen Sie für die Ebene „hour hand“ die Eigenschaft „Drehung“ aus und klicken Sie dann auf „Animation“ > „Expression hinzufügen“.
  6. Ziehen Sie das Auswahlwerkzeug für den Stundenzeiger auf die Eigenschaft „Drehung“. Daraufhin erscheint die folgende Expression:
      thisComp.layer("hour hand").rotation
  7. Damit sich nun der Minutenzeiger zwölf Mal so schnell wie der Stundenzeiger dreht, geben Sie am Ende der Expression *12 ein:
      thisComp.layer("hour hand").rotation*12

Expression-Beispiel: Eine Ebene zwischen zwei anderen positionieren

Mit dieser Beispiel-Expression wird eine Ebene erstellt und in gleichem Abstand zwischen den beiden anderen Ebenen positioniert und dort gehalten.

  1. Beginnen Sie mit drei Ebenen. (Siehe Erstellen von Ebenen.)

  2. Animieren Sie die Positionen der ersten beiden Ebenen im Zeitleistenfenster. (Siehe Bewegungspfade.)

  3. Wählen Sie die dritte Ebene aus, drücken Sie „P“, um die Eigenschaft „Position“ anzuzeigen, und klicken Sie bei gedrückter Alt-Taste (Windows) bzw. Wahltaste (Mac OS) auf die Stoppuhr-Schaltfläche  links neben dem Eigenschaftsnamen.
  4. Geben Sie Folgendes in das Expression-Feld ein:
      (thisComp.layer(1).position + thisComp.layer(2).position)/2

Expression-Beispiel: Bildspur erstellen

Mit dieser Beispiel-Expression weisen Sie eine Ebene an, dieselbe Position wie die nächsthöhere Ebene im Zeitleistenfenster einzunehmen, dabei aber eine genau festgelegte Verzögerung einzuhalten (in diesem Fall 0,5 Sekunden). Auch für die anderen geometrischen Eigenschaften können Sie gleichartige Expressions einrichten.

  1. Beginnen Sie mit zwei Farbflächenebenen, die auf ca. 30 % der Kompositionsgröße skaliert sind. (Siehe Farbflächenebenen und vollflächig farbige Footageelemente.)
  2. Animieren Sie die Position der ersten Ebene. (Siehe Bewegungspfade.)
  3. Wählen Sie die zweite Ebene aus, drücken Sie „P“, um die Eigenschaft „Position“ anzuzeigen, und klicken Sie bei gedrückter Alt-Taste (Windows) bzw. Wahltaste (Mac OS) auf die Stoppuhr-Schaltfläche  links neben dem Eigenschaftsnamen.
  4. Geben Sie Folgendes in das Expression-Feld ein:
      thisComp.layer(thisLayer, -1).position.valueAtTime(time - .5)
  5. Duplizieren Sie die letzte Ebene fünf Mal, indem Sie diese markieren und die Strg-Taste+D (Windows) bzw. die Befehlstaste+D (Mac OS) fünf Mal drücken.

Alle Ebenen folgen demselben Pfad, wobei zwischen den Ebenen eine Verzögerung von jeweils 0,5 Sekunden auftritt.

Dan Ebberts stellt weitere Beispiele und Techniken für das Erstellen von Spuren von Bildern auf der MotionScript-Website bereit.

Expression-Beispiel: Komplexes Wölben zwischen zwei Ebenen erstellen

Mit dieser Beispiel-Expression können Sie das Argument „Mittelpunkt“ des Effekts „Komplexes Wölben“ in einer Ebene mit der Position einer anderen Ebene synchronisieren. So lässt sich z. B. ein Effekt erstellen, der aussieht, als würden Sie eine Lupe über eine Ebene führen, wobei sich der Inhalt, der direkt unter der Lupe liegt, beim Bewegen der Lupe (also der oben liegenden Ebene) wölbt. Bei dieser Expression kommt die Methode fromWorld zum Einsatz, die dafür sorgt, dass die Expression auch dann funktioniert, wenn Sie nicht die oben liegende Lupenebene, sondern die unten liegende Ebene bewegen. Sie können die unten liegende Ebene drehen oder skalieren, ohne dass sich dies negativ auf die Expression auswirken würde.

Diese Expression kann auch mit anderen Effekten, wie z. B. „Kräuseln“, verwendet werden.

  1. Beginnen Sie mit zwei Ebenen. Erstellen Sie auf der einen Ebene eine Lupe oder ein ähnliches Objekt mit einem Loch in der Mitte, und nennen Sie die Ebene „Magnifier“. (Siehe Erstellen von Ebenen.)
  2. Animieren Sie die Position der Lupenebene. (Siehe Bewegungspfade.)
  3. Weisen Sie der anderen Ebene den Effekt „Komplexes Wölben“ zu. (Siehe Anwenden von Effekten oder Animationsvorgaben.)
  4. Gehen Sie im Zeitleistenfenster unter dem Effekt „Komplexes Wölben“ zur Eigenschaft „Mittelpunkt“ und wählen Sie „Animation“ > „Expression hinzufügen“ oder klicken Sie bei gedrückter Alt-Taste (Windows) bzw. Wahltaste (Mac OS) auf die Stoppuhr-Schaltfläche für die Eigenschaft.
  5. Wählen Sie den Expression-Text aus und geben Sie Folgendes ein:
      fromWorld(thisComp.layer("Magnifier").position)

Expression-Beispiel: Deckkraft einer 3D-Ebene entsprechend der Entfernung zur Kamera blenden

  • Wenden Sie die folgende Expression auf die Eigenschaft „Deckkraft“ einer 3D-Ebene an:
      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)

    Das Blenden beginnt bei einer Entfernung zur Kamera von 500 Pixel und endet bei einer Entfernung zur Kamera von 1500 Pixel. Die lineare Interpolationsmethode wird zur Verknüpfung von Distanzwerten mit Deckkraftwerten verwendet.

Expression-Beispiel: 3D-Ebene unsichtbar machen, wenn sie von der Kamera abgewendet ist

  • Wenden Sie die folgende Expression auf die Eigenschaft „Deckkraft“ einer 3D-Ebene an:
      if (toCompVec([0, 0, 1])[2] > 0 ) value else 0

Dan Ebberts erläutert diese Expression auf seiner Motionscript-Website.

Expression-Beispiel: Ebene horizontal drehen, wenn sie von der Kamera abgewendet ist

  • Wenden Sie die folgende Expression auf die Eigenschaft „Skalierung“ einer 3D-Ebene an:
      if (toCompVec([0, 0, 1])[2] > 0 ) value else [-value[0], value[1], value[2]]

Expression-Beispiel: Skalierung an jeder Ebenenmarke animieren

  • Wenden Sie folgende Expression auf die Eigenschaft „Skalierung“ an, damit eine Ebene bei jeder Marke wackelt:
      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];

Expression-Beispiel: Verwackeln zu einer bestimmten Zeit beginnen oder beenden

Sie können anstelle der hier verwendeten Expression wiggle jede andere Expression verwenden, um den Einfluss einer Expression zu einer bestimmten Zeit zu beginnen oder zu beenden.

Wenden Sie folgende Expression auf eine Eigenschaft an, um sie zu verwackeln. Das Wackeln soll beim Zeitpunkt 2 Sekunden beginnen:

timeToStart = 2;
if (time > timeToStart)
{
  wiggle(3,25);
}
else
{
  value;
}

Wenden Sie folgende Expression auf eine Eigenschaft an, um das Wackeln zu beenden. Es soll beim Zeitpunkt 4 Sekunden enden:

timeToStop = 4;
if (time > timeToStop)
{
  value;
}
else
{
  wiggle(3,25);
}

Wenden Sie folgende Expression auf eine Eigenschaft an, um sie beim Zeitpunkt 2 Sekunden zu verwackeln und das Wackeln beim Zeitpunkt 4 Sekunden zu beenden:

timeToStart = 2;
timeToStop = 4;
if ((time > timeToStart) && (time < timeToStop))
{
  wiggle(3,25);
}
else
{
  value;
}

Expression-Beispiel: Fokalebene der Kamera an eine andere Ebene anpassen

  • Wenden Sie folgende Expression auf die Eigenschaft „Fokusentfernung“ einer Kameraebene an, damit deren Fokusentfernung der Entfernung zum Ankerpunkt einer Ebene mit der Bezeichnung „Ziel“ entspricht:
      target = thisComp.layer("target"); 
      V1 = target.toWorld(target.anchorPoint) - toWorld([0,0,0]); 
      V2 = toWorldVec([0,0,1]); 
      dot(V1,V2);

Dan Ebberts erläutert dieses Expression-Beispiel detailliert auf seiner Motionscript-Website.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™ und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie