Neueste Meldungen
Houdini Solaris und USD: Leitfaden für geschichtete Architektur-SzenenArchitektur-Renderings mit Blender 5.2 LTS über die Kommandozeile erstellenOrthografische Architekturvisualisierung in Unreal Engine 5.3 testenFrank Lloyd Wrights einziges gebautes Planetarium restauriert eröffnetLeitfaden: Render-Callbacks im Unreal Engine Movie Render Graph einrichtenProjektphasen in Revit: Ansichten für Umbau und Abriss organisierenLeitfaden zu Belichtung und Schärfentiefe für Innenraumvisualisierungen in Unreal EngineRichtig bemaßen in LayOut: Schritt-für-Schritt-Anleitung für ArchitekturpläneMuse Spark Open vorgestellt: multimodales Modell mit 816 Milliarden ParameternArchitekturvisualisierungen mit FLUX und Diffusers: Leitfaden zu Kontrolle und Geschwindigkeit
Tipps & AnleitungenUnreal EngineMovie Render Graph

Leitfaden: Render-Callbacks im Unreal Engine Movie Render Graph einrichten

Das Movie Render Graph-System in Unreal Engine 5.4 kann Python-Callbacks vor und nach einem Renderjob oder jedem einzelnen Shot ausführen. Dieser Leitfaden erklärt die Einrichtung mit dem Execute Script Node und worauf Sie achten sollten.

Moderner, lichtdurchfluteter Innenraum und Schreibtisch, der an Render-Setups erinnertKI-Bild
Symbolbild, mit KI erzeugt.Bild: 3dsınıfı / FCA AI

Kurz gesagt

  1. Movie Render Graph-Callbacks können benutzerdefinierte Logik vor und nach dem Start und Abschluss eines Renderjobs oder Shots ausführen.
  2. Die Callback-Klasse wird von MovieGraphScriptBase abgeleitet; die entsprechenden Funktionen werden überschrieben.
  3. Für shotbasierte Callbacks lässt sich die Option Flush Disk Writes Per Shot im Global Output Settings Node aktivieren.
  4. Damit die Callback-Klasse bei jedem Start des Unreal Editors verfügbar ist, kann die entsprechende Python-Klasse aus einer init_unreal.py-Datei importiert werden.

Movie Render Graph (MRG) in Unreal Engine 5.4 bietet ein Callback-System, mit dem sich zusätzliche Schritte vor und nach Renderjobs ausführen lassen. Laut der offiziellen Dokumentation von Epic Games werden diese über den Execute Script Node eingerichtet, der dem Graph hinzugefügt wird. Dieser Leitfaden behandelt die grundlegende Einrichtung für Teams, die beim Renderstart Vorbereitungen treffen, nach Abschluss eines Jobs Ausgabedaten prüfen oder Abläufe pro Shot ausführen möchten.

Wann sind Callbacks nützlich?

Ein Callback ist benutzerdefinierter Code, der an einer bestimmten Stelle im Renderablauf ausgeführt wird. Für den Start und das Ende eines Jobs gibt es Job-Callbacks; für den Beginn und Abschluss jedes einzelnen Shots können Shot-Callbacks verwendet werden. So lassen sich beispielsweise nach Abschluss eines Jobs die Ausgabedaten prüfen oder nach einem Shot die zugehörigen Dateipfade verarbeiten.

Mit dem Execute Script Node in MRG können Callbacks in die Graph-Konfiguration eingebunden werden. Die Callback-Klasse wird von MovieGraphScriptBase aus der Python-API von Unreal abgeleitet. Die entsprechenden Funktionen werden mit @unreal.ufunction(override=True) überschrieben. Nach der Registrierung lässt sich eine Callback-Klasse über das Auswahlmenü im Execute Script Node verwenden.

1. Movie Render Queue-Plugin und Graph einrichten

Aktivieren Sie zunächst im Unreal Editor unter Edit > Plugins im Bereich Rendering das Movie Render Queue-Plugin und starten Sie den Editor neu. Im Projekt muss eine Level Sequence zum Rendern vorhanden sein.

