Zum Namen:
"Kit-Bashing" bedeutet "Bausätze schlachten" und kommt aus SciFi-Filmproduktionen in welchen noch echte Modelle gebaut wurden. Und zwar indem man auf dem Markt vorhandene Plastikbausätze (Panzer, Rennautos, ...) in Massen kaufte, auf interessant geformte Einzelteile durchsuchte, und daraus neue Raumschiffe, Waffen, Geräte etc. zusammensetzte. So befindet sich z.B. am Heck eines Speeder-Bikes (Star Wars) ein umgedrehtes Space-Shuttle-Cockpit.
Vorgeschichte:
Ich hatte vergangenes Jahr mal mein
Tool namens "Shapebasher" vorgestellt, das einfache Polygone und -Ebenen aus einer SVG-Datei liest und womit man diese per Nondestructive-Modifier extrudieren kann, ohne dass sich die 2D-Ansciht der Originalzeichnung verliert, und dabei sicherstellt dass alle Polygone planar bleiben.
Das dient(e) dem Zweck, aus einer Illustrator-Konzeptskizze (Seitenriss eines Raumschiffs z.B.) schnell einen 3D-Eindruck zu gewinnen.
Das eigentliche "Shape-Bashing", also das kreative zusammenwürfeln einzelner Formen, geschah dabei aber außerhalb des Tools, und man musste sich zusätzlich um sinnvolle Ebenennamen kümmern.
Das neue Tool:
Was ich diese Tage mache, wird keine Weiter- sondern eine komplette Neuentwicklung eines recht ähnlichen Tools sein: Ich möchte das "Bashen" gerne in mein Tool selbst verlagern. Und dabei aus einer vorher angelegten Shape-Bibliothek (Ordnerstruktur auf Platte) bequem Einzelteile auf die Arbeitsfläche ziehen und modifizieren können. Gut, das können viele 3D-Programme. Mein Tool soll aber vor allem ohne 3D-Kenntnisse und steile Lernkurve bedienbar sein, aso sehr schlank bleiben, und non-destruktiv arbeiten wie beim Shape-Basher.
Negativ ausgedrückt: theoretisch mögliche 3D-Bearbeitungsfunktionen werden dermaßen stark beschnitten, dass sie auch für einen 3D-Noob ohne große Unfälle und Frust zu bedienen sind (Prinzip "Ingame-Editor").
Außerdem neu: die Bibliotheksobjekte sollen keine SVG-Polygone mehr sein, sondern bereits 3D-Meshes.
Wozu kann man das gebrauchen?
- Unterstützung im Ideenfindungs-Workflow.
- Für 2D-Designer, um Konzeptskizzen auf die Schnelle zum Leben zu erwecken.
- Für Programmierer, um Programmer's Art generieren zu können (auch wenn Z-Fighting bei meiner Methode noch an der Tagesordnung ist).
- Zur Weitergabe von Ideen an 3D-Designer als Grundlage für professionelle Modelle.
- In einer Weiterentwicklung: Ingame-Editor, um Custom-Objekte aktiv zu bauen/auszurüsten.
Warum nehme ich dafür kein vorhandenes 3D-Programm, sondern erfinde das Rad neu?
- Weil es Spaß macht.
- Weil ich es customizen und eigene Ideen ausprobieren kann.
- Weil der Punkt Ingame-Editor-Grundlage sehr reizvoll ist.
Roadmap:
Da meine Zeit am Action-Wochenende sehr begrenzt ist, habe ich bis Sonntag Folgendes anvisiert:
- Filebrowser, der immer eingeblendet ist.
- Drag'n'Drop von Objekten auf eine 3D-Arbeitsgitterebene.
- Selektion (wahrscheinlich bekomme ich nur eine (eher nervige) AABB-Selektion hin, Ray-Polygon-Test gibts noch nicht in meiner Engine)
- Objekte ausschließlich auf der Ebene verschieben, um nicht die räumiche Orientierung zu verlieren.
- Ein paar einfache Modifier-Regler für das jeweils selektierte Objekt.
- Speicherformat (Referenzen auf die verwendeten Bibliotheksdateien und Modifier-Einstellungen, wahrscheinlich als lesbares XML).
- Raw-Export der entstandenen Polygonsuppe.
- Sorry, aber da ich in Sachen Files und XML in der AS3-Standardbibliothek am bequemsten unterwegs bin, werde ich diesen Prototypen leider nur als Adobe-AIR-Paket anbieten können.
- Daher wird es auch nicht der schnellste Renderer, aber für die Evaluierung wirds wohl reichen.