Wir bauen einen Wald (.for)

Durchschnitt: 5 (3 Bewertungen)

Vielfach stehen auf unseren Flugplätzen auch Bäume herum. Jetzt könnte man natürlich die Autogen-Wälder benutzen und hoffen, dass X-Plane die Bäume richtig platziert. Leider stehen die bei mir immer in den Gebäuden, keine Ahnung warum Smile Oder wir setzen jeden Baum einzeln. Ist bei einem größeren Waldstück innerhalb des Flughafens eher mühsam und fördert auch nicht gerade die fps.

Also bauen wir uns einen Wald!

Was brauchen wir dazu?

Um einen Wald (.for) selbst zu machen, brauchen wir:

  • Ein Grafikprogramm zum Zeichnen der Bäume; ich verwende GIMP
  • Einen Grafik-Viewer; ich verwende dazu IrfanView
  • Einen Texteditor, der keine Formatierungs oder Steuerzeichen einfügt.; ich verwende den Windows-eigenen Editor oder Notepad++

Wir beginnen mit den einzelnen Bäumen. Auf der rechten Seite ist die Datei, wie ich sie für meine Wälder benutze, abgebildet. Ich verwende eine Größe von 1024x1024 px, es schaut aber mit 512x512px noch gut aus.

Wichtig dabei ist, dass jeder Baum "einzeln steht"; d.h. dass wir um jeden Baum ein Rechteck ziehen können, ohne einen Teil eines anderen Baumes mitzunehmen. Und natürlich "frei stellen"; also mit transparentem Hintergrund arbeiten.

Wie man sieht, hab ich mal verschiedene Bäume (Laub-, Nadel-Bäume, Büsche, ...) in eine Datei zusammenkopiert. Das hat den Vorteil, dass man ein und die selbe Textur mit mehreren .for-Definitionen verwenden kann und so einen Nadel-, Laub- oder Mischwald bekommt und X-Plane trotzdem nur eine Textur laden muss.

Anmerkung: auch ich hab diese Bäume nicht selbst gezeichnet, sondern von verschiedenen Photos zusammenkopiert. Wer meine Bäume verwenden will: RechtKlick und "speichern als", Klar?

 

 

 

Wie wird jetzt aus unserer Textur-Datei ein Wald.

Dazu sehen wir uns mal die Definition der "Forests" (.for) Dateien an, die wir HIER finden können. Ich beschränke mich hier auf die Funktionen, die vor der Version 10 schon funktionierten, damit meine Wälder auch in X-Plane 9.7 funktionieren. Wer möchte kann natürlich die neuen Funktionen nutzen.

Sehen wir uns mal an, was wir im Detail in unserer .for-Definition brauchen. Wir öffnen den Texteditor mit einer leeren Datei und tragen mal ein:

A
800
FOREST

Das ist der Standard-Kopf, den wir ja schon kennen. Der Eintrag "800" besagt, dass wir die Spezifikation Vers. 8 benutzen. Wer die Funktionen der Vers. 10 nutzen will, sollte hier "1000" eintragen.

Der Eintrag

TEXTURE Trees_01.png

weist auf unsere zuerst erstellte und als "Trees_01.png" abgespeicherte Datei.

Und den Eintrag

LOD 0.0 10000.0

kennen wir auch schon, er weist X-Plane an, unseren Wald von einer Entfernung von 0m bis zu 10km zu zeichnen.

Die Anweisung

SCALE_X 1024
SCALE_Y 1024

sagt X-Plane wie groß unsere Textur-Datei ist. Dies braucht X-Plane um später einzelne Bäume aus der Textur-Datei heraus zu lösen.

Ab jetzt spezifizieren wir, wie unser Wald aussehen soll:

SPACING 5.00 5.00
RANDOM 3.00 3.00

Diese beiden Einträge steuern, wie X-Plane die einzelnen Bäume setzt: In das mit "SPACING" definierte Rechteck wird genau ein Baum gesetzt. Je größer diese Werte, desto "lichter" wird unser Wald. Die Werte sind übrigens in Meter! Der Eintrag "RANDOM" definiert, wie weit ein Baum von der Mitte des mit "SPACING" definierten Rechtecks entfernt erstellt wird. Bei "0.00 0.00" stehen die Bäume in "Reih und Glied" (kann für Weingärten und ähnliche, regelmäßige Pflanzungen genutzt werden).

