Durchhaltevermögen

Heute kann ich ein neues Kapitel von unserer Amerikareise im Sommer 2005 präsentieren. Diese Videodokumentation ist das mit Abstand längste Projekt, in dem ich bisher gearbeitet habe. Schon im Herbst nach der Reise haben wir mit dem Videoschnitt angefangen. Seit dem ist viel passiert. Präsidenten wurden abgewählt. Diktaturen gestürzt. Neue Technologien wurden entwickelt. Smartphones, High Definition, 3D. Ja auch was mein Leben betrifft waren die letzten 5 Jahre sehr ereignisreich (und das ist auch gut so). Hier ist also die 3. Folge von One Way Trip to Hell and Back, in glorious SDTV:

Diese Folge ist in einem Zeitraum von 28 Monaten entstanden. Mir ist da viel dazwischen gekommen, denn an Arbeitszeit stecken nur 40 Stunden drin 😀 Begonnen haben wir im Februar 2010 mit den Aufnahmen der Sprecherstimmen und Sichtung des Videomaterials. Danach war ich ein halbes Jahr in Frankfurt, dann das 7. Semester Hagenberg. AnimationMentor ab März letzten Jahres. Aber im August hab ich dann endlich weiter geschnitten! Der letzte Motivationsschub kam diesen März und sollte andauern: Pünktlich zum 50er meines Vaters wurde diese heiß erwartete Folge fertig!

Development Hell vom feinsten also. Mit so vielen Altlasten, eigenen Erwartungen und dem riesigen Umfang des Projekts zurecht zu kommen, war nicht einfach. Trotz allem ist mir One Way Trip to Hell and Back sehr wichtig. Diese spannende Reise bietet immer noch Stoff um Geschichten zu erzählen. Es war ein echtes Abenteuer! Durch die Arbeit an der Dokumentation habe ich wahnsinnig viel über Film, Schnitt, Kamera, Ton und Animation gelernt. Die Qualität hat sich immer weiter gesteigert und gerade das Intro hat mich zu Vorstellungsgesprächen an FHs und Firmen gebracht. Es hat sicher einen Teil dazu beigetragen, dass ich schließlich den Weg zur Spezialisierung auf Character Animation gehen würde.

Trotzdem, warum nach so langer Zeit noch weitermachen? Ist doch trotzdem irre, oder? Naja, ausschlaggebend ist für mich dann immer, ob außer mir noch irgendwer daran interessiert ist 😉 Tatsächlich wurde immer wieder nach einer Fortsetzung gefragt. Es gibt sogar eine Statistik, die wachsendes Interesse belegt…

Als ich mich also dieses Jahr wieder an die Arbeit machte, gab es einige Schwierigkeiten. Natürlich hatte ich schon lange nicht mehr Premiere Pro, After Effects und Illustrator in der Version CS3 installiert. Das Premiere-Projekte konnte upgegradet werden, aber in After Effects wurde es zur aufwändigen Restaurierungsarbeit, die 3D Szene der Straßenkarte richtig angezeigt zu bekommen. Die verschiedenen Illustrator-Vektor-Ebenen waren verschoben etc. Ich hab zur besseren Übersichtlichkeit die großen Projektdateien ausgemistet, damit nur mehr die Sequenzen für die 3. Folge übrig waren. Hat zum Schluss dann wieder alles funktioniert.

Kopfschmerzen bereitet mir nur mehr das Intro selbst, das Abhängigkeiten zu vielen Illustrator-Files und Plugins besitzt. Für jede Folge hat das Intro einen neuen Schluss mit der bisherigen Route bekommen, das heißt spätestens für die 4. Folge muss ich da wieder eintauchen. Aber da es ein Publikumsfavorit ist, tu ich das gerne. Kleines technisches Detail: Die Animationen der Straßenkarten, Location-Namen etc. laufen jetzt 2 Mal so flüssig wie bisher, zumindest wenn man die Folge auf DVD schaut. Dort werden nämlich die Halbbilder genutzt.

Ich war mir lange Zeit nicht sicher, ob mir Videoschnitt noch Spaß machen würde. Es war ein typischer Fall von “lang nicht gemacht, ist deshalb sicher mühsam”. Im Gegenteil! Ich bin wieder auf den Geschmack gekommen, vor allem war jetzt die Lust zum Experimentieren da… Ich sehe hier Parallelen zum Aktzeichnen, wo auch schon ein Motiv vorhanden ist und man sehr frei arbeiten kann! Es gibt nicht die große Hemmschwelle, etwas aus dem Nichts zu erschaffen.

