Making-of: Spring

Blender ist im Bereich Open-Source in der Computergrafik ein Leuchtturm-Projekt. Einer der Gründe für den Erfolg sind die Open Movies, bei denen die Durchführung eines konkreten Projekts mit der Entwicklung der Software Hand in Hand geht. Dieses Konzept ist zurückzuführen auf die Zeit, als Blender noch eine In-House-Lösung des niederländischen Studios NeoGeo war. Damals war es ganz normal, dass Artists und Entwickler gemeinsam an einem Ort arbeiteten. Letztlich waren es die damals gemachten Erfahrungen, die dazu führten – auch nachdem Blender Open Source wurde –, weiter an Animationsprojekten zu arbeiten. Allerdings mit einem anderen Vorzeichen.
Spring ist der Hauptcharakter des gleichnamigen Films.
Spring ist der Hauptcharakter des gleichnamigen Films.

Nicht nur die Ergebnisse der Software-Entwicklung an sich, sondern auch die Filme sollten offen bleiben. Das Team um das in Amsterdam gegründete Blender Institute entwickelte sich dadurch zu einem Vorreiter bei der Nutzung von Creative-Commons-Lizenzen für Assets, die kein Code sind, und von Crowdfunding für die Finanzierung der Projekte.

13 Jahre – 12 Kurzfilme

Der erste Open Movie der Blender Foundation, „Elephants Dream“, wurde 2006 veröffentlicht. Mit „Spring“ ist 13 Jahre später der zwölfte Kurzfilm erschienen. Ein paar Dinge haben sich seitdem geändert. Aus dem Blender Institute wurde das Blender Animation Studio. Zur Finanzierung wird nicht mehr auf Crowdfunding zurückgegriffen, sondern auf die Blender Cloud, auf der die Daten aller bisherigen Open Movies, Trainingsvideos und weitere Services rund um Blender für einen monat­lichen Abobetrag zur Verfügung gestellt werden.

Blender 2.8 ist Production-Proven

Eine Sache ist aber gleich geblieben: Die Open Movies dienen weiterhin dazu, die Entwicklung von Blender zu unterstützen. Und so wie „Sintel“ den Übergang von Blender 2.49 zu Blender 2.5 begleitet hat, sollten durch „Spring“ die Entwickler von Blender 2.8 so früh wie möglich Feedback aus einer echten Animationsfilmproduktion erhalten. Geändert hat sich allerdings, dass bei „Sintel“ das Filmteam noch einen eigenen Branch von Blender bekam, während bei „Spring“ von Anfang an im richtigen Blender 2.8 gearbeitet wurde.

Das alternative Filmplakat zu Spring, dem neuesten Open Movie des Blender Animation Studios.
Das alternative Filmplakat zu Spring, dem neuesten Open Movie des Blender Animation Studios.

Für die Nutzer von Blender hat das den Vorteil, dass das Filmteam keine eigens auf sie zugeschnittenen Extras bekam, die nach dem Film nicht in den Hauptzweig fließen würden, weil sie entweder zu speziell sind oder schnell zusammengehackt wurden. Nein, bei „Spring“ musste jedes Feature, jeder Wunsch der Artists an die Entwickler Hand und Fuß haben, da das Ergebnis in die fertige Version von Blender 2.8 eingepflegt wurde. Aber auch die Entwickler mussten dadurch sauberer arbeiten. Abkürzungen in dem einen Movie-Branch unterzubringen, war diesmal nicht möglich.

2.79 auf 2.8 – der große Sprung nach vorne

Gestartet hat das Team von „Spring“ die Produktion in Blender 2.79, es wurde aber so früh wie möglich auf den Entwicklungszweig von Blender 2.8 gewechselt. Dessen Einsatz begann schon zu einem Zeitpunkt, an dem für eine Filmproduktion wichtige Elemente noch gar nicht in 2.8 verfügbar waren. Für einen kurzen Zeitraum wurde daher zweigleisig gefahren. Die Animation fand z.B. noch in Blender 2.79 statt, als Lighting und Look Dev schon in 2.8 realisiert werden konnten.

Aber auch als der gesamte Film auf Blender 2.8 portiert wurde und es kein Zurück mehr gab, war die Zeit der Entbehrungen für die Artists noch nicht vorbei. Denn eine Software im Alpha-Zustand ist nicht gerade stabil, und Blender 2.8 bildete dabei keine Ausnahme. Blender-Nutzer, die bereits im Juni letzten Jahres die ersten Früh-Versionen ausprobiert haben, können sich sicher noch daran erinnern, dass der Bug Tracker von Blender 2.8 zunächst noch für das Team von „Spring“ reserviert war. Denn die Entwickler hatten alleine mit deren Bug Reports schon genug zu tun.

