Verwenden Sie die After Effects-Expression-Elemente zusammen mit Standard-JavaScript-Elementen zum Schreiben von Expressions. Sie können das Expression-Sprachmenü jederzeit zum Einfügen von Methoden und Attributen in eine Expression verwenden. Mit dem Expression-Auswahlwerkzeug können Sie jederzeit Eigenschaften einfügen.

Wenn eine Argumentbeschreibung ein Gleichheitszeichen (=) und einen Wert (z. B. t=time oder width=.2) enthält, verwendet das Argument den enthaltenen Standardwert, sofern Sie keinen anderen Wert festlegen.

Einige Argumentbeschreibungen enthalten eine Zahlenangabe in eckigen Klammern. Diese Zahl gibt die Dimension der erwarteten Eigenschaft bzw. des erwarteten Arrays an.

Einige zurückgegebenen Wertbeschreibungen enthalten eine Zahlenangabe in eckigen Klammern. Diese Angabe gibt die Dimension der zurückgegebenen Eigenschaft bzw. des zurückgegebenen Arrays an. Wenn eine bestimmte Dimension nicht enthalten ist, richtet sich die Dimension des zurückgegebenen Arrays nach der Dimension der Eingabe.

Auf der W3Schools JavaScript Referenz-Website finden Sie Informationen zur Standard-Skriptsprache JavaScript, einschließlich Seiten zu den JavaScript-Objekten Math und String.

Expressions: JavaScript-Engine

After Effects nutzt für die Auswertung von Expressions eine JavaScript-Engine. Diese Auswertung ist beim Rendern bis zu 5-mal schneller als mit der alten ExtendScript-Engine.

Unter Windows nutzt After Effects die Open-Source-JavaScript-Engine V8. Unter macOS nutzt After Effects das JavaScriptCore-Framework. Diese beiden Engines stellen eine modernere Version von JavaScript bereit als ExtendScript, das nur die dritte Edition des ECMA-262-Standards unterstützt.

Wenn Sie festlegen möchten, ob für ein Projekt die JavaScript-Engine oder das veraltete ExtendScript verwendet wird, klicken Sie im Dialogfeld Projekteinstellungen auf die Registerkarte Expressions und ändern Sie die Option Expressions-Engine. Projekte, die in älteren Versionen von After Effects gespeichert wurden, verwenden standardmäßig das veraltete ExtendScript.

Verbesserungen durch die JavaScript-Engine

  • Höhere mathematische Präzision bei Gleitkommaoperationen. 
  • Array- und Zeichenfolgemethoden des modernen JavaScripts können verwendet werden.
  • Weitere moderne JavaScript-Objekte wie typisierte Arrays, die Nutzung von Schlüsselwörtern wie „let“ und „const“ und viele andere Ergänzungen der jüngeren Versionen des ECMA-262-Standards sind verfügbar.

Unterschiede zwischen der JavaScript-Engine und ExtendScript

  • Bei der JavaScript-Engine ist die Syntax für if/else-Anweisungen strikt und muss im standardisierten JavaScript geschrieben werden.
  • Verwenden Sie für den Zugriff auf die Zeichenindizes auf einer Textebene als Array text.sourceText.value[i] statt text.sourceText[i].
  • Ältere snake_case-Expressionmethoden wie this_comp und to_world, die bei ExtendScript abgelehnt wurden, werden nicht unterstützt.
  • Vereinfachte „this(arg)“-Syntax wird nicht unterstützt.

Globale Objekte, Attribute und Methoden (Expression-Referenz)

comp(name)

Rückgabetyp: Comp (Komposition).

Argumenttyp: name ist ein String.

Ruft eine andere Komposition anhand des Namens ab.

footage(name)

Rückgabetyp: Footage.

Argumenttyp: name ist ein String.

Ruft ein Footageelement anhand des Namens ab.

thisComp

Rückgabetyp: Comp (Komposition).

Steht für die Komposition, die die Expression enthält.

thisLayer

Rückgabetyp: Layer (Ebene), Light (Licht) oder Camera (Kamera).

Steht für die Ebene, die die Expression enthält. Da thisLayer das Standardobjekt ist, ist dessen Verwendung optional. Sie können z. B. eine Expression mit thisLayer.width oder width beginnen. Bei beiden Varianten erhalten Sie dasselbe Ergebnis.

thisProperty

Rückgabetyp: Property (Eigenschaft).

Steht für die Eigenschaft, die die Expression enthält. Wenn Sie z. B. eine Expression für die Eigenschaft „Drehung“ schreiben, können Sie diese mit thisProperty beginnen, um auf den Wert für die Eigenschaft „Drehung“ zu verweisen.

time

Rückgabetyp: Number (Zahl).

Steht für den Kompositionszeitpunkt (in Sekunden), an dem die Expression ausgewertet wird.

colorDepth

Rückgabetyp: Number (Zahl).

Gibt den Wert für die Farbtiefe des Projekts zurück. Wenn die Farbtiefe des Projekts z. B. 16 Bit pro Kanal beträgt, gibt colorDepth 16 zurück.

posterizeTime(framesPerSecond)

Rückgabetyp: Number (Zahl).

Argumenttyp: framesPerSecond ist eine Number (Zahl).

Der Wert für framesPerSecond wird zur Framerate für den Rest der Expression. Mit dieser Expression können Sie eine Framerate für eine Eigenschaft erstellen, die niedriger als die Framerate für die Komposition ist. Mit der folgenden Expression wird z. B. der Eigenschaftswert einmal pro Sekunde mit einem Zufallswert aktualisiert:

    posterizeTime(1);   random()

value

Rückgabetyp: Number (Zahl), Array oder String.

Gibt den Wert am aktuellen Zeitpunkt für die Eigenschaft zurück, die die Expression enthält.

Zeitkonvertierungsmethoden (Expression-Referenz)

timeToFrames(t = time + thisComp.displayStartTime, fps = 1,0 / thisComp.frameDuration, isDuration = false)

Rückgabetyp: Number (Zahl).

Argumenttyp: t und fps sind Numbers (Zahlen); isDuration ist ein Boolean (boolescher Wert).

Konvertiert den Wert für t, der standardmäßig dem Zeitpunkt der aktuellen Komposition entspricht, in eine ganze Zahl Frames. Die Anzahl der Frames pro Sekunde wird im fps-Argument angegeben, das standardmäßig der Framerate der aktuellen Komposition entspricht (1.0 / thisComp.frameDuration). Das Argument isDuration, dessen Wert standardmäßig „false“ ist, sollte „true“ sein, wenn der Wert t keine absolute Zeit, sondern eine Differenz zwischen den beiden Zeiten darstellt. Absolute Zeiten werden gegen negativ unendlich abgerundet; Werte für die Dauer werden von Null weg gerundet (bei positiven Werten nach oben).

framesToTime(frames, fps = 1.0 / thisComp.frameDuration)

Rückgabetyp: Number (Zahl).

Argumenttyp: frames und fps sind Numbers (Zahlen).

Die umgekehrten Werte von timeToFrames. Gibt die Zeit zurück, die dem erforderlichen Argument frames entspricht. Dabei muss es sich nicht um einen Integer handeln. Eine Erklärung des Arguments fps finden Sie in der Beschreibung zu timeToFrames.

timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 30, isDuration = false)

Rückgabetyp: String.

Argumenttyp: t und timecodeBase sind Numbers (Zahlen); isDuration ist ein Boolean (boolescher Wert).

Konvertiert den Wert für t in einen String, der für den Timecode steht. Eine Erläuterung der Argumente t und isDuration finden Sie in der Beschreibung zu timeToFrames. Der Wert timecodeBase, der standardmäßig den Wert 30 hat, gibt die Anzahl der Frames in einer Sekunde an.

timeToNTSCTimecode(t = time + thisComp.displayStartTime, ntscDropFrame = false, isDuration = false)

Rückgabetyp: String.

Argumenttyp: t ist eine Number (Zahl), ntscDropFrame und isDuration sind Booleans (boolesche Werte).

Konvertiert t in einen String, der für NTSC-Timecode steht. Eine Erläuterung der Argumente t und isDuration finden Sie in der Beschreibung zu timeToFrames. Ist ntscDropFrame „false“ (der Standardwert), ist der resultierende String NTSC-Non-Drop-Frame-Timecode. Ist ntscDropFrame „true“, ist der resultierende String NTSC-Drop-Frame-Timecode.

timeToFeetAndFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, framesPerFoot = 16, isDuration = false)

Rückgabetyp: String.

Argumenttyp: t, fps und framesPerFoot sind Numbers (Zahlen); isDuration ist ein Boolean (boolescher Wert).

Konvertiert den Wert t in einen String, der für Film-Feet und Frames steht. Eine Erläuterung der Argumente t, fps und isDuration finden Sie in der Beschreibung zu timeToFrames. Das Argument framesPerFoot gibt die Anzahl von Frames in einem Foot Film an. Der Standardwert ist 16, was der häufigsten Rate für 35-mm-Footage entspricht.

timeToCurrentFormat(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)

Rückgabetyp: String.

Argumenttyp: t und fps sind Numbers (Zahlen); isDuration ist ein Boolean (boolescher Wert).

Konvertiert den Wert von t in einen String, der für die Zeit im aktuellen Anzeigeformat der Projekteinstellungen steht. Eine Definition aller Argumente finden Sie in der Beschreibung zu timeToFrames.

Der Funktion timeToCurrentFormat() wurde in After Effects CS5.5 und höher das optionale Argument ntscDropFrame hinzugefügt. Standard: ntscDropFrame = thisComp.ntscDropFrame.

Hinweis:

Wenn Sie mehr Kontrolle über das Aussehen des Timecodes in Ihrem Footage haben möchten, verwenden Sie anstelle der Effekte „Timecode“ oder „Zahlen“ die Methode timeToCurrentFormat oder andere timeTo-Methoden, um den Timecode zu generieren. Erstellen Sie eine Textebene, fügen Sie der Eigenschaft „Quelltext“ eine Expression hinzu und geben Sie timeToCurrentFormat() in das Expression-Feld ein. Mithilfe dieser Methode können Sie den Timecode-Text formatieren und animieren. Außerdem verwendet der Timecode das Anzeigeformat, das in den aktuellen Projekteinstellungen definiert wurde.

Vektormathematische Methoden (Expression-Referenz)

Vektormathematische Funktionen sind globale Methoden zum Ausführen von Operationen an Arrays, die als mathematische Vektoren behandelt werden. Im Gegensatz zu den integrierten JavaScript-Methoden wie Math.sin werden diese Methoden ohne das Präfix Math verwendet. Sofern keine anderen Festlegungen getroffen wurden, geben vektormathematische Methoden einen Wert mit der Dimension des größten Eingabearrayobjekts zurück und füllen die fehlenden Elemente mit Nullen auf. Die Expression add([10, 20], [1, 2, 3]) gibt z. B. [11, 22, 3] zurück.

JJ Giffords Website enthält Erläuterungen und Beispiele zur Verwendung einfacher Geometrie und Trigonometrie mit Expressions.

add(vec1, vec2)

Rückgabetyp: Array.

Argumenttyp: vec1 und vec2 sind Arrays.

Addiert zwei Vektoren.

sub(vec1, vec2)

Rückgabetyp: Array.

Argumenttyp: vec1 und vec2 sind Arrays.

Subtrahiert zwei Vektoren.

mul(vec, amount)

Rückgabetyp: Array.

Argumenttyp: vec ist ein Array, amount ist eine Number (Zahl).

Multipliziert jedes Element des Vektors mit dem Betrag.

div(vec, amount)

Rückgabetyp: Array.

Argumenttyp: vec ist ein Array, amount ist eine Number (Zahl).

Dividiert jedes Element des Vektors durch den Betrag.

clamp(value, limit1, limit2)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: value, limit1 und limit2 sind Numbers (Zahlen) oder Arrays.

Der Wert jeder Komponente von value ist auf den Bereich zwischen den entsprechenden Werten limit1 und limit2 beschränkt.

dot(vec1, vec2)

Rückgabetyp: Number (Zahl).

Argumenttyp: vec1 und vec2 sind Arrays.

Gibt das Punktprodukt (innere Punkte) der Vektorargumente zurück.

cross(vec1, vec2)

Rückgabetyp: Array [2 oder 3].

Argumenttyp: vec1 und vec2 sind Arrays [2 oder 3].

Gibt das Vektorkreuzprodukt von vec1 und vec2 zurück. Weitere Informationen finden Sie in Mathematik- bzw. JavaScript-Referenzhandbüchern.

normalize(vec)

Rückgabetyp: Array.

Argumenttyp: vec ist ein Array.

Normalisiert den Vektor, sodass die Länge 1,0 beträgt. Mit der normalize-Methode können Sie den Vorgangdiv(vec, length(vec)) abkürzen.

length(vec)

Rückgabetyp: Number (Zahl).

Argumenttyp: vec ist ein Array.

Gibt die Länge des Vektors vec zurück.