Es soll also bald weitergehen mit der nächsten Folge. Ich möchte jetzt kein Zeitfenster ausplaudern, dass ich dann erst recht nicht einhalte, aber ich weiß genau, dass ich jetzt die Eigendynamik weiter nutzen kann. Das ist auf jeden Fall leichter, als nach einer Pause wieder ganz neu anzufangen.

Applets coden, das macht Spaß

Als kleines Nebenprojekt hab ich jetzt 2 Wochen damit verbracht, ein Java Game in ein Applet zu verwandeln, damit es im Browser spielbar ist. Hier meine Erfahrungen…

Ausgangslage

The Legend of Ethos ist ein 2D RPG, entstanden im 3. Semester Medientechnik und -design an der FH Hagenberg. Projektleiter war mein Bruder Peter, der mit 3 Studienkollegen ein sehr ambitioniertes Konzept umgesetzt hat. Das Spiel erinnert mit seiner Top-Down Ansicht einer Tile-basierten Welt und den Monster-Kämpfen an die alten Pokémon-Spiele. Das Team hat es geschafft, eine spielbare Kampagnie mit mehreren Quests zu erschaffen, welche in ca. 1 Stunde durchgespielt werden kann. Das ein Game in einem Semester so weit kommt, sieht man selten!

Ethos stand seit der Fertigstellung zum Download bereit, das kam mir jedoch zu umständlich vor. Als Fan wollte ich es gerne einfach im Browser spielen! Also beschloss ich, ein Applet draus zu machen.

Spaß mit JARs

Okay. Game Engine upgedated auf die neueste Golden T. Jetzt den Source Code und die Assets in JARs verpacken, was im Grunde ZIP-Dateien sind. Was wiederum bedeutet, dass sich alle Pfade ändern und alle Referenzen im Code auf ein Bild oder ein Sound geändert werden müssen. Leider gab es noch keine Funktion, die alle Assets beim Spielstart ladet und den anderen Klassen zur Verfügung stellt. Die meiste Zeit war ich also damit beschäftigt, eine solche Funktion zu erstellen und alle Datei-Anfragen umzustellen.

Was mir sehr viel Kopfzerbrechen bereitet hat: Es wurden oft Pfade zu Bilder angegeben, die Ordner waren. Das Spiel ladete dann alle im Ordner enthaltenen Bilder. Sicher praktisch beim Entwickeln der Assets, aber problematisch fürs Web. Man kann vielleicht noch einen Ordner von einer Datei mithilfe der Dateiendung unterscheiden, aber dann nicht eine Liste aller im Ordner enthaltenen Dateien bekommen. Ich habe lange nach einer Lösung gesucht, die dies doch ermöglicht. Dabei bin ich auf diese Funktion gestoßen, die aber leider nicht funktioniert, wenn sich das JAR mit den Assets auf einem HTTP Server befindet.

Im Endeffekt habe ich eine XML-Datei mit einer Liste aller Bilder erstellt, die geladen werden sollen. Nicht so flexibel, aber es funktioniert.

Audio, f*$%ing Audio

Die gleiche Geschichte betrifft natürlich auch die Audio-Dateien, wovon es zum Glück weniger Stück gab. Die Dateien waren im speicherhungrigen WAV-Format. Dass sie in etwas fürs Web taugliches umgewandelt werden mussten, war klar. Welche Formate werden aber unterstützt? Mit Add-ons sind das Ogg Vorbis und MP3. Diese Add-ons zu integrieren war zum Glück nicht schwer oder zeitaufwändig. Lange probierte ich es mit dem JOrbisOggRenderer, aber es gab Probleme…

Lokal lief alles noch gut. Als ich glaubte, mein Job sei erledigt, ladete ich alles auf einen Webserver. Dort kam dann der Fehler:

Exception in thread “Thread-13” java.lang.NoClassDefFoundError: com/jcraft/jogg/SyncState
at org.newdawn.slick.openal.OggInputStream.<init>(OggInputStream.java:40)

Hä? Viele Google-Suchen später, keine brauchbare Lösung. Anscheinend konnte das Applet die für Audio zuständigen Klassen jogg-0.0.7.jar und jorbis-0.0.15.jar plötzlich nicht mehr finden. Diese müssen im Build Path stehen. Ich hab hier alles versucht:

  1. Im <applet> Tag standen diese JARs schon
  2. Im Manifest aller JARs hab ich sie im Class-Path hinzugefügt
  3. Natürlich auch im Eclipse-Projekt (macht nen Unterschied?)