Es begann 2017

Die ersten Planungen und Vorbereitungen für „Spring“ begannen schon Ende 2017, als Blender 2.8 noch nicht viel mehr als eine Idee bzw. ein Branch mit rudimentären Änderungen war. Der Wechsel auf Version 2.8 wurde erst ca. ein halbes Jahr später während des Code Quests vollzogen, bei dem eine große Zahl Entwickler über mehrere Wochen im Blender Animation Studio in Amsterdam zusammenkamen, um vor Ort gemeinsam zu programmieren und die Zukunft von Blender zu planen. Es sollte dann noch fast ein ganzes Jahr dauern, bis am 27. März die Vorpremiere gefeiert werden konnte.

Das Baby ist flügge

Und während „Spring“ inzwischen fertig ist und zunächst keine weiteren Open Movies geplant sind, geht die Entwicklung von Blender 2.8 weiter. Im Juli soll es dann so weit sein. Die letzten Hürden vor dem großen Release muss Blender allerdings ohne Unterstützung durch eine parallele Filmproduktion nehmen. Braucht es auch nicht unbedingt, denn der Bug Tracker ist seither auch für gewöhnliche Nutzer geöffnet worden, und Blender 2.8 wird bereits rund um den Globus in kommerziellen Projekten eingesetzt. Die Zeiten, als eine kleine Gruppe von Artists in Amsterdam die hauptsächlichen Feedback-Geber für die Entwickler waren, sind erst mal vorbei.

Dieses Speedpainting wurde von David Revoy am ersten Tag des Kickoff-Meetings erstellt, um sich mit dem Regisseur Andy Goralczyk abzustimmen. Bis zum fertigen Film sollte noch mehr als ein Jahr vergehen.
Dieses Speedpainting wurde von David Revoy am ersten Tag des Kickoff-Meetings erstellt, um sich mit dem Regisseur Andy Goralczyk abzustimmen. Bis zum fertigen Film sollte noch mehr als ein Jahr vergehen.

Vorbei ist es aber hoffentlich nicht mit dem Konzept der Open Movies. Denn die Entwicklung an Blender ist noch lange nicht abgeschlossen, am Horizont zeichnet sich schon Blender 3.0 ab. Vielleicht wird diese Version dann ja von einem Animationsfilm in Spielfilmlänge begleitet?

DP: Ich bin gerade auf der FMX mit Andy Goralczyk. Er ist der Regisseur von „Spring“, dem neuen Open Movie der Blender Foundation, den es morgen hier im Kino zu sehen gibt.

Andy Goralczyk: „Spring“ wurde unter anderem mit dem Ziel gemacht, dass die Blender-2.8-Entwicklung von echten Artists begleitet werden sollte, die die Software noch während ihrer Entstehung auf Herz und Nieren testen und gleich in einer echten Produktion verwenden.

DP: Bei „Spring“ habt ihr allerdings zuerst mit Blender 2.79 angefangen und im Film viel damit gemacht, bis ihr dann irgendwann gewechselt habt. Warum habt ihr nicht sofort Blender 2.8 für die Produktion benutzt?

Andy Goralczyk: Erst mal zu den Rahmenbedingungen: Wir waren gerade mit dem Agentenfilm „Agent 327 – Operation Barbershop“ fertig. Der Produzent Ton Roosendaal war dabei ziemlich darauf bedacht, einen Proof of Concept für einen Kinofilm zu produzieren. Den haben wir natürlich in 2.78 und 2.79 gemacht, was erst einmal sehr viel Zeit gekostet hat, also das ganze Unterfangen, den Animationstest zu machen.

Währenddessen gab es auch schon die Entwicklungsarbeit zu 2.8, die sich ziemlich lange hingezogen hat. Es gab immer den Gedanken, dass Blender den nächsten Schritt machen muss. Es gab einige Probleme im Workflow, weshalb 2.8 ja das Workflow-Release heißt. Blender ist nun einmal schwierig zu lernen, es gibt Tausende Gebiete, in denen Blender arbeiten kann, und für jedes einzelne muss der individuelle User seinen eigenen Workflow darauf anpassen. Das ist eine der großen Stärken von Blender.