length(point1, point2)

Rückgabetyp: Number (Zahl).

Argumenttyp: point1 und point2 sind Arrays.

Gibt die Distanz zwischen zwei Punkten zurück. Das Argument point2 ist optional. So ist z. B. length(point1, point2) identisch mit length(sub(point1, point2)).

Beispiel: Fügen Sie der Eigenschaft „Fokusentfernung“ einer Kamera folgende Expression hinzu, um die Fokalebene mit dem Zielpunkt der Kamera zu verknüpfen, damit der Zielpunkt im Fokus bleibt:

  length(position, pointOfInterest)

lookAt(fromPoint, atPoint)

Rückgabetyp: Array [3].

Die Argumenttypen fromPoint und atPoint sind Arrays [3].

Das Argument fromPoint ist der Standort der auszurichtenden Ebene im Welt-Raum. Das Argument atPoint ist der Punkt im Welt-Raum, auf den die Ebene gerichtet werden soll. Der Rückgabewert kann als Expression für die Eigenschaft „Ausrichtung“ verwendet werden, wobei die z-Achse der Ebene auf atPoint gerichtet ist. Diese Methode eignet sich besonders für die Ausrichtung von Kameras und Lichtern. Wenn Sie diese Expression für eine Kamera verwenden, deaktivieren Sie die Option „Automatische Ausrichtung“. Beispielsweise sorgt diese Expression für die Eigenschaft „Ausrichtung“ eines Spotlichts dafür, dass die Lichtquelle auf den Ankerpunkt der Ebene 1 in derselben Komposition gerichtet wird: lookAt(position, thisComp.layer(1).position)

Zahl toXMLString (Expression-Referenz)

Hinweis:

Die Methode „Verwackeln“, mit der Sie einen Eigenschaftswert zufällig variieren können, befindet sich in der Kategorie „Eigenschaftsattribute und -methoden“. Weitere Informationen finden Sie unter Eigenschaftsattribute und Methoden (Ausdrucksreferenz).

seedRandom(offset, timeless=false)

Rückgabetyp: keiner.

Argumenttyp: offset ist eine Number (Zahl), timeless ist ein Boolean (boolescher Wert).

Die Methoden random und gaussRandom verwenden einen Ausgangswert, der die Reihenfolge der Zahlen steuert. Der Ausgangswert wird standardmäßig als Funktion eines eindeutigen Ebenenbezeichners, der Eigenschaft innerhalb der Ebene, der aktuellen Zeit und einem Versatzwert von 0 berechnet. Rufen Sie seedRandom auf, um einen anderen Versatz als 0 einzustellen und eine andere Zufallsreihenfolge zu erstellen.

Setzen Sie das timeless-Argument auf true. Geben Sie nicht die aktuelle Zeit für die Zufallsverteilung ein. Wenn Sie das timeless-Argument auf true setzen, können Sie eine Zufallszahl generieren, die sich nicht abhängig von der Auswertungszeit ändert.

Mit dem Wert offset, nicht aber mit dem Wert timeless wird außerdem der Startwert der Funktion wiggle gesteuert.

 Beispielsweise legt diese Expression in der Eigenschaft „Deckkraft“ einen zufälligen Deckkraftwert fest, der sich nicht im Verlauf der Zeit ändert:

  seedRandom(123456, true);   random()*100

Durch die Multiplikation mit 100 in diesem Beispiel wird der zwischen 0 und 1 liegende Wert, der von der Zufallsmethode zurückgegeben wird, in eine Zahl zwischen 0 und 100 konvertiert. Dieser Wertebereich ist besser für die Eigenschaft „Deckkraft“ geeignet, deren Werte zwischen 0 und 100 % liegen.

random()

Rückgabetyp: Number (Zahl).

Gibt eine Zufallszahl zwischen 0 und 1 zurück.

In After Effects CC und CS6 ist das Verhalten von 'random()' noch zufälliger, wenn Ebenen-IDs dicht beieinander liegen. Die Expression „Verwackeln()“ wird nicht beeinflusst.

random(maxValOrArray)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: maxValOrArray ist eine Number (Zahl) oder ein Array.

Wenn maxValOrArray eine Number (Zahl) ist, gibt diese Methode eine Zahl zwischen 0 und maxValOrArray zurück. Ist maxValOrArray ein Array, gibt diese Methode ein Array mit derselben Dimension wie maxValOrArray zurück, wobei die einzelnen Komponenten zwischen 0 und der entsprechenden Komponente von maxValOrArray liegen.

random(minValOrArray, maxValOrArray)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: minValOrArray und maxValOrArray sind Numbers (Zahlen) oder Arrays.

Wenn minValOrArray und maxValOrArray Numbers (Zahlen) sind, gibt diese Methode eine Zahl zwischen minValOrArray und maxValOrArray zurück. Wenn die Argumente Arrays sind, gibt diese Methode ein Array mit derselben Dimension wie das Argument mit der größeren Dimension zurück, wobei jede Komponente im Bereich von der entsprechenden minValOrArray-Komponente bis zur entsprechenden maxValOrArray-Komponente liegt. Beispiel: Die Expression random([100, 200], [300, 400]) gibt ein Array zurück, dessen erster Wert im Bereich zwischen 100 und 300 und dessen zweiter Wert zwischen 200 und 400 liegt. Wenn die Dimensionen der beiden Eingabe-Arrays nicht übereinstimmen, werden die Werte der höheren Dimension des kürzeren Arrays mit Nullen aufgefüllt.

gaussRandom()

Rückgabetyp: Number (Zahl).

Gibt eine Zufallszahl zurück. Die Ergebnisse haben eine „Gaußsche“ (glockenförmige) Verteilung. Etwa 90 % der Ergebnisse liegen im Bereich von 0 bis 1; die übrigen 10 % liegen außerhalb dieses Bereichs.

gaussRandom(maxValOrArray)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: maxValOrArray ist eine Number (Zahl) oder ein Array.

Ist maxValOrArray eine Number (Zahl), gibt diese Methode eine Zufallszahl zurück. Etwa 90 % der Ergebnisse liegen im Bereich von 0 bis maxValOrArray; die übrigen 10 % liegen außerhalb dieses Bereichs. Ist maxValOrArray ein Array, gibt diese Methode ein Array mit Zufallswerten zurück, und zwar mit derselben Dimension wie maxValOrArray. 90 % der Werte liegen im Bereich von 0 bis maxValOrArray; die übrigen 10 % liegen außerhalb dieses Bereichs. Die Ergebnisse haben eine „Gaußsche“ (glockenförmige) Verteilung.

gaussRandom(minValOrArray, maxValOrArray)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: minValOrArray und maxValOrArray sind Numbers (Zahlen) oder Arrays.

Sind minValOrArray und maxValOrArray Numbers (Zahlen), gibt diese Methode eine Zufallszahl zurück. Ungefähr 90 % der Ergebnisse liegen im Bereich von minValOrArray bis maxValOrArray; die übrigen 10 % liegen außerhalb dieses Bereichs. Sind die Argumente Arrays, gibt diese Methode ein Array von Zufallszahlen zurück, dessen Dimension der des Arguments mit der größeren Dimension entspricht. Ungefähr 90 % der Ergebnisse der einzelnen Komponenten liegen im Bereich von der entsprechenden minValOrArray-Komponente bis zur entsprechenden maxValOrArray-Komponente; die übrigen 10 % liegen außerhalb dieses Bereichs. Die Ergebnisse haben eine „Gaußsche“ (glockenförmige) Verteilung.

noise(valOrArray)

Rückgabetyp: Number (Zahl).

Argumenttyp: valOrArray ist eine Number (Zahl) oder ein Array [2 oder 3].

Gibt eine Number (Zahl) zwischen -1 und 1 zurück. Das Rauschen ist nicht wirklich zufällig; es basiert auf dem Perlin-Rauschen, das heißt, dass die Rückgabewerte für zwei Eingabewerte, die nahe beieinander liegen, normalerweise nahe beieinander liegen. Diese Art des Rauschens ist nützlich, wenn Sie eine Folge von scheinbar zufälligen Zahlen benötigen, die sich nicht sehr stark voneinander unterscheiden – wie es normalerweise der Fall ist, wenn Sie scheinbar zufällige natürliche Bewegungen animieren. Beispiel: rotation + 360*noise(time)

Interpolationsmethoden (Expression-Referenz)

Für sämtliche Interpolationsmethoden ist Argument t häufig Zeit oder Wert, es kann aber auch stattdessen andere Werte haben. Falls t für Zeit steht, findet die Interpolation zwischen Werten über einen Zeitraum statt. Falls t für Wert steht, weist die Expression einem Wertebereich einen neuen Wertebereich zu.

Weitere Erläuterungen und Beispiele für Interpolationsmethoden finden Sie auf JJ Giffords Website.

Chris und Trish Meyer stellen in einem Artikel auf ihrer ProVideo Coalition-Website zusätzliche Informationen über diese Methoden zur Verfügung.

Ian Haigh bietet auf der After Effects Scripts-Website ein Skript an, mit dem Sie erweiterte Interpolationsmethoden-Expressions wie das Abprallen leicht auf Eigenschaften anwenden können.

Andrew Devis stellt auf der Creative COW-Website zwei Video-Lehrgänge zur Verfügung, die detailliert zeigen, wie die lineare Expression-Methode mit dem Befehl „Audio in Keyframes konvertieren“ verwendet wird.

linear(t, tMin, tMax, value1, value2)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t, tMin und tMax sind Numbers (Zahlen); value1 und value2 sind Numbers (Zahlen) oder Arrays.

Gibt value1 zurück, wenn t <= tMin. Gibt value2 zurück, wenn t >= tMax. Gibt eine lineare Interpolation zwischen value1 und value2 zurück, wenn tMin < t < tMax ist.

Diese Expression bewirkt beispielsweise bei der Eigenschaft „Deckkraft“, dass die Deckkraft-Werte über einen Zeitraum von 0 bis 6 Sekunden linear von 20 % zu 80 % verlaufen:

  linear(time, 0, 6, 20, 80)

Diese Methode kann ebenso wie alle anderen Interpolationsmethoden verwendet werden, um von einem Wertebereich zu einem anderen zu wechseln. Diese Expression ändert beispielsweise die Werte der Eigenschaft „Deckkraft“: Der Bereich 0 bis 100 % wird durch den Bereich 20 bis 80 % ersetzt:

  linear(value, 0, 100, 20, 80)

linear(t, value1, value2)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t ist eine Number (Zahl); value1 und value2 sind Numbers (Zahlen) oder Arrays.

Gibt einen Wert zurück, der linear von value1 bis value2 interpoliert wird, da t zwischen 0 und 1 liegt. Gibt value1 zurück, wenn t <= 0. Gibt value2 zurück, wenn t >= 1.

ease(t, value1, value2)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t ist eine Number (Zahl); value1 und value2 sind Numbers (Zahlen) oder Arrays.

Ähnlich wie linear, mit denselben Argumenten, mit dem Unterschied, dass die Interpolation allmählich einsetzt und ausläuft, sodass die Geschwindigkeit am Anfangs- und Endpunkt 0 beträgt. Diese Methode ergibt eine glatte Animation.

ease(t, tMin, tMax, value1, value2)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t, tMin und tMax sind Numbers (Zahlen); value1 und value2 sind Numbers (Zahlen) oder Arrays.

Ähnlich wie linear, mit denselben Argumenten, mit dem Unterschied, dass die Interpolation allmählich einsetzt und ausläuft, sodass die Geschwindigkeit am Anfangs- und Endpunkt 0 beträgt. Diese Methode ergibt eine glatte Animation.

easeIn(t, value1, value2)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t ist eine Number (Zahl); value1 und value2 sind Numbers (Zahlen) oder Arrays.

Ähnlich wie ease, mit dem Unterschied, dass die Tangente nur auf der value1-Seite 0 ist und die Interpolation auf der value2-Seite linear ist.

easeIn(t, tMin, tMax, value1, value2)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t, tMin und tMax sind Numbers (Zahlen); value1 und value2 sind Numbers (Zahlen) oder Arrays.

Ähnlich wie ease, mit dem Unterschied, dass die Tangente nur auf der tMin-Seite 0 ist und die Interpolation auf der tMax-Seite linear ist.

easeOut(t, value1, value2)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t ist eine Number (Zahl); value1 und value2 sind Numbers (Zahlen) oder Arrays.

Ähnlich wie ease, mit dem Unterschied, dass die Tangente nur auf der value2-Seite 0 ist und die Interpolation auf der value1-Seite linear ist.

easeOut(t, tMin, tMax, value1, value2)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t, tMin und tMax sind Numbers (Zahlen); value1 und value2 sind Numbers (Zahlen) oder Arrays.

Ähnlich wie ease, mit dem Unterschied, dass die Tangente nur auf der tMax-Seite 0 ist und die Interpolation auf der tMin-Seite linear ist.

Farbkonvertierungsmethoden (Expression-Referenz)

