Bearbeiten Sie die Textstile und Texteigenschaften mithilfe von Expression-Steuerelementen.
Verwende Expressions, um die Textstile in beliebigen Text-Expressions oder in Animationsvorlagen zu steuern. Mit Expressions können Sie z. B.:
Mehrere Titel verknüpfen und deren Stile gleichzeitig aktualisieren (sehr nützlich für das Entwerfen von Titeln).
Schriftart, Größe und Stil über mehrere Textebenen hinweg synchron halten.
Globale Änderungen der Texteigenschaften vornehmen.
Lege Stilattribute einzelner Zeichen in einer Textebene fest.
Nachdem du diese für eine Textebene festgelegt hast, verweise auf deren Ebeneneigenschaften, um Änderungen in der gesamten Komposition problemlos anzuwenden.After Effects-Expressions verwenden Eigenschaften, um Textstilwerte zu lesen (Get), und Funktionsmethoden, um diese in die Expression-Engine zu schreiben(Set). Auf diese Weise kannst du Textstile über Textebenen hinweg verknüpfen oder Steuerelemente einrichten, damit sie animiert oder in einer Animationsvorlage verwendet werden können.
Vor dem Verwenden von Expressions zur Bearbeitung von Texteigenschaften
Stelle die Expressions-Engine auf JavaScript ein, indem du Projekteinstellungen > Expressions > Expression-EngineJavaScript auswählst.
Wähle im Flyout-Menü für die Expression-Sprache die Option Text > EigenschaftenTexteigenschaftenoder Text > Formatierung.
Verfügbare Textattribute
Die folgenden Attribute für den Textstil können mit dem Objekt „Stil“ ausgelesen und festgelegt werden:
Schrift
Schriftgröße
Faux Fett
Faux Kursiv
Großbuchstaben
Kapitälchen
Laufweite
Zeilenabstand
Auto-Zeilenabstand
Grundlinienverschiebung
Füllung (aktivieren/deaktivieren)
Flächenfarbe
Kontur (aktivieren/deaktivieren)
Konturfarbe
Konturbreite
Ziffernsatz
Skalierung
Kerning
Tsume
Grundlinienrichtung
Grundlinienoption
Die Eigenschaft Quelltext einer Textebene wird von Expressions als JavaScript-Zeichenfolge interpretiert. Der Text selbst kann mit sourceText gelesen werden, muss jedoch für das Objekt „style“ mit der setText-Methode festgelegt werden, falls Stilattribute geändert werden. Gehe einige der Beispiele durch.
Expressions für Textebenen mit Absätzen
Neue Textzeile
Verwende \r in einer Zeichenfolgen-Expression, um eine neue Textzeile zu beginnen. Wenn du z. B. den Originaltext einer Ebene in Großbuchstaben auf dieselbe Ebene in eine neue Zeile kopieren möchtest, verwende die folgende Expression:
Zusätzlich zu den Textstilattributen gibt es auch Absatzattribute. Diese können nur auf die gesamte Textebene angewendet werden. Die Absatzattribute sind nur in After Effects verfügbar.
Richtung
Alle-Zeilen-Setzer
Einzug erste Zeile
Ausrichtung
Zeilenabstand-Typ
Linker Rand
Rechter Rand
Abstand danach
Abstand davor
Hängende Roman-Interpunktion
Expression-Menü für PostScript-Schriftarten
Wenn sie in Expressions auf Schriftarten verweisen, müssen sie einen speziellen „Systemnamen“ (oder Vergleichbares) verwenden. Es wird empfohlen, diesen speziellen Namen aus dem Dialogfeld Text > Schriftart > Schriftart auswählen einzufügen, um Expression-Fehler zu vermeiden.
Öffne das Flyout-Menü Expression-Sprache und wähle Text > Schriftart aus. Dies öffnet ein Dialogfeld mit Dropdown-Menüs, in denen Sie das Schriftbild und die Schriftart auswählen können, die in die Expression eingefügt werden sollen.
Synchronisierung der Schriftarten
Schriftarten, auf die nur im Expressions-Editor verwiesen wird, werden nicht als vom Projekt verwendete Schriftarten aufgezeichnet. Um sicherzustellen, dass alle Schriftarten, auf die im Expressions-Editor verwiesen wird, automatisch synchronisiert oder im Dialogfeld Schriftarten auflösen ausgefüllt werden, verwende all diese Schriftarten auf einer Ebene, selbst wenn diese Ebenenquelle ausgeblendet ist.
Objekt „Stil“
Alle Formateigenschaften für eine Textebene liegen im Objekt „Stil“ vor, auf das du über die Eigenschaft Quelltext zugreifst:
// Verwendung des gesamten Pfads zur Quelltext-Eigenschaft:
text.sourceText.style
// Verwendung des generischen Namens für die aktuelle Eigenschaft:
thisProperty.style
Wenn du nur „style“ verwendest, entspricht dies den obigen Beispielen. Wenn aber Stilattribute aus mehreren Textebenen kombiniert werden, kann dies zu Verwirrung führen.
Die Stilattribute anderer Textebenen können ebenfalls gelesen werden. Verwende das Auswahlwerkzeug, um am Anfang des ersten oben gezeigten Beispiels eine Verknüpfung mit der anderen Textebene herzustellen.
// Zugriff auf das Objekt „Stil“ einer bestimmten Textebene
thisComp.layer(“Name der anderen Ebene”).text.sourceText.style;
Stilattribute einzelner Zeichen in einer Textebene
Du kannst jetzt nicht nur Text-Expressions verwenden, um Stilattribute der gesamten Textebene festzulegen, sondern auch Stilattribute für einzelne Zeichen in der Ebene festlegen. Ein Vorteil dieser zeichenweisen Steuerung besteht darin, dass Text automatisch neu fließt, beispielsweise beim Skalieren von Buchstaben, Verwenden hochgestellter Buchstaben und Verwenden einer anderen Schriftart. Dies ist genau so, wie du es bei der Formatierung von Unterzeichenfolgen im Bedienfeld Zeichen erwarten würdest.
Damit sowohl der Wert des Stils als auch der tatsächliche Wert des Quelltexts ausgegeben werden, musst du die Funktionen getStyleAt und setText kombinieren. Im Folgenden finden Sie zwei Beispiele für diese Expression.
// Rückgabe der Werte für den Stil und den tatsächlichen Quelltext zum Zeitpunkt (kurzfristig): var sourceTextProperty = thisComp.layer(“MAIN TEXT”).text.sourceText; var newStyle = sourceTextProperty.getStyleAt(0,0); newStyle.setText(sourceTextProperty);
// Rückgabe der Werte für den Stil und den tatsächlichen Quelltext der vorherigen Ebene im Ebenenstapel: var sourceTextProperty = thisComp.layer(index - 1).text.sourceText; var newStyle = sourceTextProperty.getStyleAt(0,0); newStyle.setText(sourceTextProperty);
Dropdown der Schriftarten
Du kannst Dropdown-Menüs verwenden, um Textstile zu steuern, z. B. das Festlegen bestimmter Schriftarten für Textebenen. Dies ist hilfreich für Markenrichtlinien, Vorlagen, MoGRTS und mehr:
// Festlegen bestimmter Schriftarten für eine Textebene mit einem Dropdown-Menü-Steuerelement: var dropDownMenu = thisComp.layer(“LayerName”).effect(“Dropdown Menu Control”)(“Menu”); switch (dropDownMenu.value) { case 1 : text.sourceText.style.setFont(“Georgia”); break; case 2 : text.sourceText.style.setFont(“Impact”); break; default : text.sourceText.style.setFont(“Tahoma”); }
Haupttextebene
Verknüpfe mehrere Textebenen mit einem Steuerelement für die Hauptschriftart, um den Textstil mehrerer Ebenen gleichzeitig zu steuern. Erstelle zwei Textebenen und füge die folgende Expression in den Quelltext einer der Ebenen ein:
// Abrufen aller Texteigenschaften einer Textebene:
thisComp.layer(“Textebene 1”).text.sourceText.style;
Es ist möglich, den Stil einer Textebene abzurufen, bestimmte Texteigenschaften aber zu überschreiben, indem mit den Funktionen set Werte hinzugefügt werden. Im Folgenden findest du zwei Beispiele für die Verwendung von Flächenfarbe und Schriftgröße.
// Abrufen aller Texteigenschaften von „Textebene 1“ und Überschreiben von Flächenfarbe und Schriftgrad durch fest codierte Werte: var newStyle = thisComp.layer(“Textebene 1”).text.sourceText.style; newStyle.setFillColor(hexToRgb(“FF0000”)).setFontSize(100);
// Abrufen aller Texteigenschaften von „Textebene 1“ und Überschreiben von Flächenfarbe und Schriftgrad mit den aktuellen Texteigenschaften der Ebene: var newStyle = thisComp.layer(“Textebene 1”).text.sourceText.style; var currentFillColor = thisProperty.style.fillColor; var currentFontSize = thisProperty.style.fontSize; newStyle.setFillColor(currentFillColor).setFontSize(currentFontSize);
Beispiele
Im Folgenden findest du Beispiele dazu, wie du auf Werte von Texteigenschaften zugreifst und sie mit Expressions verwendest:
Schrift
Im Folgenden findest du Beispiele für den Zugriff auf Schrift, Schriftgröße, Faux Fett, Faux Kursiv, Laufweite und Zeilenabstand für eine Textebene:
// Rückgabe des Namens der Schriftart für die Textebene selbst: text.sourceText.style.font; // Rückgabe des Namens der von einer anderen Textebene verwendeten Schriftart: var otherLayer = thisComp.layer(“Name der anderen Ebene”); otherLayer.text.sourceText.style.font; // Rückgabe des Werts für den Schriftgrad der Textebene selbst: text.sourceText.style.fontSize; // Rückgabe des Werts für den Schriftgrad einer anderen Textebene: var otherLayer = thisComp.layer(“Name der anderen Ebene”); otherLayer.text.sourceText.style.fontSize; // Rückgabe eines booleschen Werts, der anzeigt, ob der Text einer Ebene Faux Fett ist oder nicht (True oder False): text.sourceText.style.isFauxBold; // Rückgabe eines booleschen Werts, der anzeigt, ob der Text einer Ebene Faux Kursiv ist oder nicht (True oder False), text.sourceText.style.isFauxItalic; // Rückgabe des Werts der Laufweite einer Textebene als Zahl: text.sourceText.style.tracking; // Rückgabe des Werts des Zeilenabstands einer Textebene als Zahl: text.sourceText.style.leading;
Füllung
Im Folgenden findest du Beispiele für den Zugriff auf Füllung und Flächenfarbe für eine Textebene:
// Rückgabe eines booleschen Werts, der angibt, ob auf den Text einer Ebene eine Füllung angewendet wird (True oder False):
text.sourceText.style.applyFill;
// Rückgabe des Werts der Flächenfarbe einer Textebene
// Standardmäßig wird ein Array der RGB-Werte auf einer Skala von 0 bis 1,0 zurückgegeben:
text.sourceText.style.fillColor zurück;
// Festlegen der Flächenfarbe einer Textebene mit setApplyFill und setFillColor
// setFillColor-Werte werden als RGB-Array auf einer Skala zwischen 0 und 1,0 definiert:
var newStyle = style.setApplyFill(true);
newStyle.setFillColor([1.0, 1.0, 1.0]);
// Festlegen der Flächenfarbe einer Textebene, wobei das RGB-Array mit Werten zwischen 0 und 1,0 durch hexToRGB ersetzt wird, um die Farbwerte als Hex-Werte zu definieren:
var newStyle = style.setApplyFill(true);
newStyle.setFillColor(hexToRgb(“FFFFFF”));
RGB-Werte der Füllung
// Rückgabe des Werts für Rot (R) der Flächenfarbe:
text.sourceText.style.fillColor[0];
Hinweis:
Um den Wert der Flächenfarbe für R, G oder B einer Textebene zurückzugeben, füge in Klammern 0, 1 bzw. 2 hinzu.
Strich
Im Folgenden findest du Beispiele für den Zugriff auf die Kontur, die Konturfarbe und die Konturbreite einer Textebene:
// Rückgabe eines booleschen Werts, der angibt, ob auf den Text einer Ebene eine Kontur angewendet wird (True oder False):
text.sourceText.style.applyStroke;
// Rückgabe des Werts der Konturfarbe einer Textebene
// Standardmäßig wird ein Array der RGB-Werte auf einer Skala von 0 bis 1,0 zurückgegeben:
text.sourceText.style.strokeColor zurück;
// Festlegen der Konturfarbe einer Textebene mit setApplyStroke und setStrokeColor:
// setStrokeColor-Werte werden als RGB-Array auf einer Skala zwischen 0 und 1,0 definiert:
var newStyle = style.setApplyStroke(true);
newStyle.setStrokeColor([1.0, 0.0, 0.0]);
// Festlegen der Konturfarbe einer Textebene, wobei das RGB-Array mit Werten zwischen 0 und 1,0 durch hexToRGB ersetzt wird, um die Farbwerte als Hex-Werte zu definieren:
var newStyle = style.setApplyStroke(true);
newStyle.setStrokeColor(hexToRgb(“FF0000”));
// Rückgabe des Werts der Konturbreite einer Textebene als Zahl:
text.sourceText.style.strokeWidth;
RGB-Werte für die Kontur
// Rückgabe des Werts für Grün (G) der Flächenfarbe:
text.sourceText.style.strokeColor[1];
Hinweis:
Um den Wert der Konturfarbe für R, G oder B einer Textebene zurückzugeben, fügen Sie in Klammern 0, 1 bzw. 2 hinzu.
getStyleAt-Funktion
Verwenden Sie diese get-Funktion, um den Stilwert eines bestimmten Zeichens zu einem bestimmten Zeitpunkt zurückzugeben. Index muss eine Zahl sein – der Index des Buchstabens oder des Zeichens, dessen Stil benötigt wird. atTime muss ebenfalls eine Zahl sein – der Zeitpunkt in der Komposition, zu dem der Stil abgerufen werden soll, falls der Stil Keyframes verwendet und sich im Laufe der Zeit ändert.
text.sourceText.getStyleAt(index, atTime);
Hinweis:
Die Verwendung von text.sourceText.style ist identisch mit der Verwendung von text.sourceText.getStyleAt(0,0).
// Abrufen des Stils des ersten Zeichens am Anfang des Schnittfensters: text.sourceText.getStyleAt(0,0);
Set-Funktionen
Zusätzliche set-Funktionen, die einzeln oder in Kombination verwendet werden können, um Stile über Ebenen hinweg anzupassen. Jede dieser Funktionen wird für das Objekt „Stil“ einer Eigenschaft Quelltext aufgerufen:
// Festlegen der Schriftart auf Arial:
styleetFont(“ArialMT”)
// Festlegen des Schriftgrads auf 80:
styleetFontSize(80
// Aktivieren von Faux Fett mit einem booleschen Wert:
styleetFauxBold(true)
// Aktivieren von Faux Kursiv mit einem booleschen Wert:
styleetFauxItalics(true)
// Aktivieren von Großbuchstaben mit einem booleschen Wert:
styleetAllCaps(true)
// Aktivieren von Kapitälchen mit einem booleschen Wert:
styleetSmallCaps(true)
// Festlegen der Laufweite als Zahl:
styleetTracking(10
// Festlegen des Zeilenabstands als Zahl:
styleetLeading(10
// Aktivieren des automatischen Zeilenabstands mit einem booleschen Wert:
styleetAutoLeading(true
// Festlegen des Grundlinienversatzes als Zahl:
styleetBaselineShift(10
// Festlegen der Konturbreite als Zahl:
styleetStrokeWidth(10
// Festlegen der ersten Zeile einer Textebene als fett und größer
textourceTexttyleetFontSize(100, 0, 30)etFauxBold(true, 0, 30)
// Festlegen von Zeichen als hochgestellt
textourceTexttyleetBaselineOption(“superscript”,1,2)etBaselineOption(“superscript”, 9, 2)
Alle set-Funktionen für Textstile können miteinander verkettet werden, um mehrere Attribute einfach zu setzen, ohne jedes Mal einen neuen Stil deklarieren zu müssen. Siehe folgendes Beispiel:
Hinweis:
Ein Semikolon wird erst eingefügt, nachdem das letzte Attribut festgelegt wurde. Wenn Sie jedes Attribut in einer eigenen Zeile angeben, wird die Kette leichter lesbar.
// Aktivieren der Füllung, Festlegen der Flächenfarbe, Festlegen der Grundlinie, Festlegen der Laufweite und Aktivieren des automatischen Zeilenabstands: text.sourceText.style .setApplyFill(true) .setFillColor(hexToRgb(“FFFFFF”)) .setBaselineShift(10) .setTracking(25) .setAutoLeading(true);
Zusätzliche Anwendungsfälle für Expressions im Quelltext
Das Hinzufügen einer Textebene zu einer Komposition und das Hinzufügen einer Expression zu deren Eigenschaft Quelltext ist eine gute Möglichkeit, die Eigenschaftswerte anderer Ebenen zu untersuchen. Die folgende Expression in einer Eigenschaft Quelltext meldet den Namen und Wert der Eigenschaft Deckkraft für die nächste Ebene in der Stapelreihenfolge von Ebenen.
Im folgenden Beispiel wird der Name des Footage-Elements angegeben, das als Quelle der ersten Bildebene im Stapel zum aktuellen Zeitpunkt verwendet wird, für das der Schalter „Video“ eingestellt ist:
// Erstellen von sourceFootageName als leere Zeichenfolge: var sourceFootageName = “”; // Durchlaufen aller Ebenen in der Komposition für (var i = 1; i <= thisComp.numLayers; i++) { // Wenn i gleich dem Index der Ebene ist, mit der nächsten Schleife fortfahren: if (i == index) { continue; } // Festlegen von myLayer für die aktuelle Iteration der Schleife: var myLayer = thisComp.layer(i); // Wenn myLayer kein Video besitzt oder nicht aktiv ist, mit der nächsten Schleife/Ebene fortfahren: if ( !myLayer.hasVideo || !myLayer.active ) { continue; } // Wenn myLayer aktuell aktiv ist: if ( myLayer.active ) { try { // Festlegen von sourceFootageName auf den Namen der Quelle von myLayer: sourceFootageName = myLayer.source.name; } catch ( err ) { // Wenn myLayer keine Quelle hat, // Festlegen von sourceFootageName auf den Namen von myLayer: sourceFootageName = myLayer.name; } // Schleife beenden: break; } } // Anzeigen von sourceFootageName: sourceFootageName;
Speichern von Expressions als Vorgaben
Wähle die Eigenschaft Quelltext mit den hinzugefügten Expressions aus. Wähle anschließend Animation > Animationsvorgabe speichern aus, um die Expressions in anderen Projekten wiederzuverwenden. Animationsvorgaben werden im Bedienfeld Effekte und Vorgaben gespeichert.
Da Sie jetzt einige der Konzepte im Zusammenhang mit Expressions verstanden haben, können Sie der Community beitreten, um echte Anwendungsbeispiele zu erhalten und Ihre Arbeit zu teilen.
Das AE Enhancers Forum bietet auch zahlreiche Beispiele und Informationen zu Expressions sowie Skripte und Animationsvorgaben.