Ist mir ein Rätsel. American Hero läuft mit genau diesen JARs und spielt Ogg Vorbis ab. Habs dann einfach mit dem JavaLayerMp3Renderer (MP3) versucht. Hat sofort funktioniert. Arrrgh!

Applet Debugging

Testen, Testen, Testen… Bei Applets dauerts gefühlte 10 Minuten, bis man eine Änderung im Code ausprobieren kann. Es ist so wie C++ Code kompilieren, nur dass man nicht einfach wartet und nebenbei surfen kann, sondern man jedes Mal eine handvoll Schritte ausführen muss. Okay, zugegebenermaßen hab ich es mir vielleicht selbst schwierig gemacht. Aber so hat das ausgeschaut:

  1. Java-File abspeichern.
  2. Im Task-Manager java.exe abwürgen.
  3. BAT-Datei starten, die die JARs erzeugt.
  4. Mithilfe der Uhrzeit checken, ob wirklich neue JARs erzeugt wurden.
  5. Refresh im Browser.

Alternativ kann man auch den Browser jedes Mal nach einem Crash komplett schließen, dann wieder neu starten. Ist aber blöd, wenn man andere Tabs offen hat.

Dateigrößen

Nachdem alle nicht verwendeten Assets gelöscht, die Sounds als MP3s gespeichert wurden und alles durch den JAR Maker gejagt wurde, siehe da: Das Spiel ist 8 MB groß. Immer noch viel, aber in Zeiten wo das durchschnittliche YouTube Video mehr hat, durchaus akzeptabel. Leider gibt es keine Ladebalken, man muss also einige Zeit auf einen schwarzen Bildschirm starren, bis sich was tut.

Das Ergebnis

Nun ist es also endlich soweit… Bitteschön, The Legend of Ethos spielbar im Browser. Hier einige interessante Links dazu:

Particles!

Not much progress on American Hero… But earlier this month I did add particles! They make the game look a lot more professional:

This isn’t online yet, because the the XML files defining the particle emitters aren’t loaded using the resource manager at the moment. I only spent one day on this feature, using Slick‘s particle engine. You can design the particle systems with a tool called Pedigree:

If you compare the preview to the screenshot above, you’ll notice that the smoke plume looks a little bit different in-game. This is mostly because I re-sample the images using nearest-neighbor, so the pixels don’t get blurry. The editor is still very helpful to create these effects. You can create a color gradient for the lifetime of the particles and curves to control their opacity. There are some limitations and I have to be careful not to have too many particles on screen at the same time, but I’m very happy with how the animated particles add to the graphics of the game.

Smoke is nice and all, but I really need some cool looking, powerful explosions! It’s a little more tricky, because the particles should only be spawned at one point in time. To make it look good I probably need multiple emitters. Let’s see how that goes… The other way to do it would be sprite animation… Which is another big challenge I still need to tackle!

Na, wieder nüchtern?

Gestern war die Deadline für die heurigen Semesterprojekte und so auch für Heim-Vorteil. Nach einer überaus umfangreichen Pre-Production haben wir ab dem Jahreswechsel ordentlich Gas gegeben und aus dem Animatic eine vollanimierte erste Minute gebastelt!

Wenn man bedenkt, dass die Phase in der wir Animationen gezeichnet haben (Charaktere zeichnen, anmalen, Lipsync, Timing) nur 2 Wochen gedauert hat, kann man sich sicher vorstellen dass wir gerne weiter machen würden. Die lange Planung hat sich dann doch gelohnt, weil wir so schon eine genaue Vorstellung davon hatten, was als nächstes zu tun ist. Das Pacboard hat wertvolles Feedback geliefert, an dieser Stelle vielen Dank dafür 🙂

Animations-Fortschritt in Excel

Da bisher die Resonanz sehr gut war, ist es wohl unumgänglich in den Ferien die 1. Folge – 5-Mal so lang wie der 1. Dialog – fertig zu produzieren 😉

Underground in 3 days

So in the end it took me only 3 days to successfully produce my short film “Im Untergrund”. Just barely. Of course there was no time to sleep on the last night, I still had to cut the footage together, burn the DVD, print a cover, and write a description. I’m glad the stress is over now and I have 3 weeks off to do whatever I want. Which also includes getting out of the house again, going to the dentist, stuff like that. In the first week of July, there will be interviews if they invite me! So now I can only hope that my stuff is good enough.

As usual, here are some download links:

Im Untergrund (32 MB)

Making Of (41 MB)

Im Untergrund on StevyGee Films Official Homepage