Jetzt wirds mühsam!

#                                         height
#    s     t     w     y     offset freq  min   max   quads  type  name
TREE 0     770   174   254   87     5     2     16    4      0     Fichte1
TREE 174   770   166   254   83     5     2     16    4      0     Fichte2
TREE 340   770   150   254   75     5     2     16    4      0     Fichte3
TREE 490   770   130   254   65     5     2     16    4      0     Fichte4
TREE 620   770   182   254   91     5     2     10    4      1     Laub1
TREE 802   770   222   254   111    5     2     10    4      1     Laub2
TREE 0     510   264   260   132    5     2     10    4      1     Laub3
TREE 264   510   220   260   110    5     2     10    4      1     Laub4
TREE 484   510   184   260   82     5     2     10    4      1     Laub5
TREE 668   510   174   260   87     5     2     10    4      1     Laub6
TREE 842   510   182   260   91     5     2     10    4      1     Laub7
TREE 0     255   266   254   133    5     2     10    4      1     Laub8
TREE 266   255   274   254   137    5     2     10    4      1     Laub9
TREE 540   255   246   254   123    5     2     10    4      1     Laub10
TREE 786   255   238   254   118    5     2     10    4      1     Laub11
TREE 0     0     224   256   112    5     2     12    4      1     Laub12
TREE 224   0     224   256   112    5     2     8     4      1     Laub13
TREE 448   0     290   256   145    5     2     10    4      1     Laub14
TREE 738   0     202   256   101    5     2     14    4      1     Laub15

Diese Einträge definieren jeden einzelnen Baum in unserer Textur-Datei. Die beiden Zeilen, die mit "#" beginnen, sind nicht erforderlich, erleichtern aber (zumindest mir) das Eintragen der Werte. Diese bedeuten im Einzelnen:

s die horizontale Koordinate der linken unteren Ecke des Rechtecks um den gewünschten Baum
t die vertikale Koordinate der linken unteren Ecke des Rechtecks um den gewünschten Baum
w

die Breite des Rechtecks um den gewünschten Baum

y die Höhe des Rechtecks um den gewünschten Baum
offset der Abstand von der linken Ecke das Rechtecks zur Mitte des Baumes (dem Stamm). An dieser Stelle fügt X-Plane die Flächen, aus denen der Baum bestehen wird, zusammen.
frequency Die Anzahl, wie oft der Baum in unserem Wald benutzt werden soll. Die Summe aller "frequency"-Einträge muss 100 ergeben!
min (height) Die minimale Höhe das Baumes, die X-Plane in den Wald stellen soll
max (height) Die maximale Höhe das Baumes, die X-Plane in den Wald stellen soll
quads Die Anzahl der Polygone, die X-Plane zum Zeichnen des Baumes benutzes soll. Bei "quads"=1 wird ein zweidimensionaler Baum gezeichnet, bei 2 stehen 2 Flächen im rechten Winkel zu einander. Max = 4!
type Hier können mehrere Typen von Bäumen spezifiziert werden. Wozu das gut ist, hab ich auch noch nicht durchschaut, vielleicht kann hier jemand aufklären?
name Hier kann ein Name eingetragen werden, der uns beim Erstellen der .for-Datei hilft, diese auseinander zu halten.

Also rein ins Grafikprogramm und Pixel zählen. Ich hab da aber ein nettes Tool gefunden, das uns dabei hilft. Machen wir nur noch schnell den letzten Eintrag fertig:

SKIP_SURFACE water

sagt X-Plane, dass im Wasser keine Bäume wachsen (Mangroven sind in Europa eher selten anzutreffen .-) ).

Auf der Seite http://xsmart-plane.com/xsmartforests/ findet man das Tool "XSmartForests 1.0 alpha - Oct 5 2012". Dieses sehr hilfreiche Tool unterstützt uns bei der Erstellung unserer .for-Definition:

Nach dem Starten öffnen sich mal ein paar leere Felder in einem Fenster. Über das Menu "File / Open Texture" können wir unsere Textur-Datei laden. Diese erscheint dann im linken großen Fenster.

In den Feldern links daneben können wir die bekannten Werte für LOD, SPACING, RANDOM und die Anweisung "SKIP WATER" eingeben.