Das Ganze lief etwas langsam ab, es gab nicht genug Leute. Es gibt eigentlich nie genug Programmierer, die meisten Leute sind für Bug-Fixes und Maintenance zuständig. Wir brauchen einfach ein größeres Funding, um Features, Support, Bug-­Fixes und das ganze Project Management zu gewährleisten. Das ist der Gedanke hinter dem Institut.
Nach dem Barbershop hat Ton gesagt, dass man 2.8 ein Stück weiterbringen muss, und eine Zeit lang geforscht, wie das am besten möglich wäre. Da wurde dann die Code-Quest-Kampagne ins Leben gerufen, in der wir eine Funding-Aktion machten und fast einen Monat versuchten, Programmierer aus der ganzen Welt, die schon aktiv am Blender-Development teilnehmen, nach Amsterdam zu holen, um das Ganze ein Stück weiterzutreiben. Das heißt, die ganzen losen Ideen, die es gab – mit Tool-System, Work Spaces, Look Development, Eevee, Wire­frames oder keine Wireframes, Left-Click, Right-Click und all das – unter einen Hut zu bringen. Das war dann letzten Endes der Startschuss, der das Ganze vorangetrieben hat.

Die zentrale Sequenz des Films als Storyboard. Man erkennt, dass im Laufe des Films noch einige Änderungen vorgenommen wurden.
Die zentrale Sequenz des Films als Storyboard. Man erkennt, dass im Laufe des Films noch einige Änderungen vorgenommen wurden.

Wir selbst haben mit „Spring“ unabhängig davon angefangen. Es gab immer den Gedanken, dass wir 2.79 benutzen und irgendwann in der Zukunft, wenn es dann so weit sein wird, den Schritt machen und alles, was wir haben, in 2.8 konvertieren. Das hat sich allerdings nicht so leicht gestaltet, da 2.8 lange Zeit nur ein Konzept war. Das waren diese ganzen Sachen von Dependency Graph, Copy on Write, diese unglaublich schwierigen Features, die wiederum andere Features ermöglichen, zum Beispiel das ganze Linking-System, Collections, Static and Dynamic Overwrites und so weiter. Das hat alles noch einmal ein Stück zurückgeworfen, denn es gab ja dann monatelang keine Modifier, keine Animationen. Alles war so rudimentär, dass man nichts damit machen konnte. Wir haben ab und an Proof of Concepts gemacht, also einen Charakter rübergeschoben, um zu sehen, wie das in Eevee aussieht, aber es hat eben ewig gedauert, bis 2.8 benutzbar wurde.

Das war der Gedanke hinter der Code Quest. Wir waren in unserem alten Office im Zentrum von Amsterdam, und dann hat die Code Quest angefangen und die ganzen Leute sind in das neue Office in Amsterdam Nord gezogen, und wir Artists – wir waren ja nur vier Leute – saßen dann dort ein bisschen zurückgelassen im leeren Büro, während der ganze neue sexy Kram im neuen Studio begann. Uns wurde dann die Bedingung gestellt, dass, wenn wir in das neue Büro zögen, was etwa einen Monat später war, als die Code Quest schon lief, wir 2.8 benutzen sollten. Letzten Endes war das wahnsinnig ehrgeizig, da es den ganzen Programmierern quasi Feuer unter dem Arsch gemacht hat. Blender war noch nicht weit genug, um zu sagen: Das ist der Rahmen an Features, die wir brauchen und die in ein 2.8-Release kommen könnten. Es gab schon Vorgaben und es gab dann neue Sachen, die während der Code Quest entwickelt wurden, neue Probleme, die dann aufkamen – wenn es ein Tool-System gibt, wo kommen die Optionen für die Tools hin, dieser ganze Interface-Kram zusätzlich zu den ganzen anderen Problemen, die mit Copy on Write und dem Dependency Graph und mit dem Asset Manager, der dann wieder ein bisschen zurückgeschraubt wurde, noch dazukamen.

Wir kamen dann also in das neue Gebäude, und man konnte schon etwas machen. Es gab ein paar Modifier, den Array Modifier, Mirror Modifier, Subsurf auch schon, aber es lief nicht wirklich alles ruckelfrei. Es war wirklich unglaublich schwierig. Wir haben dann die nächsten zwei Wochen damit verbracht, eine Art Hybrid zu starten. Die Hälfte unseres Films, zum Beispiel die Beleuchtungsarbeit, machten wir in 2.8 und die Animationsarbeit in 2.79, weil die Animation in 2.8, besonders mit den riesigen Rigs, die wir für „Spring“ hatten, wirklich sehr langsam lief. Deshalb haben wir uns entschlossen, klein anzufangen und zu sagen: Wir konvertieren unsere Felsenbibliothek, dass es unter 2.8 läuft. Wobei man nicht besonders viel konvertieren muss, aber man macht eben eine separate Datei und verändert hier und da ein paar Sachen, sodass es unter 2.8 läuft. Dann haben wir die Charaktere konvertiert, dann ein paar von den Umgebungen, und dann haben wir das quasi Proof-of-Concept-mäßig langsam ans Laufen gebracht, immer Stück für Stück weiter in 2.8, bis dann nach zwei bis drei Wochen die Animatoren endlich in 2.8 hinüberwechseln konnten.

