Plex – Open-Source-Pipeline für VFX

Rückblick: In der DP 03 : 2018 stellte unser Autor Alexander Richter fest: Pipelines für Filmprojekte gibt es unzählige. Aber wie wird ein Projekt letztlich aufgebaut und ausgeführt?

Dieser Artikel erschien ursprünglich in der DP 03 : 2018.

Pipelines für Filmprojekte sind überall – Pipelines für den Nutzer und Artist sind nirgendwo. Faktisch besitzt jedes Projekt eine Pipeline, die den Ablauf organisiert und die Teamarbeit strukturiert. Umso erschreckender ist der Mangel an praktischen und zugänglichen Informationen: Wie wird ein Projekt aufgebaut und ausgeführt? Ein Grund dafür ist, dass das Thema individuell umrissen werden kann. Jeder kann etwas anderes meinen, wenn er das Wort Pipeline verwendet. Gleichzeitig scheint jedes Projekt zu individuell und der lokale Vorteil zu groß zu sein, um eine Veröffentlichung zu erstreben.

Im Ergebnis sind alle Projekte in ihrem Wesen gleich: Ein Projekt wird von einem Team verwaltet und hat das Ziel eines Produkts (Film, Spiel). Damit stehen die Kommunikation und die Erfüllung der Aufgaben im Vordergrund. Da Projekte von Menschen entwickelt werden, passt keines in eine Schablone. Selbst wenn ein Team faktisch dasselbe VFX-Projekt umsetzt, entscheidet deren Zusammenarbeit darüber, welche Software, Struktur und Hierarchie am besten für die Erfüllung geeignet ist. Standards helfen, Projekte objektiv abzuhandeln, trotzdem muss das Verfahren an das jeweilige Team angepasst werden. An dieser Stelle kommt die Open-Source-Pipeline Plex ins Spiel, die im Rahmen des Technical-Director-Kurses der Filmakademie Baden-Württemberg entwickelt wurde. Plex ist eine Animations-, VFX- und Spielepipeline, die die wichtigsten Vorgänge einer Produktion verwaltet. Ihr Kern ist ein flexibles und unabhängiges System für kleine und mittelgroße Projekte und Firmen. Zu ihren Hauptaufgaben zählen die Verwaltung von Ordnerstrukturen und die Setzung und Einhaltung von Datenflüssen für ein kollaboratives Arbeiten. Das System wurde ursprünglich für den VFX-Kurzfilm „Breaking Point“ entwickelt (VES Award 2017 für „Outstanding Visual Effects in a Student Project“). Plex kann als Framework modular mit weiteren Softwarepaketen, Plug-ins und Skripten bequem erweitert werden. Gleichzeitig ist es möglich, mehrere Pipeline-Ebenen übereinanderzuschichten, um z.B. als Fundament eine Firmen-Pipeline zu haben, sie teilweise im Projekt zu überschreiben/ergänzen und individuell neue Elemente auszutesten, ohne die Updates der anderen Ebenen zu vermissen. Den Kern des Systems bilden haupt- sächlich die Skript-Sprache Python und die UI-Bibliothek PySide, welche eine Schnitt- stelle für die meisten DCC-Pakete (Maya, Nuke, Houdini, 3ds Max etc.) bilden. Python erlaubt eine projekt- und nutzer- zentrierte Manipulation der Arbeitsumgebung, um damit eine persönliche und angepasste Arbeitsweise zu ermöglichen. Kurz gesagt: Die Software kann damit auf die eigenen Bedürfnisse umgestellt und erweitert werden. Des Weiteren zeichnet sich die Skript-Sprache besonders durch ihre Simplizität und Zugänglichkeit aus.

Multiple Skriptebenen erlauben ein flexibles Arbeiten/Überschreiben/Ergänzen.
Logging legt für jeden Nutzer eine .log-Datei an, die die Vorgänge und möglichen Missstände bei der Aus- führung der Pipeline dokumentiert und vor allem für das Debugging und die Fehlerbehebung eine Historie liefert. Sollte es wieder heißen: „Hab’ nur auf Speichern geklickt …“
Maya Shelf
Configs erlauben eine einfache Integration von Umgebungsvariab- len, die eine wichtige Schnittstelle vieler Softwarepakete bilden.

Dokumentation

Überflutet von Informationen im Informationszeitalter ist es im Ergebnis enorm schwierig, eine umfassende Dokumentation über die Organisation von Film- /Spieleprojekten zu finden. Im Herzen von Plex geht es um empirische Projektstandards, die für den Nutzer nachvollziehbar sind und sich optimal mit ergänzenden Skripten verzahnen lassen. Im Artikel zu Pipelines für Animations- und VFX-Produktionen (siehe DP 02:16, zum kostenlosen Download auf www.digitalpro- duction.com) hatten wir uns die Wichtigkeit von Ordnerstrukturen, Software-Pipelines und Namenskonventionen für die Projektkommunikation angeschaut. Vorlagen zur Produktionsvisualisierung und Hintergründe zu bestimmten Verhaltensmustern runden das Erläuterungsbild ab.

Skript-Pipeline

Die Skript-Pipeline ist der Teil, an den die meisten denken, wenn sie das Wort Pipeline hören. Sie umfasst eine Bibliothek von Skripten und Apps, die den Arbeitsalltag innerhalb und außerhalb der DCCs vereinfachen und regulieren. Dabei werden organisatorische Verfahren automatisiert, um die Zeit für die produktive und kreative Arbeit freizugeben. Über Menüs, Shelfs und Toolbars sind die Apps für den Artist verfügbar und individuell für das jeweilige Projekt anpassbar.

