Expressions

Expressions können Sie beispielsweise verwenden, wenn Sie komplexe Animationen erstellen oder verknüpfen möchten, dafür aber nicht Dutzende oder Hunderte von Keyframes per Hand einrichten wollen. Eine Expression ist – ähnlich wie ein Skript – eine kleine Softwareanwendung, die zu einem bestimmten Zeitpunkt für eine einzelne Ebeneneigenschaft einen bestimmten Wert festlegt. Während Skripte angeben, was eine Anwendung tun soll (Funktion), geben Expressions an, wie eine bestimmte Eigenschaft ist (Wert).

Mithilfe von Expressions können Sie Beziehungen zwischen Ebeneneigenschaften herstellen und die Keyframes einer Eigenschaft zum dynamischen Animieren anderer Ebenen verwenden. Sie können beispielsweise auch das Expression-Auswahlwerkzeug verwenden, um Pfadeigenschaften zu verknüpfen, sodass eine Maske ihren Pfad von einem Pinselstrich oder einem Formebenen-Objekt übernehmen kann.

Die Sprache für Expressions basiert zwar auf der Standard-Skriptsprache JavaScript, aber Sie können Expressions auch ohne Kenntnisse von JavaScript verwenden. Sie können Expressions durch die Verwendung des Expression-Auswahlwerkzeugs erstellen oder indem Sie einfache Beispiele kopieren und diese Ihren Bedürfnissen entsprechend anpassen.

Hinweis:

Zwei Quellen für Beispiel-Expressions sind das Vorlagenprojekt Expression Sampler („Datei“ > „Vorlagenprojekte durchsuchen“ (Windows) bzw. „Ablage“ > „Vorlagenprojekte durchsuchen“ (Mac OS)) und die Animationsvorgaben in der Kategorie „Verhalten“ („Animation“ > „Vorgaben durchsuchen“).

Animationsvorgaben können Expressions beinhalten oder sogar ausschließlich aus Expressions bestehen. Animationsvorgaben, die anstelle von Keyframes Expressions verwenden, werden manchmal Verhalten genannt.

Wenn Sie einer Eigenschaft eine Expression hinzugefügt haben, können Sie weiterhin Keyframes für die Eigenschaft hinzufügen oder diese bearbeiten. Eine Expression kann den Wert einer Eigenschaft so übernehmen, wie diese von ihren Keyframes bestimmt wurde, und diesen als Eingabe zum Erstellen neuer, geänderter Werte verwenden. Die folgende Expression zur Eigenschaft „Drehung“ einer Ebene fügt zusätzlich zur Bewegung des Keyframes 90° zum Wert der Eigenschaft „Drehung“ hinzu:

  value + 90

Einige Methoden, wie z. B. Verwackeln, haben direkten Einfluss auf die Eigenschaftswerte des Keyframes. (Siehe Objekttyp „Property“ (Eigenschaft): Attribute und Methoden (Expression-Referenz).)

Die folgende Expression zur Eigenschaft „Position“ einer Ebene behält die Keyframe-Bewegung der Ebene bei und verursacht somit ein geringes Verwackeln:

  wiggle(10, 10)

Hinweis:

Es ist oft einfacher und schneller, die Expression wiggle zu verwenden als „Verwackeln“.

Beim Animieren von Text können Sie die Expression-Auswahl verwenden, um anzugeben, wie stark eine Animator-Eigenschaft jedes Textzeichen beeinflussen soll. Sie können einer Animatorgruppe eine oder mehrere Expression-Auswahlbereiche hinzufügen. Diese Animatorgruppe kann eine oder mehrere Eigenschaften enthalten.

Arbeiten mit Expressions

Sie können ganze Expressions selbst eingeben, indem Sie sie manuell eingeben oder indem Sie das Expression-Sprachmenü verwenden. Sie können eine Expression aber auch mit dem Expression-Auswahlwerkzeug erstellen oder aus einem Beispiel oder einer anderen Eigenschaft einfügen.

Sie können alle Arbeiten an Expressions im Zeitleistenfenster durchführen. Unter Umständen ist es jedoch bequemer, das Expression-Auswahlwerkzeug zu einer Eigenschaft im Effektfenster zu ziehen. Auf der Zeitachse können Sie im größenveränderbaren Expression-Feld Expressions eingeben und bearbeiten. Im Modus „Ebenenbalken“ wird das Expression-Feld neben der Eigenschaft angezeigt; im Modus „Diagrammeditor“ wird das Expression-Feld am unteren Rand des Diagrammeditors angezeigt. Außerdem ist es möglich, eine Expression in einem Texteditor zu schreiben und dann in das Expression-Feld zu kopieren. Wenn Sie einer Ebeneneigenschaft eine Expression hinzufügen, wird eine Standard-Expression im Expression-Feld angezeigt. Die Standard-Expression bewirkt in der Regel nichts. Sie setzt den Eigenschaftswert fest, was Ihnen die Optimierung der Expression erleichtert.

Expression-Benutzeroberfläche im Zeitleistenfenster im Modus „Ebenenbalken“.
Expression-Benutzeroberfläche im Zeitleistenfenster im Modus „Ebenenbalken“.

A. Schalter „Expression aktivieren“ B. Schaltfläche „Kurve nach Expression anzeigen“ C. Expression-Auswahlwerkzeug D. Expression-Sprachmenü E. Expression-Feld 

Während Sie eine Expression bearbeiten, werden Vorschauen aller Art zurückgestellt. Am unteren Rand der Fenster, die darauf warten, dass Sie den Textbearbeitungsmodus verlassen, wird ein roter Balken angezeigt.

Die Werte für eine Eigenschaft, die eine Expression enthält, werden in roter oder rosa Schrift angezeigt.

Eine gute Methode zu Beginn der Arbeit ist das Erstellen einer einfachen Expression mit dem Expression-Auswahlwerkzeug und dem anschließenden Anpassen des Verhaltens der Expression mit einfachen mathematischen Operationen. Einige sind in der folgenden Tabelle aufgeführt:

Symbol

Funktion

+

Addieren

-

Subtrahieren

/

Dividieren

*

Multiplizieren

*-1

Umkehrung des Originals, z. B. „gegen den Uhrzeigersinn“ statt „im Uhrzeigersinn“

Sie können das Ergebnis z. B. verdoppeln, indem Sie am Ende einer Expression *2 eingeben. Sie können das Ergebnis aber auch halbieren, indem Sie am Ende der Expression /2 eingeben.

Wenn Sie mit dem Bearbeiten von Expressions vertrauter sind, können Sie diese einfachen Operationen kombinieren und mehr. Sie können z. B. /360*100 am Ende einer Expression hinzufügen, um ihren Bereich von 0 bis 360 in 0 bis 100 zu ändern. Diese Änderung ist z. B. dann sinnvoll, wenn Sie die Werte einer 360°-Steuerung in einen Regler mit Prozentwerten umwandeln möchten.

