prima, dass Visionaire nun auch 2,5 D Funktionalität bekommen soll.
Den beschriebenen Ansatz mit dem Rendern auf eine Textur und dann wieder als 2D Actor zu nehmen finde ich problematisch. Das bringt zwar einen Vorteil, dass man die Animationen "quasi" dynamisch berechnen kann, aber es bringt deutliche perspektivische Probleme mit sich. 1. Die Figur würde sich genauso wie die herkömmlichen 2D Figuren perspektivisch nicht korrekt in den Raum hinein bewegen (=hinten läuft sie nicht im richtigen Tempo) 2. Man muss dennoch eine Kamera einstellen, damit die Figur aus der richtigen Perspektive gerendert wird (z.B. 45 Grad von oben links etc.) Dann brauchst du trotzdem einen (virtuellen) 3D Raum, da sich der Winkel mit dem Abstand zur Kamera ändert.
Ich denke um einen Virtuellen 3D Raum kommt man nicht wirklich herum.
Die Leute von Animation Arts (Lost Horizon) benutzen auch hand-gezeichnete Hintergründe mit 3D Figuren. Es gibt da auf Adventure Treff ein Making of Video, da beschreiben sie, wie sie Szenarien zusammenbauen.
Die Szene wird auf Papier grob entworfen. Danach wird in 3D Studio max ein simpler 3D Raum gemacht. Dieser wir dann dort, wo sich Objekte befinden mit simplen 3D Primitiven (Zylinder, Kugeln, Quadern) untexturiert befüllt. Dann wird die Szene so gerendert. Die Grafiker übermalen dann dieses Bild von Hand mit der gewünschten Szene.m Dadurch wird die Perspektive gewährleistet.
Wie wäre es damit?
man kann es ja auch so sehen, dass das erst einmal der erste Schritt ist. Es spräche ja bestimmt nichts dagegen, die 3D Integration später nochmals zu erweitern. Von daher sollte man euren Ansatz einfach mal ausprobieren. Es bringt auf jeden Fall eine weitere Möglichkeit und eine Verbesserung der Engine. Somit ist das schon mal ein Gewinn. Irgendwann (version 4.x) könnt ihr ja immer noch über eine tiefer gehende Erweiterung nachdenken.
Allerdings empfehle ich wirklich mal die Making-Of Videos zu Lost Horizon. Die sind sehr interessant (wenn man sie noch nicht gesehen hat):
http://vodpod.com/watch/4650583-gamescom-2010-kurzeindrcke-i... http://vodpod.com/watch/4650585-gamescom-2010-kurzeindrcke-i...
Die Geschichte mit Personen auf einer Texture (Sprites) wäre weiterhin die gewöhnliche Methode für 2D-Personen. (Auswahlmöglichkeit)
Das Problem an Wintermude ist das Animieren eines Objektes. Die Frage wäre: Was wäre die leichteste Methode für den Benutzer, um seine 3D-Figur zum Laufen zu bringen?
Eine perspektivische Verzerrung kann gut Funktionieren... nach dem Old-School Prinzip von "Alone in the Dark", womit Spannung und Angst aufgebaut werden kann. Das Hintergründe usw. daran angepasst werden müssten ist dabei vorausgesetzt.
Dennoch sollte man lieber Schritt für Schritt machen. Erstmal die korrekte Einbindung einer 3D-Figur in den Editor und für eine korrekte Darstellung im Spiel.
Der virtuelle 3D-Raum wäre natürlich der korrekte Ansatz, doch könnte dieser zu mehr Fehlern führen... Stabilität ist hierbei wichtig! Für den Anfang könnten man noch auf Wegsysteme und Wegpunkten zurückgreifen. Eine einfache Kollisionsabfrage, wie bis jetzt, reicht da schon aus.
Eine Idee hätte ich in Sachen "korrekte Raumdarstellung" für die Kamera. 3D Objekte auf 2D-Hintergründe wird auch als Compositing genannt und in Cinema4D setzt man einfach einen 3D-Würfel ein(nur Drahtgittermodell). Dieser wird in der Mitte der Kulisse gezeigt und der Benutzer kann ihn nach dem Hintergrund korrekt räumlich platzieren. Beispiel: der Würfel wird nach einer Häuserwand ausgerichtet. Hat der Benutzer es festgelegt, wird dies bestätigt und die perspektivische Einstellung der Kamera zur Kulisse ist damit fertig.
Zu den perspektivischen Verzerrungen kann ich nicht allzu viel sagen. Die meisten 2,5D-Adventures, die ich kenne, sind darauf bedacht, keine großen und keine nach hinten gezogenen Szenen zu haben, selbst wenn sie mit 3D-Räumen arbeiten. Denn die Verzerrungen können auch stören, weil der Hintergrund meistens keine besitzt. Nehmt zum Beispiel eine Szene, die nach links und rechts scrollbar ist. Meistens befindet sich beim Scrollen die Spielerfigur in der Bildmitte und die Szene wird "vorbeigeschoben". Während die Szenenobjekte von einer Seite der Kamera zur anderen wandern, müsste sich bei nahen Objekten - insbesondere im Bildvordergrund - die Perspektive auch ändern. Wenn man nicht gerade mit dem von Danny angesprochenen Kameramapping arbeitet, wird das aber nicht passieren und es entsteht (zumindest bei mir, zeitweise) der Eindruck, dass "irgendwas nicht stimmt", weil Teile der Szene verzerrt werden, andere nicht.
Um alles mit Perspektive zeichnen zu können, müssten zunächst alle 3D-Objekte im gleichen Raum leben. Dann müsste eine Möglichkeit gefunden werden, wie der Nutzer den 3D-Raum definieren kann, und das ist schon einigermaßen komplex, da man den Raum nicht nur aus der Sicht der vorgerenderten Szene positionieren kann, denn aus dieser Sicht ist das nicht eindeutig (der Raum könnte sehr weit nach hinten gehen und sehr hoch sein, würde aber genauso aussehen wie ein sehr kurzer, kleiner Raum im Vordergrund. Dann bräuchte man angesprochenes Kameramapping, um auch den 2D-Bereichen perspektivische Verzerrungen geben zu können - im Idealfall mappt man die vorgerenderte Szene gleich auf die 3D-Szene, die man separat speichert. Damit verlassen wir die Welt der Zweidimensionalität und haben ein 3D-Spiel mit fixer Kamera und schlechteren Texturen (schlechter deshalb, weil beim Kameramapping auf ein Objekt im Vergleich zum UV-Mapping der Objekttextur immer Qualität verloren geht). Verzichtet man auf ein Kameramapping auf die 3D-Szene bzw. liest die 3D-Szene nicht ein, muss man sich Gedanken machen, wie 2D- und 3D-Objekte miteinander kollidieren. Ein Weg ist, die 2D-Objekte in den 3D-Raum einzubinden, denn nur so können die Verdeckungsalgorithmen wirklich gut arbeiten. Dieser Schritt ist recht kompliziert und mit eines der Firmengeheimnisse von heutigen Adventure-Entwicklern.
Natürlich würde ich gerne so eine Adventure-Engine programmieren, aber nicht alleine und innerhalb eines Semesters. Es spricht aber von mir aus nichts dagegen, das alles schrittweise zu erweitern, dann aber optional. Wenn es die Möglichkeit gibt, mit geringem Zeitaufwand 3D-Figuren für sein eigenes 2D-Adventure zu verwenden, dann sollte man einen User nicht zwingen, nur für perspektivische Verzerrungen und schöne Schatten seine kompletten Szenerien in 3D (nachzumodellieren und) zu importieren. Das Schöne an 2D ist doch, dass es ohne 3D auskommt
Zu der Frage von Danny: Es ist nicht geplant, die Figuren im Editor selbst animieren zu können. Es gibt die Möglichkeit, z.B. Collada-Files zu laden, die darin gespeicherten Animationen im Editor auszuwählen und dann bei Bedarf auszuführen wie Sprite-Animationen. Animiert werden müssen die Models in Programmen wie Blender, XSI, 3ds Max, etc. An der Zuweisung und dem Abspielen von Animationen ändert sich für den User gar nichts.
wie ist denn hier der Stand? Gibt es schon etwas zu berichten?
Beste Grüße Tosek