MaxScripts (28.04.2010)
in: Leveldesign, Modelling, Screenshots, Worlddesign

Ich habe mir, als eine Art zusätzliche Unterstützung für meine Pipeline, zwei Scripts gebastelt, welche in 3dsmax zur Anwendung kommen. (Sie wurden also in MaxScript geschrieben.)

Das erste ist für's Exportieren da:



Mit einem Klick habe ich dann meine Objekte im Spiel. Das Script nutzt hierbei die Scripting-API von OgreMax. Da OgreMax ein Szenen-Exporter ist, legt es bei jedem Klick auch eine .scene-Datei an, die ich nicht benötige (genauso wenig wie die Materialenbeschreibungs-Datei) - mein Script löscht sie daher.
Etwas komplexer wurde mein Script durch die Tatsache, dass ich Objekte mit unterschiedlichen Material IDs habe, auf denen aber keine echten 3dsmax-Materialien liegen - OgreMax fasst solcherlei Teil-Objekte dann automatisch zusammen (mit einem Material namens "NoMaterial"). Daher muss mein Script Meshes selbst erst einmal aufsplitten, bevor sie exportiert werden.

Mein zweites Script ist eigentlich eine (ständig wachsende) Script-Sammlung, mit kleinen aber feinen Funktionalitäten:



Wichtig ist vor allem die "Distributing"-Gruppe - schnell und einfach lassen sich dann kleinere Assets auf einem größeren Mesh entlang der Oberflächennormale verteilen, mit zufälliger Skalierung und Rotation. Das kann dann so aussehen aus wie auf diesen Bildern:

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 ...

Protagonist (01.04.2010)
in: Characters, Modelling, Skizzen

Nun folgt eine kleine Zusammenstellung des Werdegangs der Hauptfigur. Sie ist diejenige Figur, die der Spieler steuert, wodurch sie ein gewisses Identifikationspotential besitzen sollte. Entgegen üblicher Konventionen habe ich mich dagegen entschiedenen, einen strahlenden Helden zu kreieren. Stattdessen wollte ich einen anfänglichen Niemand und Nichtsnutz haben, der im Laufe des Spiels über sich hinaus wächst.
Vorstellbar wäre sogar eine graduelle Veränderung des Modells (bzw. der Textur), so wie in "Shadow of the Colossus", um die Veränderung des Charakters nachvollziehbar zu machen. Wobei in SotC die Spielerfigur mit jedem Level schmutziger und verderbter wurde ... eine Herangehensweise, die ich faszinierend finde.

Als Hintergrundgeschichte für den Helden des Spiels habe ich mir überlegt, dass er ein Adliger ist - also durch Bücher gebildet und etwas hochnäsig. Allerdings ist er kürzlich verarmt, eventuell so sehr, dass er seinen Adelstitel verkaufen musste. Erstmals muss er in seinem Leben hart arbeiten, um seinen Magen füllen zu können.

Die ersten vier Skizzen (Reihenfolge der Bilder ist von links nach rechts!) zeigen anfängliche Überlegungen zum Aussehen des Protagonisten, wobei die vierte sehr spät entstanden ist. Gleich nach dieser zeichnete ich das fünfte Bild, welches für mich am ehesten den Charakter widerspiegelte, den ich darstellen wollte. Darauf folgten dann einige Proportionsstudien, wobei ich die achte Skizze, auf dem der Held des Spiels gar zu unmotiviert und unförmig aussieht, als zu übertrieben empfinde.
Die Zeichnung davor ist mein persönliches Leitbild für das Aussehen des Helden, vor allem, was die Proportionen betrifft - die Beine sind so lang wie der Oberkörper, die Körperhöhe ist insgesamt recht gering und ein kleines Bäuchlein demonstriert den vormaligen Wohlstand. Das zusammen ergibt einen scheinbar unscheinbaren Anti-Helden mit Ambitionen zu Abenteuer und Selbstverwirklichung; ein wenig wie der kleine Hobbit Bilbo Beutlin von Tolkien.
Das Gewächs auf dem Kopf, zu guter Letzt, dient der Wahrung des durchgängigen Konzepts des Spiel.

