Wähle Datei > Projekteinstellungen aus.
- 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
Erfahren Sie mehr über Expressions und Expression-Referenzen wie Zeitumrechnungs- und Vektorberechnungsmethoden in After Effects.
Keyframes mit Expressions in After Effects als Schleife durchlaufen
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 du keinen anderen Wert festlegst.
Einige Argumentbeschreibungen enthalten eine Zahlenangabe in eckigen Klammern, welche die Dimension der erwarteten Eigenschaft bzw. des erwarteten Arrays angibt.
Einige der zurückgegebenen Wertbeschreibungen enthalten eine Zahlenangabe in eckigen Klammern. Diese Zahl 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 verwendet After Effects die freie JavaScript-Implementierung V8. Diese Engine stellt eine modernere Version von JavaScript bereit als ExtendScript, das nur die dritte Edition des ECMA-262-Standards unterstützt.
Du kannst mit den Projekteinstellungen festlegen, ob ein Projekt die JavaScript-Engine oder das veraltete ExtendScript verwendet.
-
-
Klicke auf die Registerkarte Expressions und wähle die Expressions-Engine als JavaScript oder veraltetes ExtendScript aus.
Hinweis:Projekte, die in älteren Versionen von After Effects gespeichert wurden, verwenden standardmäßig das alte ExtendScript.
Erfahre mehr über bestimmte Syntaxunterschiede zwischen den Expression-Engines für JavaScript und 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 eine Zeichenfolge.
Ruft eine andere Komposition anhand des Namens ab.
footage(name)
Rückgabetyp: Footage.
Argumenttyp: name ist eine Zeichenfolge.
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. Du kannst z. B. eine Expression mit thisLayer.width oder width beginnen. Bei beiden Varianten erhältst du dasselbe Ergebnis.
thisProperty
Rückgabetyp: Property (Eigenschaft).
Steht für die Eigenschaft, die die Expression enthält. Wenn du z. B. eine Expression für die Eigenschaft „Drehung“ schreibst, kannst du 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 kannst du 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.
Steht für den Wert am aktuellen Zeitpunkt für die Eigenschaft, 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 minus 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 eine Ganzzahl handeln. Eine Erklärung des Arguments fps findest du 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 eine Zeichenfolge, die für den Timecode steht. Eine Erläuterung der Argumente t und isDuration findest du 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 eine Zeichenfolgr, die für NTSC-Timecode steht. Eine Erläuterung der Argumente t und isDuration findest du in der Beschreibung zu timeToFrames. Ist ntscDropFrame „false“ (der Standardwert), ist die resultierende Zeichenfolge NTSC-Non-Drop-Frame-Timecode. Ist ntscDropFrame „true“, ist die resultierende Zeichenfolge 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 eine Zeichenfolge, die für Film-Feet und Frames steht. Eine Erläuterung der Argumente t und fps und isDuration findest du 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-Filmmaterial 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.
Wenn du mehr Kontrolle über das Aussehen des Timecodes in deinem Filmmaterial haben möchtest, kannst du anstelle der Effekte Timecode oder Zahlen die Methode timeToCurrentFormat oder andere timeTo-Methoden verwenden, um den Timecode zu generieren. Erstelle eine Textebene, füge der Eigenschaft Source Text eine Expression hinzu und gib 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.
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 findest du 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 kannst du 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üge 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)
Zufallszahlmethoden (Expression-Referenz)
Die Methode „Verwackeln“, mit der du einen Eigenschaftswert zufällig variieren kannst, befindet sich in der Kategorie „Eigenschaftsattribute und -methoden“. Weitere Informationen findest du unter Eigenschaftstribute und -methoden (Expression-Referenz).
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. Standardmäßig wird die Verteilung als Funktion eines eindeutigen Ebenenidentifizierers, der Eigenschaft innerhalb der Ebene, der aktuellen Zeit und eines Versatzwerts von 0 errechnet. Rufe seedRandom auf, um den Versatz auf etwas anderes als 0 einzustellen, damit eine andere zufällige Sequenz erstellt wird.
Setze das Argument timeless auf true. Gib nicht die aktuelle Zeit für die Zufallsverteilung ein. Wenn du das Argument timeless auf true setzt, kannst du 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()*100Durch 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 (glockenförmige) Normalverteilung. 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. Ungefähr 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 (glockenförmige) Normalverteilung.
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 (glockenförmige) Normalverteilung.
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 den Wert steht, weist die Expression einem Wertebereich einen neuen Wertebereich zu.
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 Wert2 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) und 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) und 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) und 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)
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-Farbraum 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 im Schnittfenster). 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 Schnittfenster zuerst vorkommt (d. h. 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 Schnittfenster aktiv ist.
marker
Rückgabetyp: MarkerProperty.
Du kannst nicht anhand der Markennummer auf eine Kompositionsmarke zugreifen. Wer in einer früheren Version von After Effects ein Projekt erstellt hat, in dem Kompositionsmarkennummern in Expressions verwendet werden, muss 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 (Zeichenfolge).
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("1"). Der Standardname einer Kompositionsmarke 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 Marken-Keys ist ein String (Zeichenfolge) und nicht Number (Zahl). Diese Expression gibt beispielsweise die Zeit der Kompositionsmarke mit dem Namen „0“ zurück:
thisComp.marker.key("0").timemarker.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 z. B. gibt die Zeit der Kompositionsmarke zurück, die der Zeit von einer Sekunde am nächsten liegt:
thisComp.marker.nearestKey(1).timeDiese Expression gibt die Zeit der Kompositionsmarke zurück, die der aktuellen Zeit am nächsten liegt:
thisComp.marker.nearestKey(time).timemarker.numKeys
Rückgabetyp: Number (Zahl).
Gibt die Gesamtzahl der Kompositionsmarken 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 du im Bedienfeld Komposition schaust.
width
Rückgabetyp: Number (Zahl).
Gibt die Breite der Komposition (in Pixeln) zurück.
Wenn du folgende Expression auf die Eigenschaft Position einer Ebene anwendest, wird die Ebene im Kompositions-Frame 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 Kompositionsmarken kann mit dem Kompositionsmarken-Attribut protectedRegion gelesen werden.
Attribute des Filmmaterials und Methoden (Expression-Referenz)
Um ein Footage-Element aus dem Bedienfeld Projekt als Objekt in einer Expression einzusetzen, kann die globale Methode footage, wie z. B. footage("file_name"), verwendet werden. 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 Footage-Elements in Pixeln zurück.
height
Rückgabetyp: Number (Zahl).
Gibt die Höhe des Filmmaterials in Pixeln zurück.
duration
Rückgabetyp: Number (Zahl).
Gibt die Dauer des Footage-Elements in Sekunden zurück.
frameDuration
Rückgabetyp: Number (Zahl).
Gibt die Dauer eines Frames im Footage-Element 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 Footage-Elements zurück.
name
Rückgabetyp: String.
Gibt den Namen des Footage-Elements, wie er im Bedienfeld Projekt angezeigt wird, zurück.
Unterobjekttyp „Ebene“: Attribute und Methoden (Expression-Referenz)
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 Bedienfeld Effekteinstellungen 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 Bedienfeld Effekteinstellungen 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 Bedienfeld Effekteinstellungen 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 Schnittfenster zurück, wobei der erste (oberste) Effekt im Fenster der Effekt mit dem Index „1“ ist.
Objekttyp „Ebene allgemein“: Attribute und Methoden (Expression-Referenz)
width
Rückgabetyp: Number (Zahl).
Gibt die Breite der Ebene (in Pixel) zurück. Ist identisch mit source.width.
height
Rückgabetyp: Number (Zahl).
Gibt die Höhe der Ebene (in Pixel) 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. Du kannst dieses Attribut selbst dann verwenden, wenn aktuell keine übergeordnete Ebene vorhanden ist. So kannst du mit der folgenden Expression festlegen, dass die Ebene, auf die du die Expression anwendest, 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.
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 Videomaterial hat, und „false“, wenn sie keines hat.
hasAudio
Rückgabetyp: Boolean (Boolescher Wert).
Gibt den Wert „true“ zurück, wenn die Ebene Audiomaterial hat, und „false“, wenn sie keines hat.
active
Rückgabetyp: Boolean (Boolescher Wert).
Gibt den Wert „true“ zurück, wenn der SchalterVideo 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 SchalterVideo 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.
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.
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])
Ebeneneigenschaften – Attribute und Methoden (Expression-Referenz)
Wenn du einer Ebene Masken, Effekte, Maleffekte oder Text hinzufügst, fügt After Effects im Schnittfenster neue Eigenschaften hinzu. Für das Auflisten aller dieser Eigenschaften reicht der Platz hier nicht aus. Nutze daher das Expression-Auswahlwerkzeug, um dich mit der Syntax vertraut zu machen und diese dann korrekt in deinen 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 Drehungswert 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 Deckkraftwert 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 vielmehr 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 (Zeichenfolge).
Gibt das MarkerKey-Objekt 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 auf der Ebene denselben Namen trägt, gibt diese Methode die Marke zurück, die zuerst eintritt (in Ebenenzeit). Der Wert für Marken-Keys ist eine Zeichenfolge und keine Number (Zahl).
Durch diese Expression einer Eigenschaft verläuft der Eigenschaftswert von 0 bis 100 zwischen zwei durch einen Namen gekennzeichneten Marken:
m1 = marker.key("Start").time; m2 = marker.key("End").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 t in der Zeit am nächsten ist. Diese Expression gibt z. B. die Zeit der Ebenenmarke zurück, die der Zeit von einer Sekunde am nächsten liegt:
marker.nearestKey(1).timeDiese Expression gibt die Zeit der Ebenenmarke zurück, die der aktuellen Zeit am nächsten liegt:
marker.nearestKey(time).timemarker.numKeys
Rückgabetyp: Number (Zahl).
Gibt die Gesamtanzahl an Marken auf 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 akzeptiert.
acceptsLights
Rückgabetyp: Property (Eigenschaft).
Gibt den Wert 1,0 zurück, falls die Ebene Lichter akzeptiert.
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 „Glanzlicht“ (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")
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)
Unter Expression-Beispiel: Komplexes Wölben zwischen zwei Ebenen erstellen findest du ein Beispiel 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. Verwende sie 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 Skalierung 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 Zoom-Wert 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 die Eigenschaft Tiefenschärfe deaktiviert ist.
focusDistance
Rückgabetyp: Property (Eigenschaft).
Gibt den Fokusentfernungswert der Kamera (in Pixel) zurück.
aperture
Rückgabetyp: Property (Eigenschaft).
Gibt den Öffnungswert der Kamera (in Pixel) 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 Schnittfenster. 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 für den Interessenbereich 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 Kegelkanten für das Licht (in Prozent) zurück.
shadowDarkness
Rückgabetyp: Property (Eigenschaft).
Gibt den Wert der Schattentiefe 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.
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 (Zeichenfolge).
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)
Du kannst 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 als Prozentsatz zurück.
maskFeather
Rückgabetyp: Property (Eigenschaft).
Gibt den Wert für Weiche Kante einer Maske in Pixel zurück.
maskExpansion
Rückgabetyp: Property (Eigenschaft).
Gibt den Ausbreitungswert einer Maske in Pixel zurück.
invert
Rückgabetyp: Boolean (Boolescher Wert).
Gibt den Wert „true“ zurück, wenn die Maske umgekehrt ist; andernfalls wird „false“ zurückgegeben.
value
Rückgabetyp: Number (Zahl), Array oder String.
Gibt den Wert einer Eigenschaft zum aktuellen Zeitpunkt 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))
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 bzw. 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]];
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), über den 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 erreichst du eine größere Glättung, aber die Leistung wird beeinträchtigt. In der Regel solltest du 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 Schnittfenster 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. |
Versatz |
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.
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 (Zeichenfolge).
Gibt das MarkerKey-Objekt mit diesem Namen zurück. Verwende diese 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.
Wenn du die Dimensionen der Eigenschaft Position mithilfe des Befehls Dimensionen trennen in einzelne Komponenten zerlegst, ä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 du zum Beispiel die Expression propertyGroup(1) der Eigenschaft Drehung eines Pinselstrichs hinzufügst, wählt die Expression die Eigenschaftsgruppe Transformieren aus, die die Eigenschaft Drehung enthält. Fügst du 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, T rackern und Track-Punkten.
name
Rückgabetyp: String.
Gibt den Namen der Eigenschaft oder Eigenschaftsgruppe zurück.
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: Boolesch; schreibgeschützt.
Wesentliche Attribute und Methoden (Expression-Referenz)
Keyobjekte kannst du 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 du für die Eigenschaft Deckkraft mit Keyframes die folgende Expression schreibst, 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 (Uhrzeit - nearestKey (Zeit) .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.
Expressions haben Zugriff auf alle Werte für eine Marke, die du im Dialogfeld Kompositionsmarke oder Ebenenmarke festlegen kannst. Mit dieser Expression für die Eigenschaft Quelltext einer Textebene werden Zeit, Dauer, Index, Kommentar (Name), Kapitel, URL, Frame-Ziel 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(Zeit); s = "Zeit:" + timeToCurrentFormat(m.time) + "\r" + "Dauer: " + m.duration + "\r" + "Schlüsselindex: " + m.index + "\r" + "Kommentar:" + m.comment + "\r" + "Kapitel:" + m.chapter + "\r" + "URL:" + m.url + "\r" + "Bild-Target: " + m.frameTarget + "\r" + "Cue-Point: " + m.cuePointName + "\r" + "Ereignis-Cue-Point? " + m.eventCuePoint + "\r"; for (param in m.parameters){ s += "Parameter: " + param + "Wert: " + m.parameters[param] + "\r"; } s
Da die XMP-Metadaten in einem Footage-Element in Ebenenmarken für eine auf diesem Element basierende Ebene konvertiert werden können, können Expressions mit XMP-Metadaten interagieren. Weitere Informationen findest du unter XMP-Metadaten in After Effects.
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 „Frame-Ziel“ im Dialogfeld „Marke“.
eventCuePoint
Rückgabetyp: Boolean (Boolescher Wert).
Einstellung für den Cue-Punkt-Typ 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. Die Koordinaten für die Pfadpunkte von Bezier-Formen sind relativ zum Ankerpunkt der Formgruppe im Pfad, z. B. Transformieren: Form 1 > Ankerpunkt. Die 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ückgaben:
Array aus Zahlpaararrays, auf die vierte Dezimalstelle gerundet.
- inTangents()-Methode für Pfad: {pathProperty}.inTangents(t = time)Abrufen der 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ückgaben:
Array aus Zahlpaararrays, auf die vierte Dezimalstelle gerundet.
- outTangents()-Methode für Pfad: {pathProperty}.outTangents(t = time)Abrufen der 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 Methode createPath() für den Parameter outTangents überführt werden, wenn du einen Pfad duplizierst. 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ückgaben:
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ückgaben:
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ückgaben:
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ückgaben:
Ein Zahlpaararray.
- normalOnPath()-Methode für Pfad: {pathProperty}.normalOnPath(percentage = 0.5, t = time)Abrufen der berechneten x/y-Koordinaten der Normalen für einen arbiträren Punkt auf einem Pfad. Koordinatenwerte von Normalen werden relativ zu den Koordinaten des übergeordneten Punktes verschoben. Der Wert [0,0] entspricht dem des übergeordneten Punktes. Der übergeordnete Punkt der Normalen wird als Prozentsatz der Bogenlänge des Pfads ausgedrückt. In der Beschreibung der Methode pointOnPath() findest du Details über den Prozentsatz der Bogenlänge. Die von normalOnPath() zurückgegebenen Koordinaten werden von dem ü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ückgaben:
Ein Zahlpaararray.
- createPath()-Methode für Pfad {pathProperty}.createPath(points = [[0,0], [100,0], [100,100], [0,100]], inTangents = [], outTangents = [], is_closed = true) Erzeugt ein Pfadobjekt aus einem Satz von Punkten und Tangenten. Die Punkte werden durch eine Reihe von Zahlenpaaren definiert, die ihre (x,y)-Koordinaten darstellen. Die Array-Länge muss mindestens 1 betragen und kann beliebig größer sein. Die eingehenden und ausgehenden Tangentengriffe der Punkte werden durch ein Array von Zahlenpaar-Arrays definiert, die ihre (x,y)-Offsetkoordinaten darstellen. 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 Pfades können an die Parameter points, inTangents, outTangents und is_closed übergeben werden, um einen Pfad zu duplizieren. Die Punkte und Tangenten desselben Pfades können mit Änderungen an createPath() übergeben werden, um ein anderes Ergebnis zu erzeugen. Mit der folgenden Expression werden beispielsweise Kurven aus Maske 1 entfernt, indem die Parameter inTangents bzw. outTangents nicht übergeben 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ückgaben:
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. Wende 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. Dupliziere den Effekt und ändere 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}.sourceDataGibt 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ückgaben:
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ückgaben:
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ückgaben:
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ückgaben:
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ückgaben:
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.