IPACS

2. Objekte positionieren

Vorab ein Überblick über die erforderlichen Abschnitte, um ein 3D-Objekt im Blender auf einem Kartenausschnitt exakt zu platzieren und in den Aerofly FS zu exportieren.

  • 2.1 Anlegen eines Blender-Files mit der erforderliche Parent-Child-Hierarchie
  • 2.2 Import eines OSM-Kartenausschnitts (optional)
  • 2.3 Skalieren der importierten Kartenkachel auf reale Abmessungen (optional)
  • 2.4 Platzieren von 3D-Objekten auf der Kartenkachel
  • 2.5 Vorbereiten der Konvertierung
  • 2.6 Konvertieren und Export in den Aerofly FS

2.1 Anlegen eines Blender-Files mit der erforderliche Hierarchie

Die nebenstehende Hierarchie im Blender-File ist erforderlich, da darüber bestimmt wird, welche Elemente in den Aerofly FS exportiert und wie diese positioniert werden. Um das Blender-File richtig anzulegen, wie folgt vorgehen:

  • Ein neues Blender-File mit dem Projektnamen erstellen und gleich abspeichern, damit alle späteren Verknüpfungen nicht nur temporär sind. Der Dateiname muss dabei den gleichen Namen tragen wie der Ordnername des POI.
  • Im Object Mode in die Zeichnungsfläche klicken und im Dialog Shift+A das Element Empty → PlainAxis auswählen und umbenennen in: OBJ

Nun ein weiteres Empty-Element anlegen:

  • Erneut in die Zeichnungsfläche klicken und erneut über den Dialog Shift+A ein weiteres Element Empty → PlainAxis anlegen. Dieses zweite Element wird in __af_backup umbenannt

2.2 Import eines OSM-Kartenausschnitt als Kartenkachel

Die Nutzung des GSI Plugin ist nicht zwingend erforderlich, erleichtert aber die genaue Positionierung von Objekten auf einem Kartenausschnitt aus OpenStreetMap, im Folgenden Kartenkachel genannt.

  • Zunächst in Blender im Object-Mode das Pulldown-Menu des AddOn GIS öffnen und dort Webgeodata → Basemap und als Source OSM auswählen.
  • Nach dem Klick auf OK öffnet sich die Weltkarte. In dieser Karte nun in den gewünschten Karten-Ausschnitt hineinzoomen.

Der Schnittpunkt der X/Y-Achse in der Ansicht wird später der Referenzpunkt für die Kartenkachel sein. Dieser Referenzpunkt muss nicht exakt an der Position des POI liegen.

Der eigentliche Import des Ausschnitts in Blender erfolgt durch Drücken der Taste E. Der Karten-Ausschnitt wird dabei auf eine Ebene gelegt und mit dem Namen EXPORT_OSM_MAPNIK_WM versehen.

Unmittelbar nach dem Import eines Kartenausschnitts den Editor-Type in Blender auf Image-Editor umstellen.

Über den Reiter Open die Fotoauswahl öffnen. Es sollte eine Datei mit dem Namen OSM_MAPNIK_WM.tif zu sehen sein. Die Datei markieren und öffnen. Danach wird der Kartenausschnitt als Bild angezeigt.

Anschließend das Pulldown-Menü Image öffnen und über Save as das Bild abspeichern:

z.B. mit dem Namen OSM_map_001

  • Im PNG-Format,
  • in RGB mit 8 bit und
  • im Unterordner __aerial
  • Im Anschluss das *.tif ein weiteres Mal über Save as abspeichern,
    diesmal aber im JPG-Format mit dem Namen gsat.jpg und ebenfalls im Unterordner __aerial

Der Inhalt des POI-Ordners sollte jetzt wie folgt aussehen:

Im Unterordner __aerial sollte sich der Karten-Ausschnitt als OSM_map_001 und zusätzlich als gsat.jpg befinden.

Die beiden Dateien OSM_MAPNIK_WM.tif und OSM_MAPNIK_WM.wld können jetzt gelöscht werden, diese werden nicht mehr benötigt.

Als Abschluss des Karten-Imports den Editor-Type in Blender wieder von Image-Editor zurück auf 3D-Viewport umstellen.

2.3 Skalieren der importierten Kartenkachel auf reale Abmessungen

Der importierte Kartenausschnitt ist abhängig vom Längen- und Breitengrad der Position nicht exakt skaliert. Wenn jetzt 3D-Objekte wie z.B. Gebäude auf dem Kartenausschnitt positioniert werden, wird deren Postion im Aerofly FS einen Versatz haben. Daher muss jetzt die Kartenkachel als nächstes korrekt skaliert werden.

Dabei hilft ein Script mit dem Namen rescale_script.py, das im Arbeitsordner in diesem Pfad zu finden ist:

tools\scripting\python\blender\

Um das Script zu laden, in Blender den Reiter Scripting auswählen und über Open zum oben genannten Pfad navigieren und das Script rescale_script.py öffnen. Nach dem Öffnen ist das Script in Blender sichtbar. Das Script wird dann später über den Play-Button gestartet.

Bevor das Script ausgeführt wird, muss zuvor noch die zu skalierende Kartenkachel ausgewählt werden. Dazu wieder in den Menüpunkt Modeling wechseln und die zu skalierende Kartenkachel EXPORT_OSM_MAPNIK_WM auswählen.

Hinweis: Wenn die Kartenkachel im Menü Modeling nur grau dargestellt wird, den Rendermodus noch auf Material Preview umstellen.