Harry Frank bietet einen Video-Lehrgang auf seiner Graymachine-Website an, der zeigt, wie diese Farbkonvertierungsmethoden verwendet werden können, um die Farbe der Wellen zu ändern, die durch den Effekt „Radiowellen“ erzeugt wurden.

rgbToHsl(rgbaArray)

Rückgabetyp: Array [4].

Argumenttyp: rgbaArray ist ein Array [4].

Wandelt eine Farbe im RGBA-Farbraum in eine Farbe im HSLA-Raum um. Eingegeben wird ein Array von normalisierten Werten für Rot-, Grün-, Blau- und Alphakanal, die alle im Bereich zwischen 0,0 und 1,0 liegen. Der resultierende Wert ist ein Array von Werten für Farbton, Sättigung, Helligkeit und Alphakanal, die ebenfalls im Bereich zwischen 0,0 und 1,0 liegen. Beispiel:

  rgbToHsl.effect("Change Color")("Color To Change")

hslToRgb(hslaArray)

Rückgabetyp: Array [4].

Argumenttyp: hslaArray ist ein Array [4].

Wandelt eine Farbe im HSLA-Raum in eine Farbe im RGBA-Raum um. Diese Umwandlung ist das Gegenteil der Umwandlung, die mithilfe der rgbToHsl-Methode erfolgt.

Andere mathematische Methoden (Expression-Referenz)

degreesToRadians(degrees)

Rückgabetyp: Number (Zahl).

Argumenttyp: degrees ist eine Number (Zahl).

Konvertiert Grad in Radianten.

radiansToDegrees(radians)

Rückgabetyp: Number (Zahl).

Argumenttyp: radians ist eine Number (Zahl).

Konvertiert Radianten in Grad.

Objekttyp „Comp“ (Komposition): Attribute und Methoden (Expression-Referenz)

layer(index)

Rückgabetyp: Layer (Ebene), Light (Licht) oder Camera (Kamera).

Argumenttyp: index ist eine Number (Zahl).

Ruft Ebenen anhand der Nummer ab (Reihenfolge in der Zeitleiste). Beispiel: thisComp.layer(3)

layer(name)

Rückgabetyp: Layer (Ebene), Light (Licht) oder Camera (Kamera).

Argumenttyp: name ist ein String.

Ruft Ebenen anhand des Namens ab. Für den Namensabgleich wird der Ebenenname oder, falls kein Ebenenname vorhanden ist, der Quellenname herangezogen. Wenn Namen doppelt vorhanden sind, verwendet After Effects den Namen, der im Zeitleistenfenster zuerst vorkommt (ganz oben steht). Beispiel:

  thisComp.layer("Solid 1")

layer(otherLayer, relIndex)

Rückgabetyp: Layer (Ebene), Light (Licht) oder Camera (Kamera).

Argumenttyp: otherLayer ist ein Ebenenobjekt, relIndex ist eine Number (Zahl).

Ruft die Ebene ab, die sich relIndex Ebenen über oder unter dem Objekt otherLayer befindet. Beispielsweise gibt thisComp.layer(thisLayer, 1).active „true“ zurück, wenn die nächste Ebene im Zeitleistenfenster aktiv ist.

marker

Rückgabetyp: MarkerProperty.

Hinweis:

Sie können nicht anhand der Markennummer auf eine Kompositionszeitmarke zugreifen. Wenn Sie in einer früheren Version von After Effects ein Projekt erstellt haben, in dem Kompositionsmarkennummern in Expressions verwendet werden, müssen Sie diese Aufrufe so ändern, dass sie marker.key(name) verwenden. Da der Standardname einer Kompositionszeitmarke eine Zahl ist, geht es beim Umwandeln der Referenz häufig nur darum, die Zahl in Anführungszeichen zu setzen, damit der Name verwendet werden kann.

marker.key(index)

Rückgabetyp: MarkerKey.

Argumenttyp: index ist eine Number (Zahl).

Gibt das MarkerKey-Objekt der Marke mit dem angegebenen Index zurück. Der Index bezieht sich auf die Reihenfolge der Marke in der Kompositionszeit, nicht auf den Namen der Marke. Diese Expression gibt beispielsweise die Zeit der ersten Kompositionszeitmarke zurück:

  thisComp.marker.key(1).time

marker.key(name)

Rückgabetyp: MarkerKey.

Argumenttyp: name ist ein String.

Gibt das MarkerKey-Objekt der Marke mit dem angegebenen Namen zurück. Der Wert name ist der Name der Marke, wie er im Feld „Kommentar“ des Dialogfelds „Marke“ eingegeben wurde, z. B. marker.key("ch1"). Der Standardname einer Kompositionszeitmarke ist eine Zahl. Wenn mehr als eine Marke in der Komposition denselben Namen trägt, gibt diese Methode die Marke zurück, die zuerst eintritt (in Kompositionszeit). Der Wert für Markenkeys ist ein String und keine Number (Zahl). Diese Expression gibt beispielsweise die Zeit der Kompositionszeitmarke mit dem Namen „0“ zurück:

  thisComp.marker.key("0").time

marker.nearestKey(t)

Rückgabetyp: MarkerKey.

Argumenttyp: t ist eine Number (Zahl).

Gibt die Marke zurück, die t in der Zeit am nächsten ist. Diese Expression gibt beispielsweise die Zeit der Kompositionszeitmarke zurück, die der Zeit von einer Sekunde am nächsten liegt:

  thisComp.marker.nearestKey(1).time

Diese Expression gibt die Zeit der Kompositionszeitmarke zurück, die der aktuellen Zeit am nächsten liegt:

  thisComp.marker.nearestKey(time).time

marker.numKeys

Rückgabetyp: Number (Zahl).

Gibt die Gesamtzahl der Kompositionszeitmarken in der Komposition zurück.

numLayers

Rückgabetyp: Number (Zahl).

Gibt die Anzahl der Ebenen in der Komposition zurück.

activeCamera

Rückgabetyp: Camera (Kamera).

Gibt das Kameraobjekt für die Kamera zurück, durch die die Komposition im aktuellen Frame gerendert wird. Dabei handelt es sich nicht notwendigerweise um die Kamera, durch die Sie im Kompositionsfenster schauen.

width

Rückgabetyp: Number (Zahl).

Gibt die Breite der Komposition (in Pixeln) zurück.

 Wenn Sie folgende Expression auf die Eigenschaft „Position“ einer Ebene anwenden, wird die Ebene im Kompositionsframe zentriert ausgerichtet:

  [thisComp.width/2, thisComp.height/2]

height

Rückgabetyp: Number (Zahl).

Gibt die Höhe der Komposition (in Pixeln) zurück.

duration

Rückgabetyp: Number (Zahl).

Gibt die Dauer der Komposition (in Sekunden) zurück.

ntscDropFrame

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn der Timecode im Drop-Frame-Format vorliegt. (After Effects CS5.5 und höher.)

displayStartTime

Rückgabetyp: Number (Zahl).

Gibt die Startzeit der Komposition (in Sekunden) zurück.

frameDuration

Rückgabetyp: Number (Zahl).

Gibt die Dauer eines Frames in Sekunden zurück.

shutterAngle

Rückgabetyp: Number (Zahl).

Gibt den Verschlusswinkel der Komposition (in Grad) zurück.

shutterPhase

Rückgabetyp: Number (Zahl).

Gibt die Verschlussphase der Komposition (in Grad) zurück.

bgColor

Rückgabetyp: Array [4].

Gibt die Hintergrundfarbe der Komposition zurück.

pixelAspect

Rückgabetyp: Number (Zahl).

Gibt das Pixel-Seitenverhältnis der Komposition zurück.

name

Rückgabetyp: String.

Gibt den Namen der Komposition zurück.

Attribut: geschützter Bereich für Kompositionszeitmarker

Die Option „geschützter Bereich“ für Kompositionszeitmarker können Sie mit dem Kompositionszeitmarker-Attribut protectedRegion lesen.

Objekttyp „Footage“: Attribute und Methoden (Expression-Referenz)

Wenn Sie ein Footageelement aus dem Projektfenster als Objekt in einer Expression einsetzen möchten, verwenden Sie die globale Methode footage, wie in footage("Dateiname"). Sie können sich Footageobjekte auch mithilfe des Attributs source in einer Ebene zurückgeben lassen, deren Quelle ein Footageelement ist.

width

Rückgabetyp: Number (Zahl).

Gibt die Breite des Footageelements (in Pixeln) zurück.

height

Rückgabetyp: Number (Zahl).

Gibt die Höhe des Footageelements (in Pixeln) zurück.

duration

Rückgabetyp: Number (Zahl).

Gibt die Dauer des Footageelements in Sekunden zurück.

frameDuration

Rückgabetyp: Number (Zahl).

Gibt die Dauer eines Frames im Footageelement in Sekunden zurück.

ntscDropFrame

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn der Timecode im Drop-Frame-Format vorliegt. (After Effects CS5.5 und höher.)

pixelAspect

Rückgabetyp: Number (Zahl).

Gibt das Pixel-Seitenverhältnis des Footageelements zurück.

name

Rückgabetyp: String.

Gibt den Namen des Footageelements wie im Projektfenster angezeigt zurück.

Unterobjekttyp „Ebene“: Attribute und Methoden (Expression-Referenz)

Hinweis:

In After Effects CC und CS6 wurden das Expression-Sprachmenü sowie die Unterobjekttypen „Ebene“, „Ebene allgemein“, „Ebene 3D“ und „Transformationen für Ebenen-Räume“ zum Untermenü „Ebenen“ zusammengefasst.

source

Rückgabetyp: Comp (Komposition) oder Footage.

Gibt das Quellobjekt „Comp“ (Komposition) oder „Footage“ für die Ebene zurück. Die Standardzeit wird an die Zeit der Quelle angepasst. Beispiel: source.layer(1).position

sourceTime(t = time)

Rückgabetyp: Number (Zahl).

Gibt die Ebenenquelle zurück, die der Zeit t entspricht. (After Effects CS5.5 und höher.)

sourceRectAtTime(t = time, includeExtents = false)

Rückgabetyp: JavaScript-Objekt mit vier Attributen: [top, left, width, height]. Außenbereiche gelten nur für Formebenen mit nötigen Größenanpassungen sowie für Absatztextebenen (After Effects 15.1 oder höher), bei denen die Grenzen des Absatzfeldes zurückgegeben werden. Beispiel: myTextLayer.sourceRectAtTime().width.

effect(name)

Rückgabetyp: Effect (Effekt).

Argumenttyp: name ist ein String.

AfterEffects sucht im Effekteinstellungsfenster nach dem Effekt mit dem angegebenen Namen. Der Name kann entweder der Standardname oder ein benutzerdefinierter Name sein. Falls mehrere Effekte unter demselben Namen aufgeführt sind, wird der Effekt verwendet, der am weitesten oben im Effekteinstellungsfenster steht. Beispiel:

  effect("Fast Blur")("Blurriness")

effect(index)

Rückgabetyp: Effect (Effekt).

Argumenttyp: index ist eine Number (Zahl).

After Effects gibt den Effekt an der mit „Index“ angegebenen Position im Effekteinstellungsfenster zurück, wobei der erste (oberste) Effekt im Fenster der Effekt mit dem Index „1“ ist.

mask(name)

Rückgabetyp: Mask (Maske).

Argumenttyp: name ist ein String.

Der Name kann entweder der Standardname oder ein benutzerdefinierter Name sein. Falls mehrere Masks (Masken) unter demselben Namen aufgeführt sind, wird die erste (oberste) verwendet. Beispiel:

  mask("Mask 1")

mask(index)

Rückgabetyp: Mask (Maske).

Argumenttyp: index ist eine Number (Zahl).

After Effects gibt die Maske an der mit „Index“ angegebenen Position im Zeitleistenfenster zurück, wobei die erste (oberste) Maske die Maske mit dem Index 1 ist.

Objekttyp „Ebene allgemein“: Attribute und Methoden (Expression-Referenz)

width

Rückgabetyp: Number (Zahl).

Gibt die Breite der Ebene (in Pixeln) zurück. Ist identisch mit source.width.

height

Rückgabetyp: Number (Zahl).

Gibt die Höhe der Ebene (in Pixeln) zurück. Ist identisch mit source.height.

index

Rückgabetyp: Number (Zahl).

Gibt die Indexnummer der Ebene in der Komposition zurück.

parent

Rückgabetyp: Layer (Ebene), Light (Licht) oder Camera (Kamera).

Gibt das übergeordnete Ebenenobjekt der Ebene an, sofern vorhanden. Beispiel: position[0] + parent.width

hasParent

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn der Ebene eine andere Ebene übergeordnet ist. Andernfalls wird „false“ zurückgegeben.

Mithilfe des Attributs hasParent lässt sich bestimmen, ob einer Ebene eine andere Ebene übergeordnet ist. Sie können dieses Attribut selbst dann verwenden, wenn aktuell keine übergeordnete Ebene vorhanden ist. So können Sie mit der folgenden Expression festlegen, dass die Ebene, auf die Sie die Expression anwenden, basierend auf der Position der übergeordneten Ebene, verwackelt wird. Ist keine übergeordnete Ebene vorhanden, wird die Ebene basierend auf ihrer eigenen Position verwackelt. Ist jedoch eine übergeordnete Ebene vorhanden, ändert sich das Ebenenverhalten entsprechend.

  idx = index;   if (hasParent) {     idx = parent.index;   }   thisComp.layer(idx).position.wiggle(5,20)

inPoint

Rückgabetyp: Number (Zahl).

Gibt den In-Point der Ebene (in Sekunden) zurück.

Hinweis:

Im Allgemeinen ist der Wert von outPoint größer als der Wert von inPoint. Wenn jedoch eine Ebene in der Zeit umgekehrt wird, ist der Wert von inPoint größer als der Wert von outPoint. Ebenso kann der Wert von startTime größer sein als der Wert von inPoint.

outPoint

Rückgabetyp: Number (Zahl).

Gibt den Out-Point der Ebene (in Sekunden) zurück.

startTime

Rückgabetyp: Number (Zahl).

Gibt die Startzeit der Ebene (in Sekunden) zurück.

hasVideo

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn die Ebene Video enthält. Andernfalls wird „false“ zurückgegeben.

hasAudio

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn die Ebene Audio enthält. Andernfalls wird „false“ zurückgegeben.

active

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn der Schalter „Video“  für die Ebene eingeschaltet ist und die aktuelle Zeit im Bereich zwischen In-Point und Out-Point der Ebene liegt. Andernfalls wird „false“ zurückgegeben.

enabled

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn der Schalter „Video“ für die Ebene eingeschaltet ist. Andernfalls wird „false“ zurückgegeben.

audioActive

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn der Schalter „Audio“  für die Ebene eingeschaltet ist und die aktuelle Zeit im Bereich zwischen In-Point und Out-Point der Ebene liegt. Andernfalls wird „false“ zurückgegeben.

sampleImage(point, radius = [.5, .5], postEffect=true, t=time)

Rückgabetyp: Array [4].

Argumenttyp: point ist ein Array [2], radius ist ein Array [2], postEffect ist ein Boolean und t ist eine Number (Zahl).

Nimmt die Farbe und Alphakanalwerte einer Ebene auf und gibt den durchschnittlichen Alphagewichtungswert innerhalb der angegeben Entfernung von dem Punkt als Array zurück: [Rot, Grün, Blau, Alpha]. Hat postEffect den Wert „true“, sind die aufgenommenen Werte für die Ebene bestimmt, nachdem Masken und Effekte auf dieser Ebene gerendert wurden. Hat postEffect den Wert „false“, sind die aufgenommenen Werte für die Ebene bestimmt, bevor Masken und Effekte gerendert wurden. Der Eingabewert point befindet sich im Ebenen-Raum. Der Punkt [0,0] ist die Mitte des Pixels links oben in der Ebene. Mit dem Eingabewert radius wird der horizontale und vertikale Abstand von der Mustermitte zu den Kanten des aufgenommenen Rechtecks angegeben. Standardmäßig wird für den Wert eine Probe von einem Pixel genommen.

Hinweis:

Der Parameter postEffect bezieht sich auf Effekte, die direkt auf die Ebene angewendet werden, und hat keinen Einfluss auf Effekte, die wie bei einer Einstellungsebene indirekt angewendet werden.

Hinweis:

Die Mehrfachverarbeitung wird durch das Verwenden des sampleImage in einer Expression nicht mehr deaktiviert.

In diesem Beispiel wird eine Probe aus einem 4 Pixel breiten und 3 Pixel hohen Rechteck genommen, dessen Mitte von einem Punkt gebildet wird, der sich jeweils 100 Pixel unter und rechts von der linken oberen Ecke der Ebene befindet.

  thisComp.layer(1).sampleImage([100, 100], [2, 1.5])

Dan Ebberts provides an example of how to use the sampleImage method on his MotionScript website.

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.

Ebeneneigenschaften – Attribute und Methoden (Expression-Referenz)

Wenn Sie einer Ebene Masken, Effekte, Maleffekte oder Text hinzufügen, fügt After Effects im Zeitleistenfenster neue Eigenschaften hinzu. Für das Auflisten aller dieser Eigenschaften reicht der Platz hier nicht aus. Nutzen Sie daher das Expression-Auswahlwerkzeug, um sich mit der Syntax vertraut zu machen und diese dann korrekt in Ihren Expressions einzusetzen.

anchorPoint

Rückgabetyp: Property (Eigenschaft) [2 oder 3].

Gibt den Wert des Ebenenankerpunkts im Koordinatensystem der Ebene (Ebenen-Raum) zurück.

position

Rückgabetyp: Property (Eigenschaft) [2 oder 3].

Gibt den Positionswert der Ebene im Welt-Raum zurück, wenn keine übergeordnete Ebene vorhanden ist. Gibt den Positionswert der Ebene im Koordinatensystem der übergeordneten Ebene (im Ebenen-Raum der übergeordneten Ebene) an, wenn eine übergeordnete Ebene vorhanden ist.

scale

Rückgabetyp: Property (Eigenschaft) [2 oder 3].

Gibt den Skalierungswert der Ebene (in Prozent) zurück.

rotation

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert für die Drehung der Ebene (in Grad) zurück. Bei 3D-Ebenen wird der Wert der z-Drehung (in Grad) zurückgegeben.

opacity

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert für die Deckkraft der Ebene (in Prozent) zurück.

audioLevels

Rückgabetyp: Property (Eigenschaft) [2].

Gibt den Wert für die Eigenschaft „Audiopegel“ der Ebene (in Dezibel) zurück. Dabei handelt es sich um einen zweidimensionalen Wert. Der erste Wert steht für den linken und der zweite Wert für den rechten Audiokanal. Dieser Wert gibt nicht die Amplitude der Audiospur des Ausgangsmaterials an. Es ist der Wert der Eigenschaft „Audiopegel“, der durch Keyframes beeinflusst sein kann.

timeRemap

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert der Eigenschaft „Zeitverzerrung“ (in Sekunden) zurück, sofern diese Option aktiviert ist.

marker.key(index)

Rückgabetyp: MarkerKey.

Argumenttyp: index ist eine Number (Zahl).

Gibt das Objekt „MarkerKey“ der Ebenenmarke mit dem angegebenen Index zurück.

marker.key(name)

Rückgabetyp: MarkerKey.

Argumenttyp: name ist ein String.

Gibt das Objekt „MarkerKey“ der Ebenenmarke mit dem angegebenen Namen zurück. Der Wert name ist der Name der Marke, wie er im Feld „Kommentar“ des Dialogfelds „Marke“ eingegeben wurde, z. B. marker.key("ch1"). Wenn mehr als eine Marke in der Ebene denselben Namen trägt, gibt diese Methode die Marke zurück, die zuerst eintritt (in Ebenenzeit). Der Wert für Markenkeys ist ein String und keine Number (Zahl).

Durch diese Expression einer Eigenschaft verläuft der Eigenschaftswert von bis zwischen zwei durch einen Namen gekennzeichneten Marken: 

  m1 = marker.key("Anfang").time;   m2 = marker.key("Ende").time;   linear(time, m1, m2, 0, 100);

marker.nearestKey(t)

Rückgabetyp: MarkerKey.

Argumenttyp: t ist eine Number (Zahl).

Gibt die Ebenenmarke zurück, die dem Zeitpunkt t am nächsten ist. Diese Expression z. B. gibt die Zeit der Ebenenzeitmarke zurück, die der Zeit von einer Sekunde am nächsten liegt:

  marker.nearestKey(1).time

Diese Expression gibt die Zeit der Ebenenzeitmarke zurück, die der aktuellen Zeit am nächsten liegt:

  marker.nearestKey(time).time

marker.numKeys

Rückgabetyp: Number (Zahl).

Gibt die Gesamtanzahl der Marken in der Ebene zurück.

name

Rückgabetyp: String.

Gibt den Namen der Ebene zurück.

Objekttyp „Ebenen-3D“: Attribute und Methoden (Expression-Referenz)

orientation

Rückgabetyp: Property (Eigenschaft) [3].

Gibt den Wert für die Ausrichtung der 3D-Ebene im dreidimensionalen Raum (in Grad) zurück.

rotationX

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert der x-Drehung der 3D-Ebene (in Grad) zurück.

rotationY

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert der y-Drehung der 3D-Ebene (in Grad) zurück.

rotationZ

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert der z-Drehung der 3D-Ebene (in Grad) zurück.

lightTransmission

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert der Eigenschaft „Lichtübertragung“ für eine 3D-Ebene zurück.

castsShadows

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert 1,0 zurück, falls die Ebene Schatten wirft.

acceptsShadows

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert 1,0 zurück, falls die Ebene Schatten empfängt.

acceptsLights

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert 1,0 zurück, falls die Ebene Lichter empfängt.

ambient

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert für die Komponente „Umgebung“ (in Prozent) zurück.

diffuse

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert für die Komponente „Diffus“ (in Prozent) zurück.

specular

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert für die Komponente „Glanz“ (in Prozent) zurück.

shininess

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert für die Komponente „Glanzlichtschärfe“ (in Prozent) zurück.

metal

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert für die Komponente „Metall“ (in Prozent) zurück.

Transformationsmethoden für Ebenen-Räume (Expression-Referenz)

Mit den Transformationsmethoden für Ebenen-Räume können Sie Werte von einem Raum in einen anderen Raum transformieren – z. B. vom Ebenen-Raum in den Welt-Raum. Mit den „from“-Methoden lassen sich Werte des benannten Raums (Kompositions-Raum oder Welt-Raum) in den Ebenen-Raum transformieren. Mit den „to“-Methoden können Werte des Ebenen-Raums in den benannten Raum (Kompositions-Raum oder Welt-Raum) transformiert werden. Jede Transformationsmethode besitzt ein optionales Argument zur Bestimmung des Zeitpunkts, zu dem die Transformation der Ebene berechnet wird. In den meisten Fällen können Sie aber die aktuelle Zeit (Standardeinstellung) verwenden.

Mit den Vektor-Transformationsmethoden (Vec) können Sie Richtungsvektoren transformieren, z. B. die Differenz zweier Positionswerte. Mit den Nicht-Vektor-Transformationsmethoden können Sie Punkte transformieren, z. B. eine Position. In 2D-Ebenen sind der Kompositions-Raum und der Welt-Raum identisch. Bei 3D-Ebenen verhält sich der Kompositions-Raum relativ zur aktiven Kamera, während der Welt-Raum kameraunabhängig ist.

toComp(point, t=time)

Rückgabetyp: Array [2 oder 3].

Argumenttyp: point ist ein Array [2 oder 3], t ist eine Number (Zahl).

Transformiert einen Punkt aus dem Ebenen-Raum in den Kompositions-Raum.

fromComp(point, t=time)

Rückgabetyp: Array [2 oder 3].

Argumenttyp: point ist ein Array [2 oder 3], t ist eine Number (Zahl).

Transformiert einen Punkt aus dem Kompositions-Raum in den Ebenen-Raum. Der resultierende Punkt in der 3D-Ebene kann einen anderen Wert als Null haben, obwohl er sich im Ebenen-Raum befindet. Beispiel: fromComp(thisComp.layer(2).position)

toWorld(point, t=time)

Rückgabetyp: Array [2 oder 3].

Argumenttyp: point ist ein Array [2 oder 3], t ist eine Number (Zahl).

Transformiert einen Punkt aus dem Ebenen-Raum in den ansichtsunabhängigen Welt-Raum. Beispiel:

  toWorld.effect("Bulge")("Bulge Center")

Dan Ebberts bietet auf seiner MotionScript-Website eine Expression an, in der die toWorld-Methode verwendet wird, um eine Ebene automatisch an nur einer Achse auszurichten. Dies ist zum Beispiel hilfreich, wenn Figuren sich mit der Kamera drehen, aber dabei aufrecht stehen bleiben sollen.

Rich Young hat auf seiner AE Portal-Website eine Reihe von Expressions veröffentlicht, die die toWorld-Methode verwenden, um Kamera und Licht mit einer Ebene mit CC Sphere-Effekt zu verknüpfen.

fromWorld(point, t=time)

Rückgabetyp: Array [2 oder 3].

Argumenttyp: point ist ein Array [2 oder 3], t ist eine Number (Zahl).

Transformiert einen Punkt aus dem Welt-Raum in den Ebenen-Raum. Beispiel: fromWorld(thisComp.layer(2).position)

Siehe Expression-Beispiel: Komplexes Wölben zwischen zwei Ebenen erstellen zur Verwendung dieser Methode.

toCompVec(vec, t=time)

Rückgabetyp: Array [2 oder 3].

Argumenttyp: vec ist ein Array [2 oder 3], t ist eine Number (Zahl).