Der süße Sidekick von Spring ist ein Hund namens Autumn, hier zu sehen in einem frühen Testrender.
Der süße Sidekick von Spring ist ein Hund namens Autumn, hier zu sehen in einem frühen Testrender.

DP: Einmal in 2.8 gab es wahrscheinlich kein Zurück mehr?

Andy Goralczyk: Ja, das ging nicht mehr (lacht).

DP: Von den Datenstrukturen her kann man es wahrscheinlich auch nicht mehr zurückladen?

Andy Goralczyk: Du kannst immer noch Sachen appenden oder so was, das war kein Problem. Wir haben schon noch eine Zeit lang hin und her geschoben, zum Beispiel einige Sachen für Julien, der ja dann die ganzen Umgebungen und Hintergrundcharaktere, also die Alpha-Kreaturen gemacht hat. Die hat er dann teilweise noch in 2.79 gesculptet, weil die Sculpting-Tools ein bisschen hinterher hinkten, Multi Resolution hat nicht funktioniert, es gab nur Dynamic Toplogy und es gab einen Haufen Dinge, die nicht richtig gearbeitet haben. Natürlich müssen die Sachen zum Laufen gebracht werden, aber es ist halt eine Frage der Prioritätensetzung. Wenn man nur eine begrenzte Menge an Leuten hat, die dazu in der Lage sind, dann kann man natürlich nicht alles auf einmal machen.

DP: Ihr hattet in dem Fall mehr Entwickler als Artists in dem Gebäude?

Andy Goralczyk: Während der Code Quest ja. Man muss dazu sagen, dass die Entwickler bei uns hauptsächlich an Blender selbst und nicht an filmbezogenen Features arbeiten. Das heißt, hin und wieder bekommen wir einen oder zwei, da machen vielleicht Sergej oder Brecht etwas für uns, aber es ist natürlich so, dass die Programmierer komplett für Blender da sind und an Maintenance arbeiten. Wir müssen uns teilweise hinten anstellen. Das ist ein riesen Unterfangen und natürlich auch für einen guten Zweck und nicht nur für uns.

DP: Gab es irgendwann den Punkt, an dem ihr Blender 2.79 noch einmal geöffnet habt und euch gedacht habt: „Oh, ich bin in der Steinzeit!“?

Andy Goralczyk: Auch, ja. Eigentlich von dem Punkt an, als 2.8 dann richtig lief. Ich persönlich habe mich relativ schnell umgewöhnen können. Ich bin mir nicht sicher warum, die Animatoren haben bis heute noch ein bisschen Probleme, was aber natürlich daran liegt, dass das Tool Set für Animatoren ein anderes ist als für Environment und Beleuchtung, für Texturieren und Sculpting oder Ähnliches. Es gibt eben weniger Modelle dafür, wie so etwas funktionieren kann. Die ganze Arbeit, die ich gemacht habe, wie Beleuchten und Shots zusammenstellen, hat sich durch 2.8 unglaublich leicht gestaltet, weil es Collections gibt. Du hast die Möglichkeit, unendlich viele Layer zu machen und Sachen, die du dort hineinschmeißen und benennen kannst. Du hast eine unglaublich saubere Struktur, die du deinen Dateien geben kannst. Dadurch wird alles sehr viel übersichtlicher, allerdings werden die Dateien auch sehr viel komplizierter. Wir hatten am Anfang riesige Probleme mit viel zu großen Dateien, unsere Aufnahmen sind um die 200 Mbyte groß, während sie vorher bei 60 lagen. Mittlerweile gehen sie wieder zurück auf 60 oder 80 Mbyte. Was es uns aber ermöglicht hat, ist eine viel größere Komplexität auch hinsichtlich des Linkens von Assets. Wir mussten quasi ein bisschen einen neuen Workflow drum herum entwickeln. Vorher hattest du Groups, die konntest du in eine andere Datei verlinken. Jetzt funktionieren Collections ungefähr so wie Groups. Sie ersetzen sie eigentlich, du kannst sie in eine Datei verlinken, du kannst sie instanziieren, du kannst sie auch direkt verlinken, dann hast du eine Datei, die halb aus lokalen Assets und aus gelinkten Sachen besteht.