Movie Render Graph ist über die Movie Render Queue erreichbar. Der Ablauf in Epics Dokumentation sieht folgendermaßen aus:

  1. Öffnen Sie das Fenster der Movie Render Queue über Window > Cinematics > Movie Render Queue.

  2. Klicken Sie auf die Schaltfläche zum Rendern und wählen Sie die betreffende Level Sequence aus.

  3. Öffnen Sie im Menü Unsaved Config der Spalte Settings die Option Movie Render Graph (Beta).

  4. Erstellen Sie über Create New Asset einen Movie Render Graph, benennen Sie ihn und speichern Sie ihn.

  5. Öffnen Sie die erstellte Graph-Konfiguration über die Spalte Settings und bearbeiten Sie sie.

Im bestehenden Workflow können Movie Render Queue (MRQ) und Movie Render Graph gemeinsam eingesetzt werden. MRQ bietet eine Oberfläche zum Einreihen von Jobs und für Batch-Renderings, während MRG Renderabläufe über einen knotenbasierten Graph konfiguriert.

2. Python-Callback-Klasse erstellen

Das folgende Beispiel zeigt Callbacks für den Start und den Abschluss eines Jobs. on_job_finished wird ausgeführt, wenn der Renderjob abgeschlossen ist; der Callback kann sowohl bei erfolgreichem Abschluss als auch im Abbruchfall verwendet werden. Über das Attribut success in den Ergebnisdaten lässt sich prüfen, ob der Job erfolgreich war.

python
import unreal

@unreal.uclass()
class CallbackOverrides(unreal.MovieGraphScriptBase):
    @unreal.ufunction(override=True)
    def on_job_start(self, in_job_copy):
        super().on_job_start(in_job_copy)
        unreal.log("Render işi başlıyor")

    @unreal.ufunction(override=True)
    def on_job_finished(self, in_job_copy, in_output_data):
        super().on_job_finished(in_job_copy, in_output_data)
        unreal.log("Render işi tamamlandı veya iptal edildi")

In diesem Beispiel wird beim Start und Abschluss des Jobs ein Logeintrag erstellt. Bevor Sie eigene Logik hinzufügen, sollten Sie klären, in welcher Phase der Callback ausgeführt wird und welche Daten er erhält. Job- und Graph-Konfigurationen werden dem Callback als Kopien übergeben. Änderungen im Callback wirken sich daher nicht direkt auf das ursprüngliche Asset in der Warteschlange aus.

Damit die Klasse im Menü des Execute Script Node angezeigt wird, muss sie registriert werden. Im Beispiel von Epic wird die Klasse für die aktuelle Sitzung registriert. Wenn sie bei jedem Start verfügbar sein soll, können Sie die Klasse aus einer der Dateien unter /Content/Python/init_unreal.py importieren. Dadurch wird sie beim Start des Editors geladen.

3. Zwischen Job- und Shot-Callbacks wählen

on_job_start wird beim Start eines einzelnen Renderjobs ausgeführt; on_job_finished läuft am Ende des Jobs. Enthält eine Level Sequence mehrere Shots, können on_shot_start und on_shot_finished jeweils für jeden Shot verwendet werden. Der Shot-Start-Callback wird ausgeführt, bevor der Shot eingerichtet wird. Der Shot-Abschluss-Callback erhält die Ausgabedaten des betreffenden Shots.

Shot-Callbacks lassen sich auf zwei Arten aktivieren: Aktivieren Sie im Global Output Settings Node des Graphen die Option Flush Disk Writes Per Shot oder überschreiben Sie in der Klasse die Funktion is_per_shot_callback_needed, sodass sie True zurückgibt. Aktivieren Sie diese Option nicht unüberlegt: Epic weist darauf hin, dass sie die Renderzeit verlängern kann, da auf das Schreiben der Dateien auf die Festplatte gewartet wird.

Was bringt das für Architektur- und Archviz-Workflows?

