Zeitstopp, und alles wird schwarzweiß (28.04.2010)
in: Prototyp, Screenshots

Vor längerem habe ich mich daran versucht, dem Zeitstopp-Effekt eine interessante Optik zu geben. Nach einigen glücklosen Versuchen mit einem Refraction-Shader (erster Screenshot) hatte ich mich darauf konzentriert, die Umgebung um den Spieler herum lediglich einzufärben (Zwischenstand zweiter Screen).

Im Endeffekt wird innerhalb der Zeitstopp-Blase nun alles desaturiert, also schwarzweiß (drittes Bild). Um das ganze etwas zu verstärken, habe ich die Grautöne außerdem mit einem Post-Effect zur Hervorhebung von Kanten kombiniert - diesen Compositor fand ich bei den OGRE-Beispielen.
Der vierte Screenshot zeigt also den finalen Stand des Zeitstopp-Effekts.

Vielen Dank an dieser Stelle an CodingCat für seine Unterstützung!

Ygnes (25.04.2010)
in: Characters, Konzept, Modelling, Skizzen

Ygnes ist nun so gut wie fertig. Sie ist sozusagen der "erste Offizier" auf dem Inselschiff (oder Erster Maat, der genaue Titel ist im Grunde egal), auch wenn es nicht militärisch angehaucht sein soll. Auf jeden Fall ist sie nicht nur die rechte Hand des Kapitäns, sondern auch seine Ehefrau. In meiner offiziellen Beschreibung im Konzept habe ich sie vor allem als streng und herrschaftlich charakterisiert, und versucht, dies in die Umsetzung miteinfließen zu lassen.

Von den Skizzen her gefällt mir die rechts oben am besten ("Piratestyle!"), sie war am Ende meine hauptsächliche Vorlage.

Die Bilder im Ganzen zeigen, was zu einem Characterdesign so dazu gehört: Skizzen, Modellierung, Unwrapping (in Roadkill, zum Vorbereiten der Texturierung), Rigging und Skinning (d.h. mit Knochen ausstatten), Animation. Die Textur ist auch beinahe fertig, kann jedoch jederzeit überarbeitet werden.
Da Ygnes in meinem Konzept über und über mit Efeu bedeckt ist, habe ich ihr der Einfachheit halber grüne Haut gegeben; denn das es würde den Aufwand kaum rechtfertigen, jede Menge Blätter zu modellieren - zumal ich sowieso einen eher einfachen Stil anstrebe, wie man sieht.

Die ersten beiden Screenshots demonstrieren übrigens, dass sich Ygnes auch schon in den Prototypen einbauen lässt, allerdings noch ohne Animation. Denn dafür muss ich erst alle Animationsphasen, die ich erstellt habe, in einer einzigen Datei in Reihenfolge bringen und dann entsprechend exportieren. Diese Aufgabe spare ich mir für den Moment, in dem ich Ygnes auch tatsächlich als Story-Element in meinem Präsentations-Level brauche.

Nebenbei kann man auf dem allerersten Screen auch erkennen, welcher Unterschied hinsichtlich Körpergröße zwischen ihr und dem Protagonisten besteht. Dieser Unterschied ist nicht zufällig, sondern wurde auf Größenvergleichs-Skizze links bereits geplant. Es wäre langweilig, wenn alle Figuren gleich groß wären - eine Lehre, die auch ganz nett im Manga Zeichenkurs von Akira Toriyama und Akira Sakuma erklärt wird.

Ygnes ist übrigens die erste Frau, die ich jemals modelliert habe ...

Licht&Schatten, Dimensionswechsel, Gravitationsportale (05.04.2010)
in: Prototyp, Screenshots



YouTube und Vimeo halten ein neues Video bereit, welches zwei Special Items zeigt (Gravitationsportale und Dimensionswechsel) sowie die Tatsache, dass ich Schatten in den Prototypen eingebaut habe.

Wie auch auf dem ersten und dritten Screenshot zu sehen, wird der Schatten durch PSSM (Parallel-Split Shadow Maps, eine Demonstration findet man hier) dargestellt. Das dritte Bild zeigt auch die meiner Meinung nach schöne Kombination von PSSM und SSAO - da stört es mich auch nicht, dass die Schatten recht hart sind und keinerlei weiche Kanten besitzen. Im Grunde passt das auch zu der Optik, die ich anstrebe.
Leider habe ich zur Zeit noch einige Probleme mit OGREs Schattensystem, sodass oftmals Objektschatten ganz oder teilweise verschwinden, vor allem, wenn sich diese Objekte relativ weit weg befinden.

Die anderen Screenshots zeigen übrigens meine Experimente mit einem Glow-Shader (gefunden im OGRE-Forum), sowie dem "Radial Blur" Post-Effect, der als Beispiel-Compositor im OGRE-SDK vorhanden ist. Das letzte Bild kombiniert die beiden Effekte zudem mit einem Kolorationsshader, der die dargestellte Szene in Falschfarben taucht. Diesen musste ich mir selbst schreiben, da ich nichts vergleichbares gefunden hatte.
Zusammen ergeben die drei Effekte die Optik des Dimensionswechsels. Der Wechsel in eine Paralleldimension ist für den Spieler nützlich, um bestimmte Hindernisse zu überwinden; Glow, Blur und Farbwechsel zeigen jedoch, dass der Dimensionswechsel nicht permanent ist.

