NewSydney

SciFi RPG Metropolis

NewSydney 3D – Tools für die Erstellung

By on 28. August 2016

Im folgenden Artikel stellen wir unsere Methode zur Erstellung von NewSydney, dabei gehen wir auch auf unsere Fehlversuche ein und stellen ältere Projekte in diesem Zusammenhang vor.

2D Karten und Stadtpläne

Unsere Handgezeichneten Karten sollen nun in skalierbare Vektorgrafiken umgewandelt werden. Dafür kommen mehrere Tools in Frage. Für die Vektordatenbearbeitung nutzen wir Inkscape. Für die SVG Kartenerstellung evaluieren wir aktuell Polymaps.

3D Programme

Unsere ersten Schritt in der Dritten Grafikdimension haben wir mit Cinema 4D R5 SE unternommen. Nach den ersten rudimentären Schritten vor vielen Jahren (1998/99) und den ersten völlig überzogenen Vorstellungen und Plänen haben wir den Großteil dieser Arbeit unter Cinema 4D CE R6+ getätigt. Diese Arbeiten werden auf bedarfsbasis heute auf Blender 2.7 portiert und genutzt. Dabei fallen zumeist zahlreiche Massnahmen für die Verbesserung der Modelle an. Heute verwenden wir ausschließlich Blender für unsere 3D-Tätigkeiten.

3D City Generatoren

Suicidator City Generator (SCG)

Der SCG ist der Vorgänger von SceneCity und stammt vom gleichen Autor Arnaud Couturier. Dieses Programm hat alle Gebäude prozedural erstellt und war in der Lage verwinkelte Straßensystem zu erzeugen. Aus der (weiten) Entfernung sahen diese Städte sehr natürlich und überzeugend auf. Aus der Nähe jedoch vermisste dieses Programm an Details.

Das Skript wird nicht mehr weiter entwickelt, aber ich habe noch Blender-Versionen auf der Festplatte. Zwischenzeitlich wurde das Programm is SceneCity umbenannt.

SceneCity

Ist ein mittlerweile kommerzielles 3D-Programm zur Städte-Visualisierung. Da wir sehr früh in die Nutzung eingestiegen sind, haben wir Zugriff auf die recht aktuelle Version 0.9. Ein upgrade auf Version 1.0 steht jedoch in kürze an, damit wir am aktuellen Entwicklungsstand teilhaben können. SceneCity ist ein kommerzielles Blender-Addon das im BlenderArtists-Forum betreut wird.

Unlängst haben wir ein Update auf die Version 1.x durchgeführt und mit Freude festgestellt, dass die prozeduralen Gebäude zurück sind. Außerdem kann SceneCity mit rechteckigen Gebäudegrundrissen umgehen, womit einige der länglichen Gebäude etwas effizienter eingesetzt werden können. 

Was wir uns für SceneCity noch wünschen sind gebogene Straßen, Ringstraßen und Autobahnen. Wir bleiben gespannt.

Es gibt noch vieles das wir zu SceneCity erler en müssen, denn das einfache Hochskalieren der Werte führt nicht zu größeren Städten sondern dazu das Blender hängen bleibt. Zudem benötigen wird Distributionstexturen um verschiedene Stadtviertel mit passenden Gebäudetypen zu populieren.

Sehr gut: SceneTerrain und SceneSkies sind Teil der Distribution. Auf diese Beiden Tools gehe ich weiter unten noch ein.

procedural city generation

Das Projekt procedural city generation beschäftigt sich mit den verschiedenen Möglichkeiten 3D Städte automatisiert zu erstellen. Dabei werden durch farbige Texturen verschiedene Parameter der Stadtplanung (gerade oder ringförmige Straßen) abgebildet. Die Dokumentation findet sich auf der Projektseite.

citygen

Another site displaying a prototype procedural city generator and some theoretical insight is located here.

Import / Export

Wir benutzen das Collada-Format (DAE) or Wavefront-Format (OBJ/MTL) um Modelle innerhalb unseres Workflows zwischen den verfügbaren Apps zu transportieren. In einigen Fällen greifen wir aber auch auf andere Formate zurück, insbesondere wenn die Weiterverarbeitung zum Beispiel mit 3D-Druckverfahren geplant sind. Hier ist das Stereolithograpy-Format (STL) gebräuchlich.

Die Konvertierung zwischen DAZ-Studio (4.9) und Blender (2.7x) bereitet unter der Verwendung der OBJ/MTL-Formates einige Probleme. In der Regel importieren wir viele Objekte mit jeweils vielen Materialien, die wiederum meist mehrere (jedoch unterschiedliche viele) Texturen besitzen. Die Glanzwerte und die Bumpwerte sind dabei standardmäßig auf Maximum gesetzt (1.0) und somit für die meisten Materialien viel zu hoch. Die Folge ist das alle Objekte viel zu viel Licht reflektieren und alle Bumpmaps viel zu übertrieben gerendert werden.

Ziel 1 ist es also die Specular Intensity zu reduzieren. Das ist relativ einfach wenn man Glasflächen und andere glänzende Flächen ignoriert und ein Script über alle Materialien laufen läßt. Hinterher müssen jedoch alle glänzenden Objekte wieder angepasst werden. Ein Schritt vom Regen in die Traufe. Zudem werden sehr viele unnötige Material-Dubletten erzeugt, die jeweils eigenständige Namen bekommen. DIes geschieht zumeist nach dem Muster Erstes Objekt in der Liste Originalname.001 und ab dem zweiten Objekt mit gleichen Materialien nach dem Muster Originalname_Objektname.001. Lediglich das Material „Originalname“ würde für alle Objekte ausreichen.

Ziel 2 ist es die Bump Intensity um den Faktor 100 zu reduzieren, also von 1.0 auf 0.01. Leider ist dieser Wert nicht auf die gleiche weise zugänglich wie in dem kleinen Script weiter oben. Es muß der Materialname bekannt sein der Textur-Slot bekannt sein und ob überhaupt eine Bump-Map verwendet wird, bevor der Wert geändert werden kann (soweit unser limitiertes Grundwissen diese Feststellung zulässt). Ein Programmierer könnte jetzt alle Materialien nach Texturen durchsuchen, dann alle Texturslots der einzelnen Materialen auf eine Textur mit dem Wort „Bump“ im Namen durchsuchen und Materialname sowie Texturslot in eine Variablenliste schreiben. In einem zweiten Step könnte er für jeden Eintrag in der Liste die Normal-Werte des referenzierten Texturslots mit dem Zielwert (0.01) überschreiben. Fertig. Ein Programmierer könnte das…

Das gleiche Problem besteht beim Collada-Format beim Export aus dieser App (DAZ-Studio), so das die Vermutung naheliegt, das diese Wertebereiche dort einen anderen Einfluß haben oder sogar invertiert sind. Evtl. findet sich eine Möglichkeit die Werte vor dem Export anzupassen. Wir werden darüber berichten.

Zur Werkzeugleiste springen