|
Dank der Hilfe von Henning
Schäfer ist es uns möglich dieses Streckebau Tutorial
auf unseren Seiten anbieten zu können.
Ihr wollt weitere Informationen ? Dann besucht seine Homepage
!
1. Allgemeine Tipps und organisation eines Projektes
Es empfiehlt sich, vor dem Beginn eines neuen Projektes zunächst
einmal einen groben Plan des Streckenverlaufs sowie etwas detailliertere
Pläne für die wichtigen Knotenpunkte (Abzweigungen,
Bahnhöfe etc.) zu erstellen. Wenn man eine Originalstrecke
nachbauen möchte, ist es natürlich am Besten, wenn man
die original - Streckenpläne erhalten kann. Da dies jedoch
meist nicht möglich ist, genügt auch gute Streckenkenntnis
als Passagier (wegen der Szenerie) sowie eine detailreiche Landkarte
(Straßenkarte, Vermessungsamt), in der Kurven etc. recht
genau eingetragen sind. Von Vorteil ist auch eine kleine Foto
- Tour entlang der Strecke, um Ansichten von Gebäuden (grundsätzlich
immer frontal von einer Breit- und einer Schmalseite, hier ist
ein Shiftobjektiv optimal) und Rundumblicke in den Bahnhöfen
etc. zu erstellen. Ganz Optimal wäre natürlich ein Videomitschnitt
der Fahrt aus dem Führerstand heraus.
Anschließend sollte man alles Material zentral sammeln
und sich anhand der vorliegenden Bilder/Streckenplan einen ersten
groben Überblick über die Arbeit verschaffen, die hier
zu tun ist. Insbesondere ist auch darauf zu achten, nach Möglichkeit
nicht zu detailverliebt an die Gestaltung heranzugehen, da dies
zum ersten den Arbeitsaufwand extrem in die Höhe treibt und
auf langsamen Rechnern unweigerlich dazu führt, daß
die Fahrt aufgrund der geringen Framerate zum Frusterlebnis wird.
Anschließend sollte man überlegen, ob man bestimmte
bereits von anderen BVElern entworfene Objekte etc. verwenden
kann und sich die Genehmigung einholen, diese in der eigenen Strecke
verwenden zu dürfen. Dies sollte aber üblicherweise
aufgrund der Freeware - Gesinnung in dieser "Branche"
kein größeres Problem darstellen.
Die weitere Vorgehensweise hängt nun völlig vom eigenen
Geschmack an. Es besteht zum Beispiel die Möglichkeit, zunächst
einmal nur das Grundgerüst der Strecke zu programmieren,
und die Szenerie hinterher erst auszuschmücken. Dies bietet
den Vorteil, daß man hinterher recht leicht auch "abgespeckte"
Versionen der Strecke erstellen kann, in der die Szenerie nicht
so komplex ist. Andererseits ist das Format der RW - Dateien nicht
unbedingt übersichtlich und erschwert teilweise die Suche
nach der richtigen "Stelle" zum Einfügen der Szenerieobjekte
erheblich.
Ich empfehle daher, die Strecke Stück-für-Stück
fertigzustellen.
Nachdem die anfängliche Planung abgeschlossen ist, fängt
die eigentliche Arbeit an. Zunächst sollte man im Unterverzeichnis
BVE\railway\objects ein Unterverzeichnis anlegen (zum Beispiel
"fsonline"). Dort hinein kommen ALLE (aber wirklich
alle, sonst kommt es hinterher bei der Distribution zu Problemen,
ich kann ein Lied davon singen ;-) Objekte, die von der Strecke
verwendet werden, auch wenn diese im railway\objects - Folder
bereits vorhanden sind. Nachdem sich alle b3d- oder csv- Objekte
in diesem Unterverzeichnis gelandet sind, geht es in das BVE\railway
- Verzeichnis. Dort wird nun als erstes die eigentliche Streckendatei
(z.B. "fso.rw") erstellt, die anschließend mit
einem Texteditor zu bearbeiten ist. Und dann beginnt die Fleißarbeit....
2. Aufbau der Streckendateien
Das von BVE verwendete RW - Format setzt sich ähnlich wie
die Windows - INI - Dateien aus verschiedenen Abschnitten zusammen.
Die ersten paar Zeilen (ich empfehle, hier nicht mehr als 3 zu
verwenden) sind für die Beschreibung der Strecke reserviert
und erscheinen beim Laden der Strecke im Vorschaufenster unterhalb
des TFZ - Bildes. Hier sollte nur eine kurze und aussagekräftige
Beschreibung hinein.
Der zweite Abschnitt der Datei sollte die [TRAIN] - Sektion sein.
Hier werden verschiedene Daten zum verwendeten Triebfahrzeug sowie
anderen noch auf der Strecke befindlichen Züge definiert.
Der Wert "File" gibt an, welches Triebfahrzeug verwendet
werden soll. Hier ist der Name des Unterverzeichnisses einzutragen,
das die Zugdateien enthält (unterhalb des BVE\Train - Folders).
Der Wert "Velocity" gibt an, wie schnell der vorausfahrende
Zug (in km/h) ist. Dies hat direkten Einfluß auf das Verhalten
der Blocksignale, die erst freigegeben werden, wenn der vorausfahrende
Zug den Blockabschnitt komplett geräumt hat. Bei Strecken,
die keine "echte" Signalisierung verwenden oder auf
Strecken, auf denen kein Zug vorausfährt ist dieser Wert
auf jeden Fall höher als die zulässige Streckenhöchstgeschwindigkeit
zu setzen.
Der Wert "Acceleration" gibt den Beschleunigungskoeffizienten
des vorausfahrenden Zuges an. Hier ist Experimentieren angesagt,
aber letzten Endes ist dieser Wert praktisch nicht maßgeblich
für das Verhalten der Signalisierung.
Der Wert "Station" gibt an, an wie vielen Haltestellen
der vorausfahrende Zug hält. 0 entspricht keiner, 1 jeder,
2 jeder zweiten etc.
Der Wert "Interval" gibt den Vorsprung des vorausfahrenden
Zuges in Metern an.
Der Wert "Gauge" gibt die Spurweite der Strecke in Millimetern
an (hat keinen Einfluß auf die visuelle Darstellung). Die
europäische Normalspur ist 1435 Millimeter breit.
Nun folgt eine Tabelle mit "Run(i)" - Werten. Hierzu
ist eine kleine Erklärung notwendig. Die Programmierer von
Triebfahrzeugen haben die Möglichkeit, verschiedene Klangfarben
für das Laufgeräusch des Zuges zu programmieren. Mit
den "Run(i)" - Anweisungen wird verschiedenen Gleisbettexturen
ein unterschiedliches Laufgeräusch zugewiesen. Hierbei entspricht
der Wert "i" dem Texturindex des in der [Object] - Sektion
eingebundenen Gleisbetts und die Zahl hinter dem Gleichheitszeichen
dem Index des Fahrtgeräusches (dieses muß nicht eingebunden
werden, da es zusammen mit dem Zug definiert wird). Per Konvention
sind die Geräuschindizes wie folgt belegt:
1: veränderter Untergrund (allgemein)
2: Tunnel
3: Brücke
Allen nicht von den "Run(i)" - Befehlen erfaßten
Gleisbettexturen wird das Standardlaufgeräusch der Lokomotive
zugewiesen.
Beispiel:
<pre>
Dies ist eine Demostrecke. Sie wird ;; Beschreibung
von Führerstand-Online im Zusammenhang ;; Beschreibung
mit dem Streckenbaututorial verwendet. ;; Beschreibung
[Train]
File=db101 ;; Zugdatei aus "BVE\Trains\db101" wird geladen.
Acceleration=2 ;; vorausfahrender Zug beschleunigt um Wert "2"
Velocity=160 ;; Vorausfahrender Zug fährt maximal 160 km/h
Station=0 ;; Vorausfahrender Zug hält an keinem Bahnhof
Interval=5000 ;; Vorausfahrender Zug hat einen Vorsprung von 5
km
Gauge=1435 ;; Standard - Spurweite
Run(2)=2 ;; Textur "2" verwendet Tunnel - Laufgeräusch
Run(4)=3 ;; Textur "4" verwendet Brücken - Laufgeräusch
</pre>
Auf die [Train] - Sektion folgt die Objects - Sektion. In dieser
Sektion müssen ALLE in der Strecke verwendeten Objekte, Böschungen,
Bahnsteige etc. definiert werden, damit sie im Voraus geladen
werden können. Außerdem wird hier jedem Objekt etc.
ein eindeutiger Index zugewiesen, mit dem das Objekt anschließend
aus der "Railway" - Sektion heraus angesprochen wird.
Dieser Abschnitt stellt sich ähnlich dar wie der "Run"
- Bereich des "Train" - Abschnitts. Es gibt folgende
Anweisungen:
- "Rail(i)=f": Dem Gleisbett - Texturindex "i"
(beginnend bei Null) wird die Textur "f" zugewiesen.
"f" muß dabei eine gültige B3D - Datei aus
dem Verzeichnis "BVE\Railway\Objects" sein. Falls Unterverzeichnisse
verwendet werden (dringend empfohlen!), muß diese in der
Form "verzeichnis\datei.b3d" angegeben werden.
- "WallL(i)=f" bzw. "WallR(i)=f": Hiermit
können Objekte definiert werden, die links (WallL) oder rechts
(WallR) entlang neben dem Gleis herlaufen, z.B. Lärmschutzwände,
Brückengeländer, aber auch Tunnelwände arbeiten
mit dem "WallL/R" - Befehl. Es müssen immer Wände
für beide Seiten der Strecke definiert werden.
TIPP: Wenn man einer dieser Wände eine Waldtextur zuweist,
ist es auf die Weise recht einfach möglich, den Zug durch
den Wald fahren zu lassen, ohne dabei viele Baumobjekte verwenden
zu müssen.
PROFI - TIPP: Die Wall - Objekte werden immer mit ihrem Ursprung
DIREKT neben dem Gleis positioniert. Es besteht aber die Möglichkeit,
die Objekte weiter vom Gleis wegzuschieben (z.B. den Wald), indem
man entweder ein Dummy - Gleis ohne Textur verwendet, oder aber
einfach den Ursprung des Objekts innerhalb der B3D - Datei verschiebt.
- "DikeL(i)=f" bzw. "DikeR(i)=f": Hiermit
kann einem Gleis eine Böschung zugewiesen werden. Dies ist
z.B. immer dann erforderlich, wenn das Gleis mit Hilfe des "height"
- Befehls von der Grundplatte abgehoben wird, oder ein anderes
Gleis höher liegt als das Hauptgleis. Auch hier müssen
immer Dikes für beide Seiten des Gleises angegeben werden.
PROFI - TIPP: Mit Hilfe der Dike - Funktion und einer "flachen"
Böschung läßt sich in Bahnhöfen, in denen
die Gleise weiter auseinanderliegen, das Durchscheinen unschöner
grüner Flecken zwischen den Gleisen vermeiden.
- "Ground(i)=f": Die Ground - Befehle geben die Indizes
für die "Grundplatten" der Simulation an. Hier
können beliebige B3D - Dateien verwendet werden, allerdings
sollten sie groß genug sein, damit man an ihnen nicht "heruntersehen"
kann.
- "Back(i)=b": Die Back - Anweisungen legen fest, welches
Bild als Hintergrund (Himmel, entfernte Szenerie) angezeigt werden
soll. Bei der Datei "b" handelt es sich hierbei allerdings
nicht um eine B3D - Datei, sondern um ein Bild im Windows - BMP
- Format.
- "FormR/L=f": Diese Anweisungen, die nur einmal pro
Datei vorkommen dürfen, legen das Layout der Bahnsteige fest.
Die FormL bzw. FormR - Anweisung legt fest, welches Objekt am
Anfang eines Bahnsteigs angezeigt wird (jeweils rechts oder links
vom Gleis).
- "FormCR/CL=f": Diese Anweisungen legen genau wie die
FormR/L - Anweisungen die Stücke des Bahnsteigs fest, die
in der Mitte des Bahnsteigs liegen, d.h. die keine Stirnseite
haben.
- "RoofR/L/CR/CL": Gleiche Wirkungsweise wie FormR/L/CR/CL,
nur daß hier die Bedachung der Bahnsteige festgelegt wird.
- "FreeObj(i)=f": Diese Anweisungen binden frei in der
Landschaft platzierbare Objekte ein. Es empfiehlt sich, diese
Einträge genauestens zu kommentieren (mit durch zwei Semikola
abgetrennten Kommentaren), damit man sie später wiederfindet,
und sie nach Kontext zu sortieren.
TIPP: Falls es beim Laden der Objekte
zu Fehlermeldungen kommt, kann dies daran liegen, daß vor
den Kommentaren Tabstopps verwendet wurden. Diese müssen
unbedingt entfernt werden.
Anschließend existiert in manchen Dateien noch eine "Cycle"
- Sektion, deren Verwendung mir jedoch unbekannt ist. Angeblich
wirkt sich diese Sektion auf das Rotationsverhalten der Hintergrundbilder
aus.
Und nun folgt die "wichtigste" Sektion der ganzen Datei,
der [RAILWAY] - Abschnitt.
Dieser Abschnitt ist recht einfach aufgebaut. Zunächst beginnt
jede Zeile mit einer Zeilennummer (BASIC - Programmierern der
ersten Stunde wird dies sehr bekannt vorkommen ;-), die die Position
des entsprechenden Befehls in Metern ab dem Ursprung angibt. Anschließend
folgen ein oder mehrere Befehle, die jeweils mit einem Klammeraffen
(@) eingeleitet werden. Es ist sowohl möglich, mehrere Befehle
in eine Zeile zu schreiben (ohne Leerzeichen!), oder aber für
jeden Befehl eine separate Zeilennummer (evtl auch mit derselben
Meter - Angabe) zu erstellen. Dies hängt ganz vom persönlichen
Geschmack ab. Ich verwende persönlich eine Mischform, in
der ich verwandte Befehle (z.B. Signalisierungen für mehrere
Gleise) in eine Zeile schreibe. Es ist in Ausnahmefällen
sogar möglich, Meterangaben wirr durcheinander zu mischen,
dies kann jedoch zu unvorhergesehenen Reaktionen im BVE führen,
weshalb ich dringend davon abrate. Es ist übrigens nicht
unbedingt nötig, eine Strecke bei Meter Null beginnen zu
lassen (man hat dann die Möglichkeit, evtl. noch ein Stück
davorzusetzen). Die Fahrt beginnt automatisch beim ersten stop()
- Befehl. Die Beschreibung der einzelnen Befehle folgt in den
einzelnen Abschnitten wie folgt:
3. Schienenstränge
Das wichtigste an jeder Eisenbahnlinie sind selbstverständlich
die Schienen selbst. Aber die Befehle für die Gleisverwaltung
in BVE können noch mehr als nur einfach Eisenstücke
zu verlegen.
BVE organisiert die Gleise auf eine simple, jedoch teilweise
etwas unübersichtliche Weise. Das Gleis, das immer befahren
wird, hat die Indexnummer "0". Dieses Gleis kann nie
enden oder verlassen werden. Soll ein "Gleiswechsel"
stattfinden, so muß dies mit Kurvenbefehlen etc. simuliert
werden, was in den meisten Fällen äußerst diffizil
ist und nicht die erste Arbeit eines Anfängers sein sollte.
Als Nebengleise stehen die Indizes 1 bis 7 zur Verfügung
(in BVE lassen sich derzeit maximal 8 Gleise gleichzeitig verlegen).
Man sollte sich vor dem Beginn der Programmierung Gedanken darüber
machen, wie man die Gleisnummerierungen am besten Handhabt. Ich
empfehle, gerade Indizes für Gleise links des Hauptgleises
zu verwenden, während Gleise rechts des Hauptgleises die
ungeraden Indizes erhalten.
In BVE gibt es im übrigen keine Möglichkeit zur Gestaltung
von Böschungen o.ä. (wenn man von der umständlichen
Methode über den "Wall" - Befehl mit speziellen
B3D - Dateien absieht). Hierzu kann man jedoch recht einfach ein
Gleis mit Gras- oder Dummytextur verwenden, dem man mit Hilfe
von "Dike" eine entsprechende Böschung zuweist.
Deshalb empfehle ich zusätzlich, die Gleistexturindizes 6
und 7 mit Grastextur und Dike zu versehen, um auf diese Weise
eine einfache Möglichkeit zu erhalten, Böschungen zu
erstellen.
Alle Positionsangaben in BVE beziehen sich im Übrigen auf
den Abstand des jeweiligen Objektursprungs bzw. -mittelpunkts
vom Mittelpunkt des Hauptgleises. Hierbei bedeuten negative Abstände
eine Position links vom Gleis, während positive Abstände
eine Position rechts vom Hauptgleis darstellen.
Zur Gestaltung von Gleisen gibt es die folgenden Befehle:
@railstart(i,x,y,t)
Dieser Befehl beginnt ein neues Gleis mit dem Gleisindex "i"
{1..7}, dem horizontalen Abstand "x", dem vertikalen
Abstand "y" sowie der Gleisbettextur "t".
Die Gleisbettextur "t" entspricht dem Index des Gleisbetts,
das in der [Object] - Sektion mit Hilfe der "Rail(i)"
- Anweisungen festgelegt wurde.
@rail(i,x,y)
Dieser Befehl verschiebt ein Nebengleis relativ zum Hauptgleis.
Die Parameter geben folgende Werte an: "i" = Index des
zu verschiebenden Gleises {1..7}, "x" = Neuer seitlicher
Abstand vom Hauptgleis, "y" neue Höhendifferenz
zum Hauptgleis
@railtype(i,t)
Dieser Befehl weist dem Gleis mit dem Index "i" {0..7}
die neue Gleisbettextur "t" zu (hierbei gilt das gleiche
wie beim railstart - Befehl).
@railend(i,x,y)
Die Parameter entsprechen denen des Rail - Befehls. Nach Verschieben
des Gleises läuft dieses jedoch nicht weiter, sondern endet
an der angegebenen Position. TIPP: Dieser Befehl sollte die gleichen
Abstands- und Höhenwerte aufweisen wie der zuletzt verwendete
Rail - Befehl, da es sonst zu Fehldarstellungen des Gleises kommen
kann.
@curve(r,u)
Dieser Befehl "verbiegt" sämtliche Gleise sowie
die Bodenplatte zu einem Bogen mit dem Radius "r". Der
Zug neigt sich dabei um den Wert "u" nach innen. Der
Wert "u" sollte hierbei experimentiell ermittelt werden,
für normale Strecken eignen sich Werte zwischen 10 und 30.
Auch bei diesem Befehl gilt, daß eine Kurve bzw. Neigung
nach links negatives Vorzeichen hat. Die Kurve dauert so lange,
bis der Befehl @curve(0,0) folgt.
@pitch(p)
Dieser Befehl verpaßt sämtlichen Gleisen einen Anstieg
von "p" Promille. Ein Gefälle ist durch einen negativen
Wert anzugeben. Steigung/Gefälle dauert so lange an, bis
@pitch(0) folgt.
@height(y)
Dieser Befehl hebt sämtliche Gleise auf ein Niveau von "y"
Metern über der Grundplatte an.
@turn(q)
Dieser Befehl (ich empfehle seinen Einsatz ausdrücklich nicht)
knickt das Hauptgleis (und auch die Nebengleise) um den Faktor
q ab. Hierbei macht der Zug jedoch unschöne Schlenker, zur
Vereinfachung eines Gleiswechsels ist der Befehl jedoch eingeschränkt
geeignet. Der Quotient "q" gibt hierbei das Verhältnis
des Knicks ab. Bei q=1 knickt das Gleis beispielsweise um 45°
nach rechts ab, bei q=0.5 um 22,5° etc.
TIPPS:
- Gleisabstand: Der Gleisabstand eines Gleispaars (Haupt- und
Gegenspur) sollte 4 Meter betragen. Gleise, die zusätzlich
Oberleitungsmasten dazwischen liegen haben, sollten 6 Meter Abstand
haben. In Bahnhöfen ist ein Abstand von 8 Metern für
Gleise angebracht, die einen Bahnsteig zwischen sich liegen haben.
Soll der Abstand eines Gleises relativ zum Hauptgleis geändert
werden, empfehle ich eine Verschiebung des Gleises alle 25 Meter
um einen, maximal um 2 Meter, da es in allen anderen Fällen
zu häßlichen Sprüngen und Knicken im Gleis kommen
kann. Das gleiche gilt für den height - Befehl.
- Kurven: Eine Kurve auf einer Hauptstrecke (befahrbar mit 100
oder 120 km/h sollte minimal einen Radius von 700 oder 900 Metern
haben. Insgesamt sollte ein Radius von 500 Metern nicht unterschritten
werden, da sich sonst häßliche Lücken im Gleis
bilden. Die Gleisüberhöhung ist der Geschwindigkeit
und dem Kurvenradius anzupassen.
- Weichen: In BVE gibt es keine Weichen im herkömmlichen
Sinn, da keine Gleiswechsel möglich sind. Man kann Einmündungen
eines Nebengleises etc. jedoch ganz einfach dadurch simulieren,
indem man das Gleis ganz einfach in das Hauptgleis überleitet
und dort enden läßt. Dabei wird automatisch ein entsprechendes
Rumpeln abgespielt. Beispiel:
<pre>
;; Angenommen, es läge das Gleis Drei 4 Meter rechts vom
Hauptgleis
;; und es sei eine Verbindung von Gleis 3 auf das Hauptgleis gewünscht:
100@railstart(1,4,0,0) ;; Gleis 1 "auf" Gleis 3 (Abstand
4) erzeugen mit Texturindex 0 (Standardgleisbett)
125@rail(1,3,0) ;; Gleis 1 langsam ans Hauptgleis annähern
150@rail(1,1,0) ;; Gleis 1 weiter annähern
175@rail(1,0,0) ;; ...und das Gleis komplett ins Hauptgleis hinein
überführen
175@railend(1,0,0) ;; ...und Gleis 1 komplett enden lassen.
</pre>
PROFI - TIPP: Es ist nicht möglich, das Hauptgleis 0 mit
Hilfe des railend - Befehls z.B. in einem Sackbahnhof oder auf
einer Abfuhr enden zu lassen. Soll das Gleis dennoch z.B. hinter
einem Prellbock enden, so kann man es mit Hilfe des railtype -
Befehls und einer leeren Textur einfach ausblenden.
4. Bahnhöfe und -Gestaltung
Bahnhöfe bzw. Haltepunkte etc. setzen sich in BVE aus einem
Szenerie - Teil (den Bahnsteigen etc.) sowie einem "Steuerungsteil",
der maßgeblich für den Fahrplan des Zuges verantwortlich
ist, zusammen. Beide Teile können
unabhängig voneinander innerhalb der Strecke verwendet werden,
wodurch Bahnhöfe ohne Halt möglich werden. Außerdem
läßt sich durch das "Verschieben" des Startbahnhofs
eine Menge Zeit bei der Kontrolle des Streckendesigns sparen.
Ein Bahnhof, der als fahrplanmäßiger Halt vorgesehen
wird, muß sowohl einen Station- als auch einen Stop - Befehl
enthalten. Bei Bahnhöfen, die zur Durchfahrt gekennzeichnet
sind, kann ein Station- Befehl stehen, der Bahnhof erscheint unter
BVE 2 jedoch nicht mehr im Fahrplan, sehr wohl jedoch in BVE 1.
Steuerbefehle für Haltepunkte:
@station(s,an,ab,h,c,f)
Dieser Befehl setzt einen Halte- oder Durchfahrtsbahnhof im Fahrplan
fest. "s" ist hierbei eine Zeichenkette, die den Bahnhofsnamen
festlegt, der sowohl im Fahrplan als auch bei der Einfahrt in
den Bahnhof erscheinen soll. "an" stellt die Ankunftszeit
im Zeitformat HH:MMSS (z.B. 8:4430 für acht Uhr vierundvierzig
und 30 Sekunden), "ab" die Abfahrtszeit im gleichen
Format dar. "h" ist ein Wahrheitswert, der angibt, ob
an diesem Bahnhof gehalten wird. "1" bedeutet hierbei
"Halten", 0 bedeutet "Durchfahren". Zur Kennzeichnung
des Endbahnhofes sollte sowohl bei "ab" als auch bei
"h" ein Gleichheitszeichen eingesetzt werden. Der Parameter
"c" kann die Werte "ATS" "ATS-P"
und "ATC" annehmen und legt das Sicherungssystem für
den Zug fest. Am Endbahnhof kann der Zug mit Hilfe des Wertes
"0" für den Parameter "c" ausgeschaltet
werden. Der Parameter "f" stellt eine (optionale) Sounddatei
dar, die bei der Einfahrt in den Bahnhof abgespielt werden soll.
Wie alle Sounddateien in BVE muß diese im Format PCM, 11,25
KHz, 8 Bit Mono vorliegen und im Unterverzeichnis "Sound"
des Railway - Verzeichnisses gespeichert sein.
TIPP: Auch beim Anfangsbahnhof muß der Wert "Ankunkft"
gesetzt werden. Der Zeitwert gibt dann aber an, um wieviel Uhr
die Simulation "gestartet" wird. Wenn der Ankunftswert
beispielsweise 8:4400 beträgt und der Abfahrtswert 8:4500,
so dauert es nach dem Laden der Strecke noch genau eine Minute,
bis der Abfahrauftrag gegeben wird.
@stop(d)
Dieser Befehl setzt den Haltepunkt des Zuges im Bahnhof fest.
Der Zug muß innerhalb von einer Toleranz von +/- 5 Metern
an diesem Punkt anhalten. Der Wert "d" legt fest, ob
eine Haltetafel links (-1) oder rechts (1) vom Gleis oder gar
nicht (0) angezeigt werden soll.
TIPP: Wie bei allen Funktionsbefehlen, bei denen die Anzeige des
entsprechenden Signals (Haltetafel, Geschwindigkeitsbegrenzung
etc.) ausgeblendet wurde, kann mit Hilfe eines frei platzierbaren
Objekts eine eigene Tafel gesetzt werden.
Szenerieoptionen für Bahnhöfe:
@form(g1,g2,d)
Dieser Befehl setzt einen Bahnsteig der Länge 25 Meter zwischen
die Gleise mit den Indizes "g1" und "g2".
Hierbei ist die Reihenfolge der Gleise unbedingt zu beachten,
"g1" muß links von "g2" liegen, da es
sonst zu Darstellungsproblemen kommt. "d" ist ein Wahrheitswert
und gibt an, ob der Bahnsteig überdacht (1) oder ohne Bedachung
(0) sein soll.
TIPP: Um einen längeren Bahnsteig zu bauen, sind mehrere
form - Befehle in Abständen von 25 Metern hintereinander
zu setzen.
Wenn der Bahnsteig nur an einem Gleis "befestigt" werden
soll, so ist der Wert für das zweite Gleis auf 9 (für
einen Bahnsteig rechts vom Gleis) oder auf -9 (links vom Gleis)
gesetzt werden.
Andere Bahnsteigelemente, Personen, Fahrplanständer etc.
können mit Hilfe der freeobj - Funktion hinzugefügt
werden.
Beispiel:
<pre>
;; wir nehmen an, Gleis 1 liefe um 8 Meter nach rechts versetzt
neben dem Hauptgleis her
200 @form(0,1,0) ;; nicht überdachter Bahnsteig zwischen
Gleis 0 und 1
200 @form(0,-9,1) ;; überdachtes Bahnsteigelement links vom
Hauptgleis
225 @form(0,1,0) ;; Fortführung des Bahnsteigs zwischen Gleis
0 und 1
225 @form(0,-9,1) ;; dto.
250 @form(0,1,1) ;; Bahnsteig zwischen Gl. 0 und 1 jetzt überdacht,
links von Gleis 0 endet hier
275 @form(0,1,1) ;; Noch mal 25 Meter Bahnsteig...
300 @station(Rauenberg,14:3300,14:3330,1,ATC)
;; Bahnhof Rauenberg, Ankunft 14:33'00, Abfahrt 14:33'30, Halt
und Zugbeeinflussung ATC
300 @stop(0) ;; Haltepunkt ohne Haltetafel
300 @form(0,1,1) ;; Und noch ein Bahnsteigelement.
</pre>
5. Fahrbetrieb und -beschränkungen
BVE bietet verschiedene Befehle zur Steuerung des Fahrbetriebs,
die teilweise jedoch nur optische Auswirkungen haben.
Geschwindigkeitsbeschränkungen:
@limit(g,s,p)
Dieser Befehl setzt eine neue Streckenhöchstgeschwindigkeit.
Der Parameter "g" gibt die neue Geschwindigkeit in km/h
an. Der Parameter "s" legt fest, ob und wo eine Signaltafel
aufgestellt wird (0: keine Tafel, 1: Tafel rechts vom Gleis, -1:
Tafel links vom Gleis). Auch hier existiert wieder die Möglichkeit,
mit freeobj eine eigene Tafel aufzustellen. Der optionale Parameter
"p" legt fest, ob auf der Signaltafel Pfeile angegeben
werden sollen, für welches Gleis die Beschränkung gilt
(0: keine Pfeile, 1: rechtes Gleis, -1: linkes Gleis).
Fahrdrahtmasten:
Die Fahrdrahtmasten haben keinerlei Auswirkung auf das Verhalten
von elektrisch betriebenen Loks. Diese bleiben leider nicht stehen,
wenn man versucht, mit ihnen über die Grenze des Fahrdrahtes
hinauszufahren. Auch wird zwischen zwei Masten kein Fahrdraht
gespannt. Es besteht jedoch die Möglichkeit, den Fahrdraht
in die Gleisbettextur mit aufzunehmen. Falls dies der Fall ist,
sollte man jedoch erhöhte Vorsicht beim Setzen der Masten
walten lassen, damit sich keine optisch unschönen Effekte
einschleichen .
@pole(g,b,s,a)
Dieser Befehl beginnt das setzen von (BVE Standard-) Fahrdrahtmasten.
"g" gibt hierbei das Gleis an, an welchem die Masten
verankert werden sollen, "b" die Anzahl der Gleise RECHTS
von dem betreffenden Gleis, die überspannt werden sollen
(hierbei zählt das Gleis "g" als ein Gleis mit,
BVE geht von einem Standard - Gleisabstand von 4 Metern aus).
"s" gibt an, auf welcher Seite die Pfähle, die
die Masten halten, in den Boden gerammt werden. Bei einer Breite
von mehr als 1 überspannten Gleis (b >= 2) sollte nur
der Wert "0" (beidseitig) verwendet werden, an sonsten
entweder "1" (rechts vom Gleis) oder "-1"
(links vom Gleis). Der Parameter "a" gibt schließlich
an, in welchem Intervall die Masten entlang des Gleises gesetzt
werden sollen. Ich empfehle hier einen Abstand von 50 oder 75
Metern.
@poleend(g)
Dieser Befehl beendet das Setzen von Fahrdrahtmasten entlang des
Gleises "g".
TIPP: Wenn ein "bemastetes" Gleis mit Hilfe des railend
- Befehls gelöscht wurde, und es später mit einem erneuten
railstart - Befehl wieder erzeugt wird, bleibt die Bemastung auf
dem neu angelegten Gleis weiterhin bestehen. Dies kann insbesondere
bei Dummy - Gleisen oder Lärmschutzwällen zu ungerwünschten
Effekten führen. Daher sollte bei jedem "railend"
- Befehl gleichzeitig auch der "poleend" - Befehl ausgeführt
werden.
PROFI - TIPP: Der Pole - Befehl beherrscht nur das Setzen von
BVE - Standardmasten. Sollen aber z.B. Länderspezifische
Masten entlang der Strecke gesetzt werden, so ist dies nur mit
Hilfe des freeobj - Befehls möglich. Da dies jedoch insbesondere
bei längeren Strecken zu einer drastisch verringerten Performance
sowie zu einem stark erhöhten Programmieraufwand führt,
empfehle ich dies nur für kürzere Streckenabschnitte,
auf denen nicht allzu schnell gefahren wird.
Signalisierung:
Die Signalisierung in BVE ist eine Wissenschaft für sich.
Auch nach längerem Experimentieren konnte ich hinter den
verschiedenen Signaltypen und ihrer Schaltung kein wirkliches
System entdecken. Offensichtlich fungieren jedoch die Signale
in BVE ausschließlich als Blocksignale, d.h. es besteht
scheinbar nicht die Möglichkeit, ein Signal (z.B. vor einem
Gleiswechsel) auf die Stellungen "Halt" und "Langsamfahrt"
zu beschränken, obwohl ein entsprechendes Signal vorhanden
ist.
@signal(t,b,x,s)
Dieser Befehl setzt ein BVE - Standardsignal neben dem Hauptgleis
auf. Der Parameter "t" gibt an, welchen Befehl das Signal
zeigen soll. Es bestehen offenbar folgende Möglichkeiten,
die Stellung die zuerst genannt wird, entspricht der Stellung,
wenn das Signal vollständig "geöffnet" ist.
2: Signal "Langsamfahrt" oder "Halt"
-2: (Vor-)Signal "Fahrt" oder "Langsamfahrt erwarten"
-4: Kombinationssignal "Fahrt", "Langsamfahrt",
"Halt" + Vorsignal (4 Lampen)
3/-3: Hauptsignal "Fahrt", "Langsamfahrt",
"Halt"
5/-5: Kobinationssignal "Fahrt" "Langsamfahrt"
"Halt" + Vorsignal (5 Lampen)
Bei der Auswahl der Signaltypen ist ein wenig Experimentieren
gefragt.
Der Parameter "b" bestimmt die Bezeichnung des Signals
(z.B. B11 für das Signal B in Block 11). Diese wird unterhalb
des Signalbildes im Führerstand angezeigt. Der Parameter
"x" legt fest, mit welchem Abstand das Signal vom Gleis
aufgestellt werden soll. Der Parameter "s" schließlich
bestimmt, auf welcher Seite das Signal aufgestellt werden soll
(-1: links, 1: rechts).
@relay(x,y)
Dieser Befehl setzt einen Standard - BVE - Vorsignalwiederholer
auf. Dieser bezieht sich jeweils auf die Stellung des vorangegangenen
Signals. Der Parameter "x" gibt an welchen seitlichen
Abstand das Signal haben soll (positive Werte = rechts vom Gleis,
negative = links vom Gleis), der Parameter y gibt die Höhe
des Signals in Metern an.
6. Tunnels
Spezielle Befehle zur Erzeugung von Tunnels in BVE existieren
eigentlich nicht. Mit Hilfe der Befehle zum Setzen von Wänden,
freien Szenerieobjekten und zum Verändern der Gleisbettextur
läßt sich aber ein Tunneleffekt nachbilden. Hierbei
ist jedoch einiges zu beachten.
Zunächst benötigt man geeignete Tunnelwände, eine
rechte und eine linke Wand, die in der [Objects] - Sektion der
Datei mit Hilfe der WallL und WallR - Befehle eingebunden wurden.
Diese Wände müssen jedoch auch gleichzeitig die Decke
enthalten. Ich empfehle allen angehenden Streckenbauern, zunächst
auf die Tunnelwände einer bestehenden Strecke zurückzugreifen.
Nehmen wir beispielsweise an, die betreffenden Wände seien
mit Hilfe der WallL(10) und WallR(10) - Befehle eingebunden worden.
Am Tunneleingang muß nun mit Hilfe des Befehls @wall(0,1,10)
die rechte und mit @wall(2,-1,10) die linke Wand setzen (sofern
das Gleis 2 das Gegengleis zum Gleis 1 ist). Wenn man diesen Streckenabschnitt
befährt, wird man aber feststellen, daß der Eingang
zum Tunnel seltsam wirkt, da kein wirkliches Tunnelportal vorhanden
ist. Mit Hilfe einer als freiem Objekt an genau der Stelle platzierten
Tunnelportal (einfach eine flache Wand mit einer Portal - Textur
und transparentem Eingang) wirkt der Tunnel schon viel echter.
Um den Tunnel wieder enden zu lassen, kann man einfach die Tunnelwände
durch @wallend - Befehle wieder beenden. Bei einer weiteren Probefahrt
treten dann Probleme zu tage, die nicht mehr so einfach zu lösen
sind. Aufgrund der geringen Darstellungstiefe in BVE fährt
man nämlich nicht in einem wirklichen Tunnel, sondern immer
in so einer seltsamen Röhre, die am Ende offen ist. Diesen
Effekt kann man unterdrücken, indem man am Tunneleingang
einen @back - Befehl zum Ändern des Hintergrundbildes setzt.
Hierbei sollte man einen Index verwenden, der auf eine einfache
schwarze Bitmap verweist. Das Problem ist nur, daß man rechtzeitig
vor Ende des Tunnels wieder die ursprüngliche Textur setzen
muß, damit die Tunnelausfahrt nicht so wirkt, als trieben
schwere Gewitterwolken ihr Unwesen dahinter. Was die richtige
Platzierung des zweiten @back - Befehels angeht, rate ich zu ein
wenig Experimentierfreude, da dies je nach Streckengeschwindigkeit
etc. variieren kann. Standardmäßig ist ein Wert von
400 Metern angebracht.
Beispiel:
<pre>
;; Wir nehmen an, daß die Wand "10" die Tunnelwand
ist,
;; das Objekt "20" unser TUnnelportal und der
;; Hintergrund "5" unser schwarzes Hintergrundbild ist.
;; Außer dem Hauptgleis liegt auch noch Gleis 2 als Gegengleis
links vom Hauptgleis.
400@freeobj(0,20,0,0,0) ;; Tunnelportal
400@wall(0,1,10)@wall(2,-1,10) ;; Tunnelwände beginn
400@back(5)
;; ... hier folgt alles was sich im Tunnel abspielt
1000@back(0) ;; Hintergrundbild zurücksetzen
1400@wallend(0)@wallend(2) ;; Tunnelwände zuende
;; auf diese Weise haben wir einen 1 km langen Tunnel erzeugt.
</pre>
7. Landschaftsgestaltung
8. Sonstiges
- Wetter (@adhesion, Gewitter)
|