Bearbeiten Sie die Textstile und Texteigenschaften mithilfe von Expression-Steuerelementen.
Verwenden Sie 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.
Nachdem Sie diese für eine Textebene festgelegt haben, verweisen Sie auf deren Ebeneneigenschaften, um Änderungen in der gesamten Komposition problemlos anzuwenden.
After Effects verwendet die Funktionen „Get“ und „Set“, um Werte für Texteigenschaften zu lesen und in die Expression-Engine zu schreiben. Mit Expressions legen Sie Schriftarten fest, z. B. Texteigenschaften, die über Textebenen hinweg gelten.
So greifen Sie auf die Funktionen für Texteigenschaften zu:
Fügen Sie zur Eigenschaft „Quelltext“ einer Textebene eine Expression hinzu. Weitere Informationen finden Sie unter Expressions – Grundlagen.
Wählen Sie im Flyout-Menü „Expression-Sprache“ die Option Text > Eigenschaften > Eigenschaften aus.
Speichern von Expressions als Vorlagen
Wählen Sie die Eigenschaft „Quelltext“ mit den hinzugefügten Expressions aus. Wählen Sie anschließend Animation > Animationsvorgabe speichern aus, um die Expressions in anderen Projekten wiederzuverwenden. Animationsvorgaben werden im Bedienfeld Effekte und Vorgaben gespeichert.
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.
Öffnen Sie das Flyout-Menü Expression-Sprache, und wählen Sie 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, verwenden Sie all diese Schriftarten auf einer Ebene, selbst wenn diese Ebenenquelle ausgeblendet ist.
Das Objekt „Stil“
Alle Formateigenschaften für eine Textebene liegen im Objekt „Stil“ vor, auf das Sie wie über die Eigenschaft „Quelltext“ zugreifen:
// Verwendung des gesamten Pfads zur Quelltext-Eigenschaft: text.sourceText.style // Verwendung des generischen Namens für die aktuelle Eigenschaft: thisProperty.style
Wenn Sie nur „style“ verwenden, 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. Verwenden Sie 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;
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
Die Eigenschaft „Quelltext“ einer Textebene wird von Expressions als JavaScript-String interpretiert. Der Text selbst kann mit „sourceText“ gelesen werden, muss jedoch für das Objekt „Stil“ mit der setText-Methode festgelegt werden, falls Stilattribute geändert werden. Siehe die folgenden Beispiele.
Stil und Quelltext kombinieren
Kombinieren von Stil und Quelltext
Damit sowohl der Wert des Stils als auch der tatsächliche Wert des Quelltextes zurückgegeben wird, müssen Sie 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
Verknüpfen von Schriftarten oder Stilen mit einem Dropdown-Menü
Sie können 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
Texteigenschaften von „Textebene 1“ abrufen, aber Schriftgrad und Flächenfarbe überschreiben
Verknüpfen Sie mehrere Textebenen mit einem Steuerelement für die Hauptschriftart, um den Textstil mehrerer Ebenen gleichzeitig zu steuern. Erstellen Sie zwei Textebenen und fügen Sie die folgende Expression in den Quelltext einer Ebene ein:
// Abrufen aller Texteigenschaften einer Textebene: thisComp.layer(“Textebene 1”).text.sourceText.style;
Es ist möglich, den Stil von einer Textebene abzurufen, bestimmte Texteigenschaften aber zu überschreiben, indem mit den Set-Funktionen Werte hinzugefügt werden. Im Folgenden finden Sie zwei Beispiele für die Verwendung von Flächenfarbe und Schriftgrad.
// 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 finden Sie Beispiele dazu, wie Sie auf Werte von Texteigenschaften zugreifen und sie mit Expressions verwenden.
Schrift
Im Folgenden finden Sie Beispiele für den Zugriff auf die Schriftart, den Schriftgrad, Faux Fett, Faux Kursiv, Laufweite und Zeilenabstand einer 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 finden Sie Beispiele für den Zugriff auf die Füllung und die Flächenfarbe einer 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”));
Hinweis:
Um den Wert der Flächenfarbe für R, G oder B einer Textebene zurückzugeben, fügen Sie in Klammern 0, 1 bzw. 2 hinzu.
// Rückgabe des Werts für Rot (R) der Flächenfarbe: text.sourceText.style.fillColor[0];
Kontur
Im Folgenden finden Sie 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;
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.
// Rückgabe des Werts für Grün (G) der Flächenfarbe: text.sourceText.style.strokeColor[1];
Get-Funktionen
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 Quelltexteigenschaft aufgerufen:
// Festlegen von Arial für die Schriftart: style.setFont(“ArialMT”) // Festlegen des Schriftgrads auf 80: style.setFontSize(80); // Aktivieren von Faux Fett mit einem booleschen Wert: style.setFauxBold(true) // Aktivieren von Faux Kursiv mit einem booleschen Wert: style.setFauxItalics(true) // Aktiveren von Großbuchstaben mit einem booleschen Wert: style.setAllCaps(true) // Aktivieren von Kapitälchen mit einem booleschen Wert: style.setSmallCaps(true) // Festlegen der Laufweite als Zahl: style.setTracking(10); // Festlegen des Zeilenabstands als Zahl: style.setLeading(10); // Aktivieren des automatischen Zeilenabstands mit einem booleschen Wert: style.setAutoLeading(true); // Festlegen des Grundlinienversatzes als Zahl: style.setBaselineShift(10); // Festlegen der Konturbreite als Zahl: style.setStrokeWidth(10);
Alle Set-Funktionen für Textstile können verkettet werden, um auf einfache Weise mehrere Attribute festzulegen, ohne jedes Mal einen neuen Stil deklarieren zu müssen. 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);
Tipp für Expressions für Absatztexte
Verwenden Sie „\r“ in einer String-Expression, um eine neue Textzeile zu beginnen. Wenn Sie z. B. den Originaltext einer Ebene in Großbuchstaben auf dieselbe Ebene in eine neue Zeile kopieren möchten, verwenden Sie die folgende Expression:
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;
Weitere Ressourcen zu Expressions
Da Sie jetzt einige der Konzepte im Zusammenhang mit Expressions verstanden haben, können Sie der Community beitreten, um echte Anwendungsbeispiele zu erhalten und Ihre Arbeit zu teilen.