Model/Map Formate
-
Guten Tag,
ich kann bereits mit OpenGL/Direct3D zeichnen etc. und würde mich jetzt ganz gerne mal daran machen, komplexere Models oder Szenen zu laden. (Hierfür suche ich jetzt gute Formate.) Erstellt werden solche Dinge wohl in Maya, 3DS-Max oder Blender. Einen Engine-eigenen Editor habe ich logischerweise nicht, da ich keine Engine nutze. Die Formate sollten zudem halbwegs ordentlich beschrieben sein, sodass ich mir meinen Loader selbst schreiben kann. Bisher war für mich das größte Problem eigentlich ein Format zu finden, das man aus allen genannten Programmen exportieren, oder zumindest einfach umwandelt kann.
Wie man bestimmt merkt, habe ich auf dem Gebiet noch recht wenig Erfahrung. Ihr könnt also ruhig etwas weiter ausholen. Was ich mir bis jetzt so zusammengereimt habe: Ein Spiel hat grundsätzlich 3 verschiedene Formate, eins für die Karten selbst, eins für statische Meshes und eins für Models.
Für die Karten werde ich mir vermutlich selbst was ausdenken müssen, falls ich dort Dinge wie Trigger abspeichern möchte. Trotzdem wäre ein geeignetes Grundformat, das ich aus z.B. Blender exportieren kann natürlich schön, sodass ich meinen Kram dann nur noch dazwischen schreiben muss.
Für statische Meshes habe ich schon einen Liebling: Wavefront obj. Das Format scheint weit verbreitet zu sein und ein erster Prototyp eines Parsers für dieses Format ging mir leicht von der Hand.
Bei animierten Models bin ich völlig ratlos. Ich denke hier gibt es grundsätzlich zwei Konzepte: Keyframes und Knochen (a.k.a. Bones). Letzteres scheint mit angesichts der Jahreszahl auf meinem Kalender irgendwie angebrachter. Bisher habe ich vor allem den Tipp MD2/MD3 gefunden, das sind allerdings auf Keyframes basierende Formate. MD4 gefällt mir irgendwie auch nicht so, ein nicht-binäres Format wäre irgendwie schöner. (Ist aber nicht Hauptkriterium.) Wirklich wichtig ist mir eigentlich nur, dass man das Format vernünftig aus möglichst vielen 3D-Programmen exportieren kann.
Habt ihr da irgendwelche Tipps, die das Vorgehen ab diesem Stadium beschreiben? Ich stehe gerade etwas auf dem Schlauch, vielleicht ist ja jemand so nett und gibt mir gleich eine kleine Übersicht über das Thema.
-
Entwickle deine eigenen, an dein Spiel angepassten Formate.
Schau dir auch mal assimp an
-
Eigentlich ist das gar keine schlechte Idee. Und gleichzeitig schreibe ich dann für verschiedene Formate (Obj, ??, ??) Programme, die mir das in mein Format umwandeln.
Die Frage von oben bleibt aber insofern offen, als dass ich gerne ein paar Formate kennen würde, die in etwa das können, was ich brauche. (Ein "Scenen-Format" (für die Karte) und ein Format für animierte Knochen.) Damit meine ich Formate, die man möglichst aus Maya/3DS-Max/Blender exportieren kann, damit ich irgendwie weiß, wo ich anknüpfen muss.
-
Modelmacher schrieb:
Damit meine ich Formate, die man möglichst aus Maya/3DS-Max/Blender exportieren kann, damit ich irgendwie weiß, wo ich anknüpfen muss.
fbx, Collada. Du könntest aber auch direkt Export Plugins für die entsprechenden Modeling Tools schreiben, dann sparst du dir den Zwischenschritt...
-
Was das "Scenen-Format" angeht würd ich mal sagen: Das hängt davon ab was für eine Art Scene du hast
-
Ich möchte mich bis hierhin schon mal bedanken, schnelle und gute Hilfe!
dot schrieb:
Was das "Scenen-Format" angeht würd ich mal sagen: Das hängt davon ab was für eine Art Scene du hast
Nun ja, was würde denn eine Scene aus einem herkömmlichen Ego-Shooter von der eines 3D-Rollenspiels unterscheiden? Ist das dann nicht eher von der Kamera-Einstellung abhängig? Für ein Strategiespiel braucht man natürlich ein anderes Format, das sehe ich ein.
Also was brauche ich da.. Die Grundstruktur sollte natürlich da sein, also die Geometrie. Sowohl Außen- (Skybox?) als auch Innenräume sollten möglich sein. Die Umgebung selbst muss nicht zerstörbar sein (das stelle ich mir auch Programmiertechnisch ziemlich haarig vor). Jetzt ist die Frage, wie man Spielinterne Dinge da rein bekommt. Könnte man sein 3D-Programm vernünftig so modifizieren, dass das als Map-Editor herhalten kann? Bisher hatte ich mir das eigentlich so gedacht, dass ich die Geometrie und einzelne Meshes/Models etc. in einem 3D-Programm erstelle und diese dann nachher in einem einfach gehaltenen Editor zusammenfüge. (Mit dem würde man dann z.B. Kisten in die Landschaft setzen, Trigger einfügen, etc.)
Ist das so für eine Einzelperson überhaupt gut umzusetzen? (C++ habe ich ganz gut drauf und auch OpenGL birgt so langsam immer weniger Geheimnisse. Mir fehlt es aber gänzlich an Erfahrung in diesem Bereich, das komplexeste Spiel was ich mal gebaut habe war wohl ein besseres Snake mit Mapeditor. Gleichzeitig habe ich aber mehr oder weniger viel Zeit und wäre durchaus bereit ein paar Monate daran zu basteln.)Bevor ich's vergesse: Licht braucht die Szene natürlich auch noch.
-
Modelmacher schrieb:
Nun ja, was würde denn eine Scene aus einem herkömmlichen Ego-Shooter von der eines 3D-Rollenspiels unterscheiden?
So ziemlich alles. Die Perspektive (First vs. 3rd Person), die Art der Umgebung (Indoor vs. Outdoor) und der Gegner. Eine Welt für ein RPG enthält NPCs, Quests, ... Ein Egoshooter dagegen Türen, Lifte, ...
Wenn es ein Shooter werden soll, dann würde ich dir mal dazu raten, einen Loader für Quake 2, Quake 3 oder Half-Life Maps zu schreiben. Der Hammer Editor (WorldCraft) von Valve ist (zumindest in älteren Versionen) sehr gut zu Customizen.
-
dot schrieb:
Modelmacher schrieb:
Nun ja, was würde denn eine Scene aus einem herkömmlichen Ego-Shooter von der eines 3D-Rollenspiels unterscheiden?
So ziemlich alles. Die Perspektive (First vs. 3rd Person), die Art der Umgebung (Indoor vs. Outdoor) und der Gegner. Eine Welt für ein RPG enthält NPCs, Quests, ... Ein Egoshooter dagegen Türen, Lifte, ...
Es soll eher ein Rollenspiel werden. Jedenfalls 3rd-Person. Ich dachte, die Perspektive würde durch mich festgelegt, hat das Einfluss auf das Map-Format? Deshalb denke ich auch, dass ich das End-Format selbst schreiben muss, da 3D-Programme wohl keine Unterstützung für NPC's / Quests haben werden. Indoor/Outdoor sollte eigentlich beides möglich sein. Wobei die Decke in RPG's natürlich ein ganzes Stück höher ist als in Shootern. (Durch Lufschächte kriecht man dann doch eher selten. :D)
Das hat alles Einfluss auf das Format für die Geometrie? Oder verstehe ich nur "Scenen-Format" falsch? Ich muss zugeben den Begriff wohl aufgeschnappt zu haben - und jetzt verwende ich ihn als "Map-Format".