Die letzten drei Bilder zeigen den Prozess des Modellierens. Interessanterweise entsteht das Grundmesh relativ schnell. Die meiste Zeit wird üblicherweise in die Details investiert, und die permanente Nachjustierung einzelner Vertices, für die schönere Gesamtform. Vor allem die Silhouette ist wichtig.

Bevor ich dieses Modell nun unwrappe, rigge, skinne und animiere, werde ich erst einmal an die anderen Figuren modellieren und animieren.
Denn es hat sich gezeigt, dass während des komplexen Prozesses der Character-Erstellung immer wieder Fehler offenbar werden, die man anfangs hätte vermeiden müssen; beispielsweise hätte dort noch ein Edge-Loop hingehört, hier ein paar Vertices und drüben ist das Skinning falsch. Da der Protagonist die wichtigste Figur ist, will ich erst einmal mit den sekundären Modellen üben.

Geschichten eingestellt (26.10.2009)
in: Allgemeines, Dokumente, Konzept

Auch wenn ich selbst nicht hundertprozentig zufrieden damit bin, habe ich mal die Geschichten, die ich speziell für mein Spieleprojekt erfunden habe, online gestellt.
Der Inhalt sind vor allem die Hintergrundinformationen und die Handlung des Spiels. Ersteres ist wichtig für denjenigen, der sich die Geschichten ausdenkt, die im Universum von "Schwere in der Schwebe" spielen; das Zweite ist wichtig für den Spieler. Und um mir selbst Vorgaben zu machen, ich welche Richtung meine Character- und Level-Designs gehen, habe ich mir auch noch verschiedene Figuren und Missionen ausgedacht.

Mein Spiel hat jetzt - rein konzeptionell - ein mehr oder weniger festes Grundgerüst, und hätte ich die Zeit, würde ich mich sofort daran setzen, es weiter umzusetzen. Aber momentan steht noch das an, was eigentlich vor dem Konzept kommt: der schriftliche Teil meiner Diplomarbeit.

Nun ist es so, dass sich das Konzept jederzeit noch ändern kann; rein aus Zeitgründen werden es aber wohl keine fundamentalen Veränderungen mehr werden. Insgesamt hatte ich beim Schreiben oft das Gefühl, mir die Geschichten förmlich aus den Fingern zu saugen, daher freue ich mich eigentlich auf die etwas "handfestere" Arbeit des Recherchierens und Erörterns.

Es fehlt jetzt, für das Konzept, noch der Teil, der sich mit dem Design beschäftigt. Obwohl ich eigentlich früher damit fertig werden wollte, ist es auch nicht schlecht, wenn sich dieser Abschnitt etwas mehr hinzieht und über mehrere Monate verteilt. Immerhin ist es der wichtigste Part, und immer mal ein bisschen Abwechslung von der ganzen Theorie wird mir gut tun.

Gedanken zur Hintergrundgeschichte (10.10.2009)
in: Allgemeines, Konzept

Momentan sitze ich von Zeit zu Zeit an der Hintergrundgeschichte für mein Spiel. Am Anfang sah es so aus, als würde ich einfach ein paar der Fakten, die ich mir im Voraus überlegt hatte (verrückte Physik, gewisse Pflanzen als Ursache, zersplitterter Planet aus Auswirkung, schwebende Inseln, etc.) ausformulieren und zusammen bringen, ohne allzu prosaisch zu werden.
Das Problem ist, dass damit zwar einiges über die Welt gesagt wird, aber so gut wie nichts über die Bewohner und ihre Sprache, über die Zeitrechnung, das aktuelle Zeitalter und über Flora und Fauna. All dies ist aber ebenso wichtig, um eine interessante Geschichte entwickeln zu können, die konsistent ist und konform mit anderen Geschehnissen gehen.

Also ist es jetzt mein Ziel, die "Hintergrundgeschichte" nicht mehr als eine Art Abhandlung zu formulieren. Stattdessen wird es einzelne Unterkapitel mit Themata geben, die meiner Meinung nach den signifikantesten Einfluss auf eine Welt und eine darauf existierende Kultur besitzen. Momentan sind das:

Eigenart der Sprache und wichtige Bezeichnungen
Zeitrechnung und aktuelles Zeitalter
Wichtige Ereignisse im Laufe der Zeit
Landkarte der Welt
Bewohner der Welt
Flora und Fauna

Weniger wichtige, aber dennoch interessante Fakten bekommen ein Extra-Kapitel.

Update 15.10.: Ich habe die genannten Punkte jetzt fast alle untergebracht (bis auf "Sprache"), aber wie anfangs geplant in einem sehr knappen Beschreibungstext. Mir fehlt z.Zt. das Wissenschaftliche dabei; das ganze könnte jeder geschrieben haben. Würde ich mir noch mehr aus den Fingern saugen würde das diesen Eindruck noch viel mehr verstärken.
Im Großen und Ganzen brauche ich auch gar keine Hintergrundgeschichte; ein paar Fakten reichen völlig. Viel wichtiger ist jetzt eine (ebenfalls knappe) Handlung, die mich auf die zu designenden Charaktere und Levels einschwört.

Spielmechanik aktualisiert, Spielelemente online (24.09.2009)
in: Allgemeines, Dokumente, Konzept

Die zweite Hälfte des Konzepts ist jetzt einsehbar: die Spielelemente. Dabei handelt es sich vor allem um eine Konkretisierung der doch eher abstrakten und allgemeinen Aussagen, die unter "Spielmechanik" getroffen wurden. Letztere wurde übrigens etwas verändert und ausgebaut.
Fehlen nur noch die dritte und vierte Hälfte ... nämlich Story und Design. Bei der Story wird nochmals alles spezifiziert (z.B., wen man eigentlich spielt, und welchen Figuren man so begegnet). Das Kapitel Design behandelt natürlich Stil und Aussehen des Ganzen.

Meine TODO-Liste vom letzten Mal sieht nun so aus:


  • Testgrafiken erstellen

  • Das Konzept weiterschreiben, es fehlen die Spielelemente, das Design, die Hintergrundstory und der Plot.

  • Die Stückliste muss angepasst, zudem ein Zeitplan erstellt werden.

  • Der Prototyp muss erweitert werden.

  • Eine Gliederung für den schriftlichen Teil der Diplomarbeit muss vorbereitet werden.


Es wird so langsam.
Da dieses Tagebuch nur den praktischen Teil behandelt, werde ich die Gliederung und alles weitere, was die Theoriearbeit betrifft, wohl eher nicht online stellen.

Spielmechanik online (27.07.2009)
in: Allgemeines, Dokumente, Konzept

Mit leichten Zweifeln im Hinterkopf habe ich mal die erste Hälfte des Konzepts hochgeladen: das Gameplay. Die Zweifel rühren daher, dass ich das Gefühl habe, ein Spiel beschrieben zu haben, dass sowieso schon längst existiert. Auf der anderen Seite ist mir aber auch klar, dass ich im Grunde gar kein völlig neues Spiel mit lauter Innovationen basteln möchte, nicht in diesem Fall.

Logisch ist allerdings, dass das Konzept keinesfalls endgültig ist. Bis zum Ende des Projekts werden noch jede Menge Änderungen ihren Weg in den Text finden. Zumindest hoffe ich das.

Die nächsten Schritte sehen in etwa so aus:


  • Testgrafiken erstellen (Modelle, Texturen) - damit ich ansehnlichere Screenshots erstellen kann. Die Testgrafiken sollten simpel sein, von daher ist ein karikierender Stil wahrscheinlich.

  • Das Konzept weiterschreiben, es fehlen die Spielelemente (Definitionen der Charaktere, Power-Ups, Level, etc.), das Design, die Hintergrundstory und der Plot.

  • Die Stückliste muss angepasst, zudem ein Zeitplan erstellt werden.

  • Nebenbei muss der Prototyp erweitert werden. Bis zum Beginn des praktischen Teils der Diplomarbeit im Februar will ich ein halbwegs funktionierendes Framework haben, bei dem ich nur noch Anpassungen machen muss.

  • Der schriftliche Teil muss vorbereitet werden. Daher muss ich mir den eigentlichen Inhalt und eine Gliederung überlegen.