Das Expression-Sprachmenü im Zeitleistenfenster enthält alle programmspezifischen Sprachelemente für After Effects, die Sie in einer Expression verwenden können. Sie können dieses Menü als Referenz verwenden, um nachzusehen, welche Elemente gültig und verfügbar sind und welche Syntax jeweils zu verwenden ist. Wenn Sie ein beliebiges Objekt, ein Attribut oder eine Methode aus dem Menü auswählen, fügt After Effects dieses Element automatisch an der Einfügemarke in die Expression ein. Wird Text im Expression-Feld ausgewählt, ersetzt der neue Expression-Text den ausgewählten Text. Befindet sich die Einfügemarke nicht im Expression-Feld, ersetzt der neue Expression-Text den gesamten Text im Feld.

Das Expression-Sprachmenü enthält eine Liste der Argumente und Standardwerte. Auf diese Weise können Sie sich schnell und einfach einen Überblick darüber verschaffen, welche Elemente Sie beim Schreiben von Expressions zur Verfügung haben. Im Sprachmenü in der Kategorie „Eigenschaft“ wird die Methode „wiggle“ z. B. als wiggle(freq, amp, octaves=1, amp_mult=.5, t=time) angezeigt. Hinter wiggle sind fünf Argumente in Klammern angegeben. Das = in den letzten drei Argumenten bedeutet, dass diese Argumente optional sind. Wenn Sie keine Werte angeben, werden automatisch die Standardwerte 1 und 0,5 sowie die aktuelle Zeit verwendet.

Hinweis:

Ersetzen Sie die von dem Expression-Sprachmenü geschriebenen Argumentnamen durch tatsächliche Werte.

Jeff Almasol hält ein Skript bereit, das Expressions automatisch verarbeitet, indem es bestimmte Änderungen daran vornimmt. Mit dem Skript können beispielsweise deaktivierte Expressions automatisch entfernt oder aktiviert werden. Weitere Informationen finden Sie auf Jeff Almasols Redefinery-Website.

Hinzufügen, Deaktivieren, Verknüpfen oder Entfernen einer Expression

  • Wenn Sie einer Eigenschaft eine Expression hinzufügen möchten, wählen Sie die Eigenschaft im Zeitleistenfenster aus und klicken Sie dann auf „Animation“ > „Expression hinzufügen“. Alternativ können Sie die Alt-Taste+Umschalttaste+= (Windows) bzw. die Wahltaste+Umschalttaste+= (Mac OS) drücken oder bei gedrückter Alt-Taste (Windows) bzw. Wahltaste (Mac OS) auf die Stoppuhr-Schaltfläche  neben dem Eigenschaftsnamen im Zeitleisten- oder Effekteinstellungsfenster klicken.
  • Um eine Gruppe von Eigenschaften über Ebenen und Kompositionen hinweg zu verknüpfen, verwenden Sie Eigenschaftsverknüpfungen.
    Wählen Sie eine Eigenschaft oder eine Gruppe von Eigenschaften aus und klicken Sie auf „Bearbeiten“ > „Mit Eigenschaftsverknüpfungen kopieren“ oder „Bearbeiten“ > „Mit relativen Eigenschaftsverknüpfungen kopieren“ und fügen Sie diese Eigenschaften dann in eine beliebige Ebene in einer Komposition ein. Die eingefügten Eigenschaften bleiben mit der Ebene, aus der sie kopiert wurden, verknüpft, sodass alle an der ursprünglichen Eigenschaft vorgenommenen Änderungen in allen Instanzen der eingefügten Eigenschaftsverknüpfungen widergespiegelt werden.
    Sie können sogar eine ganze Ebene mit Eigenschaftsverknüpfungen kopieren und sie einfügen, um Duplikate zu erstellen, die den am Original vorgenommenen Änderungen folgen.

    Der Befehl „Mit relativen Eigenschaftsverknüpfungen kopieren“ funktioniert wie der Befehl „Mit Eigenschaftsverknüpfungen kopieren“. Allerdings werden mit dem Befehl „Mit relativen Eigenschaftsverknüpfungen kopieren“ Expressions erstellt, die die Quellkomposition nicht namentlich referenzieren. Dadurch bleibt eine relative Verknüpfung zwischen der Ebene mit dem Ausdruck und der Komposition erhalten, die diese Ebene enthält. Dies ist beispielsweise dann hilfreich, wenn Sie über Expressions manipulierte Ebenen aus einer Komposition in eine andere verschieben möchten, die Ebenen aber nur auf eine Steuerungsebene in derselben Komposition verweisen sollen. Expressions, die mithilfe der Option „Mit relativen Eigenschaftsverknüpfungen kopieren“ erstellt wurden, sind identisch mit jenen, die mithilfe der Expression-Pickwhip erstellt werden.

    Das Kopieren der Eigenschaft „Position“ einer Ebene mit dem Befehl „Mit relativen Eigenschaftsverknüpfungen kopieren“ führt zu folgendem Ergebnis:

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

    Das Kopieren der Eigenschaft „Position“ einer Ebene mit dem Befehl „Mit relativen Eigenschaftsverknüpfungen kopieren“ führt zu folgendem Ergebnis, bei dem die Quellkomposition der Ebene ausdrücklich in der Expression referenziert wird:

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

  • Wenn Sie eine Expression vorübergehend deaktivieren möchten, klicken Sie auf den Schalter „Expression aktivieren“ . Wenn eine Expression deaktiviert ist, wird das Schaltersymbol durchgestrichen angezeigt.
  • Wenn Sie eine Expression aus einer Eigenschaft entfernen möchten, wählen Sie die Eigenschaft im Zeitleistenfenster aus und wählen Sie „Animation“ > „Expression entfernen“ oder klicken Sie bei gedrückter Alt-Taste (Windows) bzw. bei gedrückter Wahltaste (Mac OS) auf die Stoppuhr-Schaltfläche neben dem Eigenschaftsnamen im Zeitleisten- oder Effekteinstellungsfenster.

Bearbeiten einer Expression mit dem Expression-Auswahlwerkzeug

Auch wenn Sie weder mit JavaScript noch mit der After Effects-Expression-Sprache vertraut sind, können Sie die vielfältigen Möglichkeiten nutzen, die Expressions bieten – verwenden Sie einfach das Expression-Auswahlwerkzeug. Ziehen Sie einfach das Expression-Auswahlwerkzeug  von einer Eigenschaft zu einer anderen, um die Eigenschaften mit einer Expression zu verknüpfen, dann wird der Expression-Text an der Einfügemarke in das Expression-Feld eingegeben. Wird Text im Expression-Feld ausgewählt, ersetzt der neue Expression-Text den ausgewählten Text. Befindet sich die Einfügemarke nicht im Expression-Feld, ersetzt der neue Expression-Text den gesamten Text im Feld.