Transformiert einen Vektor aus dem Ebenen-Raum in den Kompositions-Raum. Beispiel: toCompVec([1,0])

fromCompVec(vec, t=time)

Rückgabetyp: Array [2 oder 3].

Argumenttyp: vec ist ein Array [2 oder 3], t ist eine Number (Zahl).

Transformiert einen Vektor aus dem Kompositions-Raum in den Ebenen-Raum. Beispiel (2D-Ebene):

  dir=sub(position, thisComp.layer(2).position);   fromCompVec(dir)

toWorldVec(vec, t=time)

Rückgabetyp: Array [2 oder 3].

Argumenttyp: vec ist ein Array [2 oder 3], t ist eine Number (Zahl).

Transformiert einen Vektor aus dem Ebenen-Raum in den Welt-Raum. Beispiel:   p1 = effect("Eye Bulge 1")("Bulge Center");    p2 = effect("Eye Bulge 2")("Bulge Center");     toWorld(sub(p1, p2))

fromWorldVec(vec, t=time)

Rückgabetyp: Array [2 oder 3].

Argumenttyp: vec ist ein Array [2 oder 3], t ist eine Number (Zahl).

Transformiert einen Vektor aus dem Welt-Raum in den Ebenen-Raum. Beispiel: fromWorld(thisComp.layer(2).position)

fromCompToSurface(point, t=time)

Rückgabetyp: Array [2].

Argumenttyp: point ist ein Array [2 oder 3], t ist eine Number (Zahl).

Projiziert einen Punkt, der sich im Kompositions-Raum befindet, auf einen Punkt auf der Oberfläche der Ebene (z-Wert Null), und zwar an der Position, an der er aus der Perspektive der aktiven Kamera erscheint. Diese Methode eignet sich zum Festlegen von Effektankerpunkten. Verwenden Sie diese Expression nur bei 3D-Ebenen.

Objekttyp „Camera“ (Kamera): Attribute und Methoden (Expression-Referenz)

Objekte des Typs „Camera“ (Kamera) haben dieselben Attribute und Methoden wie Objekte des Typs „Layer“ (Ebene), mit Ausnahme von source, effect, mask, width, height, anchorPoint, scale, opacity, audioLevels, timeRemap sowie allen Materialeigenschaften.

pointOfInterest

Rückgabetyp: Property (Eigenschaft) [3].

Gibt die Werte für den Interessenbereich der Kamera im Welt-Raum zurück.

zoom

Rückgabetyp: Property (Eigenschaft).

Gibt die Zoomwerte der Kamera (in Pixeln) zurück.

Mit der folgenden Expression für die Eigenschaft „Skalieren“ einer Ebene wird die relative Größe der Ebene im Frame beibehalten, während die Position der Ebene auf der z-Achse (Tiefe) oder der Zoomwert der Kamera geändert wird:

  cam = thisComp.activeCamera;    distance = length(sub(position, cam.position));    scale * distance / cam.zoom;

depthOfField

Rückgabetyp: Property (Eigenschaft).

Gibt 1 zurück, wenn die Eigenschaft „Tiefenschärfe“ der Kamera aktiviert ist, bzw. 0, wenn diese Eigenschaft deaktiviert ist.

focusDistance

Rückgabetyp: Property (Eigenschaft).

Gibt den Fokusentfernungswert der Kamera (in Pixeln) zurück.

aperture

Rückgabetyp: Property (Eigenschaft).

Gibt den Blendenwert der Kamera (in Pixeln) zurück.

blurLevel

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert der Weichzeichnerstärke der Kamera (in Prozent) zurück.

active

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn die Kamera aktuell die aktive Kamera für die Komposition ist: der Schalter „Video“  für die Kameraebene ist aktiviert, die aktuelle Zeit liegt im Bereich zwischen In-Point und Out-Point der Kameraebene und die Kameraebene steht an erster (oberster) Stelle im Zeitleistenfenster. Gibt andernfalls „false“ zurück.

Objekttyp „Light“ (Licht): Attribute und Methoden (Expression-Referenz)

Objekte des Typs „Light“ (Licht) haben dieselben Attribute und Methoden wie Objekte des Typs „Layer“ (Ebene), mit Ausnahme von source, effect, mask, width, height, anchorPoint, scale, opacity, audioLevels, timeRemap sowie allen Materialeigenschaften.

pointOfInterest

Rückgabetyp: Property (Eigenschaft) [3].

Gibt die Werte des Interessenbereichs für das Licht im Welt-Raum zurück.

intensity

Rückgabetyp: Property (Eigenschaft).

Gibt die Intensitätswerte für das Licht (in Prozent) zurück.

color

Rückgabetyp: Property (Eigenschaft) [4].

Gibt den Farbwert für das Licht zurück.

coneAngle

Rückgabetyp: Property (Eigenschaft).

Gibt den Lichtkegelwert für das Licht (in Grad) zurück.

coneFeather

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert der weichen Kegelkante für das Licht (in Prozent) zurück.

shadowDarkness

Rückgabetyp: Property (Eigenschaft).

Gibt den Schattentiefewert für das Licht (in Prozent) zurück.

shadowDiffusion

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert der weichen Schattenkante für das Licht (in Pixel) zurück.

David Van Brink bietet in seinem Omino Pixel Blog eine Anleitung und ein Beispielprojekt zur Verwendung von Expressions mit Lichtern an.

Objekttyp „Effect“ (Effekt): Attribute und Methoden (Expression-Referenz)

active

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn der Effekt aktiviert ist (der Schalter „Effekt“  wurde ausgewählt).

param(name)

Rückgabetyp: Property (Eigenschaft).

Argumenttyp: name ist ein String.

Gibt eine Eigenschaft in einem Effekt zurück. Effektankerpunkte befinden sich immer im Ebenen-Raum. Beispiel:

  effect("Bulge").param("Bulge Height")

param(index)

Rückgabetyp: Property (Eigenschaft).

Argumenttyp: index ist eine Number (Zahl).

Gibt eine Eigenschaft in einem Effekt zurück. Effektankerpunkte befinden sich immer im Ebenen-Raum. So gibt z. B. effect("Bulge").param(4) die Eigenschaft „Höhe“ zurück.

Objekttyp „Mask“ (Maske): Attribute und Methoden (Expression-Referenz)

Hinweis:

Sie können Maskenpfadeigenschaften zwar mit anderen Pfadeigenschaften (Pfaden in einer Formebene und Pinselstrichen) verknüpfen, aber die Zahlenwerte der Eigenschaften können mithilfe von Expressions nicht direkt geändert werden.

maskOpacity

Rückgabetyp: Property (Eigenschaft).

Gibt den Deckkraftwert einer Maske (in Prozent) zurück.

maskFeather

Rückgabetyp: Property (Eigenschaft).

Gibt den Wert einer weichen Maskenkante (in Pixeln) zurück.

maskExpansion

Rückgabetyp: Property (Eigenschaft).

Gibt den Ausbreitungswert einer Maske (in Pixeln) zurück.

invert

Rückgabetyp: Boolean (Boolescher Wert).

Gibt den Wert „true“ zurück, wenn die Maske umgekehrt ist; andernfalls wird „false“ zurückgegeben.

Objekttyp „Property“ (Eigenschaft): Attribute und Methoden (Expression-Referenz)

value

Rückgabetyp: Number (Zahl), Array oder String.

Gibt den Wert einer Eigenschaft zum aktuellen Zeit zurück.

valueAtTime(t)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t ist eine Number (Zahl).

Gibt den Wert einer Eigenschaft zu einem bestimmten Zeitpunkt (in Sekunden) zurück.

Wenn beispielsweise für jeden Frame ein Eigenschaftswert zufällig aus einer Gruppe von vier Werten ausgewählt werden soll, legen Sie die vier Werte als Keyframes bei 0, 1, 2 und 3 Sekunden fest und wenden dann die folgende Expression auf die Eigenschaft an:

  valueAtTime(random(4))

Hinweis:

Dan Ebberts veröffentlicht weitere Beispiele und Techniken zur Verwendung der Methoden „valueAtTime“ und „velocityAtTime“ auf der MotionScript-Website.

velocity

Rückgabetyp: Number (Zahl) oder Array.

Gibt den Wert für die zeitliche Geschwindigkeit zum aktuellen Zeitpunkt zurück. Bei räumlichen Eigenschaften, wie z. B. „Position“, wird der Wert des Tangentenvektors zurückgegeben. Das Ergebnis hat dieselbe Dimension wie die Eigenschaft.

velocityAtTime(t)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: t ist eine Number (Zahl).

Gibt den Wert für die zeitliche Geschwindigkeit zum angegebenen Zeitpunkt zurück.

speed

Rückgabetyp: Number (Zahl).

Gibt einen eindimensionalen positiven Wert zurück, der der Geschwindigkeit entspricht, mit der sich die Eigenschaft am Standardzeitpunkt ändert. Dieses Element kann ausschließlich für räumliche Eigenschaften verwendet werden.

speedAtTime(t)

Rückgabetyp: Number (Zahl).

Argumenttyp: t ist eine Number (Zahl).

Gibt den Wert für die räumliche Geschwindigkeit zum angegebenen Zeitpunkt zurück.

wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: freq, amp, octaves, amp_mult und t sind Numbers (Zahlen).

Schüttelt (verwackelt) den Wert für die Eigenschaft nach dem Zufallsprinzip.

Der Wert freq gibt die Frequenz von Verwacklungen pro Sekunde an.

Der Wert amp gibt die Amplitude in einer Einheit an, die für die jeweilige Eigenschaft, auf die sie angewendet wird, geeignet ist.

Der Wert octaves gibt die Anzahl der zu summierenden Störoktaven an. Mit diesem Wert wird angegeben, wie detailliert das Verwackeln sein soll. Wenn Sie diesen Wert ausgehend vom Standardwert 1 erhöhen, werden beim Verwackeln höhere Frequenzen erreicht, und wenn Sie ihn verringern, werden die Amplitudenoberschwingungen verstärkt.

Mit dem Wert amp_mult wird der Wert amp für jede Oktave multipliziert. Mit diesem Wert wird angegeben, wie schnell die Oberschwingungen abklingen. Der Standardwert ist 0,5. Bei einem näher bei 1 liegenden Wert werden die Oberschwingungen mit derselben Amplitude wie für die Grundfrequenz hinzugefügt, während der Effekt bei einem näher bei 0 liegenden Wert weniger detailliert ist.

Der Wert t gibt die Basis-Startzeit an. Dieser Wert entspricht standardmäßig der aktuellen Uhrzeit. Mit diesem Parameter können Sie angeben, dass die Ausgabe des Effekts „Verwackeln“ auf einem Eigenschaftswert basieren soll, der zu einem anderen Zeitpunkt ermittelt wurde.

Beispiel: position.wiggle(5, 20, 3, .5) Mit dieser Expression werden ungefähr 5 Schüttelbewegungen pro Sekunde mit einer durchschnittlichen Größe von ungefähr 20 Pixel erzeugt. Zusätzlich zur Hauptschüttelbewegung werden auf zwei weiteren Ebenen detaillierte Schüttelbewegungen mit einer Frequenz von jeweils 10 und 20 Schüttelbewegungen pro Sekunde und einer Größe von 10 bzw. 5 Pixeln erzeugt.

In diesem Beispiel für eine zweidimensionale Eigenschaft wie „Skalierung“ werden beide Dimensionen um denselben Betrag verwackelt:

v = wiggle (5, 10);   [v [0], v [0]]

In diesem Beispiel für eine zweidimensionale Eigenschaft wird nur entlang der Y-Achse verwackelt:

  freq = 3;   amp = 50;   w = wiggle(freq,amp);   [value[0],w[1]];

Dan Ebberts bietet auf seiner MotionScript-Website eine Beispiel-Expression und eine detaillierte Erläuterung an, wie Sie mit dem Zeitparameter der Verwackeln-Methode eine Animationsschleife erstellen.

temporalWiggle(freq, amp, octaves=1, amp_mult=.5, t=time)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: freq, amp, octaves, amp_mult und t sind Numbers (Zahlen).

Sampelt die Eigenschaft mit einer Verwacklungszeit. Der Wert freq ist die Frequenz in Verwacklungen pro Sekunde, amp ist die Amplitude in den Einheiten der jeweiligen Eigenschaft, octaves ist die Anzahl der Störungen pro Einheit, amp-mult ist der Faktor, mit dem amp für jede Störung multipliziert wird und t ist die Basis-Startzeit. Diese Funktion ergibt nur dann einen Sinn, wenn die Zieleigenschaft animiert ist, da die Funktion lediglich die Sampling-Zeit und nicht den Sampling-Wert ändert. Beispiel: scale.temporalWiggle(5, .2)

smooth(width=.2, samples=5, t=time)

Rückgabetyp: Number (Zahl) oder Array.

Argumenttyp: width, samples und t sind Numbers (Zahlen).

Glättet die Werte der Eigenschaft im Zeitablauf, indem große, abrupte Abweichungen bei den Werten in kleinere, gleichmäßiger verteilte Abweichungen konvertiert werden. Diese Glättung wird durch Anwenden eines Feldfilters auf den Wert der Eigenschaft zum angegebenen Zeitpunkt erreicht. Der Wert width entspricht dem Zeitbereich (in Sekunden), in dem der Filter gemittelt wird. Der Wert samples gibt die Anzahl der diskreten Samples an, die gleichmäßig im Zeitverlauf verteilt werden. Mit einem größeren Wert erreichen Sie eine größere Glättung, aber die Leistung wird beeinträchtigt. In der Regel sollten Sie eine ungerade Anzahl von samples verwenden, damit die aktuelle Zeit beim Mitteln einbezogen wird. Beispiel: position.smooth(.1, 5)

loopIn(type="cycle", numKeyframes=0)

Rückgabetyp: Number (Zahl) oder Array.

Wiederholt ein Zeitsegment in einer Schleife, gemessen vom ersten Keyframe in der Ebene in Vorwärtsrichtung zum Out-Point der Ebene. Die Schleife beginnt am In-Point der Ebene. Mit dem Wert numKeyframes wird bestimmt, welches Segment in einer Schleife durchlaufen wird: Das in einer Schleife durchlaufene Segment ist der Teil der Ebene von dem ersten Keyframe bis zu dem Keyframe numKeyframes+1. So umfasst die Schleife bei der Expression loopIn("cycle", 3) den Bereich vom ersten bis zum vierten Keyframe. Der Standardwert 0 bedeutet, dass die Schleife alle Keyframes durchläuft.

Mit Keyframeschleifen-Methoden können Sie eine Serie von Keyframes wiederholen lassen. Diese Methoden lassen sich auf die meisten Eigenschaften anwenden. Zu den Ausnahmen gehören Eigenschaften, die nicht durch einfache Zahlenwerte im Zeitleistenfenster ausgedrückt werden können, z. B. die Eigenschaft „Quelltext“, Pfadformeigenschaften und die Eigenschaft „Histogramm“ für den Effekt „Tonwertkorrektur“. Zu große Keyframe- oder Dauerwerte werden auf die maximal zulässigen Werte verkleinert. Zu kleine Werte führen zu einer Endlosschleife.

 

Schleifentyp

Ergebnis

cycle

(Standard) Wiederholt das angegebene Segment.

pingpong

Wiederholt das angegebene Segment und wechselt dabei zwischen Vorwärts- und Rückwärtsbewegung.

offset

Wiederholt das angegebene Segment, verschiebt aber jeden Zyklus um den Differenzbetrag zwischen dem Eigenschaftswert am Anfang und am Ende des Segments multipliziert mit der Anzahl der Schleifenwiederholungen.

continue

Wiederholt das angegebene Segment nicht, sondern fährt mit der Animation der Eigenschaft – basierend auf der Geschwindigkeit am ersten oder letzten Keyframe – fort. Wenn der letzte Keyframe einer Ebene z. B. für die Eigenschaft „Skalierung“ auf 100 % festgelegt wurde, wird die Ebene ausgehend von 100 % bis zum Out-Point skaliert, statt direkt als Schleife zum Out-Point zurückgeführt zu werden. Die Argumente keyframes oder duration werden von diesem Typ nicht unterstützt.

loopOut(type="cycle", numKeyframes=0)

Rückgabetyp: Number (Zahl) oder Array.

Wiederholt ein Zeitsegment in einer Schleife, gemessen vom letzten Keyframe in der Ebene in Rückwärtsrichtung zum In-Point der Ebene. Die Schleife endet am Out-Point der Ebene. Das Zeitsegment für die Schleife wird durch die angegebene Anzahl von Keyframes bestimmt. Der Wert numKeyframes gibt die Anzahl der Keyframesegmente an, die in die Schleife aufgenommen werden sollen; der angegebene Bereich wird dabei ab dem letzten Keyframe in Rückwärtsrichtung gemessen. So umfasst die Schleife bei der Expression loopOut("cycle", 1) den Bereich vom letzten bis zum vorletzten Keyframe. Der Standardwert 0 bedeutet, dass die Schleife alle Keyframes durchläuft. Weitere Informationen finden Sie unter dem Eintrag loopIn.

David Van Brink bietet eine Anleitung und ein Beispielprojekt in seinem Omino-Pixelblogdieveranschaulichen, wie die Effekte „Echo“ und „Partikelsimulation“ und die Methode loopOut zum Animieren eines Schwarms stilisierter schwimmender Bakterien verwendet werden.

loopInDuration(type="cycle", duration=0)

Rückgabetyp: Number (Zahl) oder Array.

Wiederholt ein Zeitsegment in einer Schleife, gemessen vom ersten Keyframe in der Ebene in Vorwärtsrichtung zum Out-Point der Ebene. Die Schleife beginnt am In-Point der Ebene. Das Zeitsegment für die Schleife wird durch die angegebene Dauer bestimmt. Der Wert duration gibt die Dauer des Segments der Komposition (in Sekunden) in einem Segment an, das in die Schleife aufgenommen werden soll; der angegebene Bereich wird dabei ab dem ersten Keyframe gemessen. So wird mit der Expression loopInDuration("cycle", 1) eine Schleife mit der ersten Sekunde der gesamten Animation erstellt. Der Standardwert 0 bedeutet, dass das Segment, für das eine Schleife erstellt werden soll, am Out-Point der Ebene beginnt. Weitere Informationen finden Sie unter dem Eintrag loopIn.

loopOutDuration(type="cycle", duration=0)

Rückgabetyp: Number (Zahl) oder Array.

Wiederholt ein Zeitsegment in einer Schleife, gemessen vom letzten Keyframe in der Ebene in Rückwärtsrichtung zum In-Point der Ebene. Die Schleife endet am Out-Point der Ebene. Das Zeitsegment für die Schleife wird durch die angegebene Dauer bestimmt. Der Wert duration gibt die Dauer des Segments der Komposition (in Sekunden) in einem Segment an, das in die Schleife aufgenommen werden soll; der angegebene Bereich wird dabei ab dem letzten Keyframe rückwärts gemessen. So wird mit der Expression loopOutDuration("cycle", 1) eine Schleife mit der letzten Sekunde der gesamten Animation erstellt. Der Standardwert 0 bedeutet, dass das Segment, für das eine Schleife erstellt werden soll, am In-Point der Ebene beginnt. Weitere Informationen finden Sie unter dem Eintrag loopIn.

key(index)

Rückgabetyp: Key oder MarkerKey.

Argumenttyp: index ist eine Number (Zahl).

Gibt das Key- bzw. MarkerKey-Objekt anhand der Nummer zurück. So gibt z. B. key(1) den ersten Keyframe zurück.

key(markerName)

Rückgabetyp: MarkerKey.

Argumenttyp: markerName ist ein String.

Gibt das MarkerKey-Objekt mit diesem Namen zurück. Verwenden Sie diese Expression nur bei Markeneigenschaften.

nearestKey(t)

Rückgabetyp: Key oder MarkerKey.

Gibt das Key- bzw. MarkerKey-Objekt zurück, das einer bezeichneten Zeit am nächsten liegt.

numKeys

Rückgabetyp: Number (Zahl).

Gibt die Zahl der Keyframes in einer Eigenschaft zurück. Gibt die Zahl der Marken in einer Markeneigenschaft zurück.

Hinweis:

Wenn Sie die Dimensionen der Eigenschaft „Position“ mithilfe des Befehls „Dimensionen trennen“ in einzelne Komponenten zerlegen, ändert sich die Anzahl der Keyframes und somit auch der Rückgabewert dieser Methode.

propertyGroup(countUp = 1)

Rückgabetyp: Group (Gruppe).

Gibt eine Gruppe von Eigenschaften bezüglich der Eigenschaft zurück, für die die Expression geschrieben wird. Wenn Sie zum Beispiel die Expression propertyGroup(1) der Eigenschaft „Drehung“ eines Pinselstrichs hinzufügen, wählt die Expression die Eigenschaftsgruppe „Transformieren“ aus, die die Eigenschaft „Drehung“ enthält. Fügen Sie stattdessen propertyGroup(2) hinzu, wählt die Expression die Eigenschaftsgruppe „Pinsel“ aus. Sie können mit dieser Methode namensunabhängige Beziehungen in der Eigenschaftshierarchie erstellen. Sie ist besonders nützlich für das Duplizieren von Eigenschaften, die Expressions enthalten.

 Die Methode numProperties für propertyGroup gibt die Anzahl der Eigenschaften in der Eigenschaftsgruppe zurück.

 Bei diesem Beispiel wird die Anzahl der Eigenschaften in der Gruppe zurückgegeben, welche die Eigenschaft enthält, auf der die Expression geschrieben ist:

  thisProperty.propertyGroup(1).numProperties

propertyIndex

Rückgabetyp: Number (Zahl).

Gibt den Index einer Eigenschaft bezüglich anderen Eigenschaften in der Eigenschaftsgruppe zurück, einschließlich Eigenschaftsgruppen in Masken, Effekten, Textanimatoren, Formen, Trackern und Track-Punkten.

name

Rückgabetyp: String.

Gibt den Namen der Eigenschaft oder Eigenschaftsgruppe zurück.

Beispiel für das Animieren mit der Methode „propertyGroup“ und dem Attribut „propertyIndex“

Die Werte propertyGroup im Verhältnis zur Eigenschaft „Position“ eines Pinselstrichs
Die Werte propertyGroup im Verhältnis zur Eigenschaft „Position“ eines Pinselstrichs

A. propertyGroup(4) B. propertyGroup(3) C. propertyGroup(2) D. propertyGroup(1) E. Der Wert propertyIndex von „Position“ ist 2; der Wert propertyIndex von „Drehung“ ist 4. 

In diesem Beispiel wählt die Methode propertyGroup für die einzelnen Pinselstriche die Eigenschaftsgruppe „Pinsel“ aus, da sich diese Gruppe in der Hierarchie der Eigenschaftsgruppen zwei Stufen über der Eigenschaft „Drehung“ befindet. Das Attribut propertyIndex in jedem Pinselstrich gibt dann einen eindeutigen Wert für jeden Pinselstrich zurück. Der Ergebniswert wird daraufhin mit der Zeit und mit 200 multipliziert und auf jeden Drehungswert angewendet, wobei jeder Pinselstrich unterschiedlich gedreht wird, um wirbelnde Malstriche zu erzeugen.  propertyGroup(2).propertyIndex * time * 200

  propertyGroup(2).propertyIndex * time * 200
Animieren eines Pinselstriches mit einer Expression
Animieren eines Pinselstriches mit einer Expression

Projekteigenschaften (Expression-Referenz)

Expression-Methode:

  • Objekt „thisProject“: thisProject – Zeigt das Projekt an, das die Expression enthält.

Typ:

Projektobjekt; schreibgeschützt

  • Projektattribut „fullPath“: thisProject.fullPath – Der plattformspezifische absolute Dateipfad einschließlich des Dateinamens. Wenn das Projekt nicht gespeichert wurde, gibt es eine leere Zeichenfolge zurück.
Typ:
Zeichenfolge; schreibgeschützt.
  • Projektattribut „bitsPerChannel“: thisProject.bitsPerChannel – Die Farbtiefe des Projekts in Bits pro Kanal (bpc) gemäß der Einstellung unter Projekteinstellungen > Farbmanagement. Die Auswahlmöglichkeiten lauten dabei 8, 16 oder 32. Entspricht dem Scripting-Projektattribut app.project.bitsPerChannel.
Typ
Zahl, schreibgeschützt.
  • Projektattribut „linearBlending“: thisProject.linearBlending – Der Status der Option „Farben mit 1.0 Gamma überblenden“ unter Projekteinstellungen > Farbmanagement. Entspricht dem Scripting-Projektattribut app.project.linearBlending.
Typ:
Boolescher Wert; schreibgeschützt.

Wesentliche Attribute und Methoden (Expression-Referenz)

Keyobjekte können Sie mit den Eigenschaften time, index und value verbinden. Die Expression position.key(3).value gibt z. B. den Wert des dritten Positions-Keyframes zurück.

Wenn Sie für die Eigenschaft „Deckkraft“ mit Keyframes die folgende Expression schreiben, werden die Keyframe-Werte ignoriert. Es wird nur die Zeitposition der Keyframes verwendet, um zu bestimmen, wo ein Blitz erzeugt werden soll:   d = Math.abs(time - nearestKey(time).time);   easeOut(d, 0, .1, 100, 0)

  d = Math.abs(time - nearestKey(time).time); 
  easeOut(d, 0, .1, 100, 0)

value

Rückgabetyp: Number (Zahl) oder Array.

Gibt den Wert des Keyframes zurück.

time

Rückgabetyp: Number (Zahl).

Gibt den Zeitpunkt des Keyframes zurück.

index

Rückgabetyp: Number (Zahl).

Gibt den Index des Keyframes zurück.

MarkerKey-Attribute (Expression-Referenz)

Sie können zum Bearbeiten von Kompositionszeitmarken und Ebenenmarken dieselben Methoden verwenden. Mit dem Objekt thisLayer.marker greifen Sie auf Ebenenzeitmarken zu und mit dem Objekt thisComp.marker greifen Sie auf Kompositionszeitmarken zu.

In Expressions sind Marken eine besondere Form vom Key-Objekt, sodass Sie mit Methoden wie nearestKey(time) auf Marken zugreifen können und Marken auch die Attribute time und index haben. Das Attribut index ist nicht die Zahl (Name) der Marke; es ist die Indexnummer des Keyframes, die die Position der Marke auf dem Zeitlineal darstellt.

Mit Expressions haben Sie Zugriff auf alle Werte für eine Marke, die Sie im Dialogfeld „Kompositionszeitmarke“ oder „Ebenenmarke“ festlegen können. Mit dieser Expression für die Eigenschaft „Quelltext“ einer Textebene werden Zeit, Dauer, Index, Kommentar (Name), Kapitel, URL, Frameziel und der Name des Cue-Punkts für die Ebenenmarke angezeigt, die der aktuellen Zeit am nächsten ist; außerdem besagt sie, ob die Marke für einen Ereignis-Cue-Punkt gesetzt wurde:

  m = thisLayer.marker.nearestKey(time);  
  s = "time:" + timeToCurrentFormat(m.time) + "\r" +  
      "duration: " + m.duration + "\r" +  
      "key index: " + m.index + "\r" +  
      "comment:" + m.comment + "\r" +  
      "chapter:" + m.chapter + "\r" +  
      "URL:" + m.url + "\r" +  
      "frame target: " + m.frameTarget + "\r" +  
      "cue point name: " + m.cuePointName + "\r" +  
      "Event cue point? " + m.eventCuePoint + "\r";  
  for (param in m.parameters){  
       s += "parameter: " + param + " value: " + m.parameters[param] + "\r";  
  } 
  s

Da die XMP-Metadaten in einem Footageelement in Ebenenmarken für eine auf diesem Element basierende Ebene konvertiert werden können, können Expressions mit XMP-Metadaten interagieren. Weitere Informationen finden Sie unter XMP-Metadaten in After Effects.

Dan Ebberts bietet im After Effects Developer Center ein Tutorial mit einem Beispiel für die Verwendung von XMP-Metadaten mit Expressions an.

duration

Rückgabetyp: Number (Zahl).

Die Dauer der Marke (in Sekunden).

Kommentar

Rückgabetyp: String.

Inhalte des Feldes „Kommentar“ im Dialogfeld „Marke“.

Kapitel

Rückgabetyp: String.

Inhalte des Feldes „Kapitel“ im Dialogfeld „Marke“.

url

Rückgabetyp: String.

Inhalte des Feldes „URL“ im Dialogfeld „Marke“.

frameTarget

Rückgabetyp: String.

Inhalte des Feldes „Frameziel“ im Dialogfeld „Marke“.

eventCuePoint

Rückgabetyp: Boolean (Boolescher Wert).

Einstellung für den Cue-Punkt im Dialogfeld „Marke“. Wert „true“ für Ereignis, „false“ für Navigation.

cuePointName

Rückgabetyp: String.

Inhalte des Feldes „Name des Cue-Punkts“ im Dialogfeld „Marke“.

Parameter

Rückgabetyp: inhaltsorientiertes Array von String-Werten.

Inhalte der Felder „Parametername“ und „Parameterwert“ im Dialogfeld „Marke“.

Wenn Sie z. B. einen Parameter namens „Hintergrundfarbe“ haben, können Sie mit der folgenden Expression auf dessen Wert an der nächsten Marke zugreifen:

  thisComp.marker.nearestKey(time).parameters["background color"]

MarkerValue.protectedRegion (Expression-Referenz)

Expression-Methode:

thisComp.marker.key(index).protectedRegion

Beschreibung:

Bei „true“ verhält sich der Kompositionszeitmarker als geschützter Bereich.

Typ:

Boolesch; schreibgeschützt.

Expression-Zugriff auf Pfadpunkte auf Formen, Masken und Pinselstrichen (Expression-Referenz)

Sie können Expressions verwenden, um die x/y-Koordinaten von Pfadpunkten oder Scheitelpunkten für die folgenden Elemente zu lesen und zu schreiben:

  • Ebenenmasken,
  • Bézier-Formen,
  • Pinselstriche auf den Effekten „Malen“ und „Roto-Pinsel und Kantenverfeinerung“

Expression-Methoden:

  • points()-Methode für Pfad: {pathProperty}.points(t = time) Erhalten Sie die x/y-Koordinaten von allen Punkten auf einem Pfad. Koordinaten für Pfadpunkte von Ebenenmasken sind relativ zum Ursprung der Ebene oben links. Koordinaten für Pfadpunkte von Bézier-Formen sind relativ zum Ankerpunkt der Formgruppe des Pfads, z. B. Transformieren: Form 1 > Ankerpunkt. Koordinaten für Pfadpunkte von Pinselstrichen sind relativ zum Beginn des Strichs. Der erste Punkt ist [0,0]. Geben Sie optional die Zeit zum Sampeln des Pfads an. Sie können diese Methode in die createPath()-Methode für den Punktparameter überführen, wenn Sie einen Pfad duplizieren.

Parameter:

t Zahl, optional. Die Kompositionszeit (in Sekunden) zum Sampeln des Pfads. Der Standardwert ist time (Zeit), die aktuelle Zeit.

Rückgabe:

Array aus Zahlpaararrays, auf die vierte Dezimalstelle gerundet.

  • inTangents()-Methode für Pfad: {pathProperty}.inTangents(t = time) Erhalten Sie die x/y-Koordinaten des eingehenden Tangentengriffs für alle Punkte auf einem Pfad. Die Koordinatenwerte der Tangente sind relativ zu den Koordinaten des übergeordneten Punkts versetzt. Dies bedeutet, dass der Wert [0,0] keine Krümmung bei der eingehenden Tangente verursacht. Diese Methode kann in die createPath()-Methode für den inTangents-Parameter überführt werden, wenn Sie einen Pfad duplizieren. Geben Sie optional die Zeit zum Sampeln des Pfads an.

Parameter:

t Zahl, optional. Die Kompositionszeit (in Sekunden) zum Sampeln des Pfads. Der Standardwert ist time (Zeit), die aktuelle Zeit.

Rückgabe:

Array aus Zahlpaararrays, auf die vierte Dezimalstelle gerundet.

  • outTangents()-Methode für Pfad: {pathProperty}.outTangents(t = time) Erhalten Sie die x/y-Koordinaten des ausgehenden Tangentengriffs für alle Punkte auf einem Pfad. Die Koordinatenwerte der Tangente sind relativ zu den Koordinaten des übergeordneten Punkts versetzt. Der Wert [0,0] verursacht keine Krümmung bei der ausgehenden Tangente. Diese Methode kann in die createPath()-Methode für den outTangents-Parameter überführt werden, wenn Sie einen Pfad duplizieren. Geben Sie optional die Zeit zum Sampeln des Pfads an.

Parameter:

t Zahl, optional. Die Kompositionszeit (in Sekunden) zum Sampeln des Pfads. Der Standardwert ist time (Zeit), die aktuelle Zeit.

Rückgabe:

Array aus Zahlpaararrays, auf die vierte Dezimalstelle gerundet.

  • isClosed()-Methode für Pfad{pathProperty}.isClosed()Bestimmt, ob der Pfad offen oder geschlossen ist. Gibt „true“ zurück, wenn der Pfad geschlossen, „false“, wenn der Pfad offen ist. Diese Methode kann in die createPath()-Methode für den is_closed-Parameter überführt werden, wenn Sie einen Pfad duplizieren.

Parameter:

Ohne

Rückgabe:

Boolescher Wert

  • pointOnPath()-Methode für Pfad {pathProperty}.pointOnPath(percentage = 0.5, t = time)Erhalten Sie die x/y-Koordinaten eines arbiträren Punkts auf dem Pfad. Der Punkt wird als Prozentsatz der Bogenlänge des Pfads ausgedrückt. 0 % markiert den ersten und 100 % den letzten Punkt. Wenn der Pfad geschlossen ist, geben 0 % und 100 % dieselben Koordinaten zurück. Der Prozentsatz der Bogenlänge wird verwendet, um auf dem Pfad eine einheitliche Geschwindigkeit sicherzustellen. Anders als bei 0 % und 100 % korrelieren die Prozentsätze nicht notwendigerweise mit den Bézier-Punkten auf dem Pfad. Bei einem Pfad mit drei Punkten liegt der zweite Punkt nicht notwendigerweise bei 50 %. Dies bedeutet auch, dass bei einem offenen und einem geschlossenen Pfad mit identischen Punkten der Prozentsatz auf dem offenen Pfad nicht dieselben Koordinaten wie auf dem geschlossenen Pfad zurückgibt. Dies hängt mit der zusätzlichen Länge des geschlossenen Pfads zusammen. Geben Sie optional die Zeit zum Sampeln des Pfads an.

Parameter:

percentage (Prozentsatz) Zahl zwischen 0 und 1, optional. Prozentsatz entlang der Bogenlänge des zu sampelnden Pfads. Werte unter 0 und größer als 1 werden beschnitten. Der Standardwert ist 0,5.
t Zahl, optional. Die Kompositionszeit (in Sekunden) zum Sampeln des Pfads. Der Standardwert ist time (Zeit), die aktuelle Zeit.

Rückgabe:

Ein Zahlpaararray.

  • tangentOnPath()-Methode für Pfad {pathProperty}.tangentOnPath(percentage = 0.5, t = time) Erhalten Sie die berechneten x/y-Koordinaten des ausgehenden Tangentengriffs für einen arbiträren Punkt auf einem Pfad. Die Koordinatenwerte der Tangente sind relativ zu den Koordinaten des übergeordneten Punkts versetzt. - Der Wert [0,0] verursacht keine Krümmung bei der ausgehenden Tangente. Der eingehende Tangentengriff ist der Kehrwert dieses Werts. (Multiplizieren Sie die x/y-Koordinaten mit -1.) Der übergeordnete Punkt der Tangente wird als Prozentsatz der Bogenlänge des Pfads ausgedrückt. Die von tangentOnPath() zurückgegebenen Koordinaten werden aus dem übergeordneten Punkt der Tangente berechnet und weichen von den Koordinaten ab, die von outTangents() zurückgegeben werden, wenn auch ein benutzerdefinierter Punkt für diesen Prozentsatz der Bogenlänge vorhanden ist. Der lineare Abstand zwischen den Koordinaten des übergeordneten Punkts und den Koordinaten von tangentOnPath() ist stets 1. Sie können die zurückgegebenen Koordinaten multiplizieren, um eine längere Tangente zu erhalten. Hier ein Beispiel: (myPath.tangentOnPath() * 100). Geben Sie optional die Zeit zum Sampeln des Pfads an.

Parameter:

percentage (Prozentsatz) Zahl zwischen 0 und 1, optional. Prozentsatz entlang der Bogenlänge des zu sampelnden Pfads. Werte unter 0 und größer als 1 werden beschnitten. Der Standardwert ist 0,5.
t Zahl, optional. Die Kompositionszeit (in Sekunden) zum Sampeln des Pfads. Der Standardwert ist time (Zeit), die aktuelle Zeit.

Rückgabe:

Ein Zahlpaararray.

  • normalOnPath()-Methode für Pfad {pathProperty}.normalOnPath(percentage = 0.5, t = time) Erhalten Sie die berechneten x/y-Koordinaten der Normale für einen arbiträren Punkt auf dem Pfad. Die Koordinatenwerte von Normalen sind relativ zu den Koordinaten des übergeordneten Punkts versetzt. Der Wert [0,0] entspricht dem übergeordneten Punkt. Der übergeordnete Punkt der Normale wird als Prozentsatz der Bogenlänge des Pfads ausgedrückt. Lesen Sie die Beschreibung der pointOnPath()-Methode, um detaillierte Informationen zum Prozentsatz der Bogenlänge zu erhalten. Die von normalOnPath() zurückgegebenen Koordinaten werden vom übergeordneten Punkt aus berechnet. Der lineare Abstand zwischen den Koordinaten des übergeordneten Punkts und den Koordinaten von normalOnPath() ist stets 1. Sie können die zurückgegebenen Koordinaten multiplizieren, um eine längere Normale zu erhalten. Hier ein Beispiel: (myPath.normalOnPath() * 100). Geben Sie optional die Zeit zum Sampeln des Pfads an.

Parameter:

percentage (Prozentsatz) Zahl zwischen 0 und 1, optional. Prozentsatz entlang der Bogenlänge des zu sampelnden Pfads. Werte unter 0 und größer als 1 werden beschnitten. Der Standardwert ist 0,5.
t Zahl, optional. Die Kompositionszeit (in Sekunden) zum Sampeln des Pfads. Der Standardwert ist time (Zeit), die aktuelle Zeit.