Alltagsbeispiel

Über die Desktop-App wird eine Maya-Instanz gestartet. Die Software öffnet sich mit den Projektsettings samt ergänzenden Skripten und Plug-ins. Der Artist beginnt einen neuen Shot, baut die ersten geometrischen Objekte und referenziert bestehende in die Szene. Nach einer Wei- le wird arSaveAs ausgeführt, der Shotname (s010_intro) eingetragen, der Task (GEO) ausgewählt und bestätigt. arSaveAs erstellt den jeweiligen Pfad samt aller notwendigen Tasks und speichert die Datei (s010_intro_ GEO_v001_ar.mb) pipelinekonform ab. Nach ein paar weiteren Änderungen wird arSave gestartet, ein kurzer Kommentar („first set blocking“) notiert und samt Screenshot als hochversionierte Szene (s010_intro_GEO_v002_ar.mb) gespeichert. Nachdem die erste Fassung bereit zur Verteilung ist, wird erneut arSave ausgeführt, dieses Mal „Publish“ angehakt und veröffentlicht. Nun kann sich der Kollege die neueste Publish-Version ins Lighting referenzieren und bis zum nächsten Update das erste Licht-Setup erstellen.

Kurz nach dem Publishen bekommen wir eine E-Mail, in der wir gebeten werden, uns einen anderen Shot anzuschauen, wo etwas mit der Geometrie nicht stimmt. Wir öffnen arLoad, wählen den passenden Shot aus, schauen auf den jeweiligen Kommentar („building is broken“) und öffnen darüber eine neue Maya-Instanz. Nachdem das erste Licht gerendert ist, werden die Passes in Nuke überprüft und der aktuelle Stand mit arWrite und einem Overlay für das Review rausgerendert.

Development

Die Modalität und Python-Fokussierung von Plex erlaubt eine vergleichsweise einfache Erweiterbarkeit des Systems mit eigenen oder fremden Skripten, Plug-ins und Softwarepaketen. Eigene Skripte können einfach in das Skriptverzeichnis kopiert werden und sind direkt in der Software aufrufbar. Plug-ins benötigen zumeist eine zusätzliche Setzung von Umgebungsvariablen in den Konfigurationsdateien. Gleichermaßen kann jede weitere Software, die eine Python-Anbindung besitzt (z.B. Blender, Mari und viele andere) problemlos in den Softwarepool aufgenommen werden.

Plex ist vor allem ein Framework, welches ein Gerüst bildet und sich optimal erweitern lässt. Dabei liegen die Hauptelemente in der Vorlagen gebenden Bibliothek, die eine Viel- zahl von Funktionen vordefiniert. Vor allem Apps wie arUtil sorgen für einer Konsistenz im Aussehen und einer Zentralisierung von wieder aufkommenden Funktionen und deren Wiederverwendung. Damit bildet sie eine Vorlage für bestehende und kommende Skripte und kann jederzeit übergreifend angepasst werden.

Ein weiterer Punkt sind die zentralisierten Konfigurationsdateien, die Skripte flexibel an das jeweilige Projekt anpassbar machen durch das einfache Auswechseln von Pfaden, Auflösungen etc.

Vor allem erlauben sie individuelle Einstellungen für Einzelpersonen, was insbesondere die Flexibilität für Ausnahmesituationen und ein einfaches Debugging für den Entwickler ermöglicht. In der Pro-Software wird eine andere Funktion zum Speichern der Szene ausgeführt, während die restliche Informationsverarbeitung im Skript softwareunabhängig erfolgt. Speicher- und Ladeskripte von Dateien sind in ihrer Essenz projekt- und software- unabhängig. So kann in praktisch allen Softwarepaketen dasselbe Skript mit derselben UI benutzt werden. Das schafft visuelle Einheitlichkeit und erleichtert die Wart- und Erweiterbarkeit enorm.

Nutzung

Plex wurde unter der MIT-Lizenz veröffentlicht, welche jedem Anwender erlaubt, sie kommerziell zu verändern, zu vertreiben und zu nutzen. Das System versucht sich nicht auf die gleiche Stufe wie Shotgun oder fTrack zu stellen, sondern eine vollwertige, erweiterbare Struktur anzubieten, welche frei verfügbar ist und die Basis Ihres nächsten Projekts sein könnte. Zum Nutzen einfach Python 2.7 installieren, Plex herunterladen, unter exe/windows die jeweilige Maya/Nuke/Max/ Houdini.bat ausführen und los geht’s.

Fazit

Open Source nimmt mehr und mehr einen eigenen Block in unserem Alltag ein. Der freie Zugang zu Software und Informationen wird immer wichtiger für viele Menschen und Firmen, weil er nicht nur Einsparungen bedeutet, sondern auch eine passionierte Community dahinter haben kann, die den Austausch von Erkenntnissen fördert. Plex ist ein Teil davon: Ziel ist es, die bestehenden Lücken zu füllen und Projekten die Chance zu geben, auf Industriestandard zu arbeiten, ohne den langjährigen Prozess der Entwicklung und Informationsforschung zu gehen. Nutzen, verändern, teilen oder bauen Sie Ihre eigene Pipeline, die Hauptsache ist, Sie sehen sich selbst als Teil eines Teams, in dem man gewinnt, wenn man teilt. Und unter vimeo.com/richteralexander/plex finden Sie reichhaltiges Videomaterial zum Live-Betrachten – mit den Kapiteln Quick Start, Add Plugins, New Project sowie Development Tipps und Konfigurationen.

Kommentar schreiben

Please enter your comment!
Please enter your name here

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.