Ziehen des Auswahlwerkzeugs zu einer Eigenschaft
Durch Ziehen des Expression-Auswahlwerkzeugs können Sie eine Verknüpfung zu den Eigenschaftswerten herstellen.

Sie können das Expression-Auswahlwerkzeug auf den Namen oder den Wert einer Eigenschaft ziehen. Wenn Sie das Expression-Auswahlwerkzeug auf den Namen der Eigenschaft ziehen, werden in der sich dabei ergebenden Expression alle Werte als einer angezeigt. Wenn Sie z. B. das Expression-Auswahlwerkzeug auf den Namen der Eigenschaft „Position“ ziehen, wird folgende Expression angezeigt:

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

Wenn Sie das Expression-Auswahlwerkzeug zu einem Wert der Eigenschaft „Position“ ziehen (z. B. zum y-Wert), wird eine Expression wie die folgende angezeigt, in der sowohl die x- als auch die y-Koordinate der Eigenschaft mit dem y-Wert der Eigenschaft „Position“ verknüpft sind.

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

Wenn die Ebene, die Maske oder der Effekt, zu dem Sie das Expression-Auswahlwerkzeug ziehen, keinen eindeutigen Namen in seinem lokalen Kontext hat, wird das entsprechende Element von After Effects umbenannt. So wird bei mehreren Masken mit dem Namen „Maske“ auf derselben Ebene die Maske, auf die das Expression-Auswahlwerkzeug gezogen wird, in „Maske 2“ umbenannt.

Das Format der mit dem Expression-Auswahlwerkzeug erstellten Expressions wird durch die Voreinstellung „Expression-Auswahlwerkzeug schreibt kompaktes Englisch“ („Bearbeiten“ > „Voreinstellungen“ > „Allgemein“ (Windows) oder „After Effects“ > „Einstellungen“ > „Allgemein“ (Mac OS)) bestimmt. Das Expression-Auswahlwerkzeug erstellt standardmäßig kurze englische Expressions, die die Namen für Eigenschaften verwenden, wie sie im Zeitleistenfenster für die Eigenschaften in einer Expression angezeigt werden. Da diese Namen fest in die Anwendung programmiert sind und sich nie ändern, können diese Expressions auch funktionieren, wenn After Effects in einer anderen Sprache ausgeführt wird. Eigenschaftennamen, die Sie ändern können, werden in doppelte Anführungszeichen gesetzt und bleiben in allen Sprachen gleich. Wenn Sie Ihre Projekte nicht für mehrere Sprachen freigeben möchten, können Sie diese Voreinstellung deaktivieren. Diese Voreinstellung hat keine Auswirkungen auf Namen oder Eigenschaften von Effekten.

Hier ist ein Beispiel in kompaktem Englisch:

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

Hier ist dieselbe Expression, nicht in kompaktem Englisch:

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

Hinweis:

Da die Voreinstellungsoption „Expression-Auswahlwerkzeug schreibt kompaktes Englisch“ standardmäßig aktiviert ist, wird in allen Beispielen und Abbildungen in diesem Dokument „kompaktes Englisch“ verwendet.

  1. Ziehen Sie das Expression-Auswahlwerkzeug auf eine andere Eigenschaft im Zeitleisten- oder Effektfenster.
  2. Sie können auch die Standard-Expression im Expression-Feld bearbeiten.

Hinweis:

Wenn Sie mit dem Auswahlwerkzeug eine Expression erstellen, um auf eine Ebene zu verweisen, und diese Ebene denselben Namen hat wie eine andere Ebene in derselben Komposition, wird der Name der Zielebene geändert. Der neue Ebenenname entspricht dem alten Namen mit einer angehängten Zahl. Diese Änderung ist notwendig, damit die Expression eindeutig auf eine einzige Ebene der Komposition verweist.

Manuelles Bearbeiten einer Expression

  1. Klicken Sie in das Expression-Feld, um in den Textbearbeitungsmodus zu wechseln.

    Hinweis:

    Wenn Sie den Textbearbeitungsmodus aufrufen, wird die gesamte Expression ausgewählt. Wenn Sie der Expression etwas hinzufügen möchten, klicken sie in die Expression, um die Einfügemarke zu platzieren, sonst ersetzen Sie die ganze Expression.

  2. Geben Sie Text in das Expression-Feld ein und bearbeiten Sie diesen. Dabei können Sie das Expression-Sprachmenü verwenden.

    Hinweis:

    Wenn Sie mehr von einer mehrzeiligen Expression anzeigen möchten, ziehen Sie am oberen oder unteren Rand des Expression-Feldes, um die Größe anzupassen.

  3. Wenn Sie den Textbearbeitungsmodus beenden und die Expression aktivieren möchten, führen Sie einen der folgenden Schritte aus:
    • Drücken Sie die Eingabetaste auf dem Ziffernblock.

    • Klicken Sie außerhalb des Expression-Feldes.

Beispiel: Verwenden der Expression-Sprachreferenz, um eine Expression zu schreiben