Im Video werden überdies Gravitationsportale veranschaulicht, welche vom Spieler erstellt werden können. Das Portal selbst ist noch eine reine Testgrafik, es fehlen auch noch subtile Partikeleffekte.
So ein Portal kann sehr mächtig sein, aber auch gefährlich. Lässt man es in die falsche Richtung zeigen, landet man unvermeidlich im Nichts und muss von vorne beginnen.

Zeit anhalten (16.03.2010)
in: Prototyp, Screenshots

Der dritte der Screenshots zeigt eine Testszene, die ich angefertigt habe; hier werden verschiedene physikalische Eigenschaften ausprobiert. Denn man kann im Editor von Dynamikon nun endlich Dinge wie Reibung und Restitution (Rückgabe) eines dynamischen oder statischen Objekts einstellen. Setzt man beispielsweise die Restitution eines Balls und des Untergrunds auf eins, kommt besagte Kugel nie mehr zu Ruhe, da sie auf ewig nach oben springt - fantastisch elastisch!



Ansonsten gibt es auf YouTube und Vimeo ein neues Video zu meinem Projekt. Gezeigt wird kurz und knackig, was die letzten Tage an Features hinzugekommen ist:

  • NPCs sind halbwegs fertig, denn nun kann man mit ihnen reden. Mit dem Dialogsystem an sich bin ich noch nicht ganz zufrieden. Neben kleineren Bugs und der natürlich zu überarbeitenden Optik muss ich mir noch Gedanken dazu machen, wie ich Sprachausgabe integrieren möchte. Am wichtigsten ist aber, dass auch für Zuschauer klar wird, wer gerade spricht; aber ich werde vermutlich keine Zeit für deutliche Sprechanimationen haben. Daher wären vielleicht sprechblasenartige Symbole gut.

  • Es existiert nun ein Inventar, in das der Spieler Power-Ups verstauen kann. (zweiter Screenshot) Momentan ist dies eine einzelne Leiste mit festen Slots; da ich aber auch ein generelles Inventar für trivialere Gegenstände haben möchte, wird es noch mehr aufgeteilt werden.

  • Damit man überhaupt was verstauen kann, habe ich das erste Power-Up eingebaut, das mir auch sehr am Herzen lag: das Zeitstopp-Extra. Es hat noch keine eigene Grafik, deswegen sieht es im Video recht abstrakt aus. Bei diesem nützlichen Power-Up jedenfalls entsteht um die Spielfigur eine Blase, in der alle Gegenstände und NPCs quasi einfrieren. (erster Screenshot) Hoffentlich schaffe ich es im nächsten Monat, dies mit ein paar interessante visuelle Effekten zu garnieren.

Man sieht überdies, dass ich die Möglichkeit in den Editor implementiert habe, Partikeleffekte und Lichter einzufügen. (vierter Screenshot) Dafür wollte ich - wie schon damals bei den Triggern - eigentlich eine eigene Objektart einführen. Im Endeffekt habe ich diese Funktionalität jedoch bei den Point-Objekten eingefügt.

Als nächstes großes Ziel für den Prototypen steht die Machbarkeitsprüfung für eine Paralleldimension an. Das wird sich jedoch etwas länger hinziehen, da ich mich erstmal dem grafischen Teil etwas mehr widmen sollte.

Schwarze Löcher, vorerst final (04.03.2010)
in: Prototyp, Screenshots



Ein neues Video (YouTube, Vimeo) demonstriert, dass die einzelnen Funktionalitäten der Schwarzen Löcher inzwischen vollendet sind, mehr oder weniger. Folgendes wird gezeigt:

  • Mehrere Gravitationssphären lassen sich miteinander verknüpfen, sodass Zylinder entstehen, oder sogar ganze Ketten. (Letzteres ist im Video nicht zu sehen.) Dabei kann definiert werden, ob die Enden dieses Zylinders abgerundet sind oder nicht. Es wird vom Prototypen sogar berücksichtigt, dass die Sphären unterschiedlich groß sind.

  • Statt nur Kugeln gibt's auch Quader.

  • Man kann statt einer Gravitation, die auf einen Punkt oder einer Linie ausgerichtet ist, nun auch einfach eine allgemeine Richtung angeben. Somit ist es möglich, den Spieler ohne Mühe die Wand hochlaufen zu lassen.

  • Ein Schwarzes Loch kann auch an ein dynamisches Objekt geheftet werden, es bewegt sich also fortan mit. Im Video wird dies durch eine Kugel demonstriert, die magnetähnliche Eigenschaften besitzt.

  • Last but not least kann einem Schwarzen Loch ein Script zugewiesen werden, sodass bei Betreten oder Verlassen des Lochs interessante Effekte im Spiel auftreten können.

