Dimension
- Benutzerhandbuch –After Effects
- Beta-Versionen
- Erste Schritte
- Arbeitsbereiche
- Projekte und Kompositionen
- Importieren von Footage
- Vorbereiten und Importieren von Standbildern
- Importieren aus After Effects und Adobe Premiere Pro
- Importieren und Interpretieren von Video und Audio
- Vorbereiten und Importieren von 3D-Bilddateien
- Importieren und Interpretieren von Footage-Elementen
- Arbeiten mit Footage-Elementen
- Erkennen von Bearbeitungspunkten mithilfe der Szenenbearbeitungs-Erkennung
- XMP-Metadaten
- Text und Grafiken
- Text
- Animationen
- Arbeiten mit Animationsvorlagen in After Effects
- Verwenden von Expressions zum Erstellen von Dropdown-Listen in Animationsvorlagen
- Verwenden von erforderlichen Eigenschaften zum Erstellen von Animationsvorlagen
- Ersetzen von Bildern und Videos in Animationsvorlagen und erforderlichen Eigenschaften
- Schneller und einfacher animieren mithilfe des Bedienfelds „Eigenschaften“
- Zeichnen, Malen und Pfade
- Überblick über Formebenen, Pfade und Vektorgrafiken
- Malwerkzeuge: Pinsel, Kopierstempel und Radiergummi
- Verjüngen von Formenkonturen
- Formenattribute, Malvorgänge und Pfadvorgänge bei Formebenen
- Verwenden des Formeneffekts „Offset-Pfade“ zum Ändern von Formen
- Erstellen von Formen
- Erstellen von Masken
- Entfernen von Objekten aus Videos mit dem Bedienfeld „Inhaltsbasierte Füllung“
- „Roto-Pinsel“ und „Maske verbessern“
- Ebenen, Marken und Kamera
- Animation, Keyframes, Motion-Tracking und Keying
- Animation
- Keyframe
- Bewegungs-Tracking
- Keying
- Transparenz und Komposition
- Anpassen der Farbe
- Effekte und Animationsvorgaben
- Überblick über Effekte und Animationsvorgaben
- Effektliste
- Effekt-Manager
- Effekte unter „Simulation“
- Effekte unter „Stilisieren“
- Effekte unter „Audio“
- Effekte unter „Verzerren“
- Effekte unter „Perspektive“
- Effekte unter „Kanäle“
- Effekte unter „Generieren“
- Effekte unter „Zeit“
- Effekte unter „Überblenden“
- Der Effekt „Rolling-Shutter-Reparatur“
- Effekte „Weich- und Scharfzeichnen“
- Effekte unter „3D-Kanal“
- Effekte unter „Dienstprogramm“
- Effekte unter „Matt“
- Effekte unter „Störung und Körnung“
- Effekt „Details erhalten (Vergrößerung)“
- Veraltete Effekte
- Ausdrücke und Automatisierung
- Expressions
- Expressions – Grundlagen
- Verstehen der Sprache für Expressions
- Verwenden von Einstellungen für Expressions
- Syntaxunterschiede zwischen den Expression-Engines für JavaScript und das veraltete ExtendScript
- Bearbeiten von Expressions
- Fehler bei Expressions
- Verwenden des Expressions-Editors
- Verwenden von Expressions zum Bearbeiten und Zugreifen auf Texteigenschaften
- Sprachreferenz für Expressions
- Beispiele für Expressions
- Automatisierung
- Expressions
- Immersives Video, VR und 3D
- Erstellen von VR-Umgebungen in After Effects
- Anwenden von immersiven Videoeffekten
- Kompositionswerkzeuge für VR/360-Grad-Videos
- Erweiterter 3D-Renderer
- Importieren und Hinzufügen von 3D-Modellen zu Ihrer Komposition
- Importieren von 3D-Modellen aus Creative Cloud Libraries
- Bildbasierte Beleuchtung
- Extrahieren und Animieren von Lichtern und Kameras aus 3D-Modellen
- Tracking von 3D-Kamerabewegungen
- Werfen und Akzeptieren von Schatten
- Eingebettete 3D-Modell-Animationen
- Schattenfänger
- Extraktion von 3D-Tiefendaten
- Ändern der Materialeigenschaften einer 3D-Ebene
- Arbeiten im 3D-Designraum
- 3D-Transformations-Gizmos
- Machen Sie mehr mit 3D-Animation
- Vorschau von Änderungen an 3D-Designs in Echtzeit mit der Mercury 3D-Engine
- Hinzufügen von responsiven Designs zu Grafiken
- Ansichten und Vorschau
- Rendern und Exportieren
- Grundlagen zum Rendern und Exportieren
- H.264-Codierung in After Effects
- Exportieren eines After Effects-Projekts als Adobe Premiere Pro-Projekt
- Konvertieren von Filmen
- Multi-Frame-Rendering
- Automatisches Rendern und Netzwerk-Rendern
- Rendern und Exportieren von Standbildern und Standbildsequenzen
- Verwenden des GoPro CineForm-Codecs in After Effects
- Arbeiten mit anderen Programmen
- Zusammenarbeit: Frame.io und Team Projects
- Arbeitsspeicher, Speicherung und Leistung
- Wissensdatenbank
Erfahre mehr über die Expression-Sprache und verwende sie, um verschiedene Expressions in After Effects zu erstellen.
Die Expression-Sprache von After Effects basiert auf JavaScript, verfügt aber über einen erweiterten Satz integrierter Objekte. After Effects verwendet die Standardsprache JavaScript anstelle von Browser-spezifischen Erweiterungen und enthält einen eigenen Satz von Erweiterungsobjekten wie Ebene, Komposition, Footage und Kamera.
Obwohl die Expression-Sprache auf einer Skriptsprache basiert, besteht ein subtiler, aber grundlegender Unterschied zwischen einem Skript und einer Expression. Während ein Skript eine Anwendung anweist, etwas zu tun, weist eine Expression eine Eigenschaft an, etwas zu tun.
Beachte beim Erstellen von Expressions folgende Punkte:
- Der Wert einer Expression entspricht dem Wert der zuletzt ausgewerteten Anweisung. Dies ist in der Regel die letzte Zeile der Expression. Der Wert einer Expression wird in seiner einfachsten Form durch die letzte Variable oder Funktion erzeugt, die in der Expression basierend auf der Auswertungsreihenfolge aufgerufen wird. Es kann aber auch ein beliebiger Wert sein, den du explizit als Rückgabewert referenzierst. Dazu können Werte gehören, die zu Debugging-Zwecken viel früher in der Expression verwendet werden, oder Werte außerhalb explizit deklarierter Funktionen und Variablen, die nicht in der Reihenfolge verarbeitet werden, in der sie geschrieben wurden.
- Die JavaScript-Sprache unterscheidet zwischen Groß- und Kleinschreibung.
- Funktionen sollten nicht am unteren Rand einer Expression deklariert werden.
Sprachgrundlagen
In JavaScript wird ein Wert, der in einem Objekt gespeichert ist, als „property“ (Eigenschaft) bezeichnet. In After Effects dient der Begriff „property“ dagegen zur Bezeichnung von Ebenenkomponenten, die im Bedienfeld Zeitleiste definiert sind. 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 du Objektreferenzen über die Ebene hinaus verketten möchtest (z. B. um auf Effekteigenschaften, Masken oder Textanimatoren zu verweisen), kannst du dazu Klammern einsetzen. Beispiel: Um die Eigenschaft Deckkraft in Ebene A mit der Eigenschaft Stärke des Effekts Gaußscher Weichzeichner in Ebene B zu verknüpfen, gib im Expression-Feld für die Eigenschaft Deckkraft der Ebene A folgende Expression ein:
thisCompayer(“Layer B”)ffect(“Gaussian Blur”)(“Blurriness”)
Beim Lesen dieser Expression von links nach rechts gelangst du 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("Layer 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, wird [n] wie hier dargestellt an das Ende angehängt:
thisCompayer(“Layer B”)ffect(“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) thisProperty.wiggle(5, 10)
Wenn jedoch die Ebene und die Eigenschaft außerhalb der Ebene und der Eigenschaft liegen, für die die Expression eingegeben wird, müssen die Ebene und die Eigenschaft auch angegeben werden. 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:
thisCompayer(“Layer A”)otation
Wenn du weitere Beispiele zu dieser Funktion sehen möchtest, verknüpfe mithilfe des Auswahlwerkzeugs eine Ebeneneigenschaft mit einer anderen und sieh dir die Expressions an, die dabei erstellt werden.
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 dir, Verweise auf Array-Werte in anderen Bereichen der Expression zu erstellen. Beispiel:
myArray = [10, 23]
Die Dimension eines Array-Objekts gibt die Anzahl der Elemente im Array an. Die Dimension von myArray beträgt 2. Verschiedene Eigenschaften in After Effects verfügen über unterschiedliche Dimensionen, abhängig von der Anzahl der Wertargumente, die sie haben. In der Expression-Sprache werden Eigenschaftswerte entweder als einzelne Werte (Zahlenobjekte) oder als Arrays (Array-Objekte) angegeben.
Die folgende Tabelle enthält Beispiele einiger Eigenschaften und ihrer Dimensionen:
|
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 kannst du angeben, welches Element des Array-Objekts verwendet werden soll, und so auf die einzelnen Elemente zugreifen. Die Elemente in einem Array-Objekt werden von 0 an indiziert. Im vorherigen Beispiel ist myArray[0] 10 und myArray[1] ist 23.
Die folgenden beiden Expressions sind gleichwertig:
[myArray[0], 5] [10, 5]
Arrays der Eigenschaft „Position“
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.
Darstellung von Farben in Arrays
Farben werden als 4D-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 Array-Objekt, 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.
Beispiele
Wenn du eine Expression schreiben möchtest, bei der der y-Wert der Animation Position erhalten bleiben, der x-Wert aber auf 9 gesetzt werden soll, musst du Folgendes verwenden:
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 du den Wert der x-Position aus Ebene A mit dem Wert der y-Position aus Ebene B kombinieren möchtest, würdest du Folgendes schreiben:
x = thisCompayer(“Layer A”)osition[0 y = thisCompayer(“Layer B”)osition[1 [x]
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 du das Expression-Auswahlwerkzeug von der Eigenschaft Drehung der Ebene A auf die Eigenschaft Skalierung der Ebene B ziehst, wird folgende Expression angezeigt:
thisCompayer(“Layer B”)cale[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:
thisCompayer(“Layer B”)cale[1]
Wenn du umgekehrt das Auswahlwerkzeug von der Eigenschaft Skalierung der Ebene B auf die Eigenschaft Drehung der Ebene A ziehst, 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
Die Indizierung für die Elemente Ebene, Effekt und Maske in After Effects beginnt bei 1. Die erste Ebene im Bedienfeld Zeitleiste wäre beispielsweise layer(1).
Im Allgemeinen empfiehlt es sich, statt einer Zahl 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 Zahl 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 du die Reihenfolge der Effekte änderst:
effect(“Colorama”)aram(“Get Phase From”) effect(1)aram(2)
Zeit in Expressions
Die Zeit innerhalb einer Expression ist immer die Kompositionszeit (nicht der Zeitpunkt der Ebene) und wird in Sekunden gemessen (das ist bei der Expression sourceRectAtTime() nicht der Fall). 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 du z. B. einen Positionswert zu einem Zeitpunkt abrufen möchtest, der 5 Sekunden vor dem aktuellen Zeitpunkt liegt, kannst du 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 verzerrte 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 du die Positionswerte einer Ebene in der verschachtelten Komposition mit der folgenden Expression abrufst, verwenden die Positionswerte die Standardzeit der Komposition:
comp(“nested composition”)ayer(1)osition
Wenn du jedoch mit der Funktion source auf die Ebene 1 zugreifst, verwenden die Positionswerte die gedehnte Zeit:
thisCompayer(“nested composition”)ourceayer(1)osition
Wenn du eine bestimmte Zeit in einer Expression verwendest, ignoriert After Effects die gedehnte Zeit.
Da Expressions auf der Basis von Zeit in Sekunden (nicht Frames) funktionieren, musst du möglicherweise die Zeitwerte mithilfe von Konvertierungsmethoden in Frames umwandeln.
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 Position von Farbfläche 2, wobei die Bewegung von Farbfläche 2 gegenüber der von Farbfläche 1 um zwei Sekunden versetzt ist.
-
Erstelle zwei Farbflächenebenen: Farbfläche 1 und Farbfläche 2.
-
Animiere die Werte für die Eigenschaft Position für Farbfläche 1 mithilfe von Keyframes. (Siehe Animation, Keyframes und Expressions.)
-
Wähle die Positionseigenschaft für Farbfläche 2 aus und klicke auf Animation > Expression hinzufügen oder bei gedrückter Alt-Taste (Windows) bzw. Wahltaste (macOS) auf die Stoppuhr-Schaltfläche für die Eigenschaft. Standardmäßig wird die folgende Expression angezeigt:
transform.position
-
Überschreibe transform.position mit folgendem Eintrag:
thisComp
-
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 deiner Expression nach thisComp stehen kann, suche den Rückgabewert für thisComp unter Globale Objekte, Attribute und Methoden (Expression-Referenz) heraus.
Beachte, dass thisComp ein Objekt des TypsComp (Komposition) zurückgibt. Im Abschnitt Objekttyp „Comp“ (Komposition): Attribute und Methoden ist angegeben, welche Attribute und Methoden du mit einem Objekt des Typs Comp verwenden kannst. Eine Option ist layer(index). Der Index oder die Nummer in Klammern gibt die Ebene an, die du verwenden möchtest. In diesem Beispiel wird davon ausgegangen, dass Farbfläche 1 die erste Ebene in der Komposition ist. Um Werte aus der ersten Ebene in der aktiven Komposition abzurufen, giblayer(1) am Ende der Expression ein, um Folgendes zu erhalten:
thisComp.layer(1)
-
Ein erneuter Blick in die After Effects-Referenz für Expression-Elemente zeigt, dass layer(index) ein Objekt des Typs Layer (Ebene) zurückgibt. Suche unter Objekttyp „Layer General“ (Ebene allgemein): Attribute und Methoden das gewünschte Element heraus. Wenn du z. B. die Werte der Eigenschaft „Position“ für eine Ebene abrufen möchtest, gib am Ende der Expression .position ein. Du erhältst folgendes Ergebnis:
thisComp.layer(1).position
-
Aus dem Abschnitt Objekttyp „Layer General“ (Ebene allgemein): Allgemeine Attribute und Methoden kannst du erkennen, dass das Attribut position eine Eigenschaft zurückgibt. Beachte unter „Property“ (Eigenschaft): Attribute und Methoden, dass du der Expression einen Zeitfaktor hinzufügen kannst. Wenn du eine bestimmte Zeit, z. B. den aktuellen Zeitpunkt plus 2 Sekunden hinzufügen möchtest, gib am Ende der Expression .valueAtTime(time+2) ein. Du erhältst folgendes Ergebnis:
thisComp.layer(1).position.valueAtTime(time+2)
-
Beachte unter Objekttyp „Property“ (Eigenschaft): Attribute und Methoden, 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, kannst du dieser Expression keine weiteren Attribute oder Methoden hinzufügen. (Auf Wunsch kannst du jedoch Operatoren wie +, -, * und / hinzufügen).
Weitere Ressourcen zu Expressions
Da Sie jetzt einige der Konzepte im Zusammenhang mit Expressions verstanden haben, können Sie der Community beitreten, um echte Anwendungsbeispiele zu erhalten und Ihre Arbeit zu teilen.
Das AE Enhancers Forum bietet auch zahlreiche Beispiele und Informationen zu Expressions sowie Skripte und Animationsvorgaben.