Anhand dieses Beispiels können Sie lernen, wie Sie mit der Expression-Sprachreferenz von After Effects-Expressions schreiben können. Die in diesem Beispiel erstellte Expression verknüpft die Eigenschaft „Position“ von „Farbfläche 1“ mit derselben Eigenschaft von „Farbfläche 2“, wobei die Bewegung von „Farbfläche 2“ gegenüber der von „Farbfläche 1“ um zwei Sekunden versetzt ist.

  1. Erstellen Sie zwei Farbflächenebenen: „Farbfläche 1“ und „Farbfläche 2“.

  2. Animieren Sie die Werte für die Eigenschaft „Position“ für „Farbfläche 1“. (Siehe Animation, Keyframes und Expressions.)

  3. Wählen Sie die Positionseigenschaft für „Farbfläche 2“ aus und klicken Sie auf „Animation“ > „Expression hinzufügen“ oder bei gedrückter Alt-Taste (Windows) bzw. Wahltaste auf die Eigenschaftsschaltfläche „Stoppuhr“ . Standardmäßig erscheint die folgende Expression:

      transform.position
  4. Überschreiben Sie transform.position mit folgendem Eintrag:

      thisComp
  5. Das Element thisComp ist ein globales Attribut, dessen Wert ein Objekt des Typs „Comp“ (Komposition) ist, das die aktuelle Komposition darstellt. Um festzustellen, was in Ihrer Expression nach thisComp stehen kann, suchen Sie den Rückgabewert für thisComp unter Globale Objekte, Attribute und Methoden (Expression-Referenz) heraus.

    Beachten Sie, dass thisComp ein Objekt des Typs „Comp“ (Komposition) zurückgibt. Im Abschnitt Objekttyp „Comp“ (Komposition): Attribute und Methoden (Expression-Referenz) ist angegeben, welche Attribute und Methoden Sie mit einem Objekt des Typs „Comp“ verwenden können. Eine Option ist layer(index). Der Index (die Nummer) in Klammern gibt die Ebene an, die Sie verwenden möchten. In diesem Beispiel wird davon ausgegangen, dass „Farbfläche 1“ die erste Ebene in der Komposition ist. Wenn Sie Werte aus der ersten Ebene der aktiven Komposition abrufen möchten, geben Sie am Ende der Expression .layer(1) ein. Sie erhalten folgendes Ergebnis:

      thisComp.layer(1)
  6. Ein erneuter Blick in die After Effects-Referenz für Expression-Elemente zeigt, dass layer(index) ein Objekt des Typs „Layer“ (Ebene) zurückgibt. Suchen Sie unter Objekttyp „Layer General“ (Ebene allgemein): Attribute und Methoden (Expression-Referenz) das gewünschte Element heraus. Wenn Sie z. B. die Werte der Eigenschaft „Position“ für eine Ebene abrufen möchten, geben Sie am Ende der Expression .position ein. Sie erhalten folgendes Ergebnis:

      thisComp.layer(1).position
  7. Aus dem Abschnitt Objekttyp „Layer General“ (Ebene allgemein): Allgemeine Attribute und Methoden (Expression-Referenz) können Sie ersehen, dass das Attribut position eine Eigenschaft zurückgibt. Beachten Sie unter „Property“ (Eigenschaft): Attribute und Methoden Expression-Referenz, dass Sie der Expression einen Zeitfaktor hinzufügen können. Wenn Sie eine bestimmte Zeit, z. B. den aktuellen Zeitpunkt plus 2 Sekunden hinzufügen möchten, geben Sie am Ende der Expression .valueAtTime(time+2) ein. Sie erhalten folgendes Ergebnis:

      thisComp.layer(1).position.valueAtTime(time+2)
  8. Beachten Sie unter Objekttyp „Property“ (Eigenschaft): Attribute und Methoden (Expression-Referenz), dass die Methode valueAtTime eine Zahl oder ein Array zurückgibt. Wenn eine Expression eine Zahl, ein Array oder einen booleschen Wert (z. B. „true“ oder „false“) zurückgibt, können Sie dieser Expression keine weiteren Attribute oder Methoden hinzufügen. (Auf Wunsch können Sie jedoch Operatoren wie + , , * und / hinzufügen)

Anzeigen von Expressions und der Expression-Kurve

Im Modus „Diagrammeditor“ wird das einzelne Expression-Feld am unteren Rand des Diagrammeditors als größenveränderbares Feld angezeigt und zeigt nur die Expression der ausgewählten Eigenschaft an. Um mehrere Expression-Felder gleichzeitig anzuzeigen, muss sich das Zeitleistenfenster im Modus „Ebenenbalken“ befinden.

Hinweis:

Drücken Sie Umschalttaste + F3, um zwischen den Modi „Ebenenbalken“ und „Diagrammeditor“ hin- und herzuschalten.

  • Um nur Eigenschaften mit Expressions anzuzeigen, wählen Sie eine oder mehrere Ebenen aus und drücken Sie dann zweimal die Taste „E“.
  • Wenn Sie das Expression-Feld im Diagrammeditor anzeigen möchten, wählen Sie unten im Diagrammeditor aus dem Menü „Diagrammtyp und Optionen wählen“  die Option „Expression-Editor anzeigen“. Wenn Sie einer Eigenschaft eine Expression hinzufügen, wird unabhängig von dieser Einstellung der Expression-Editor angezeigt.

Hinweis:

Um die Größe des Expression-Felds zu ändern, ziehen Sie dessen unteren Rand nach oben oder unten.

  • Um die Auswirkungen der Expression auf Werte oder Geschwindigkeit zu beurteilen, klicken Sie auf das Symbol „Kurve nach Expression anzeigen“  im Diagrammeditor.

    Die schwach eingefärbte Kurve zeigt den Wert oder die Geschwindigkeit vor Anwendung der Expression. Die leuchtend farbige Kurve zeigt, wie sich die Expression auf den Wert oder die Geschwindigkeit auswirken wird. Der Anzeige des Bewegungspfads im Kompositionsfenster können Sie ebenfalls entnehmen, welche Auswirkungen die Expression auf den Pfad hat, sofern die Option „Kurve nach Expression anzeigen“ aktiviert ist.

Hinweis:

Mit dem Suchfeld im Zeitleistenfenster können Sie sowohl nach Expressions als auch nach anderen Komponenten einer Eigenschaft suchen. Wenn die Suchzeichenfolge in einer Expression vorkommt, werden die entsprechende Eigenschaft sowie die Eigenschaftsgruppe und die Ebene, zu der die Eigenschaft gehört, in den gefilterten Suchergebnissen angezeigt.

Schreiben von Expressions für Quelltext

Die Eigenschaft „Quelltext“ einer Textebene wird von Expressions als JavaScript-String interpretiert. Sie können das Expression-Auswahlwerkzeug verwenden, um auf den Quelltext aus einer anderen Ebene zuzugreifen, es wird jedoch nur der Stil des ersten Zeichens der Zielebene verwendet.

Weitere Informationen zum JavaScript-Objekt „String“ finden Sie einer JavaScript-Referenzressource.

Mit "\r" in einer String-Expression wird eine neue Textzeile begonnen. Wenn Sie z. B. den Originaltext einer Ebene in Großbuchstaben auf dieselbe Ebene in eine neue Zeile kopieren möchten, verwenden Sie die folgende Expression:

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

Das Hinzufügen einer Textebene zu einer Komposition und das Hinzufügen einer Expression zu deren Eigenschaft „Quelltext“ ist eine gute Möglichkeit, die Eigenschaftswerte anderer Ebenen zu untersuchen. Die folgende Expression in einer Eigenschaft „Quelltext“ meldet den Namen und Wert der Eigenschaft „Deckkraft“ für die nächste Ebene in der Stapelreihenfolge von Ebenen:

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

Im folgenden Beispiel wird der Name des Footageelements angegeben, das als Quelle der ersten Bildebene im Stapel zum aktuellen Zeitpunkt verwendet wird, für das der Schalter „Video“ eingestellt ist.

  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

Aharon Rabinowitz stellt unter Red Giant TV einen Video-Lehrgang und Beispiel-Expressions zur Verfügung, die zeigen, wie ein Videospielstand mit der Eigenschaft „Quelltext“ und einem Schiebereglereffekt (Effekt „Einstellungen für Expressions“) animiert werden kann.

 

Hinzufügen von Kommentaren zu einer Expression

Wenn Sie eine komplexe Expression schreiben, die Sie für sich selbst oder andere Benutzer zur späteren erneuten Verwendung vorgesehen haben, sollten Sie Kommentare hinzufügen, in denen erklärt wird, welche Aufgaben die Expression durchführt und wie ihre Bestandteile funktionieren.

Speichern und Wiederverwenden von Expressions