An den ausgegrauten Einträgen sieht man, dass der Autor an den X-Plane 10-Parametern arbeitet.

Was es mit den "Groups" auf sich hat, hab ich noch nicht durchschaut. Wenn wer drauf kommt, bitte um Info!

Für mich interessant ist das Feld "Table of Trees". Das ist im Augenblick noch leer.

Jetzt Klicken wir auf "Add Tree". Es öffnet sich ein Fenster, in dem wir die Werte für den ersten Baum eingeben können: Den Namen für den Baum, die Quads aus denen der Baum gebaut werden soll, die Häufigkeit (Occurence) mit der der Baum im Wald vorkommen soll, die Group und die minimale und maximale Höhe des Baumes. Sind alle Werte eingetragen, Klicken wir auf OK. Jetzt erscheinen unsere Werte in der "Table of Trees".

Gleichzeitig erscheint im Tree-Editor ein Rechteck. Dieses können wir mit der Maus über unseren ersten Baum ziehen. Auch die Ränder können wir mit der Maus so setzen, dass unser Baum (und nur der) innerhalb des Rechtecks liegt. Auch die Mittellinie des Rechtecks können wir so in die Mitte des Stammes ziehen (nützlich für asymmetrische Bäume).

Während wir dies tun, sehen wir im rechten Fenster (Tree Preview) das Ergebnis. Dort können wir unseren Baum mit der Maus auch beliebig drehen und so von allen Seiten ansehen.

Ist alles Ok, wiederholen wir dies für alle gewünschten Bäume.

Wir müssen nicht in jedem "Forest" alle Bäume einer Textur verwenden. Ich hab mir aus der selben Textur einen Nadel-, einen Laub- und einen Mischwald sowie eine Buschgruppe gebaut.

Dazu definieren wir zuerst alle Nadelbäume, geben links oben einen Namen für diesen Wald ein und Klicken rechts unten auf "Save". Jetzt speichert das Programm die .for-Definition unter diesem Namen. Jetzt definiere ich alle Laubbäume, Namen ändern, speichern, usw.

Wir haben jetzt eine oder mehrere .for-Dateien und unsere Textur. Diese kopieren wir in unseren "Custom Scenery"-Ordner. Ein Unterverzeichnis ist natürlich auch möglich.

Jetzt öffnen wir den WED (für den OE such ich noch einen Co-Autor Smile ) . In der linken Liste (Library) finden wir jetzt unsere(n) .for-Definition(en). Wenn wir darauf Klicken, wählt der WED das "Forests"-Tool . Damit zeichnen wir jetzt unser Waldstück, indem wir der Reihe nach auf die Ecken des Gebiets klicken, in dem die Bäume wachsen sollen. WED empfielt dies gegen den Uhrzeigersinn zu machen. Ich weiss zwar nicht warum, denn es funktioniert auch anders rum.

Haben wir alle Ecken definiert, Klicken wir auf das "Vertex"-Tool oder Drücken ENTER. Daraufhin erscheint unser Wald in der Ressourcen-Liste auf der rechten Seite und rechts unten erscheinen die Eigenschaften dieses Waldstücks. Der Eintrag bei Density sollte eigentlich die Dichte des Waldstücls verändern, ich kann aber keine Veränderung feststellen. Wenn ich einen dichteren Wald möchte, reduziere ich einfach die Werte bei SPACING und RANDOM (geht ich im Nachhinein mit dem Text-Editor).

Bei "Fill Mode" haben wir drei Optionen:

  • Area:    Die gesamte Fläche wir mit Bäumen gefüllt.
  • Linear:  Bäume wachsen nur an durch die Punkte definierten Linien
  • Points:  Nur wo wir einen Punkt gesetzt haben, wird ein Baum gezeichnet.

Aber Achtung: Soll die Szenerie auch unter X-Plane 9.70 laufen, ist nur der "Fill Mode" "Area" zulässig!

Hinweis: Sollte die grüne Fläche innerhalb unseres Waldes bei der weiteren Arbeit an der Szenerie stören, einfach auf "Hidden" klicken. Aber nachher wieder einschalten, sonst erscheint in X-Plane kein Wald!

Und jetzt viel Spass beim "Förstern"

Gerhard


Wenn Dir dieses Tutorial gefällt, freuen wir uns über Deine Spende: