3D Figuren in Visionaire Studio

  • #20, by SuroSaturday, 09. October 2010, 00:06 16 years ago
    Wow! Danke für das Update und für den Einblick hinter die Kulissen!

    Newbie

    36 Posts


  • #21, by TosekMonday, 11. October 2010, 10:39 16 years ago
    Hallo,

    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?

    Newbie

    5 Posts

  • #22, by AlexTuesday, 12. October 2010, 01:55 16 years ago
    ich weiß nicht, ob das so optimal wäre. Im Prinzip ist es der Ansatz, der auch in Wintermute verwendet wird. Allerdings habe ich auch schon gehört, dass User (Danny?) damit nicht wirklich zurecht kommen. Ich weiß auch nicht ob sich das so gut mit dem aktuellen Visionaire System integrieren lässt. Rendert man die Person auf eine Textur, bleibt beim restlichen System alles beim alten. Die Personengröße ergibt sich wie im jetztigen Modus aus den Wegpunkten. Die Wegfindung bleibt ebenfalls gleich. Die Personenbewegung (welche wir bereits für Visionaire 3.5 verbessern möchten) funktioniert so wie bei 2D-Personen. Die Kamera muss man natürlich für die Person definieren, allerdings würde ich das pro Outfit machen. Und man hat die Möglichkeit, die Kameraposition zum Rendern im Spielverlauf zu ändern. Ich kann mir sowieso nicht vorstellen, dass eine perspektivische Verzerrung gut funktioniert, weil dann müssten auch die Hintergründe dementsprechend angepasst werden. Vorallem wenn man Cell-Shading etc. verwendet um einen gezeichneten oder Comic-Look zu simulieren, könnte ich mir vorstellen dass das eher kontraproduktiv wäre. Naja, hat sicher beides Vor- und Nachteile. Aus Implementierungs- und Integrationssicht ist ein Rendern auf Texturen jedenfalls deutlich einfacher. Für den User ist es ebenfalls ziemlich sicher leichter zu handhaben. Welche Methode bessere Ergebnisse liefert bzw. für welche Fälle besser geeignet wäre, lässt sich wahrscheinlich nicht so leicht sagen. Weitere Meinungen dazu sind natürlich immer erwünscht.

    Great Poster

    378 Posts

  • #23, by TosekTuesday, 12. October 2010, 10:16 16 years ago
    Hallo,

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

    Newbie

    5 Posts

  • #24, by DannyTuesday, 12. October 2010, 21:58 16 years ago
    Die Kamera definiert nicht nur die Person, sondern auch ggf. Objekte in einer Kulisse. Daher sollte die Kamera pro Kulisse eingestellt werden.

    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.

    Newbie

    0 Posts

  • #25, by mOflWednesday, 13. October 2010, 15:10 16 years ago
    Schön, dass die Diskussion hier schon wieder im Gange ist smile Der von mir geplante Weg zur Verbindung von 2D und 3D ist nicht optimal, es gibt einige Unsauberheiten (keine perspektivische Verzerrung, keine Schatten von Figuren auf andere Figuren), dafür aber auch Vorteile, die vorerst überwiegen, z.B. die vergleichsweise einfache Implementierung und die einfache Handhabung im fertigen Programm.

    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 wink

    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.

    Newbie

    2 Posts

  • #26, by JackMcRipTuesday, 09. November 2010, 17:22 15 years ago
    Da Assimp auch Collada unterstützt sollten keine Probleme mit Inkompatibilitäten auftreten! Gibt es denn schon erste Erfahrungen zu berichten?

    Forum Fan

    115 Posts

  • #27, by mOflTuesday, 09. November 2010, 23:17 15 years ago
    Es wird noch eine Weile dauern, bis alles laufen wird. Ob Assimp wirklich alle Colladadateien fehlerfrei unterstützt, wird sich noch zeigen. Einfache Models sind zumindest kein Problem.

    Newbie

    2 Posts

  • #28, by TosekWednesday, 10. November 2010, 10:42 15 years ago
    Blender soll ja auch bald Collada voll unterstützen. Das wäre sicherlich wichtig, denn ich denke nicht, dass sich die meisten Leute ein 3dsmax oder maya leisten können. Momentan ist die Collada Unterstützung wohl noch etwas buggy in Blender.

    Newbie

    5 Posts

  • #29, by TosekTuesday, 22. March 2011, 15:32 15 years ago
    hallo,

    wie ist denn hier der Stand? Gibt es schon etwas zu berichten?

    Beste Grüße Tosek

    Newbie

    5 Posts

  • #30, by AlexWednesday, 23. March 2011, 00:23 15 years ago
    Die Implementierung im Player ist im Grunde abgeschlossen, aktuell sind wir an der Umsetzung im Editor dran. Voraussichtlich wird es mit Version 3.6 soweit sein.

    Great Poster

    378 Posts