Uff.

Kamera und so (22.07.2009)
in: Prototyp, Skizzen

Wie in jedem Prototypen, den ich bisher erstellt habe, ist die Frage nach einer gefälligen Kamera eine besonders wichtige. Wie schon geschrieben, habe ich es mir etwas leichter gemacht, indem ich es mir schwerer gemacht habe: anstatt nur Ego-Perspektive oder nur Third-Person-Perspektive einzubauen, ist bis jetzt beides implementiert. (Zusätzlich gibt es noch ein Debug-View-Modus, der ähnlich der Steuerung von 3dsmax funktioniert.)

Da sich die grundlegende Steuerung in beiden Modi nicht sonderlich unterscheidet (die Figur bewegt sich mit denselben Tasten), ist es auch gar nicht so kompliziert, zwischen beiden zu wechseln.

Hier mal eine grobe Darstellung des aktuellen "Character Controllers". Er besteht (auf Physikseite) vor allem aus einer stets aufgerichteten Kapsel (B), an dessen unterem Ende ein Raycast dafür sorgt, dass eine gewisse Distanz zum Boden gewahrt wird (gut für Treppen und Schrägen). An der Kapsel hängt (auf Grafikseite) ein unsichtbarer Node (C), an dem sich wiederum das Mesh der Figur (A) ausrichtet. Außerdem kleben - vereinfacht gesagt - an (C) mehrere Dummys auf Augenhöhe (D), die die Rotation und Position der Kamera regeln. Am hierarchisch gesehen letzten dieser Dummynodes schlußendlich ist die Kamera geheftet, welche je nach Perspektive entweder direkt in der Kapsel steckt, oder sich hinter der Figur befindet. Wenn zweiteres der Fall ist, prüft ein permanenter Test auf seiten der Physik, ob sich zwischen Figur und Kamera ein Hindernis befindet (z.B. eine Wand). Die Kamera wird dann gegebenenfalls nach vorne geschoben.



Diese Beschreibung ist grob vereinfacht. Tatsächlich gibt es noch einige "Zwischendummynodes", die dafür sorgen, dass die Bewegungen der einzelnen Hauptnodes nicht zu abrupt wirken. Außerdem ist in der Third-Person-Perspektive ein Dummy wichtig, der eine weiche Drehung regelt, wenn der Spieler seitwärts oder rückwärts läuft (dafür gibt es keine eigenen Animationen, stattdessen drehe ich die Spielfigur einfach).

Es ist ziemlich wahrscheinlich, dass sich an meinem System noch so einiges ändern wird. Vor allem die Konstruktion aus Kapsel und Raycast ist sehr fragwürdig, aus zwei Gründen. Erstens rutscht die Spielfigur an Kanten zu schnell ab (da sie ja nur auf einem einzelnen Punkt steht), zweitens springt der Spieler sehr oft - besonders in Kombination mit Gravitationsänderungen - stark in die Höhe.

Bleibt die Frage, ob sowohl Ego-Perspektive als auch Verfolger-Perspektive am Ende erhalten bleiben. In Bezug auf das Model der Spielfigur verdoppelt sich der Aufwand fast, zumal sich nicht wenige Animationen unterscheiden werden, beispielsweise muss in der Ego-Perspektive dennoch eine Animation für Seitwärts- und Rückwärtslaufen erstellt werden. Schlimmstenfalls verzichte ich einfach ganz darauf, ein Mesh darzustellen, wenn man sich in der Ego-Perspektive befindet.

Eventuell machen einige Physikrätsel nur Sinn in der einen, andere wiederum nur in der anderen Perspektive. Der andere Grund dafür, warum ich zögere mich für eines von beiden zu entscheiden, ist, dass die Spielbarkeit insgesamt vielleicht leidet, wenn man nur eine Sicht-Option besitzt. So oder so ist noch viel Testerei nötig.

>>>
© 2009 Friedrich Hanisch