Eigentlich wollte ich solcherlei "Trigger" als eigene Objekte im Editor haben, aber es war zu verlockend, den Schwarzen Löchern selbst die Scriptfähigkeit zu verleihen. Trigger wurden damit überflüssig. Es fehlte lediglich noch die Möglichkeit, die gravitationsverändernde Fähigkeit eines Schwarzen Lochs auszuschalten, was jetzt ebenfalls implementiert wurde. Damit verliert die Namensgebung zwar endgültig ihren Sinn, aber es gibt momentan wichtigeres ...

Auf meinem internen Wochenplan steht nun vor allem das Zeichnen und die Stilsuche an. Danach soll man im Spiel Dinge aufsammeln und ins Inventar tun können. Das wäre die Vorarbeit für Power-Ups im Spiel; als erstes würde ich diesbezüglich den Zeitstopp (meine eigentliche Grundidee für dieses Projekt!) umsetzen wollen.

Zuguterletzt ein paar Screenshots zum Thema Schwarze Löcher, als Bonus.

Schwarze Löcher, weiter geht's (26.02.2010)
in: Prototyp

Was mich bei meinen sphärischen Gravitationszonen, d.h. den Schwarzen Löchern, immer etwas stört, ist der doch recht abrupte Wechsel der Perspektive des Spielers, sollte er er in eine solche hineingeraten. Um das ganze abzuschwächen, wollte ich lange Zeit den Leveldesigner (also mich) bestimmen lassen können, welche Minimal- und welche Maximalstärke ein solches Loch hat, und wann die Maximalstärke beginnt.

Beim Versuch der Implementierung dieser Faktoren haben sich jedoch zwei Dinge gezeigt. Erstens mag es für die kugelige Form der Schwarzen Löcher noch relativ einfach einzubauen sein, für die zylindrischen und kubischen jedoch würde ich erstmal vor weiterem Kopfzerbrechen stehen. Und zweitens stellt sich der gewünschte Effekt des sanften Übergangs dann doch nicht so ein, als dass sich weiterer Aufwand in dieser Richtung lohnen würde. Also habe ich die drei Werte kurzerhand gegen einen einzigen Stärke-Wert getauscht.



Immerhin sind die Schwarzen Löcher dadurch auch fast fertig. Es gibt nun auch kubische Formen, sowie einfache direktionale Gravitationsmanipulation, damit die Spielfigur in einem bestimmten Gebiet an der Wand laufen kann und Objekte dort auch liegen bleiben.

Außerdem habe ich ein weiteres Problem gelöst, das auftrat, wenn die Spielfigur sich ganz nah am Rand eines Schwarzen Lochs aufhielt: Durch die längliche Form des Character Controllers passierte es oft, dass die Figur ständig hin und her wackelte, weil sie in einem Frame vom Schwarzen Loch beeinflusst wurde (sie also in Richtung dessen Zentrums gezogen wurde), und im nächsten Frame nicht mehr (sich die Gravitationsrichtung der Figur also wieder normalisieren wollte).
Dies geschieht nun nicht mehr, weil ich das Kollisionsobjekt der Spielfigur, das vom Schwarzen Loch beeinflusst wird, einfach gegen eine Kugel ausgetauscht habe. Der Rest blieb unangetastet.

Schwarze Löcher im Editor (20.12.2009)
in: Prototyp, Screenshots

Rudimentär habe ich mal die Schwarzen Löcher in den Editor eingebaut. Dazu gibt es auch ein Video, wieder mal auf YouTube (schlechte Qualität) und Vimeo (gute Qualität). Es zeigt auch kurz das Aufheben und Werfen von Gegenständen.

An der Darstellung und Bearbeitung der "Holes"-Objekte muss noch gefeilt werden. Es wird von der Übersicht her so oder so problematisch, sobald ein Objekt sich in einem anderen befindet, also sollte es irgendwann so eine Art Ebenen-Modus geben.

Bis Anfang Februar habe ich für weitere Arbeiten am Prototypen leider keine Zeit - die schriftliche Arbeit verlangt meine vollste Aufmerksamkeit. Eigentlich wollte ich die Arbeit an den Schwarzen Löchern ja bis dahin beenden, aber es kommt ja doch immer anders als man denkt.

Controllersteuerung (03.12.2009)
in: Prototyp

Obwohl es nicht wirklich benötigt wird, habe ich jetzt die Möglichkeit in den Prototypen eingebaut, ihn mit einem Controller zu steuern. (Nur das Spiel; nicht den Editor.) Das wollte ich schon damals bei Über Leben und Sterben machen, bin aber nie dazu gekommen.

So wirklich gut funktioniert es allerdings nicht, da müsste noch stark getweakt werden. Die Sache ist allerdings nicht wichtig genug, als dass ich allzuviel Zeit hineinstecken werde.

>>>
© 2009 Friedrich Hanisch