Wenn Sie eine Expression geschrieben haben und zur späteren Verwendung speichern möchten, können Sie sie entweder kopieren und in einer Textverarbeitungsanwendung einfügen oder als Animationsvorgabe oder Vorlagenprojekt speichern. Da Expressions jedoch in Bezug auf andere Ebenen in einem Projekt geschrieben und dabei bestimmte Ebenennamen verwendet werden, müssen Sie die Expression beim Übertragen in ein anderes Projekt häufig entsprechend anpassen.

Mithilfe der normalen JavaScript-Funktionssyntax können Sie in Expressions auch eigene Funktionen definieren. In diesem Beispiel wird in der letzten Zeile eine Funktion verwendet, mit der der Durchschnitt zweier Werte berechnet wird:

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

Hinweis:

Sie müssen jede Funktion vollständig in allen Expressions definieren, in denen sie verwendet wird. Es gibt kein globales Funktionsverzeichnis, dem Sie Funktionen hinzufügen könnten.

Wenn Sie eine Expression zur Verwendung in einem anderen Projekt speichern möchten, sollten Sie der Expression Kommentare hinzufügen. (Siehe Hinzufügen von Kommentaren zu einer Expression.) Außerdem sollten Sie Variablen verwenden, damit Sie einen Wert nur an einer Stelle und nicht an mehreren Stellen ändern müssen.

