Landschaftsgenerierung/Blender

Aus PantheonWiki


WARNUNG: Durch die Arbeit am RL-Blender-Skript ändern sich manche der hier beschriebenen Arbeitsschritte täglich. Mit Vorsicht genießen und im Zweifelsfall Askan fragen.

Wenn ihr Blender das erste Mal startet, habt Ihr wahrscheinlich eine ziemlich verwirrende Leiste mit vielen nichtssagenden Buttons unten und eine Fläche mit Raster darüber. Als erstes könnt Ihr diese Oberfläche Euren Wünschen anpassen, d.h das Fenster mit den Buttons soll nach rechts oder Ihr wollt drei Achsen und eine Kameraansicht statt einer, etc. Das Ändern geht ganz einfach und Blender ist längst nicht so schrecklich kompliziert, wie es auf dem ersten Blick den Anschein hat.

Inhaltsverzeichnis

Tutorial

Download bei http://www.blender3d.org

Quickstart bei http://www.blender3d.org/cms/Quickstart.434.0.html

Fenster-Setup

Momentan seht Ihr zwei Fenster. Zwischen der 3d-Ansicht und der Buttonleiste unten verläuft ein horizontaler Strich (vgl. (1) ). Mit einem Rechtsklick darauf könnt Ihr zwischen „Split Area“, „Join Areas“, und „Add/No Header“ wählen. Klickt dort vorerst auf „Join Areas“, und aus den zwei Fenstern wird eins. An einer beliebigen Kante dieses Fensters (z.b. (2) ) könnt Ihr mit einem weiteren Rechtsklick „Split Area“ auswählen, und das neue Fenster mit einer Buttonleiste (siehe Symbol (3) ) versehen. „Add Header“ versieht das Fenster dann noch mit einer Menüleiste. Sehen die Buttons verschoben aus, so könnt Ihr mit einem Rechtsklick in das entsprechende Fenster unter „Panel Alignment“ die Buttonleise horizontal oder vertikal anpassen.

Erste Schritte

Für dieses Tutorial benötigt Ihr ein 3d-Fenster und die Buttonleise mit den Mesh Editing-Symbolen (F9). Im 3d-Fenster befinden sich bereits ein Licht (kleiner gelber Knopf), eine Kamera (schwarze Pyramide mit Pfeil) und ein selektiertes Face (rosa Quadrat). Das rot-weisse Fadenkreuz ist der Punkt, um den die Kamera rotiert. Positioniert den Mauszeiger mal beliebig im 3d-Fenster. Durch drücken des Mausrades könnt Ihr nun die Kamera beliebig drehen, Shift+Mausradtaste bewegt die Kamera seitwärts, und mit dem Mausrad könnt Ihr zoomen.

Modelle platzieren

Export

Blender 2.40

Um erfolgreich .scene.xml Dateien zu exportieren muss man den dotscene Exporter leicht modifizieren.

Einfach nach 'qw' suchen und zwischen #position und #scale folgendes ersetzen:

			# position
			fileObject.write(self._indent(indent+1) + \
							"<position x=\"%.6f\" y=\"%.6f\" z=\"%.6f\"/>\n" % ( matrix.translationPart().x * 100.0, matrix.translationPart().y * 100.0, matrix.translationPart().z * 100.0 ))
			# rotation
			rot = objectMatrix.toQuat()
			fileObject.write(self._indent(indent+1) + \
							"<rotation qx=\"%.6f\" qy=\"%.6f\" qz=\"%.6f\" qw=\"%.6f\"/>\n" % (rot.x, rot.z, -rot.y, rot.w))
			rot = matrix.toQuat()
			# scale

Die Skalierung der Positionen auf der gesamten Map lässt sich durch 100.0 anpassen, je nach dem welche Größen man in blender verwendet (100.0 ist für 1 Unit -> 1m ) Weiterhin sollte man um 90° an der X Achse drehen.

http://www.ogre3d.org/wiki/index.php/Tools:_Blender#dotScene_Exporter

Testen in RL

Alle Modelle die man in der .scene verlinkt hat, müssen in common/models oder in [modulname]/models als .mesh vorliegen.

Alle .materials die zu diesen Modellen gehören müssen in common/materials oder in [modulname]/materials liegen.

Alle Texturen die zu diesen Materials gehören müssen in common/materials/... oder in [modulname]/materials/... liegen. Dabei muss das Verzeichnis ... als Texturverzeichnis in der conf/moduleconfig.cfg eingetragen sein. (Bitte .. durch einen sinnvollen Wert ersetzen)

TextureDir=tiled
TextureDir=...

Tipps

Mit file - append - object in Blender aus anderen Blender Dateien einfügen, Objekt wird bei 0,0,0 platziert.

Blender fragt nicht, ob man speichern will, wenn Ihr es schliesst. Es speichert automatisch beim Beenden und in einstellbaren Intervallen, in sein temp-Verzeichnis.

Beim exportieren von .mesh : Vor dem Export nochmal alle eventuell deckungsgleichen Punkte zusammenfügen, um die Berechnung zu vereinfachen und die Gefahr von Löchern zu verringern. Dafür markiert man das gewünschte Mesh und öffnet (im Edit-Mode) ein Button-Fenster wo man ins Editing (F9) wechselt. Dort gibt man im Zahlenfenster ganz unten links im ersten Block von "Mesh Tools" einen sehr geringen Wert an (Vertices bis zu diesem Abstand werden verschmolzen. Theoretisch kann man also auch hier ansetzen, wenn man den Polycount reduzieren möchte) und betätigt "Remove Double".

FAQ

All meine Objekte werden beim Laden nicht gefunden, was soll ich machen?

Bei .scene-Export mehrerer Objekte gleichen Typs vergibt Blender unterschiedliche Namen:

z.B.:

      <entity name="arc_zaun_01.001" meshFile="arc_zaun_01.mesh"/>

      <entity name="arc_zaun_01" meshFile="arc_zaun_01.001.mesh"/>

Um das zu vermeiden die Objekte mit Alt+D duplizieren (verlinkt), nicht mit Shift+D kopieren!

Wenn schon geschehen dann müssen alle fehlbenannten Instanzen in Blender umbenannt werden.

Im ButtonView bei Blender

blender_object.png

  • ME:nat_baum_1 ist der Name des Meshes, dies wird später zu nat_baum_1.mesh
  • OB:Baum_12.002 ist der Name der Instanz, diese ist kommt nur einmal vor
  • 3 ist die Anzahl der Instanzen des Meshes
  • Die ^v-Pfeile erlauben es ein anderes Mesh für diese Instanz zu wählen

Für alle fehlkopierten Objekte müssen alle Objekte mit dem korrekt benannten Mesh versehen werden.


Wie füge ich vielen Objekten auf einmal eine Logic Property hinzu?

Alle Objekte auswählen, die Property hinzufügen und einstellen (F4) (dabei hat nur das aktive Object die Property bekommen, aber nicht alle ausgewählten ).

Dann mit STRG+C oder 'Copy Attributes' das Eigenschaften-Kopier-Popup öffnen.

Dort 'Properties' auswählen.

Dann die gewünschte Property, die man zuvor erstellt hatte, auswählen.

Nun haben alle Objekte diese Property.


Wie packe ich viele Objekte auf einmal in einen SceneNode?

Dafür wollen wir die "Parent"-Funktion von Blender nutzen. Das funktioniert nur noch nicht so, wie wir uns das vorstellen.

Persönliche Werkzeuge
Link zur berliOS-Projektseite