Hallo,
Super Idee eigentlich !
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.htmhttp://www.wazim.com/Collada_Tutorial_2.htmSource-Codes :
http://www.wazim.com/Projects.htmHier findest Du eine Übersicht der Programme die mit Collada zusammenarbeiten:
http://www.collada.org/mediawiki/index.php/Category
roducts
Vielleicht hilft Dir das hier beim Coden ja weiter:
http://away3d.com/contributorsSoweit 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.
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.
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.