Die Alpha-Kreatur ist sozusagen der Dritte im Bunde. Im Film ist sie allerdings an keiner Stelle in ihrer vollen Pracht zu sehen, sondern immer von Wolken verdeckt.
Die Alpha-Kreatur ist sozusagen der Dritte im Bunde. Im Film ist sie allerdings an keiner Stelle in ihrer vollen Pracht zu sehen, sondern immer von Wolken verdeckt.

DP: Wie managst du das alles?

Andy Goralczyk: Das ist noch ein bisschen haarig und führt natürlich auch zu vielen Problemen. Aber seitdem das alles angefangen hat, wollte ich eigentlich nie mehr zurück. Mit dem ganzen Viewport sieht natürlich alles sehr schick aus, manchmal ein bisschen zu schick und ein bisschen zu langsam. Es erfordert eine gewisse Eingewöhnung, aber letzten Endes wirkt alles sehr viel sauberer und sehr viel übersichtlicher, und das ist gut.

DP: Apropos langsamer: Es gibt ja in Blender 2.8 die neue Engine Eevee, die relativ fix ist. Warum habt ihr euch für Cycles und nicht für Eevee entschieden, nachdem der Film die Entwicklung von Blender 2.8 begleiten sollte?

Andy Goralczyk: Das ist auf Youtube unsere Hauptfrage: Cycles oder Eevee? Man muss es so sagen: Der Film wurde mit dem Gedanken gemacht, ihn in 2.8 zu machen, aber es gibt natürlich viele Arten, Filme zu machen. Du kannst einen Realtime-Film machen – der Film hat sich in Bezug auf die Story und die Umgebung, den Look, den wir haben wollten, besser für Cycles geeignet als für Eevee. Es ist möglich, einige Sachen davon in Eevee zu machen. Wir haben Eevee viel benutzt, auch für das Visualisieren von zum Beispiel Smoke-Simulation ist es unglaublich hilfreich, weil du natürlich nicht alles pathtracen musst. Du hast ein gutes Preview, wenn du es einfach in Eevee reinschmeißt und dann ein OpenGL-Viewport-Playblast renderst. Ich würde sagen, auch wenn es hilfreich ist, die Sachen nahe am fertig gerenderten Bild zu sehen, sind Echtzeit-Engines immer noch ein Stück hinterher, was zum Beispiel den Schattenwurf angeht oder die Reflexionen. Wir hatten damals mit „Big Bug Bunny“ einen Scanline Render Blender Internal, und die ganzen Lampen waren Shadow Buffers. Ähnlich wie in Eevee, nur dass Eevee Echtzeit ist. Wir hatten dabei die ganze Zeit unglaubliche Probleme mit Shadow Buffers. Sobald du Sachen cheatest, hast du wieder mehr Aufwand, und den wollten wir in dem Fall nicht betreiben. Wir wollten realistische Beleuchtung, realistischen Rauch, eine Umgebung, die sich echt anfühlt. Natürlich kann man das in Eevee erreichen, aber du hast dann immer wieder Probleme – hier stimmt das Antialiasing nicht richtig, hier stimmt die Unschärfe nicht richtig, die Separierung funktioniert aufgrund der Echtzeit-Technologie nicht richtig und so weiter.

Ein Beispiel für eine Asset-Datei, wie sie von der Blender Cloud geladen werden kann. Die Pflanzen sind mit Rigs versehen, über die man sie im wahrsten Sinne des Wortes erblühen lassen kann. Und solange man darauf hinweist, dass die Assets aus dem Film „Spring“ sind (das kann z.B. im Abspann geschehen), darf man sie auch kommerziell einsetzen.
Ein Beispiel für eine Asset-Datei, wie sie von der Blender Cloud geladen werden kann. Die Pflanzen sind mit Rigs versehen, über die man sie im wahrsten Sinne des Wortes erblühen lassen kann. Und solange man darauf hinweist, dass die Assets aus dem Film „Spring“ sind (das kann z.B. im Abspann geschehen), darf man sie auch kommerziell einsetzen.

DP: Ist vielleicht doch ein Open Movie geplant, das Eevee einsetzt?

Andy Goralczyk: Es ist generell noch kein Open Movie in naher Zukunft geplant. Es wäre möglich, dass wir in Eevee arbeiten. Wir haben Eevee die ganze Zeit über benutzt, zum Texturieren, zum Previewen, und teilweise wurden Passes vom Film sogar in
Eevee gerendert. Wolkenteile wurden einfach reincompositet, die waren eins zu eins in Eevee und sogar Workbench-gerendert. Ich hätte durchaus Lust, ein Open Movie mit Eevee zu machen. Das ist eine coole neue Technologie.

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.