Visualisierungsteams, die mehrere Einstellungen oder Szenen in eine Warteschlange stellen, können wiederkehrende Abläufe mithilfe von Job- und Shot-Callbacks in den Renderprozess einbinden. Der Zugriff auf Ausgabedaten und Dateipfade nach Abschluss eines Jobs schafft beispielsweise eine Grundlage dafür, die von einzelnen Shots erzeugten Dateien an einen nachfolgenden Verarbeitungsschritt weiterzugeben. Die Dokumentation beschreibt jedoch weder einen bestimmten Dateibenennungsstandard noch eine fertige Archviz-Automatisierung; diese Logik muss projektspezifisch entwickelt werden.

Wenn eine Integration mit einer Renderfarm oder einem anderen Prozess vorgesehen ist, sind auch die Optionen für lokales Rendering und Rendering in einem separaten Prozess in MRQ relevant. Für das Rendering in einem separaten Prozess müssen die Projektänderungen gespeichert sein. Testen Sie die Callbacks mit einem kleinen Job, bevor Sie die tatsächlichen Abgabeeinstellungen verwenden. Prüfen Sie insbesondere, wie sich die Option zum Schreiben der Dateien pro Shot auf die Renderzeit auswirkt und ob die Klasse beim Start des Editors geladen wird.

Häufige Fehler

  • Nach der Aktivierung des Movie Render Queue-Plugins vergessen, den Editor neu zu starten.

  • Davon ausgehen, dass Shot-Callbacks automatisch ausgeführt werden; die Voraussetzung für das Schreiben pro Shot muss separat aktiviert werden.

  • Den Abschluss eines Jobs ausschließlich als erfolgreiches Rendering interpretieren. Der Callback kann auch im Abbruchfall aufgerufen werden; prüfen Sie den Erfolgsstatus.

  • Annehmen, dass Änderungen an der kopierten Job- oder Graph-Konfiguration im Callback das ursprüngliche Asset in der Warteschlange aktualisieren.

  • Übersehen, dass das Warten auf das Schreiben der Dateien nach jedem Shot die Renderzeit verlängern kann.

Quellen

2 Quellen
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/movie-render-pipeline-in-unreal-engine
Zusammenfassung
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/running-pre-and-post-render-callback-mrg-scripts-in-unreal-engine
Zusammenfassung

Quelltexte werden nicht neu veröffentlicht; kurze Zitate sind gekennzeichnet, der Rest ist eigene Zusammenfassung und Einordnung.

Die Einschätzung von 3dsınıfı
3dEinschätzung der Redaktion

Für Architektur- und Visualisierungsbüros in der Türkei liegt der eigentliche Nutzen von Callbacks im Potenzial, wiederkehrende Prüfungen nach dem Rendern oder shotbasierte Abläufe in einen strukturierteren Workflow einzubinden. Gerade bei Präsentationen mit vielen Shots bietet der Zugriff auf Jobdaten und Dateipfade einen nützlichen Ausgangspunkt für die Entwicklung eigener Automatisierungen.

Diese Funktion ist jedoch keine fertige Renderfarm-Lösung für sich; die Python-Klasse muss eingerichtet und passend zur Projektstruktur getestet werden. Das Warten auf das Schreiben der Dateien pro Shot kann sich auf die Renderzeit auswirken. Büros sollten die Callbacks vor der Abgabe mit einem kleinen Job prüfen und bei der Verwendung des Renderings in einem separaten Prozess daran denken, die Projektänderungen zu speichern.

Häufige Fragen

Wofür sind Movie Render Graph-Callbacks gedacht?

Sie führen benutzerdefinierten Code vor und nach dem Start oder Abschluss eines Renderjobs beziehungsweise Shots aus. Job- und Shot-Callbacks lassen sich über den Execute Script Node im Graph konfigurieren.

Wie aktiviert man Shot-Callbacks in Unreal Engine?

Aktivieren Sie die Option `Flush Disk Writes Per Shot` im Global Output Settings Node. Alternativ können Sie in der Callback-Klasse die Funktion `is_per_shot_callback_needed` überschreiben und `True` zurückgeben.

Wie lässt sich die Callback-Klasse bei jedem Start des Editors verfügbar machen?

Die Klasse kann aus einer der Dateien unter `/Content/Python/init_unreal.py` importiert werden. So wird sie beim Start des Editors geladen.

Kommentare und Forum sind auf Türkisch.Mitdiskutieren
+

Verwandte Meldungen