Diese Expression hat z. B. einen mehrzeiligen Kommentar am Anfang, in dem erklärt wird, welche Aufgaben die Expression durchführt. Ein kurzer Kommentar nach der Deklaration und Initialisierung einer Variablen erklärt, wofür die Variable verwendet wird:

  /*  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

Sie können eine Animationsvorgabe, die eine Expression enthält, speichern und in anderen Projekten wiederverwenden, vorausgesetzt, die Expression verweist nicht auf Eigenschaften, die in den anderen Projekten nicht existieren. Wenn Sie eine Vorgabe speichern, in der eine Eigenschaft nur eine Expression ohne Keyframe hat, wird nur die Expression gespeichert. Besitzt die Eigenschaft einen oder mehrere Keyframes, werden in der Vorgabe sowohl die Expression als auch alle Keyframe-Werte gespeichert.

Sie können eine Expression aus einer Ebeneneigenschaft kopieren, entweder mit den Keyframes der Eigenschaft oder ohne die Keyframes.

  • Wenn Sie eine Expression und Keyframes von einer Eigenschaft in andere kopieren möchten, wählen Sie im Zeitleistenfenster die Eigenschaft „Quellebene“ aus, und kopieren Sie die Ebeneneigenschaft in die Eigenschaften der Zielebene.
  • Wenn Sie eine Expression ohne Keyframes von einer Eigenschaft in andere kopieren möchten, wählen Sie die Quelleigenschaft aus, dann wählen Sie „Bearbeiten“ > „Nur Expression kopieren“, anschließend die Zieleigenschaften und schließlich fügen Sie die Eigenschaft ein.

Hinweis:

Das Kopieren einer Expression ohne Keyframes empfiehlt sich besonders, wenn Sie mehrere Expressions gleichzeitig kopieren und in eine oder mehrere neue Ebenen einfügen möchten oder wenn Sie eine Expression kopieren und in mehr als eine Ebene einfügen möchten.

Hinweis:

Wie beim Einfügen von Keyframes und anderen Elementen können Sie das Element häufig in die Zielebene einfügen und sich darauf verlassen, dass After Effects ermittelt, welche Eigenschaft Ziel des Einfügevorgangs sein soll. Das funktioniert z. B. beim Kopieren von Positionseigenschaften aus einer Ebene in eine andere. Wenn Sie jedoch eine Expression aus einer Positionseigenschaft in eine Eigenschaft „Skalierung“ einfügen, müssen Sie die Zieleigenschaft selbst auswählen.

Paul Tuersley stellt das pt_ExpressEdit script zum Verwalten und Bearbeiten von Expressions zur Verfügung.

Effekte unter „Einstellungen für Expressions“

Mit den Effekten unter „Einstellungen für Expressions“ können Sie eine Einstellung hinzufügen, mit der sich die Werte einer oder mehrerer Eigenschaften manipulieren lassen. Dies geschieht, indem Sie die Eigenschaft mithilfe von Expressions mit der Einstellung verknüpfen. Eine einzelne Einstellung kann sich auf mehrere Eigenschaften gleichzeitig auswirken.

Die Namen der Effekte unter „Einstellungen für Expressions“ geben an, auf welche Art von Eigenschaft sie sich beziehen: „Einstellungen für Winkel“, „Einstellungen für Kontrollkästchen“, „Einstellungen für Farben“, „Einstellungen für Ebenen“, „Einstellungen für Punkte“, „Einstellungen für Schieberegler“. After Effects CS5.5 und höher enthält ebenfalls eine 3D-Punkt-Steuerung.

Hinweis:

Wenn Sie eine Animationsvorgabe aus der Kategorie „Animationsvorgaben“ > „Formen“ > „Hintergründe“ anwenden, wird im Effektfenster ein angepasster Effekt vom Typ „Animierte Formkontrolle“ angezeigt. Dieser angepasste Effekt ist eine besondere Einstellung für Expressions, die speziell für diese Animationsvorgaben erstellt wurde. Sie können diesen Effekt kopieren und auf anderen Ebenen einfügen oder als eigene Animationsvorgabe speichern, damit sie sich anderswo anwenden lässt.

Die Effekte unter „Einstellungen für Expressions“ werden auf die gleiche Weise auf eine Ebene angewendet wie andere Effekte, z. B. indem der Effekt aus dem Effekte- und Vorgabenfenster auf die Ebene gezogen wird.

Die Effekte unter „Einstellungen für Expressions“ können zwar jeder beliebigen Ebene zugewiesen werden; es empfiehlt sich jedoch, diese Effekte auf eine Nullebene anzuwenden, die gewissermaßen als Steuerungsebene verwendet werden kann. Anschließend können Sie Expressions zu Eigenschaften auf anderen Ebenen hinzufügen, damit diese Ebenen Eingaben von der betreffenden Einstellung annehmen. Sie können einer Nullebene („Null 1“) z. B. den Effekt „Einstellungen für Schieberegler“ hinzufügen und anschließend diese Expression auf die Positionseigenschaften mehrerer Ebenen anwenden:

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

Wenn Sie den Schieberegler in diesem Beispiel ziehen, wird jede Ebene mit dieser Expression verschoben. Ebenen mit höheren Indexnummern (am unteren Rand des Zeitleistenfensters) werden weiter verschoben als Ebenen mit niedrigeren Indexnummern, und zwar in 10-Pixel-Schritten. Auf der Nullebene können Sie Keyframes für den Regler festlegen; alle anderen Ebenen werden entsprechend animiert.

Oft ist es sinnvoll, die einzelnen Instanzen eines Effekts unter „Einstellungen für Expressions“ gemäß ihres speziellen Zwecks umzubenennen. Wenn Sie beispielsweise eine Instanz des Effekts „Einstellungen für Farben“ in Himmelsfarbe umbenennen, ist sofort zu erkennen, welcher Effekt damit erzielt wird. Sie können die Instanzen eines Effekts unter „Einstellungen für Expressions“ genau wie jeden anderen Effekt umbenennen: Wählen Sie den Effekt im Zeitleisten- oder Effektfenster aus und drücken Sie die Eingabetaste (Windows) bzw. den Zeilenschalter (Mac OS).

Hinweis:

Um eine Einstellung zu ändern, klicken Sie mit der rechten Maustaste (Windows) bzw. bei gedrückter Ctrl-Taste (Mac OS) auf den unterstrichenen Eigenschaftswert der Einstellung und wählen Sie im Kontextmenü „Wert bearbeiten“ aus.

Weitere Ressourcen zu den Effekten unter „Einstellungen für Expressions“

Jerzy Drozda, Jr. (Maltaannon) bietet auf der Motionworks-Website eine einfache Erläuterung und Demonstration des Effekts „Einstellungen für Winkel“ und der Effekte unter „Einstellungen für Expressions“ im Allgemeinen an.

Todd Kopriva stellt in seinem sampleImage Anleitungen zur Verwendung der After Effects Region of Interest-Blog-Methode und des Effekts „Einstellungen für Punkte“ zur Farbüberwachung eines bestimmten Punktes während der Farbkorrektur bereit.

Konvertieren einer Expression in Keyframes

In einigen Situationen kann es sinnvoll sein, eine Expression in Keyframes umzuwandeln. Dies ist z. B. dann der Fall, wenn Sie die Werte in einer Expression einfrieren möchten. Sie können in diesem Fall die Expression in Keyframes umwandeln und dann die Keyframes entsprechend anpassen. Auch wenn die Auswertung einer Expression sehr lange dauert, kann es sinnvoll sein, sie in Keyframes umzuwandeln, um das Rendern zu beschleunigen. Wenn Sie eine Expression in Keyframes umwandeln, wertet After Effects die Expression aus, richtet an allen Frames einen Keyframe ein und deaktiviert die Expression dann.

  1. Wählen Sie im Zeitleistenfenster die Eigenschaft aus, für die die Expression geschrieben wurde, und wählen Sie „Animation“ > „Keyframe-Assistent“ > „Expression in Keyframes umwandeln“.

Die Expression-Sprache

Die After Effects-Expression-Sprache basiert auf JavaScript 1.2, verfügt aber über einen erweiterten Satz integrierter Objekte. After Effects verwendet nur den Kernteil von JavaScript 1.2 und greift nicht auf die für Webbrowser spezifischen Erweiterungen zurück. After Effects arbeitet mit einem eigenen Satz von Erweiterungsobjekten, wie „Layer“ (Ebene), „Comp“ (Komposition), „Footage“ und „Camera“ (Kamera), mit deren Hilfe Sie die meisten Werte in einem After Effects-Projekt abrufen können.

Obwohl die Sprache für Expressions auf einer Skriptsprache basiert, besteht ein feiner, aber wichtiger Unterschied zwischen einem Skript und einer Expression: Während Skripte angeben, was eine Anwendung „tun“ soll (Funktion), geben Expressions an, wie eine bestimmte Eigenschaft „ist“ (Wert).

Weitere Informationen zu JavaScript finden Sie einer JavaScript-Referenzressource.

Beachten Sie beim Erstellen von Expressions folgende Punkte:

  • Der Wert einer Expression entspricht dem Wert der zuletzt ausgewerteten Anweisung.

  • Die JavaScript-Sprache unterscheidet zwischen Groß- und Kleinschreibung.

  • Anweisungen oder Linien sind durch Semikola voneinander zu trennen.

  • Leerzeichen zwischen Wörtern werden ignoriert, außer innerhalb eines Strings.

In JavaScript wird ein Wert, der in einem Objekt gespeichert ist, als property (Eigenschaft) bezeichnet. In After Effects dient der Begriff Eigenschaft dagegen zur Bezeichnung von Ebenenkomponenten im Zeitleistenfenster. Deshalb werden JavaScript-„properties“ in After Effects entweder als Methode oder Attribut bezeichnet. In der Praxis besteht der Unterschied zwischen einer Methode und einem Attribut darin, dass eine Methode ausgeführt wird, damit ihr Ausgabewert (oder Rückgabewert) neu erstellt wird, während ein Attribut nur auf einen bereits vorhandenen Wert verweist, um seinen Ausgabewert (Rückgabewert) zu bestimmen. Eine Methode ist dadurch von einem Attribut leicht zu unterscheiden, dass in den Klammern nach dem Methodennamen Eingabeargumente für die Methode angegeben sind.

Ein Objekt ist ein Element, das andere Objekte, Attribute und Methoden enthalten kann. Kompositionen, Ebenen und Footageelemente sind Beispiele für Objekte. Kompositionen, Ebenen und Footageelemente werden genauer auch als globale Objekte bezeichnet. Das bedeutet, dass in jedem beliebigen Kontext ohne Verweis auf ein übergeordnetes Objekt auf sie verwiesen werden kann.

Zugreifen auf Attribute und Methoden

Mit der Expression-Sprache greifen Sie auf Attribute und Methoden von Ebeneneigenschaften zu. Hierzu verwenden Sie eine Kette von Objektreferenzen, die durch den Punktoperator (.) voneinander getrennt werden. Wenn Sie Objektreferenzen über die Ebene hinaus verketten möchten (z. B. um auf Effekteigenschaften, Masken oder Textanimatoren zu verweisen), können Sie dazu Klammern einsetzen. Beispiel: Um die Eigenschaft „Deckkraft“ in Ebene A mit der Eigenschaft „Stärke“ des Gaußschen Weichzeichnereffekts in Ebene B zu verknüpfen, geben Sie im Expression-Feld für die Eigenschaft „Deckkraft“ der Ebene A folgende Expression ein:

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

Beim Lesen dieser Expression von links nach rechts gelangen Sie vom übergeordneten Objekt, das andere Objekte enthält, zur bestimmten Eigenschaft:

  • Das hier verwendete globale Objekt verweist auf die aktuelle Komposition: thisComp.

  • Innerhalb dieser Komposition wird auf ein bestimmtes Ebenenobjekt mit seinem Namen verwiesen: layer("Ebene B").

  • Innerhalb dieser Ebene wird auf ein bestimmtes Effektobjekt mit seinem Namen verwiesen: effect("Gaussian Blur").

  • Innerhalb dieses Effekts wird auf eine bestimmte Effekteigenschaft mit ihrem Namen verwiesen: ("Blurriness").

Für die n-te Komponente einer mehrdimensionalen Eigenschaft, wie die y-Komponente eines Effektankerpunkts, hängen Sie [n] wie hier dargestellt ans Ende an:

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

Das Standardobjekt für eine Expression ist die Eigenschaft, für die die Expression geschrieben wurde, gefolgt von der Ebene, die die Expression enthält. Daher müssen Sie die Eigenschaft nicht extra angeben. Eine Verwackeln-Expression (Wiggle) für die Eigenschaft „Position“ einer Ebene kann also auf zweierlei Art und Weise geschrieben werden:

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

Wenn die Ebene und die Eigenschaft außerhalb der Ebene und Eigenschaft liegen, für die Sie die Expression eingeben, müssen Sie allerdings Ebene und Eigenschaft mit angeben. Beispiel: Eine Expression für die Eigenschaft „Deckkraft“ der Ebene B, die mit der Eigenschaft „Drehung“ von Ebene A verknüpft werden soll, sähe folgendermaßen aus:

  thisComp.layer("Layer A").rotation

Hinweis:

Wenn Sie weitere Beispiele zu dieser Funktion sehen möchten, verknüpfen Sie mithilfe des Expression-Auswahlwerkzeugs eine Ebeneneigenschaft mit einer anderen und sehen Sie sich die Expressions an, die dabei erstellt werden.

Jeff Almasol bietet auf seiner Redefinery-Website ein Skript an, mit dem Sie bestimmen können, wie auf Eigenschaften in Expressions verwiesen werden soll.

Arrays und mehrdimensionale Eigenschaften

Ein Array ist ein Objekttyp, der einen geordneten Satz Zahlen speichert. Dargestellt wird ein Array als Liste von Zahlen, die, wie in diesem Beispiel, durch Kommas voneinander getrennt und von Klammern umgeben sind.

  [10, 23]

Die Zuweisung von Arrays zu Variablen ermöglicht es Ihnen, Verweise auf Arraywerte in anderen Bereichen der Expression zu erstellen. Beispiel:

  myArray = [10, 23]

Die Dimension eines Arrayobjekts gibt die Anzahl der Elemente im Array an. Die Dimension von myArray ist 2. Eigenschaften in After Effects können abhängig von der Anzahl der Wertargumente unterschiedliche Dimensionen haben. In der Expression-Sprache werden Eigenschaftswerte entweder als einzelne Werte (Zahlenobjekte) oder Arrays (Arrayobjekte) angegeben.

Die folgenden Tabelle enthält Beispiele einiger Eigenschaften und ihrer Dimensionen:

Dimension

Eigenschaft

1

Drehung °

Deckkraft %

2

Skalierung [x=Breite, y=Höhe]

Position [x, y]

Ankerpunkt [x, y]

Audiopegel [links, rechts]

3

Skalierung [Breite, Höhe, Tiefe]

3D-Position [x, y, z]

3D-Ankerpunkt [x, y, z]

Ausrichtung [x, y, z]

4

Farbe [Rot, Grün, Blau, Alpha]

Durch Verwendung eckiger Klammern und einer Indexnummer können Sie angeben, welches Element des Arrayobjekts verwendet werden soll, und so auf die einzelnen Elemente zugreifen. Jeder Position im Arrayobjekt ist eine Indexnummer zugewiesen, wobei die Nummerierung bei 0 beginnt. Bleiben wir beim vorherigen Beispiel, ist myArray[0] gleich 10 und myArray[1] ist gleich 23.

Die folgenden beiden Expressions sind gleichwertig:

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

Die Arrays der Eigenschaft „Position“ sind folgendermaßen indiziert:

  • Position[0] ist die x-Koordinate der Position.

  • Position[1] ist die y-Koordinate der Position.

  • Position[2] ist die z-Koordinate der Position.

Farben werden als vierdimensionale Arrays dargestellt [Rot, Grün, Blau, Alpha]. In Projekten mit einer Farbtiefe von 8 Bit oder 16 Bit liegt jeder Wert in einem Farbarray zwischen 0 (Schwarz) und 1 (Weiß). So kann Rot entweder den Wert 0 (keine Farbe) oder den Wert 1 (Rot) haben. [0,0,0,0] bedeutet also schwarz und transparent, während [1,1,1,1] für weiß und deckend steht. In Projekten mit einer Farbtiefe von 32 Bit sind Werte unter 0 und über 1 zulässig.

Wenn Sie einen Index verwenden, der größer ist als der Index der Komponente mit der höchsten Dimension in einem Arrayobjekt, gibt After Effects eine Fehlermeldung zurück. So wird bei myArray[2] eine Fehlermeldung angezeigt, während position[2] die z-Koordinate der Eigenschaft „Position“ zurückgibt.

Viele der Eigenschaften und Methoden in der After Effects-Expression-Sprache haben Arrayobjekte als Argumente oder geben Arrayobjekte als Werte zurück. So ist z. B. thisLayer.position ein Array, das abhängig von der jeweiligen Ebene entweder zwei- oder dreidimensional ist.

Wenn Sie eine Expression schreiben möchten, bei der der y-Wert der Animation („Position“) erhalten bleiben, der x-Wert aber auf 9 gesetzt werden soll, müssen Sie Folgendes schreiben:

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

Das Folgende ist noch kürzer:

  [9, position[1]]

Dies ist ein wichtiger Punkt, der anhand eines weiteren Beispiels genauer betrachtet werden soll. Wenn Sie den Wert der x-Position aus Ebene A mit dem Wert der y-Position aus Ebene B kombinieren möchten, würden Sie Folgendes schreiben:

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

Sie können eine Expression erstellen, die sich nur auf einen einzigen Wert innerhalb des Arrays einer 2D- oder 3D-Eigenschaft bezieht. Standardmäßig wird der erste Wert verwendet, solange Sie nichts anderes festlegen. Beispiel: Wenn Sie das Expression-Auswahlwerkzeug von der Eigenschaft „Drehung“ der Ebene A auf die Eigenschaft „Skalierung“ der Ebene B ziehen, wird folgende Expression angezeigt:

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

Diese Expression verwendet standardmäßig den ersten Wert der Eigenschaft „Skalierung“, also die Breite. Soll an Stelle der Breite der Höhenwert verwendet werden, ziehen Sie das Expression-Auswahlwerkzeug direkt auf den zweiten Wert, statt auf den Namen der Eigenschaft, oder ändern Sie die Expression wie folgt:

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

Wenn Sie umgekehrt das Expression-Auswahlwerkzeug von der Eigenschaft „Skalierung“ der Ebene B auf die Eigenschaft „Drehung“ der Ebene A ziehen, erstellt After Effects automatisch eine Variable, weist ihr den Wert der eindimensionalen Eigenschaft „Drehung“ zu und verwendet sie für beide Dimensionen der Eigenschaft „Skalierung“:

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

Vektoren

Viele Eigenschaften und Methoden in After Effects haben Vektoren oder geben diese zurück. In After Effects wird ein Array als Vektor bezeichnet, wenn er entweder einen Punkt oder eine Richtung im Raum repräsentiert. So gibt position für After Effects einen Vektor zurück.

Bei einer Funktion wie audioLevels hingegen, die ebenfalls einen zweidimensionalen Wert zurückgibt (Pegel des linken und des rechten Kanals), wird das Ergebnis nicht als Vektor bezeichnet, da es weder einen Punkt noch eine Richtung darstellt. Einige Funktionen in After Effects können mit Vektorargumenten umgehen, sind aber im Allgemeinen nur dann sinnvoll, wenn die zurückgegebenen Werte eine Richtung angeben. So berechnet z. B. cross(vec1, vec2) einen dritten Vektor, der rechtwinklig zu den Eingabevektoren steht. Das Vektorkreuzprodukt ist dann nützlich, wenn vec1 und vec2 zwei Vektoren sind, die Richtungen im Raum darstellen. Stellen sie dagegen nur zwei willkürliche Ansammlungen von Zahlen dar, ergibt das Ganze keinen Sinn.

Indizes und Labels

Beim Indizieren der Ebenen-, Effekt- und Maskenelemente in After Effects wird mit 1 begonnen. Die erste Ebene im Zeitleistenfenster wäre beispielsweise layer(1).

Im Allgemeinen empfiehlt es sich, statt einer Nummer den Namen der jeweiligen Ebene, des Effekts oder der Maske zu verwenden, um Unklarheiten und Verwechslungen zu vermeiden, falls die Ebene, der Effekt oder die Maske verschoben wird oder die Argumente bei Produktaktualisierungen und -upgrades geändert wurden. Wenn Sie einen Namen statt einer Nummer verwenden, setzen Sie diesen immer in gerade Anführungsstriche. Die erste der beiden Expressions ist einfacher zu verstehen als die zweite und sie funktioniert auch dann noch, wenn Sie die Reihenfolge der Effekte ändern:

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

Zeit in Expressions

Bei der Zeit innerhalb einer Expression handelt es sich immer um die Kompositionszeit, nicht um die Ebenenzeit. Die Kompositionszeit wird in Sekunden gemessen. Die Standardzeit für Expressions ist der Zeitpunkt der aktuellen Komposition, an dem die Expression ausgewertet wird. Die folgenden Expressions verwenden beide die Standard-Kompositionszeit und geben identische Werte zurück:

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

Wenn Sie eine relative Zeitangabe verwenden möchten, fügen Sie dem Argument time einen Zeitwert hinzu. Wenn Sie z. B. einen Positionswert zu einem Zeitpunkt abrufen möchten, der 5 Sekunden vor dem aktuellen Zeitpunkt liegt, können Sie folgende Expression verwenden:

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

Standardmäßige Zeitreferenzen für Eigenschaften in verschachtelten Kompositionen verwenden die originale Standard-Kompositionszeit, nicht die zeitgedehnte Zeit. Verwenden Sie jedoch zum Abrufen einer Eigenschaft die Funktion source, wird die zeitgedehnte Zeit verwendet.

Beispiel: Wenn die Quelle einer Ebene in der übergeordneten Komposition eine verschachtelte Komposition ist, in der übergeordneten Komposition mit gedehnter Zeit gearbeitet wird und Sie die Positionswerte einer Ebene in der verschachtelten Komposition mit der folgenden Expression abrufen, verwenden die Positionswerte die Standardzeit der Komposition:

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

Referenzieren Sie die Ebene jedoch mit der Funktion source, verwenden die Positionswerte die gedehnte Zeit:

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

Hinweis:

Wenn Sie in einer Expression eine bestimmte Zeit verwenden, wird die verzerrte Zeit ignoriert.

Da Expressions auf der Basis von Zeit in Sekunden (nicht Frames) funktionieren, müssen Sie möglicherweise die Zeitwerte mithilfe von Konvertierungsmethoden in Frames umwandeln. (Siehe Zeitkonvertierungsmethoden (Expression-Referenz).)

Expression-Fehler

Wenn eine Expression nicht ausgewertet werden kann, werden Expression-Fehler in einem Warnungsbanner am unteren Rand der Kompositions- und Ebenenfenster angezeigt. After Effects deaktiviert die Expression nicht, sondern setzt ihre Auswertung fort. Das Warnungsbanner wird angezeigt, solange bei der Auswertung der Expression Fehler auftreten, d. h. bis sie korrigiert oder manuell deaktiviert wird.

Hier sehen Sie ein Beispiel des Warnungsbanners für Expression-Fehler:

Beispiel-Expression-Fehler
Beispiel-Expression-Fehler

A. Pfeil nach links oder rechts B. Schaltfläche „Expression-Fehler anzeigen“ C. Schaltfläche zum Ein-/Ausblenden der Warnung 
  • Mit den Pfeilen nach links oder rechts können Sie den vorherigen oder nächsten Expression-Fehler anzeigen, wenn die Auswertung mehrerer Expressions fehlschlägt.
  • Die Schaltfläche „Expression-Fehler anzeigen“ (Lupe) zeigt die Eigenschaft mit der fehlgeschlagenen Expression im Zeitleistenfenster an. Wenn die Expression in einer anderen Komposition enthalten ist, wird die entsprechende Komposition geöffnet.
  • Die Schaltfläche zum Ein-/Ausblenden der Warnung (Pfeil nach oben/unten) blendet den Fehlertext ein bzw. aus.

Der Fehlertext für die Expression umfasst nur eine Zeile und wird entsprechend der Breite des Kompositionsfensters abgeschnitten.

Gehen Sie wie folgt vor, um den vollständigen Fehlertext für die Expression anzuzeigen:

Klicken Sie neben der Expression auf . Der vollständige Fehler wird in einem Dialogfeld angezeigt.

Gehen Sie wie folgt vor, um das Warnungsbanner auszublenden:

Klicken Sie auf „After Effects CC“ (Mac OS) oder „Bearbeiten“ (Windows) > „Voreinstellungen“ > „Allgemein“ und deaktivieren Sie die Option „Warnungsbanner anzeigen, wenn das Projekt Expression-Fehler enthält“.

Wenn diese Option deaktiviert ist, bleibt das Warnungsbanner auch dann ausgeblendet, wenn neue Expression-Fehler auftreten.

Aktivieren Sie die Option wieder, um Expression-Fehler anzuzeigen.

Online-Ressourcen

Viele der in diesem Abschnitt genannten Beispiele basieren auf Beispielen von Dan Ebberts. Darüber hinaus bietet Dan Ebberts auf seiner Motionscript-Website eine hervorragende Sammlung von Beispiel-Expressions und Lehrgängen zur Erläuterung der Arbeit mit Expressions an.

Das AE Enhancers Forum bietet zahlreiche Beispiele und Informationen zu Expressions sowie Skripte und Animationsvorgaben.

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