Nach dem Auswählen der Kartenkachel EXPORT_OSM_MAPNIK_WM jetzt wieder in Scripting wechseln und das Script mit dem Play-Button ausführen.

Im Anschluss sehen wir im Menü Modeling eine zweite Kartenkachel mit dem automatisch eingefügten Suffix _scaled:

EXPORT_OSM_MAPNIK_WM_scaled

Gut zu erkennen ist der Versatz und der Größenunterschied der skalierten Kartenkachel, hier dunkel umrandet.

Die ursprüngliche Kartenkachel„EXPORT_OSM_MAPNIK_WM kann jetzt gelöscht werden, diese wird ab jetzt nicht mehr benötigt.

Die skalierte Kachel wird nun zum Abschluss des Vorgangs unter das Element __af_backup verschoben, um diese später von der Konvertierung auszunehmen.

Hinweis: Um ein Object in Blender zu verschieben, das Objekt mit Shift + Linksklick halten und in __af_backup verschieben.

Das Foto zeigt die erforderliche Anordnung (Hierarchie) der Elemente in Blender.

2.4 Platzieren von 3D-Objekten auf der Kartenkachel

Die nächsten Schritte werden nicht so detailliert beschrieben wie zuvor, da sich das Erstellen von 3D-Objekten und Belegen mit einer Textur nicht vom üblichen Ablauf in Blender unterscheidet. Für dieses Tutorial werden daher nur einfache 3D-Objekte eingefügt, um das Ergebnis bei einem ersten Testdurchlauf schneller kontrollieren zu können.

Für den ersten Testdurchlauf mit Shift+A → Mesh → Cube ein Dummy-Gebäude anlegen und über die Material Properties mit einer Textur belegen, in diesem Beispiel mit der Datei red_color.bmp. Die Abmessung des *.bmp muss quadratisch sein (z.B 1024 x 1024 px) mit 24-Bit-Farbtiefe.

Um das Ergebnis besser darzustellen, wurde das Gebäude etwas kleiner als der Gebäudeumriss erstellt und genau auf der Gebäudeposition ausgerichtet.

Auf der Kartenkachel können beliebig viele Objekte positioniert werden. Alle 3D-Objekte müssen zum Abschluss dieses Schritts aus der Stamm-Collection in Blender nach OBJ verschoben werden. Dazu wieder die 3D-Objekte mit Shift + Linksklick halten und in OBJ verschieben. Das Ergebnis muss so aussehen.

Die Namen der 3D-Objekte und auch der Name der Kartenkachel sind unkritisch und können frei gewählt / geändert werden.

2.5 Vorbereiten der Konvertierung

Bevor die Konvertierung der 3D-Objekte und deren Export in den Aerofly FS gestartet werden kann, muss nun noch dem Converter die Information über die Koordinaten-Position des Szene-Referenzpunkts vorgegeben werden. Der Converter liest diese Information über den Dateinamen der gsat.jpg im Unterordner __aerial aus.

Die Datei gsat.jpg muss dafür nach folgendem Schema umbenannt werden:

__aerial_60000_40000_4_6_200_100_gsat.jpg

Das erste Zahlenpaar 60000_40000 sind die Web-Mercator-Koordinaten des Referenzpunkts der Kartenkachel. Das zweite Zahlenpaar 200_100 ist die Größe der Kartenkachel in Meter.

Die benötigten Angaben befinden sich nach Ausführung des Rescale Scripts im Logfile rescale.log im POI-Projektordner.

Die Werte aus ref_point_fs und image size in Meters werden nun wie folgt in den Dateinamen übertragen:

__aerial_68636.72184_45576.06097_4_6_959_548_gsat.jpg

Hinweis: Die Dezimalstellen des ref_point_fs können übernommen werden, bei der Größenangabe in Meter kann die Angabe auf ganze Zahlen gerundet werden. Damit sind jetzt alle Voraussetzungen erfüllt, die Konvertierung zu starten.

2.6 Konvertieren und Export in den Aerofly FS

Die Konvertierung erfolgt in 2 Schritten. Zuerst diese Batch-Datei im Stammverzeichnis des Arbeitsordners ausführen:

blender_auto_export_poi_windows.bat (Windows)
blender_auto_export_poi_macos.sh (macOS)

Das Ergebnis der Konvertierung sind neue Dateien im Input-Folder des POI:

  • Ein *.log-File,
  • mindestens eine *.tgi
  • und die *.tsc.

Hinweis: Wenn die *.bat-Datei nach wenigen Sekunden stoppt, überprüfe bitte den Blender-Installationspfad in der *.bat bzw. *.sh. Stelle sicher, dass deine installierte Blender-Version mit der im Pfad angegebenen Version übereinstimmt:

Im 2. Schritt nun diese Batch-Datei ausführen, dieser Vorgang konvertiert und schreibt das POI in den Output-Folder:

aerofly-fs-convert-pois-windows.bat (Windows)
aerofly-fs-convert-pois-macos.sh (macOS)

Nach Abschluss der Konvertierung befindet sich im Ordner \output\poi\ der in den Aerofly FS übertragbare POI-Ordner mit einem vergleichbaren Namen wie diesem:

e00851n4797_poi_name

Den kompletten Ordner nun kopieren in “…\Documents\Aerofly FS 4\scenery\poi" Danach den Aerofly FS starten und über das Map-Menü den POI als Startstelle auswählen.

Wenn alles richtig gemacht wurde, sind nun die in Blender positionierten 3D-Objekte im Aerofly FS an korrekter Stelle eingebettet.