Rückgabe:

Ein Zahlpaararray.

  • createPath()-Methode für Pfad{pathProperty}.createPath(points = [[0,0], [100,0], [100,100], [0,100]], inTangents = [], outTangents = [], is_closed = true) Erstellt ein Pfadobjekt aus einem Punkte- und Tangentensatz. Die Punkte sind durch ein Array aus Zahlpaararrays definiert, die für die jeweiligen x/y-Koordinaten stehen. Die Arraylänge muss mindestens 1 sein und kann beliebig größer sein. Die eingehenden und ausgehenden Tangentengriffe der Punkte sind durch ein Array aus Zahlpaararrays definiert, die für die jeweiligen x/y-Versatzkoordinaten stehen. Die Länge der Tangenten-Arrays muss exakt der Länge des points-Parameters entsprechen. Die Koordinatenwerte der Tangente sind relativ zu den Koordinaten des übergeordneten Punkts versetzt. - Der Wert [0,0] verursacht keine Krümmung bei der eingehenden Tangente. Die Methoden points(), inTangents(), outTangents() und isClosed() eines Pfads können in die points-, inTangents-, outTangents- und is_closed-Parameter überführt werden, um einen Pfad zu duplizieren. Die Punkte und Tangenten desselben Pfads können mit Modifikationen in createPath() überführt werden, um ein anderes Ergebnis zu erzielen. Mit der folgenden Expression werden beispielsweise Kurven aus Maske 1 entfernt, indem die Parameter inTangents bzw. outTangents nicht überführt werden:

myMask = mask("Mask 1").path;
myMask.createPath(myMask.points());

Im folgenden Beispiel werden die Punkte und Tangenten von Maske 1 überführt und in einen offenen Pfad umgewandelt, indem is_closed auf „false“ gesetzt wird:

myMask = mask("Mask 1").path;
myMask.createPath(myMask.points(), myMask.inTangents(), myMask.outTangents(), false);

 

points (Punkte) Ein Array mit einer Länge von 1 oder größer. Enthält Zahlpaararrays, die für die [x,y]-Koordinaten der Pfadpunkte stehen. Erforderlich, es sei denn, es werden keine Parameter überführt (z. B.: createPath()). Der Standardwert ist [[0,0], [100,0], [100,100], [0,100]].
is_closed Boolescher Wert, optional. Bestimmt, ob die Maske geschlossen ist. Wenn „true“, ist der letzte Punkt mit dem ersten Punkt verbunden. Der Standardwert ist „true“.
inTangents Ein Array aus Zahlpaararrays, die für die [x,y]-Versatzkoordinaten der ausgehenden Tangentengriffe zu den Pfadpunkten stehen. Erforderlich, es sei denn, es werden keine Parameter überführt (z. B.: createPath()). Die Arraylänge muss der von points entsprechen. Alternativ können Sie auch ein leeres Array ([]) überführen, das dieselbe Länge wie points und [0,0] für alle Tangenten annehmen wird. Der Standardwert ist ein leeres Array.
outTangents Ein Array aus Zahlpaararrays, die für die [x,y]-Versatzkoordinaten der eingehenden Tangentengriffe zu den Pfadpunkten stehen. Erforderlich, es sei denn, es werden keine Parameter überführt (z. B.: createPath()). Die Arraylänge muss der von points entsprechen. Alternativ können Sie auch ein leeres Array ([]) überführen, das dieselbe Länge wie points und [0,0] für alle Tangenten annehmen wird. Der Standardwert ist ein leeres Array.

Rückgabe:

Ein Pfadobjekt.

Beispiele:

  • Beispiel 1

Im Beispiel wird die Liste mit Punkt- und Tangentenkoordinaten von Pfad 1 der Form 1 auf Ebene „Formebene 1“ zum Zeitpunkt „time=0“ in eine Zeichenfolge geschrieben. Wenden Sie dies auf die Eigenschaft „Quelltext“ einer Textebene an, um die Koordinaten sowie ein- und ausgehenden Tangenten der Form anzuzeigen.

pointsList = "";
sampleTime = 0;

myShape = thisComp.layer("Shape Layer 1").content("Shape 1").content("Path 1").path;

for (i = 0; i < myShape.points(sampleTime).length; i++) {
    pointsList += "c: " + myShape.points(sampleTime)[i].toString() + "  i: " + myShape.inTangents(sampleTime)[i].toString() + " o: " + myShape.outTangents(sampleTime)[i].toString() + "\n";
}

pointsList;

  • Beispiel 2

Im Beispiel werden die Koordinaten des ersten Scheitelpunkts von Maske 1 auf „Dunkelgraue Farbfläche 1“ gelesen und in Kompositionskoordinaten umgewandelt. Wenden Sie dies auf die 2D-Punktsteuerung eines Effekts wie „Malen animieren“ oder CC-Effekts „Particle Systems II“ an, sodass der Effekt den ersten Punkt einer animierten Maske nachzeichnet oder verfolgt. Duplizieren Sie den Effekt und ändern Sie den Indexwert der Pfadpunkte ([0]), um die anderen Punkte der Maske nachzuzeichnen oder zu verfolgen.

myLayer = thisComp.layer("Dark Gray Solid 1");
myLayer.toComp(myLayer.mask("Mask 1").maskPath.points()[0]);

Datengesteuerte Animation (Expression-Referenz)

Expression-Methoden:

  • sourceText-Attribut für Footage {footageItem}.sourceText: Gibt den Inhalt einer JSON-Datei als Zeichenfolge zurück. Mithilfe der eval()-Methode kann die Zeichenfolge in ein beliebiges Array von sourceData-Objekten konvertiert werden, die identisch mit den Ergebnissen des sourceData-Attributs sind, aus dem die einzelnen Datenströme als hierarchische Attribute der Daten referenziert werden können. Beispiel: 

var myData = eval(footage("sample.json").sourceText);

myData.sampleValue;

Typ:

Zeichenfolge, der Inhalt der JSON-Datei; schreibgeschützt.

  • Footage-Attribut sourceData {footageItem}.sourceData Gibt die Daten einer JSON-Datei als Array von sourceData-Objekten zurück. Die Struktur der JSON-Datei bestimmt die Größe und Komplexität des Arrays. Individuelle Datenströme können als hierarchische Attribute der Daten referenziert werden. Bei einem Datenstrom mit der Bezeichnung „Color“ gibt die folgende Zeichenfolge den Wert von Color aus dem ersten Datenobjekt zurück: footage("sample.json").sourceData[0].Color

Meist wird das sourceData-Attribut einer JSON-Datei einer Variablen zugewiesen und anschließend der gewünschte Datenstrom referenziert. Beispiel:

var myData = footage("sample.json").sourceData;

myData[0].Color;

Typ:

Ein Array mit sourceData-Objekten; schreibgeschützt.

  • dataValue()-Methode für Footage {footageItem}.dataValue(dataPath) Gibt den Wert des angegebenen statischen oder dynamischen Datenstroms in eine MGJSON-Datei zurück. Empfängt einen einzelnen Array-Wert, um den Pfad in der Hierarchie zum gewünschten Datenstrom zu definieren. Beispiel:

footage("sample.mgjson").dataValue([0]) gibt Daten zum ersten untergeordneten Element zurück.

footage("sample.mgjson").dataValue([1][0]) gibt Daten des ersten untergeordneten Elements in der zweiten Gruppe zurück.

Parameter:

dataPath  Array, erforderlich. Der Pfad in der Hierarchie zu einem statischen oder dynamischen Datenstrom.

Rückgabe:

Der Wert des Datenstroms.

  • dataKeyCount()-Methode für Footage {footageItem}.dataKeyCount(dataPath)Gibt die Anzahl der Samples in einem angegebenen dynamischen Datenstrom in einer MGJSON-Datei an. Empfängt einen einzelnen Array-Wert, um den Pfad in der Hierarchie zum gewünschten dynamischen Datenstrom zu definieren.

Beispiel:

  • footage("sample.mgjson").dataKeyCount([0]) gibt die Anzahl der Samples für das erste untergeordnete Element zurück.
  • footage("sample.mgjson").dataKeyCount([1][0]) gibt die Anzahl der Samples für die zweite Gruppe zurück.

Parameter:

dataPath Array, erforderlich. Der Pfad in der Hierarchie zu einem statischen oder dynamischen Datenstrom.

Rückgabe:

Die Anzahl der Samples im dynamischen Datenstrom.

  • dataKey Times()-Methode für Footage {footageItem}.dataKeyTimes(dataPath, t0 = startTime, t1=endTime)Gibt die Zeit in Sekunden für die Samples eines angegebenen dynamischen Datenstroms in einer MGJSON-Datei zurück. Geben Sie optional die Zeitspanne an, von der Samples zurückgeben werden. Standardmäßig wird die Zeit für alle Samples zwischen startTime und endTime im dynamischen Datenstrom zurückgegeben, wie das in der Datenstrom-Eigenschaft samplesTemporalExtent in der MGJSON-Datei definiert ist. Empfängt einen einzelnen Array-Wert, um den Pfad in der Hierarchie zum gewünschten dynamischen Datenstrom zu definieren.

Im folgenden Beispiel werden die Zeiten von Samples zwischen einer Sekunde und drei Sekunden für das erste untergeordnete Element zurückgegeben:

footage("sample.mgjson").dataKeyTimes([0], 1, 3)

Parameter:

dataPath Array, erforderlich. Der Pfad in der Hierarchie zu einem dynamischen Datenstrom.
t0 Zahl, optional. Die Startzeit (in Sekunden) der Zeitspanne, von der Samples zurückgegeben werden sollen. Standardmäßig ist das startTime.
t1
Zahl, optional. Die Endzeit (in Sekunden) der Zeitspanne, von der Samples zurückgegeben werden sollen. Standardmäßig ist das endTime.

Rückgabe:

Array von Zahlen, die die Sample-Zeiten darstellen.

  • dataKeyValues()-Methode für Footage {footageItem}.dataKeyValues(dataPath, t0 = startTime, t1=endTime)Gibt den Wert für die Samples eines angegebenen dynamischen Datenstroms in einer MGJSON-Datei zurück. Geben Sie optional die Zeitspanne an, von der Samples zurückgeben werden. Standardmäßig wird die Zeit für alle Samples zwischen startTime und endTime im dynamischen Datenstrom zurückgegeben, wie das in der Datenstrom-Eigenschaft samplesTemporalExtent in der MGJSON-Datei definiert ist. Empfängt einen einzelnen Array-Wert, um den Pfad in der Hierarchie zum gewünschten dynamischen Datenstrom zu definieren.

Beispiel:

Footage("sample.mgjson").dataKeyValues([0], 1, 3) gibt die Werte der Samples zwischen einer Sekunde und drei Sekunden für das erste untergeordnete Element zurück.

Parameter:

dataPath Array, erforderlich. Der Pfad in der Hierarchie zu einem dynamischen Datenstrom.
t0 Zahl, optional. Die Startzeit (in Sekunden) der Zeitspanne, von der Samples zurückgegeben werden sollen. Standardmäßig ist das startTime.
t1
Zahl, optional. Die Endzeit (in Sekunden) der Zeitspanne, von der Samples zurückgegeben werden sollen. Standardmäßig ist das endTime.

Rückgabe:

Array von Zahlen, die die Samplewerte darstellen.

Farbkonvertierungsmethode Hexadezimal zu RGB (Expression-Referenz)

Die Farbkonvertierungsmethode hexToRgb() wandelt hexadezimale Farbwerte wie #FF00FF in RGBA-Farbwerte um. Dies kann hilfreich sein, um Farbparameter mit Farbwerten zu verknüpfen, die als Hex-Zeichenfolgen in JSON- oder CSV-/TSV-Datenquellen dargestellt werden.

Expression-Methode:

hexToRgb(hexString) Wandelt eine Farbe im dreiteiligen Hex-Tripletraum in RGB bzw. Farben im Hex-Quartettraum in den RGBA-Raum um. Für Hex-Triplets wird Alpha standardmäßig auf 1.0 festgelegt.

Parameter:

hexString Diese Zeichenfolge repräsentiert ein Hex-Triplet (6 Stellen, kein Alphakanal) oder -Quartett (8 Stellen, mit Alphakanal), das nur Ziffern oder Zeichen von A bis F enthält. Optionale vorangestellte Zeichen wie 0x, 0X oder # werden ignoriert. Zeichen über 8 Stellen hinaus werden ignoriert.

Rückgabe:

RGBA-Farbwertarray.

Beispiele:

Folgende Ausdrücke geben [1,0, 0,0, 1,0, 1,0] zurück:

  • hexToRgb(„FF00FF“)
  • hexToRgb(„#FF00FF“)
  • hexToRgb(„0xFF00FF“)
  • hexToRgb(„0XFF00FFFF“) Hinweis: 8-stelliges Hex-Quartett; die letzten beiden Stellen legen Alpha auf 1,0 fest.

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