3D Figuren in Visionaire Studio

  • #1, by marvelWednesday, 03. March 2010, 14:11 16 years ago
    Wir möchten gerne bald auch 3D Figuren in Visionaire Studio ermöglichen. Zum einen suchen wir für diesen Zweck noch nach Unterstützung im Programmierbereich. Zum anderen würde ich gerne mit den Usern hier, ihre Vorschläge zur Umsetzung hier diskutieren... es gibt sicherlich einige, die an dieser Stelle ganz konkrete Ideen haben.

    Damit wir die beste aller möglichen Lösungen finden sollte sich hier eine schöne Diskussion ergeben smile Es ist ausdrücklich gewünscht, hier konkrete visuelle Konzepte und Screenshots zu posten.

    Key Killer

    610 Posts


  • #2, by DannyWednesday, 03. March 2010, 14:41 16 years ago
    Das Format 3DS wird von vielen 3D-Programmen unterstützt und wird häufig zum Export von 3D-Modellen genutzt.

    Animationen können innerhalb der Datei gespeichert oder auch extra als Animationsdatei hinterlegt sein. Kommerzielle Spiele arbeiten mit Animationsdateien, da die reinen 3D-Modellen einfach mit den Animationsdateien verknüpft sind.

    Animationen an Figuren werden heutzutage mit Bones (Knochen) erstellt, wohin gegen Statische Modelle (wie ein Auto, Raumschiff usw) anhand ihrer Lage(Position, Winkel,Skalierung) geändert werden.

    Effekte, wie Cell Shading machen einen deutlichen Sinn in Adventures (Comic-Stil), doch einfach nur einen Cell Shading Effekt hilft nicht. Dieser sollte man später mit einfachen Parametern ändern können, wie dicke der Striche, Farbe, Intensität, Anti-aliasing, Verknüpfung auf eine festgelegte Figur oder im gesamten Spiel usw.

    Ein Vorschlag, wie 3D Modelle in 2D Kulissen eingesetzt werden könnten:

    Hat man unter allgemeine Spieleeinstellungen „2.5D-Spiel“ oder „3D-Funktionen“ aktiviert, kann erst dann in den Kulissen eine 3D-Kamera aufgestellt werden. (wie im Anhang "kamera02.jpg")

    Position (X,Y,Z)

    Winkel (grad)

    Brennweite (grad) dient als Gesichtsfeld (Standardwert=36)

    Position und Winkel werden angezeigt und geben die Veränderung an, diese können auch manuell parametriert werden.
    Die Brennweite muss manuell festgelegt werden und sollte stets mit dem Standardwert 36 beginnen, da viele 3D-Programme ebenfalls mit dieser Brennweite beginnen.

    Mit der gedrückten Maustaste innerhalb der Kulisse kann einfach die Lage der 3D-Kamera verändert werden und man sieht dabei was man macht. Dabei kann wahlweise ein 3D-Objekt platziert werden, damit man die Veränderung auch an den Objekten sieht.

    Wenn man als Test noch die Figur mit den Pfeiltasten auf der Tastatur nur bewegen lässt (ohne Animation, nur reine Positionsveränderung) würde man so feststellen, ob Figur und Blickwinkel der Kulisse harmonieren. (wie im Anhang "kamera01.jpg")


    Lichtquellen sollten durch Parameter (Position, Lichtfarbe, Stärke, Schattenwurf an /aus) einstellbar sein. Die Veränderung erkennt man in der betroffenen Kulisse nur, wenn auch ein Objekt darin sich befindet, also wieder eine Vorschaufunktion. Der Winkel der Lichtquelle beeinflusst nur den Lichteffekt am Objekt.


    Die Schattenqualtität der 3D-Figuren sollte nicht zu sehr komplex sein, also wäre ein einfacher Schattenwurf ideal und verbraucht nicht zu viel Leistung des Rechners.

    Der Nullpunkt einer Figur sollte man selbst festlegen können. An Figuren meistens unten (da wo man auch steht) und bei statischen Figuren der Mittelpunkt.
    Doch wie würde man so etwas einstellen können. Es gibt ja im Editor das Animationsstudio für die Personen. Für 3D-Modelle müsste es ein eigenes Animationsstudio geben, in der man auch den Nullpunkt festlegen kann.

    So, nun der Haken an der ganzen Geschichte… Animationen. Wie kann man es bewerkstelligen, dass der Benutzer seine Figuren zum Leben erweckt….. Ich erwähnte ja, dass es bei Figuren mit Bones zu tun hat. Doch damit eine Person animiert gehen soll, benötigt man alle drei bekannten Ansichten (Oben, Rechts von der Seite, Vorne) um so die Bones nach ihrer Lage verändern zu können. Per Keyframes in der Zeitleiste werden die Bones abgespeichert. Mit Spezialtasten und der Maus kann die Kamera in dem jeweiligen Ansichtsfenster geändert werden. (wie im Anhang "Animation.jpg")

    Obwohl… da landen wir wieder zu einem 3D-Editor und die ganze Sache wird wieder schwer. Doch irgendwie muss der Benutzer ja an den Objekten arbeiten können. Hier wären weitere Vorschläge besonders hilfsreich.

    Aber eins könnte man auf jeden Fall machen…

    Im Visionaire-Editor kann man unter Personeneinstellungen die Bewegungen anhand von Animationsdateien festlegen.

    Doch für Animationen wäre es sogar besser ein kleines extra Programm zu entwerfen. Ein Animationsstudio, was vom Visionaire Editor getrennt arbeiten könnte. Dort könnte man in Ruhe die Bewegungen erstellen und diese Bewegungen in Dateien abspeichern, wie „Held_gehen.ani“ oder „Held_nehmen.ani“ usw. Das Studio würde auch ideal zum Importieren von 3D Modellen dienen.

    Newbie

    0 Posts

  • #3, by JackMcRipFriday, 05. March 2010, 00:25 16 years ago
    Hallo,

    Super Idee eigentlich !

    wink

    Danny hat ja auch schon gut vorgelegt :-)

    Nur die Idee einen 3D-Animationseditor zu basteln wäre sicher zuviel des Guten!

    Erstmal vorweg:
    Meiner Meinung nach das Wichtigste ist, wie der 3D-Charakter von der Visionaire-Engine in das Bild gerendert wird.
    Es muss ein sehr sauberes AntiAliasing sein.
    Sonst siehts sicher doof aus und man kanns bleiben lassen.
    ich erinnere mich an erste Versuche in anderen Adventures.


    Nun gut, zum Format:
    Danny hat zwar Recht, das das 3ds-Format von vielen 3D-Programmen unterstützt wird, jedoch verschieden gut.
    Und Informationen wie z.B. Bones oder Animationen werden meist garnicht berücksichtigt.

    Es gibt ein offenes Format: "Collada", welches von vielen 3D-Programmen benutzt wird.
    Es gibt noch aber auch noch FBX von Autodesk (Entwickler von 3D-Studio Max (.3ds) und Maya).
    Autodesk hatte Maya damals aufgekauft und auch MotionBuilder und bildet die stärkste Front im 3D-Sektor.

    http://area.autodesk.com/img/static/fbx/FBX_2009.3_Features_...

    http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&...

    Mal ne rein theoretische Betrachtung: Collada ist ein offenes und standardisiertes Format, dass Sony mit Khronos und der Spieleindustrie entwickelt hat, um z.B. für die PS3 ein flexibles Austauschformat für Middleware im Gamingbereich zu schaffen.

    FBX ist ein proprietäres, nicht offengelegtes Format von Autodesk (ehemals Kaydara -> Alias -> Autodesk). Autodesk macht Libs für FBX-Import/Export verfügbar, aber auch diese sind closed source. Man ist also an Autodesks guten Willen gebunden, wenn man langfristig auf FBX setzt. Was FBX kann und können wird, entscheidet alleine Autodesk nach Gutdünken. Was die für den Austausch Max/Maya/Softimage etc. nicht brauchen, wird sicher nicht kommen.

    An der Weiterentwicklung von Collada kann sich jeder beteiligen.

    Was nun in der Praxis das brauchbarere Format ist, hängt sicher auch von der Art der Implementierung ab, und von der Collada/FBX Unterstützung in der verwendeten Programmierumgebung.


    Collada wird inzwischen von vielen 3D-Programmen unterstützt.
    Sogar Photoshop kann Collada: http://help.adobe.com/de_DE/Photoshop/11.0/WS45026565-0243-4...

    Ursprünglich waren .obj (Object Wavefront) und .3DS DIE Austauschformate im Bereich 3D.
    Jedoch beinhaltet es keine glaube ich Informationen zu Animationen oder Verbindungen zwischen 3D-Elementen wie z.B. dem Arm zum Körper, bzw wird in den Implementierungen anderer 3D-Programme nicht unterstützt.



    In 3D gibt es wie erwähnt die Geometrie (die Polygone) und für Animationen Bones die die Geometrie verformen.
    Durch Animation der Bones bewegt sich dann der Charakter.
    http://www.wazim.com/Collada_Tutorial_1.htm
    http://www.wazim.com/Collada_Tutorial_2.htm
    Source-Codes : http://www.wazim.com/Projects.htm

    Hier findest Du eine Übersicht der Programme die mit Collada zusammenarbeiten:
    http://www.collada.org/mediawiki/index.php/Categoryrazzroducts

    Vielleicht hilft Dir das hier beim Coden ja weiter: http://away3d.com/contributors

    Soweit zum Format.



    Für die 2D-3D Implementirung:
    Du überlegtest ein gmealtes Hintergrundbild zu nehmen und 3D-Objekte/Charakter einzufügen.
    Wenn Du einen Schattenwurf von 3D-Objekten auf ein gemaltes 2D-Bild haben willst brauchst einen Schattenfänger
    Eigentlich die gleiche Technik die es ermöglicht in Filmen 3D-Objekte zu integrieren.
    Es nennt sich Compositing. Die Technik die man braucht ist "camera projection".
    Die Kamera wirft ein Bild auf ein 3D-Objekt (bzw mehrere) und texturiert es so.
    Im einfachsten Fall sieht man garnicht die Objekte und deren Textur (da dann auch das 3D-Licht einfluss nimmt) sondern lässt von den 3D-Objekten die das Bild repräntieren nur den empfangenen Schatten berechnen.

    http://www.trinity3d.com/images/gnomon/3d_matte_painting_camera_mapping/example2.jpg
    Hier siehst Du die Objekte die den Schatten fangen.
    Es ist auf jeden Fall schon eine Fortgeschrittenere Technik im 3D-Bereich.
    Normalerweise erstellt man im 3D-Programm eine Kamera die das Bild projeziert und erhält im Ergebnis ein Bild, oder Film in dem die Schatten korrekt in das Bild gerechnet sind.
    Oder im erweitereten Fall erhält man ein Bild mit nur den Schatten, bzw. den nachträglich eingefügten und gerenderten 3D-Objekten.

    Für den Schattenwurf reicht meist einfache Geometrie (aber nicht nur technisch gerade, sondern für Landschaften organisch kurvige Formen).
    Die organischen Formen anzupassen sind schwieriger als die Technischen.
    Wenn Du da einen 3D-Modeller integrieren willst solltest Du Dir auf jedenfall mal ein paar Tools anschauen. Aber wenn beschränke Dich auf einfaches Objektmodeling.
    Es gibt mehrere kostenlose oder günstige 3D-Modeller an die Du nie ranreichen wirst.
    Blender, Wings3d, ect.

    Ich kann mich jetzt vertun (bitte suche noch eine andere Quelle) aber ich glaube dass die Berechnung der Kamera in den 3D-Programmen abweicht.
    Wenn dann die 3D-Geometrie in einem anderen Programm erstellt wird als in der Adventureengine gibt es sicher Probleme mit der Deckung (Verzerrung durch perspektive der Kamera).
    Wenn die Kamera wirklich exakt definiert und gleich ist, dann ist das ja kein Thema die Kamera in einem 3D-Programm zu erstellen.
    Aber prüfe vorher echt ob das mit mehreren 3D-Programmen identisch funktioniert.
    (oder lasse es prüfen)
    Ob Kamera+CameraProjection überall identisch sind.
    Kanns mir kaum vorstellen.


    Könnte man vielleicht die Tiefeninformationen einen Tiefenmap für den Schattenwurf benutzen ?
    Die wird sehr oft dazu verwendet Unschärfe einer Kamera nachträglich in 3D-Bilder/Filme zu bringen.
    http://www.madx.dk/images/0depthBE.jpg
    Aber vielleicht gibt es auch eine Möglichkeit anhand derer den Schatten zu berechnen.
    Wenigstens üngefähr.
    In den meisten 3D-Programmen lässt sich so eine Tiefenmap erstellen.
    Dann hast Du einfach ein Bild und ein Tiefenbild.
    Es wird nicht unnötig kompliziert.
    Wie der Ersteller dadrankommt ist seine Sache. Da gibt es dann zig Wege.
    Selbst ein Photoshop-Fake wäre denkbar.
    Es gibt sogar eine Technik (und kostenloses Programm) aus einem Stereofoto eine Tiefenmap zu berechnen:
    http://www.ldv.ei.tum.de/studium/arbeiten/depth-map-fusion-f...

    Das Problem was sich bei einer Tiefenmap stellt ist die Form des Schattens (perspektivische Verzerrung). Lässt sich das wohl anhand einer Tiefenmap berechnen ?
    Vielleicht beschränkt man sich auf einen weichen Schatten ?

    Die Position (und die Attribute die Danny schon nannte) der Lichtquelle kann ja vielleicht dann sogar in Visionare verändert oder sogar animiert? werden.

    Vielleicht würde ein solches Tiefenbild auch in der 2D-Engine Vorteile bringen.



    Soweit erstmal meine Gedanken zur 3D-Implementierung....
    [EDIT:] Hab nochmal drüber nachgedacht.
    Das mit der Depth-Map kann sich nur darauf beschränken den Schatten der Figur auf die Objekte zu Übertragen und um eine Maske zu berechnen wenn der Charakter hinter einem Objekt läuft.
    Für die Beleuchtung geht das nicht:
    Wenn der Charakter in die Tiefe läuft kann es ja sein, das er hinter einem Haus wieder von der Sonne beschienen wird.Und die Tiefenmap macht ja ein quasi unendlich tiefes Haus.
    Für die Beleuchtung muss man dann einfache Objekte wie Quader, Kugeln, ect. oder reingeladene 3D-Polygonobjekte in Visionaire positionieren können um einen Schatten auf den Charakter zu kriegen.
    Dürfte aber auch funktionieren.

    Forum Fan

    115 Posts

  • #4, by JackMcRipMonday, 08. March 2010, 21:56 16 years ago
    Außer Danny und mich scheints keinen zu interessieren :-(
    Schade...

    Forum Fan

    115 Posts

  • #5, by marvelMonday, 08. March 2010, 23:29 16 years ago
    Das liegt daran das die Seite hier noch garnicht offiziell online ist wink Und ich kam bisher noch nicht dazu mir alles im Detail durchzulesen! Kommt aber noch...

    lg

    Key Killer

    610 Posts

  • #6, by AlexWednesday, 10. March 2010, 22:53 16 years ago
    danke schon mal für eure Beiträge. Wie Marvel bereits gesagt hat, die Seite ist ja noch nicht offiziell online, dadurch kennen die wenigsten das Forum. Außerdem ist es vielleicht eh nicht schlecht, wenn hier nicht zuviele User posten, dann bleibt das noch einigermaßen übersichtlich.

    Wäre gut wenn ihr zwei die wichtigsten Punkte ausdiskutieren könntet. Ich als nicht 3d-Tool-User kann da leider nicht allzu viel mitreden. Mir wäre nur wichtig, dass auch die Anforderungen so simpel und überschaubar wie möglich bleiben. Der Aufwand für eine erste brauchbare Version sollte so niedrig wie möglich sein. Natürlich kann man sich auch gleich überlegen, wie man das in späteren Schritten erweitern und verbessern kann.

    zum Format: ist Collada nun das Format das wir verwenden sollen? oder besser doch 3ds fürs Modell und collada für die Animationen? kann man jede Animation in einer eigenen Datei speichern?

    Kameraposition: die Skizze von Danny finde ich gut, allerdings glaube ich nicht dass es so funktionieren kann. Die Kamera ist ja auf der Kulisse nicht sichtbar, sie zeigt die Kulisse und kann dadurch auch nicht auf der Kulisse angepasst werden. Wahrscheinlich müsste man die Kamera rein durch Parameter bestimmen. Ist aber glaub ich nicht wirklich ein Problem. Man gibt dann Position, Öffnungswinkel, Blickrichtung etc. an

    Lichtquellen: hier würde ich genauso wie für die Kamera verfahren

    Umgebungsdefinition: das ist wohl das mit Abstand schwierigste. Irgendwie muss man definieren, welche Raumkoordinaten die Punkte der Kulisse haben. Dann macht ja erst das setzen der Kamera und der Lichtquellen Sinn, wenn es einen Bezug in der Kulisse gibt. Und die Person kann in der korrekten Größe und Position gerendert werden. Die Tiefenmap wird denke ich nicht reichen, da hier ja die Dimensionen fehlen. Und für mögliche Schatten wäre es auch nicht geeignet, weil die nicht sichtbaren Flächen der Objekte so nicht definiert sind (z.b. Rückseite vom Felsen). Vielleicht könnte man im Visionaire Editor Dreiecke zeichnen (auf der Kulisse) und man gibt dann für jeden Punkt die Raumkoordinaten an. Aber ist halt auch die Frage ob der User dann damit überhaupt sinnvoll die Umgebung definieren kann. Einen 3d-Editor in Visionaire möchte ich eher vermeiden. Das ist viel Aufwand, und bringt glaub ich auch nicht wirklich was, weil man die Kulisse ja nur aus einer Perspektive sieht.

    Effekt: Cell-Shading mit Parametrisierung für dicke der Striche, Farbe, Intensität, Anti-aliasing.

    Schatten: das sollten wir besser erst für eine spätere Version aufheben und uns dann den Kopf darüber zerbrechen wink

    Great Poster

    378 Posts

  • #7, by JackMcRipThursday, 11. March 2010, 00:27 16 years ago
    Wie hat Wintermute das denn gelöst ?
    Ein riesen Vorteil dieser 3D-Geschichte ist ja, das die Hauptperson nicht mehr in mehreren Ausrichtungen erstellt werden muß.

    Zusätzlich hat es auch auch den Vorteil, dass es damit nur noch ein kleiner Schritt zu dem Real-3D ist, was ja in aller Munde ist. (Kino - Avatar, CeBit - 3D-Fernseher)

    Bei dem Format muß Du schauen womit Du am ehesten zurecht kommst glaube ich.

    Ich benutze fast immer das .obj wenn ich ex/importiere da ich zu ZBrush und zurück lade.
    Mehr nicht.
    Den Rest mache ich in Cinema 4D.
    Das hilft uns aber hier nicht weiter...

    Die schnellste Version ist, Du machst Dich an die Charaktere.
    Kriegst Du das überhaupt programmiert ?
    Das wäre der Anfang.
    Ich würde Collada nehmen, weiß aber natürlich nicht ob Du da an eine Beschränkung kommst. Ich denke aber eher nicht.

    Vielleicht wäre der Anfang ein Collada-Viewer im C++ Source-Code ?!
    c++ : http://ballistic3d.com/ballisticviewer.html
    Java : http://pellej.com/?page_id=37
    so : http://www.gamedev.net/community/forums/topic.asp?topic_id=4...

    Collada hat auch den Vorteil, daß es ein XML-Format ist und im Texteditor geöffnet werden kann.
    Du bräuchtest jetzt mal einen Chrakter im Colada-Format, oder ?


    Ich helfe gerne, frage mich aber ob es nicht sinnvoller wäre die Zeit in die Entwicklung der bestehenden Engine für andere Plattformen zu verwenden !?!
    NDS, IPhone, u.s.w.
    Vielleicht ja auch als JavaAplet den VisPlayer !?

    Forum Fan

    115 Posts

  • #8, by AlexThursday, 11. March 2010, 22:41 16 years ago
    Wintermute: müsste ich mir mal ansehen wie es da gelöst ist. Wobei Danny gesagt hat, dass er es probiert hat aber nicht damit zurecht gekommen ist.

    Format: sicher ist es wichtig, dass es zum beim Programmieren leicht eingebunden werden kann. Noch wichtiger ist allerdings, dass die 3d-Programme mit denen ihr so arbeitet, dieses Format unterstützen. Wenn das mit Collada der Fall ist, dann sollten wir wahrscheinlich das nehmen.

    allgemeine Entwicklung: Die Umsetzung würde in einem Projekt mit Zusammenarbeit der Uni gemacht, sofern sich jemand für das Projekt findet. Deshalb würde mich das nicht wirklich viel Zeit kosten. Ich will mich nur mal informieren und die grundlegenden Anforderungen definieren, damit ich das Projekt ausschreiben kann und auch ungefähr bescheid weiß wie es funktionieren sollte.

    Great Poster

    378 Posts

  • #9, by AlexWednesday, 17. March 2010, 09:02 16 years ago
    keine weiteren Bemerkungen, Ideen, Vorschläge?

    Umso früher die grundsätzlichen Anforderungen geklärt sind, umso früher kann ich eine Projektbeschreibung erstellen. Und dann besteht auch die Chance, dass sich jemand dafür findet der das umsetzen kann.

    Great Poster

    378 Posts

  • #10, by JackMcRipSunday, 28. March 2010, 09:23 16 years ago
    Mehr fällt mir dazu gerade nicht ein.
    Man müsste ja erstmal resonanz vom Programmierer bekommen was er meint am besten umsetzen zu können.
    Auf dieser Basis lässt sich dann wieder weitergrübeln.

    Bin gespannt :-)

    Forum Fan

    115 Posts

  • #11, by JackMcRipFriday, 02. April 2010, 13:19 16 years ago
    Da ist meine eine gute idee gekommen:

    man sollte sich an der sehr verbreiteten Unity3D-Game Engine anlehnen !
    http://unity3d.com/unity/features/asset-importing

    Man sieht unten in der Import Tabelle, dass die direkt alle Formate unterstützen.
    Also von jedem 3D-Programm das eigene Format.
    Das ist zuviel !

    Aber unten in der Tabelle sieht man das FBX-Format was alle features unterstützt.

    Achtung:
    Von Unity gibt es eine Kostenlose Version.
    Unity3D ist sehr mächtig.
    Man sollte also garnicht erst versuchen in diese Richtung zu gehen.
    Vielleicht sogar eher, eine Kompatibilität zu Unity3D fördern.
    Vielleicht wäre das der Richtige Weg ?

    Man darf nicht vergessen, dass Unity fast sämtliche Platformen einschlißlich der Spielekonsolen bedient.
    Vielleicht wäre es sogar machbar mit der Visionaire-Engine eine ausgabe hinzukriegen die in Unity ladbar und erweiterbar wäre.

    Man hätte den Vorteil einer Superleicht zu bedienenden Adventure-Engine (Visionaire) und die Mächtige erweiterbarkeit nachträglich in Unity.

    Man würde hier Große Firmen anlocken (durch die schnelle Entwicklung in Vis. und den Plattformweiten export durch Unity3D).
    Und Private würde man anlocken weil Unity 3D auch kostenlos erhältlich ist und man unendliche Möglichkeiten hat.

    Edit: http://unity3d.com/company/news/unity-unveils-3rd-generation...

    Was meint Ihr ?


    EDIT: Hier hab ich noch einen Link gefunden zum Thema Kameramapping.
    Und das genau für Adventure: http://www.rockpapershotgun.com/2009/09/21/monkey-island-2s-...
    Wow.
    Man sieht wie wenig Geometrie nötig ist.
    Und da wird das Bild drauf projeziert.
    Im unteren Video sieht das ganz aber sehr nach 3D-Adventure aus...

    Forum Fan

    115 Posts