Automatisieren Sie das Rendern von After Effects-Assets über Skripte und externe Daten

Ich rendere oft ziemlich große Mengen von Assets (untere Drittel, Titel usw.) aus AFX und es ist wirklich nervig, zB untere Drittel zu erstellen und sie dann zu duplizieren und Texte zu ändern. Vor allem, wenn ich später etwas global ändern muss und zu jeder einzelnen Kopie dieser Grafik zurückkehren muss.

Gibt es vielleicht eine Möglichkeit, Daten aus einer externen Datei (wie XML oder JSON) zu laden und dann das Rendern für jede Zeile / jeden Satz in dieser Datei zu wiederholen? Also könnte ich im Grunde genommen ein unteres Drittel mit den Textfeldern "Name" und "Firma" erstellen und dann mehrere Werte für diese Felder in einer externen Datei angeben und dann einfach AFX meine Komposition mit jedem Satz von Werten rendern lassen?

Antworten (2)

Hast du die neuste Version? Bei After Effects CC 2018 dreht sich alles um datengesteuerte Animation.

In beiden Fällen können Sie externe Dateien verwenden, um Ausdrücke (auch in älteren Versionen) mithilfe der evalJavascript-Funktion zu steuern. Ich erkläre es auf meinem Blog so:

Wenn Sie eine Datei haben, die so etwas enthält:

var vals = {"rotation":8, "scaleX":150, "scaleY":200};

Sie können diesen Ausdruck zB in der Scale-Eigenschaft verwenden:

$.evalFile("/path/to/test.js"); // or "c:\path\to\test.js"
[eval(vals).scaleX, eval(vals).scaleY]

Die erste Zeile liest die Datei und behandelt sie als Quelle für den Ausdruck, sodass vals als Objekt mit den Eigenschaften rotation, scaleX und scaleY definiert ist, auf das wir als Wert für unsere Eigenschaft scale zugreifen.

In Ihrem Fall möchten Sie den Ausdruck für die Eigenschaft „ Quelltext “ verwenden , sodass Ihre Datendatei etwa so aussehen könnte

var vals = {"comp1": {line1:"Doctor MCDoctorface", line2:"Surgeon"},
            "comp2": {line1:"Skinner McHackett", line2:"Butcher}…
           }

Das ist also ein Array von Arrays, bei dem jedes comp 2 Werte hat, line1 und line2. In Ihrem Ausdruck würden Sie das Array durchlaufen, bis Sie das Element des äußeren Arrays gefunden haben, dessen Name übereinstimmt, thisComp.nameund dann das entsprechende Element für Zeile 1 und 2 verwenden.

Um Ihr Rendering zu automatisieren, können Sie den integrierten Befehlszeilen-Renderer aerender (alias aerender.exe) verwenden. Mit ein wenig Shell-Scripting können Sie den gesamten Workflow automatisieren.

Und auch ein kleiner Trick: Sie können Schlüsselbilder kopieren und einfügen. Und Sie können es als Text kopieren und einfügen! Kopieren Sie einfach alle Ihre Animationsschlüsselbilder und fügen Sie sie in notepad.exe oder einen anderen Texteditor ein! Ziemlich cool? Sie können ein eigenes Skript in einer beliebigen Sprache schreiben, um Text mit der gleichen Struktur zu generieren, und auf diese Weise viele Daten in AE importieren.

Leider funktioniert dies nur mit Animations-Keyframes. Aber dieser eine Tag hat mir zu viel Zeit gespart.