Generell und wie bereits erwähnt stellt Open Rails alle Routenfunktionalitäten bereit, die bereits für MSTS verfügbar waren, plus einige Möglichkeiten, wie z. B. auch die Akzeptanz von Texturen im .dds-Format.
Viele der in diesem Kapitel beschriebenen Funktionen erfordern das Hinzufügen zusätzlicher Parameter zur .trk-Datei der Route. Die zusätzlichen Parameter können direkt am Ende (direkt über der letzten Klammer) der .trk-Datei der Route hinzugefügt werden, die sich im Stammordner der Route befindet. Fügen Sie solche Parameter nicht an anderen Stellen der Datei hinzu, da dies zu Problemen führen würde, wenn Sie die MSTS-Editoren mit der entsprechenden Route verwenden möchten. Um jedoch eine Änderung der Originaldatei zu vermeiden, ist die hier beschriebene Include-Methode auch auf die .trk-Datei anwendbar, wodurch eine neue .trk-Datei erstellt wird, die in einen OpenRails-Ordner im Stammordner der Route eingefügt wird. Im Fall des Parameters, der zum Vermeiden von Waldbäumen auf Gleisen benötigt wird (siehe hier), enthält diese zusätzliche .trk-Datei beispielsweise Folgendes:
include ( ../Surfliner2.trk )
ORTSUserPreferenceForestClearDistance (2)
Nur OR sucht im Openrails-Ordner.
Eine vollständige Liste der Parameter finden Sie unter Entwickeln von OR-Inhalten – Parameter und Token
OR bietet eine einfache Möglichkeit, Schnee-Geländetexturen hinzuzufügen: Die folgenden Standard-Schneetexturnamen werden erkannt: ORTSDefaultSnow.ace und ORTSDefaultDMSnow.ace, die im Ordner TERRTEX\SNOW der betreffenden Route positioniert werden müssen. Für die Schneetexturen, die im Unterordner SNOW fehlen, und nur für diese, verwendet ORTS solche Dateien, um Schnee anzuzeigen, sofern vorhanden, anstatt die Datei blank.bmp zu verwenden.
Um eine minimale funktionierende Schneetextur festzulegen, muss die Datei microtex.ace auch im Unterordner SNOW vorhanden sein.
MSTS erlaubte nicht die Verwendung von Schneetexturen mit Nachttexturen. Dies bedeutete, dass die Gebäude dunkel waren, wenn man nachts eine Aktivität durchführte, wenn das Wetter auf Schnee eingestellt war. Es stellt sich heraus, dass OR mit Schnee- und Nachttexturen arbeiten kann. Dazu müssen Sie den Ordner „Night\“ im Verzeichnis „Textures\Snow\“ erstellen und die benötigten Texturen in den Ordner „Night\“ kopieren. Dadurch werden Nachttexturen sichtbar, wenn Sie nachts im Schnee arbeiten. Beachten Sie, dass die aktuellen Nachttexturen wie Gebäude keinen Schnee enthalten, sodass neue Texturen erstellt werden müssen.
Eine Warnung: Wenn Sie sich dazu entschließen, besteht die Möglichkeit, dass Ressourcenprobleme auftreten.
Eine coole Funktion im OP ist die Bedienung von Drehscheiben und Schiebebühnen. In MSTS sind sie statisch und können Triebzüge nicht drehen und übertragen. Plattenspieler und Transfertische werden auf ähnliche Weise von OR verwaltet und teilen sich ebenfalls einen erheblichen Teil des Codes. Deshalb wird hier nur auf Drehtische Bezug genommen und anschließend nur auf die Unterschiede bei Transfertischen eingegangen.
Achtung: Plattenspieler und Transfertische können nicht direkt an einen Hauptschalter angeschlossen werden. Dazwischen muss ein Gleisabschnitt von mindestens 1 Meter verlegt werden.
Der beste Weg, eine Drehscheibe betriebsbereit zu machen, besteht darin, sich an einem Beispiel zu orientieren. Hier finden Sie die Anweisungen und Dateien zum Testen dieser Funktion, sowohl für die Route Catania-Messina (SICILIA 1) als auch für andere Routen mit a1t27mturntable.s. Die Route Catania-Messina kann hier heruntergeladen werden. Eine .ws-Datei im World-Unterverzeichnis muss durch die Datei w-005631+014158.zip ersetzt werden, die im Open Rails-Paket im Unterordner Documentation\SampleFiles\Manual verfügbar ist. (Das hat nichts mit Drehscheiben zu tun, es ist eine Datei, die inkohärente Daten enthält, die einen Absturz verursachen können.) Bitte. Beachten Sie, dass auch die anderen in diesem Absatz genannten Beispieldateien in diesem Unterordner verfügbar sind.
Im Open Rails-Paket sind zwei Teststrecken verfügbar, die in der Datei Turntable_PATHS.zip enthalten sind, eine für jede Drehscheibe in der Strecke, die entweder im Erkundungsmodus oder innerhalb von Aufgaben verwendet werden können. Im Ordner der Strecke muss ein OpenRails-Unterordner erstellt werden, der zwei Dateien enthalten muss. Die erste folgt der Datei turntables.dat, die die Daten enthält, die zum Auffinden und Spezifizieren der Drehscheibe erforderlich sind.
turntables.dat:
2
Turntable(
WFile ( "w-005625+014198.w" )
UiD ( 1280 )
XOffset ( 0 )
ZOffset ( 13.4 )
TrackShapeIndex ( 253 )
Animation ( "TRACKPIECE" )
Diameter ( 27 )
)
Turntable(
WFile ( "w-005631+014158.w" )
UiD ( 638 )
XOffset ( 0 )
ZOffset ( 13.4 )
TrackShapeIndex ( 253 )
Animation ( "TRACKPIECE" )
Diameter ( 27 )
)
Um diese Datei für andere Routen zu generieren, muss Folgendes berücksichtigt werden:
• Die erste Zeile muss leer sein
• Die Zahl in der zweiten Zeile (2 in der obigen Datei) ist die Anzahl der in Betrieb befindlichen Drehscheiben innerhalb der Route
• WFile ist der Name der .w-Datei, in der sich die Drehscheibe befindet
• Die Nummer in der UiD-Zeile ist die UiD-Nummer des TrackObj()-Blocks in der .w-Datei, die sich auf der Drehscheibe bezieht
• XOffset, YOffset und ZOffset sind die Offsets des Drehzentrums des Drehbühne in Bezug auf den Nullpunkt der Drehbühnenform
• TrackShapeIndex ist der Index des TrackShape()-Blocks in tsection.dat, der auf die Drehscheibe verweist; Bitte beachten Sie, dass es nicht notwendig ist, tsection.dat zu ändern, wenn ein neuer TrackShape()-Block für die Drehscheibe benötigt wird. Es ist möglich, wie hier beschrieben vorzugehen
• Der Animationsparameter ist der Name der Matrix des rotierenden Teils in der .s-Datei
• Der Durchmesserwert ist der Durchmesser des Drehbühne in Metern.
Die obige Datei bezieht sich auf Drehscheiben mit der Form a1t27mturntable.s.
Die zweite Datei, die in den Openrails-Unterordner der Route eingefügt wird, ist eine kleine .trk-Integrationsdatei, die den Namen der .sms-Sounddatei angibt, die der Drehscheibe zugeordnet werden soll. Für die Route SICILIA 1 heißt diese Datei daher wie ihre übergeordnete Datei SICILIA 1.trk. Hier ist der Dateiinhalt.
SIZILIA 1.trk:
include ("../Sicilia 1.trk")
ORTSDefaultTurntableSMS ( turntable.sms )
Die erste Zeile muss leer sein.
Die Datei a1t27mturntable.s muss geändert werden, um die Animationsdaten hinzuzufügen, da MSTS sie als statische Datei bereitgestellt hat. Dazu entpacken Sie es mit Route Riter oder Shapefilemanager und fügen direkt über der letzten Klammer den Inhalt der Datei a1t27mturntable_animations.zip ein. Wenn andere .s-Dateien für Drehscheiben verwendet werden müssen oder neue entwickelt werden müssen, muss berücksichtigt werden, dass die Rotationsanimation wie folgt aussehen sollte:
animation ( 3599 30
anim_nodes ( ..
..
..
..
anim_node TRACKPIECE (
controllers ( ..
tcb_rot ( 5
tcb_key ( 0 0 0 0 1 0 0 0 0 0 )
tcb_key ( 900 0 0.7071068 0 0.7071067 0 0 0 0 0 )
tcb_key ( 1800 0 1 0 0.0 0 0 0 0 0 )
tcb_key ( 2700 0 -0.7071068 0 0.7071067 0 0 0 0 0␣
˓→)
tcb_key ( 3600 0 0 0 -1 0 0 0 0 0 )
)
oder wie folgt:
animation ( 3599 30
anim_nodes ( ..
..
..
..
anim_node WHEEL1 (
controllers ( 1
tcb_rot ( 5
slerp_rot ( 0 0 0 0 1 )
slerp_rot ( 900 0 0.7071068 0 0.7071067 )
slerp_rot ( 1800 0 1 0 -1.629207E-07 )
slerp_rot ( 2700 0 -0.7071066 0 0.7071069 )
slerp_rot ( 3600 0 0 0 1 )
)
)
)
Die oben genannten Namen der anim_nodes sind selbstverständlich frei wählbar. Die oben definierte Drehrichtung der Animation muss gegen den Uhrzeigersinn sein.
Im Basis-Sound-Ordner (nicht dem der Route) muss die .sms-Datei turntablesSOUND.zip hinzugefügt werden, um Ton zu erzeugen, wenn sich die Drehscheibe dreht. Für den Ton werden die beiden Standard-MSTS-WAV-Dateien verwendet. Sie haben ein etwas geringes Volumen. Es steht jedem offen, solche Dateien zu verbessern. Der diskrete Auslöser 1 wird ausgelöst, wenn sich die Drehscheibe leer zu drehen beginnt, der diskrete Auslöser 2 wird ausgelöst, wenn die Drehscheibe mit dem Zug an Bord zu drehen beginnt, und der diskrete Auslöser 3 wird ausgelöst, wenn die Drehung stoppt.
Um die Generierung der tsection.dat-Einträge für neue Drehscheibentypen zu erleichtern, finden Sie unter Documentation\SampleFiles\Manual eine grobe .xls-Tabelle (turntable_sectionidxs.xls). Es berechnet die X-, Z- und Grad-Parameter, die in die SectionIdx-Zeilen des TrackShape-Blocks in der Datei tsection.dat eingefügt werden sollen. Sie müssen lediglich den Durchmesser der Drehbühne und die Gradstufe eingeben. Natürlich müssen Sie nur die Zeilen bis zu der Zeile nehmen, die der Zeile mit Grad = 180 vorausgeht.
Auch Drehbühnen, die sich um weniger als 360 Grad drehen lassen, können implementiert werden, wie der im Bild hier unten:
In diesem Fall muss am Ende des Turntable()-Blocks in der Datei turntables.dat für eine Drehscheibe, der sich nur zwischen 0 und 40 Grad drehen kann, die folgende Zeile hinzugefügt werden:
MaxAngle ( 40 )
Die Winkel nehmen im Uhrzeigersinn zu.
Bereits viele bestehende Drehscheiben wurden erfolgreich animiert und viele neue andere wurden erstellt. Mehr dazu gibt es in diesem Forenthread.
Informationen zu Schiebebühnen werden auch in der Datei turntables.dat gespeichert. Diese Datei kann Informationen für Schiebebühnen und Drehscheiben zusammen enthalten. Hier ist ein Beispiel einer solchen Datei für eine Drehscheibe und eine Schiebebühne:
2
Turntable(
WFile ( "w-005625+014198.w" )
UiD ( 1280 )
XOffset ( 0 )
ZOffset ( 13.4 )
TrackShapeIndex ( 253 )
Animation ( "TRACKPIECE" )
Diameter ( 27 )
)
Transfertable(
WFile ( "w-005578+014976.w" )
UiD ( 72 )
XOffset ( 0 )
ZOffset ( 15.0)
TrackShapeIndex ( 37300 )
Animation ( "TRACKPIECE" )
Length ( 29.4 )
)
Parameter haben die gleiche Bedeutung wie bei Drehscheibe. „Länge“ ist die Länge der Drehbühne (also die Länge des Gleises darüber oder etwas weniger, abhängig von den Abmessungen des Beckens der Drehscheibengrube).
Das im vorherigen Absatz beschriebene Integrationsdateiformat .trk kann auch für Übertragungstabellen verwendet werden, die denselben Sound verwenden.
In der Standard-tsection.dat sind keine verwendbaren Transfertabellen definiert. Daher muss mindestens ein neuer Track-Shape-Block erstellt werden. Auch in diesem Fall wird empfohlen, den zusätzlichen Block in der spezifischen tsection.dat der Route zu definieren.
Hier unten ist ein Beispiel für die spezifische tsection.dat einer Route, die eine TrackShape für eine übertragbare Datei enthält:
include ( "../../../Global/tsection.dat" )
_INFO ( Track section and shape addition for transfer table derived from turntable 27m )
TrackSections ( 40000
_SKIP ( No change here )
)
TrackShapes ( 40000
_INFO(TrackShape for for 30 m transfer table derived from turntable 27m)
TrackShape ( 37300
FileName (
A1t30mTransfertable.s )
NumPaths ( 9 )
SectionIdx ( 1 0 -0.18 -1.1 0 339 )
SectionIdx ( 1 4.985 -0.18 -1.1 0 339 )
SectionIdx ( 1 9.97 -0.18 -1.1 0 339 )
SectionIdx ( 1 14.955 -0.18 -1.1 0 339 )
SectionIdx ( 1 19.94 -0.18 -1.1 0 339 )
SectionIdx ( 1 24.925 -0.18 -1.1 0 339 )
SectionIdx ( 1 29.91 -0.18 -1.1 0 339 )
SectionIdx ( 1 34.895 -0.18 -1.1 0 339 )
SectionIdx ( 1 39.88 -0.18 -1.1 0 339 )
)
)
Die erste Zeile muss leer sein.
Der Animationsblock für die obige Transfertabelle lautet wie folgt:
animations ( 1
animation ( 3600 30
anim_nodes ( 2
anim_node BASIN (
controllers ( 0 )
)
anim_node TRACKPIECE (
controllers ( 1
linear_pos ( 2
linear_key (
0
0
-1.92177
0
)
linear_key (
3600
39.88
-1.92177
0
)
)
)
)
)
)
)
3600 ist kein zwingender Wert. Um jedoch eine angemessene Übertragungsgeschwindigkeit zu erreichen, sollte eine Anzahl von Animationstasten von 60 bis 90 pro Meter ausgewählt werden.
Der Aufzug wird von ORTS als vertikal bewegliche Drehscheibe verwaltet. Es werden also die gleichen Dateien benötigt, die auch für eine übertragbare Datei verwendet werden, wobei der Inhalt bei Bedarf geändert wird.
Informationen zur Identifizierung eines Aufzugs in einer Route werden wie bei Drehscheiben und Schiebebühnen in der Datei turntables.dat gespeichert. In derselben Datei können Informationen zum Verschieben von Bühnen unterschiedlichen Typs gespeichert werden. Hier eine Turntables.dat-Datei, die Informationen für einen Aufzug enthält:
1
Transfertable(
WFile ( "w-005578+014976.w" )
UiD ( 75 )
XOffset ( 0 )
YOffset ( -0.18 )
ZOffset ( 13.405)
VerticalTransfer ( 1 )
TrackShapeIndex ( 37301 )
Animation ( "TRACKPIECE" )
Length ( 26.81 )
)
Was dies als Aufzug identifiziert, ist das Vorhandensein des VerticalTransfer-Parameters mit dem Wert 1. Der andere Unterschied zu einer Transfertabelle ist das Vorhandensein des YOffset-Parameters, der den vertikalen Versatz der Nullposition des Aufzugs in Bezug auf den Nullpunkt der Formdatei angibt .
Ein Beispiel für den Animationsblock in der Aufzugsformdatei ist hier unten dargestellt:
animations ( 1
animation ( 1800 30
anim_nodes ( 2
anim_node BASIN (
controllers ( 0 )
)
anim_node TRACKPIECE (
controllers ( 1
linear_pos ( 2
linear_key (
0
0
-1.92177
0
)
linear_key (
1800
0
6.07823 0
)
)
)
)
)
)
)
Dies erzeugt eine vertikale Bewegung mit einer Spannweite von 8 Metern, die in 60 Sekunden zurückgelegt wird. Natürlich kann der Wert 1800 geändert werden, um die gewünschte Bewegungsgeschwindigkeit zu erhalten.
Der Aufzug muss auch als TrackShape in tsection.dat definiert sein. Es wird empfohlen, es in einer routenspezifischen Erweiterungsdatei tsection.dat zu definieren, die für den Beispielaufzug wie folgt lautet:
include ( "../../../Global/tsection.dat" )
_INFO ( Track section and shape addition for transfer table derived from turntable 27m )
TrackSections ( 40000
_SKIP ( No change here )
)
TrackShapes ( 40000
_INFO(TrackShape for for vertical transfer table derived from turntable 27m)
TrackShape ( 37301
FileName ( A1t27mVerticalTransfertable.s )
NumPaths ( 2 )
SectionIdx ( 1 0 -0.18 0.0000 0 338 )
SectionIdx ( 1 0 7.82 0.0000 0 338 )
)
)
Um den Aufzug mithilfe von TSRE5 in eine Route einzufügen, muss beachtet werden, dass Letzteres nicht auf die Datei tsection.dat im Openrails-Unterordner schaut. Daher muss ausschließlich zum Bearbeiten der Route der TrackShape()-Block in die globale tsection.dat eingefügt werden. Nachdem die Routenbearbeitung abgeschlossen ist, kann die Sperre entfernt werden. Tsection.dat Build 38 oder höher ist im Hauptordner Global erforderlich.
Zur Laufzeit wird der Aufzug mit den Tasten für Transfertische und Drehscheiben bewegt. Alt-C bewegt das Höhenruder nach oben, während Strg-C das Höhenruder nach unten bewegt.
Durch den Aufbau eines Weges, der in die Drehscheibe oder den Transfertisch eintritt, ihn auf der gegenüberliegenden Seite verlässt und wenige Meter nach dem Ende der Drehscheibe oder des Transfertisches einen Umkehrpunkt hat, ist es möglich, die Drehscheibe oder den Transfertisch im Aktivitätsmodus zu nutzen. Der Spieler fährt den Verbund in die Drehscheibe oder den Transfertisch und stoppt ihn. An diesem Punkt wird der Umkehrpunkt wirksam und legt die Gruppe logischerweise in den Rückweg. Der Spieler versetzt die Gruppe in den manuellen Modus, dreht den Plattenspieler (falls er einen Plattenspieler verwendet) um 180 Grad und kehrt in den automatischen Modus zurück. An diesem Punkt befindet sich die Gruppe wieder auf dem Aktivitätspfad.
Wenn der Spieler stattdessen möchte, dass die Gruppe auf andere Gleise fährt, muss er die Gruppe im manuellen Modus von der Drehscheibe oder dem Transfertisch fahren. Wenn er den Zug später in die Drehscheibe oder den Übergabetisch zurückfahren und den Zug so drehen oder verschieben möchte, dass er die Drehscheibe oder den Übergabetisch auf dem Gleis verlässt, auf dem er ursprünglich eingefahren ist, kann er den Zug nach der Drehung wieder in den Automatikmodus überführen, vorausgesetzt, dies ist der Fall Der Pfad wird wie oben definiert erstellt.
Durch die Verwendung der Funktion zum Wechseln des Spielerzuges ist es auch möglich, jede Lokomotive auf einem beliebigen Gleis, z.B. B. in einem Ringlokschuppen, oder nutzen Sie eine Rangierlok, um einen Wagen in einen Transportwagen hinein- und herauszurangieren.
Im World-Ordner der Route kann ein Openrails-Unterordner erstellt werden. Innerhalb dieses Unterordners können .w-Dateiblöcke positioniert werden. ORTS liest zunächst die Basis-.w-Dateien und korrigiert diese Dateien dann mit den Dateiblöcken des Openrails-Unterordners. Dies kann sowohl zum Ändern von Parametern als auch zum Hinzufügen von OR-spezifischen Parametern verwendet werden. Hier ein Beispiel für ein w. Dateiblock für USA1 .w-Datei w-011008+014318.w:
SIMISA@@@@@@@@@@JINX0w0t______
Tr_Worldfile (
CarSpawner (
UiD ( 532 )
ORTSListName ( "List2" )
)
CarSpawner (
UiD ( 533 )
ORTSListName ( "List3" )
)
Static (
UiD ( 296 )
FileName ( hut3.s )
)
)
Mit den beiden CarSpawner-Blockblöcken interpretiert OR die CarSpawner mit derselben UiD, die in der Basis-.w-Datei vorhanden ist, als erweiterte CarSpawner (siehe hier). Mit dem Static-Block ersetzt OR die im Static-Block definierte Form mit derselben UiD in der Basis-.w-Datei durch die im Dateiblock definierte Form. Für alle Pickup-, Transfer-, Forest-, Signal-, Speedpost-, LevelCrossing-, Hazard-, CarSpawner-, Static- und Gantry-Parameter können Parameter durch die „modifizierende“ .w-Datei geändert oder hinzugefügt werden.
Achtung: Wenn die Route mit einem Routeneditor bearbeitet wird, können sich UiDs ändern und daher könnten die .w-Dateiblöcke veraltet sein und sollten geändert werden.
Achtung: Die Eingabe falscher Daten in den .w-Dateiblöcken kann zu Programmstörungen führen.
Mit dieser OR-spezifischen Funktion ist es möglich, jeden Auto-Spawner einer der zusätzlichen Autolisten zuzuordnen und so z.B. unterschiedliche Fahrzeuge auf einer Autobahn und auf einer kleinen Landstraße auftauchen zu lassen.
Die zusätzlichen Wagenlisten müssen in einer Datei namens „carspawn.dat“ definiert werden, die in einen Openrails-Unterordner im Stammordner der Route eingefügt werden soll. Eine solche Datei muss die Struktur wie im folgenden Beispiel haben:
SIMISA@@@@@@@@@@JINX0v1t______
3
CarSpawnerList(
ListName ( "List1" )
2
CarSpawnerItem( "car1.s" 4 )
CarSpawnerItem( "postbus.s" 4 )
)
CarSpawnerList(
ListName ( "List2" )
3
CarSpawnerItem( "policePHIL.S" 6 )
CarSpawnerItem( "truck1.s" 13 )
CarSpawnerItem( "postbus.s" 6 )
)
CarSpawnerList(
ListName ( "List3" )
2
CarSpawnerItem( "US2Pickup.s" 6 )
CarSpawnerItem( "postbus.s" 13 )
)
Die ersten 3 definieren die Anzahl der zusätzlichen Auto-Spawner-Listen. Um einen CarSpawner-Block einer dieser Listen zuzuordnen, benötigen Sie eine Zeile wie diese:
ORTSListName ( "List2" )
muss in den CarSpawn-Block an einer beliebigen Position nach der UiD-Zeile eingefügt werden.
Wenn der CarSpawner-Block eine solche zusätzliche Zeile nicht enthält, wird er mit der Basisdatei „carspawn.dat“ im Stammverzeichnis der Route verknüpft.
Achtung: Wenn die Route bearbeitet wird, während der MSTS-Routeneditor die .w-Dateien ändert, die auf die zusätzlichen Auto-Spawner verweisen, wird die obige Zeile gelöscht.
Um dieses Problem zu vermeiden, stehen zwei weitere Möglichkeiten zur Verfügung, die zusätzliche Zeile einzufügen. Einer wird hier beschrieben. Die andere Möglichkeit besteht darin, den OR-spezifischen TSRE-Routeneditor zu verwenden, der diese Funktion nativ verwaltet. Auch im letzteren Fall wird jedoch bei einer späteren Bearbeitung der Route mit dem MSTS-Routeneditor die obige Zeile gelöscht.
16.7 Auto-Spawner, die zum Spazierengehen von Menschen verwendet werden
Der OR-spezifische TSRE-Routeneditor ist in der Lage, Car-Spawner-Pfade auch außerhalb von Straßen zu generieren. Dies hat viele Anwendungsmöglichkeiten, eine davon ist die Erstellung von Wegen für gehende Menschen. Gehende Menschen haben die Besonderheit, dass sie sich auf einem geneigten Weg nicht wie ein Fahrzeug neigen, sondern vertikal bleiben. Damit OR gezielt mit diesen Auto-Spawnern (oder besser Personen-Spawnern) umgehen kann, muss der Parameter IgnoreXRotation() in die Auto-Spawner-Liste direkt nach der Anzahl der Auto-Spawner-Elemente eingefügt werden.ile nicht enthält, wird er mit der Basisdatei „carspawn.dat“ im Stammverzeichnis der Route verknüpft.
Achtung: Wenn die Route bearbeitet wird, während der MSTS-Routeneditor die .w-Dateien ändert, die auf die zusätzlichen Auto-Spawner verweisen, wird die obige Zeile gelöscht.
Um dieses Problem zu vermeiden, stehen zwei weitere Möglichkeiten zur Verfügung, die zusätzliche Zeile einzufügen. Einer wird hier beschrieben. Die andere Möglichkeit besteht darin, den OR-spezifischen TSRE-Routeneditor zu verwenden, der diese Funktion nativ verwaltet. Auch im letzteren Fall wird jedoch bei einer späteren Bearbeitung der Route mit dem MSTS-Routeneditor die obige Zeile gelöscht.
Der OR-spezifische TSRE-Routeneditor ist in der Lage, Car-Spawner-Pfade auch außerhalb von Straßen zu generieren. Dies hat viele Anwendungsmöglichkeiten, eine davon ist die Erstellung von Wegen für gehende Menschen. Gehende Menschen haben die Besonderheit, dass sie sich auf einem geneigten Weg nicht wie ein Fahrzeug neigen, sondern vertikal bleiben. Damit OR gezielt mit diesen Auto-Spawnern (oder besser Personen-Spawnern) umgehen kann, muss der Parameter IgnoreXRotation() in die Auto-Spawner-Liste direkt nach der Anzahl der Auto-Spawner-Elemente eingefügt werden.
Hier ist ein Beispiel für eine Car-Spawner-Datei speziell für Fußgänger, die in den Openrails-Unterordner der Strecke eingefügt wird (siehe hier):
SIMISA@@@@@@@@@@JINX0v1t______
1
CarSpawnerList(
ListName ( "People1" )
3
IgnoreXRotation ()
CarSpawnerItem( "walkingperson1.s" 3 )
CarSpawnerItem( "walkingperson2.s" 1 )
CarSpawnerItem( "walkingperson3.s" 1 )
)
Es kommt häufig vor, dass für spezielle Routen auch spezielle TrackSections und TrackShapes benötigt werden. Da die Datei tsection.dat für jede Installation einzigartig ist, war für solche Routen eine sogenannte Mini-Route-Installation erforderlich. Die vorliegende Funktion überwindet dieses Problem. Die Route verwendet immer noch die gemeinsame tsection.dat, kann ihr jedoch routenspezifische TrackSections und TrackShapes hinzufügen und allgemeine ändern. Dies geschieht durch Einfügen eines routenspezifischen Teils von tsection.dat in einen OpenRails-Unterordner im Stammordner der Route, der die hinzuzufügenden oder zu ändernden TrackSections und TrackShapes enthält. Hier ein fiktives Beispiel für die Route USA1 (erste Zeile muss leer sein):
include ( "../../../Global/tsection.dat" )
_INFO ( Track sections and shapes specific for USA1
)
_Skip (
Further comments here
)
TrackSections ( 40000
_Skip (
Comment here
)
_SKIP ( Bernina )
TrackSection ( 33080
SectionSize ( 0.9 1.5825815 )
)
TrackSection ( 19950
SectionSize ( 0.9 12 )
)
)
TrackShapes ( 40000
_Skip (
Comment here
)
-INFO(Bernina Pass narrow gauge sections / wood tie texture)
_INFO(by Massimo Calvi)
_INFO(straight sections)
TrackShape ( 30000
FileName ( track1_6m_wt.s )
NumPaths ( 1 )
SectionIdx ( 1 0 0 0 0 33080 )
)
TrackShape ( 19858
FileName ( track12m_wt.s )
NumPaths ( 1 )
SectionIdx ( 1 0 0 0 0 19950 )
)
)
In diesem fiktiven Beispiel sind die erste TrackSection und TrackShape auch in der globalen tsection.dat vorhanden, sodass die ursprüngliche TrackSection und TrackShape geändert werden; Die zweiten sind nicht vorhanden und werden daher den Listen hinzugefügt.
Hinweis: Um diese geänderten Elemente mit dem aktuellen MSTS RE und AE verwenden zu können, ist es erforderlich, dass diese geänderten Elemente auch in der ursprünglichen tsection.dat-Datei vorhanden sind. Wenn jedoch die Arbeit mit dem RE beendet ist und die Route verteilt wird, reicht es aus, die spezifische tsection.dat der oben genannten Route zu verteilen.
OR bietet eine experimentelle Funktion, die den Oberdraht für elektrifizierte Strecken freigibt. Der optionale Parameter ortsdoublewireenabled in der .trk-Datei der Route kann die Aktivierung oder Deaktivierung der Option erzwingen, wodurch die Benutzereinstellung im Optionsfeld überschrieben wird.
In diesem Beispiel ist der obere Draht aktiviert und überschreibt die Benutzereinstellung:
OrtsDoubleWireEnabled ( On )
während in diesem Fall der obere Draht zwangsweise deaktiviert werden muss:
OrtsDoubleWireEnabled ( Off )
Ein weiterer Parameter (ortsdoublewireheight) gibt die Höhe des oberen Drahtes relativ zum Fahrdraht an; Wenn nichts angegeben ist, beträgt der Standardwert 1 Meter. In diesem Beispiel liegt das obere Kabel 130 cm über dem Hauptkabel (wie bei den meisten italienischen Routen):
include ( "../tures.trk" )
OrtsTriphaseEnabled ( Off )
OrtsDoubleWireEnabled ( On )
OrtsDoubleWireHeight ( 130cm )
Natürlich können Sie jede von OR unterstützte Entfernungsmaßeinheit verwenden.
Die modernen Elektrolokomotiven werden mit Gleich- oder Einphasen-Wechselstrom betrieben, vor einigen Jahren gab es jedoch auch Dreiphasen-Wechselstromlokomotiven. Ein dreiphasiger Stromkreis benötigt drei Drähte (einen für jede Phase, für den Neutralleiter ist kein Draht erforderlich). Bei Schienensystemen verlaufen zwei Drähte über der Leitung und der dritte wird durch die Schienen hergestellt.
ODER kann die zweite Oberleitung mit dem Parameter ortstriphaseenabled folgendermaßen aktivieren:
OrtsTriphaseEnabled (Ein)
Wenn der Parameter fehlt oder sein Wert Aus ist, wird der übliche Einzeldraht angezeigt.
Ein weiterer Parameter (ortstriphasewidth) gibt den Abstand zwischen den beiden Drähten mit einem Standardwert (wenn der Parameter nicht deklariert ist) von 1 Meter an.
In der .trk-Datei der Route kann der Parameter Loadingscreen wie in diesem Beispiel verwendet werden:
LoadingScreen ( Load.ace )
Wenn im Hauptverzeichnis der Route eine Datei mit demselben Namen, aber mit der Erweiterung .dds vorhanden ist und die DDS-Texturunterstützung aktiviert ist, wird diese stattdessen mit der Erweiterung .ace angezeigt. Wenn der Parameter weggelassen wird, wird die Datei „load.ace“ geladen (wie in MSTS) oder „load.dds“ (falls vorhanden und wiederum ist die DDS-Unterstützung aktiviert).
Das Ladebildschirmbild kann eine beliebige Auflösung und ein beliebiges Seitenverhältnis haben; Es wird im Letterbox-Format auf dem Bildschirm angezeigt, wobei das Seitenverhältnis beibehalten wird.
Ein weiterer optionaler Parameter, ortsloadingscreenwide, kann das Bild angeben, das angezeigt werden soll, wenn der Benutzer die Route auf einem Breitbildschirm (16:9) lädt. Dieser Parameter wird ignoriert, wenn eine herkömmliche 4:3-Anzeige verwendet wird.
Wenn eine Signalform ein Semaphor (bewegliches Teil) hat und ihre Animationsdefinition in der .s-Datei nur zwei Zeilen enthält (z. B. slerp_rot-Zeilen), interpretiert MSTS die SemaphorePos()-Zeilen in sigcfg.dat entsprechend der folgenden Regel:
- SemaphorePos (2) is executed as SemaphorePos (1)
- SemaphorePos (1) is executed as SemaphorePos (0)
- SemaphorePos (0) is executed as SemaphorePos (0).
Open Rails folgt dieser Regel, falls eine der SemaphorePos-Zeilen 2 als Parameter hat. Diese Regel wird nicht befolgt, wenn nur 1 und 0 als Parameter vorhanden sind, da in einem solchen Fall nach der obigen Regel beide als SemaphorePos (0) ausgeführt würden und das Semaphor daher statisch wäre.
Es wird jedoch dringend empfohlen, immer drei Animationszeilen in der .s-Datei zu haben, wobei normalerweise die dritte Zeile die Parameter der ersten Zeile wiederholt (mit Ausnahme des Animationsschritts).
Die Funktion wird hier erklärt.
Um die im Fenster „Experimentelle Optionen“ getroffene Auswahl zu überschreiben, muss eine Befehlszeile in eine kleine Integrations-.trk-Datei eingefügt werden, die sich in einem Openrails-Unterordner innerhalb des Routenordners befinden und denselben Namen wie der Basisordner haben muss. Hier unten ein Beispiel einer solchen Datei:
include ( "../Platformtest.trk")
ORTSOpenDoorsInAITrains ( 1 )
Die erste Zeile muss leer sein.
ORTSOpenDoorsInAITrains (1) erzwingt das Öffnen/Schließen der Tür für diese Route, auch wenn die Option im Fenster „Experimentelle Optionen“ nicht aktiviert ist.
ORTSOpenDoorsInAITrains ( 0 ) deaktiviert das Öffnen/Schließen der Tür für diese Route, selbst wenn die Option im Fenster „Experimentelle Optionen“ aktiviert ist.
OR und MSTS bestimmen unterschiedlich die Position von Bäumen in Wäldern. Dies kann dazu führen, dass Bäume auf Gleisen oder Straßen erscheinen. Um Bäume auf Gleisen zu vermeiden, können folgende OR-spezifische Parameter zur .trk-Datei der Route hinzugefügt werden:
ORTSUserPreferenceForestClearDistance (2)
wobei der Parameter einen Mindestabstand in Metern von der Spur für die Platzierung von Wäldern darstellt. Alternativ kann die ursprüngliche .trk-Datei unverändert bleiben und eine neue .trk-Datei in einen OpenRails-Ordner im Stammordner der Route eingefügt werden. Dies wird hier erklärt.
Um auch Waldbäume auf Straßen zu vermeiden, folgen Sie der Linie:
ORTSUserPreferenceRemoveForestTreesFromRoads (1)
muss unter der Zeile hinzugefügt werden:
ORTSUserPreferenceForestClearDistance (2)
entweder in der Root-.trk-Datei der Route oder in der „Include“-.trk-Datei.
Es ist nicht möglich, Bäume nur von Straßen und nicht von Gleisen zu entfernen.
Diese Funktion ermöglicht es, für einen bestimmten Bahnübergang auf einer Strecke oder für eine bestimmte Bahnübergangsform andere als die Standardtöne für Bahnübergänge festzulegen. Um ein anderes Bahnübergangsgeräusch als das Standardgeräusch für ein bestimmtes Bahnübergangsgeräusch auf einer Strecke zu erhalten, muss eine Zeile wie die folgende in den LevelCrObj-Block der .w-Datei eingefügt werden:
ORTSSoundFileName („differentcrossingsound.sms“)
Dabei muss „differentcrossingsound.sms“ durch den gewünschten .sms-Dateinamen ersetzt werden.
Achtung: Wenn die Route bearbeitet wird, während der MSTS-Routeneditor die .w-Dateien, die diese Zeile enthalten, ändert, wird die obige Zeile gelöscht.
Um dieses Problem zu vermeiden, stehen zwei weitere Möglichkeiten zur Verfügung, die zusätzliche Zeile einzufügen. Einer wird hier beschrieben. Die andere Möglichkeit besteht darin, den OR-spezifischen TSRE-Routeneditor zu verwenden, der diese Funktion nativ verwaltet. Auch im letzteren Fall wird die obige Zeile gelöscht, wenn die Route später mit dem MSTS-Routeneditor bearbeitet wird.
Um einen anderen Bahnübergangsklang als den Standardton für eine bestimmte Bahnübergangsform zu erhalten, muss eine Zeile wie die folgende in die .sd-Datei der Bahnübergangsform eingefügt werden:
ESD_ORTSSoundFileName („differentcrossingsound.sms“)
Wenn beide Leitungen vorhanden sind, hat die erste Vorrang vor der zweiten. Für den ersten Fall wird empfohlen, die Sounddatei im Soundordner der Strecke abzulegen, obwohl sie auch im allgemeinen Train Simulator Sound-Ordner gesucht wird. Für den zweiten Fall gibt es keinen Vorschlag. Die Datei wird erneut in beiden Ordnern gesucht.
Mit dieser Funktion können Kurven innerhalb der Route einem Wert für die Überhöhung zugewiesen werden. Es wird entweder in die Root-.trk-Datei der Route oder in die „Include“-.trk-Datei eingefügt.
Es ist zu beachten, dass diese Informationen derzeit nur für physikalische Überhöhungsberechnungen gelten. Die visuelle Bewegung des Zuges aufgrund der Überhöhung wird im Optionsmenü eingestellt.
Die Zuweisung der Werte erfolgt durch Einfügen des folgenden Parameters:
ORTSTrackSuperElevation ( x y .......... )
Dabei sind x und y eine Reihe gepaarter Parameter, die den Kurvenradius in Metern (x-Wert) und den Betrag der Überhöhung in Metern (y-Wert) angeben. Die Anweisung akzeptiert so viele gepaarte Werte wie gewünscht. Für jeden gepaarten Wertesatz muss ein x- und ein y-Wert vorhanden sein. Wenn ein bestimmter SuperElevation-Wert für mehrere Kurven mit unterschiedlichen Radien beibehalten werden soll, muss für die nachfolgenden Werte des Kurvenradius derselbe y-Wert verwendet werden. Wenn sich der y-Wert zwischen den Kurvenradien ändert, extrapoliert Open Rails den y-Wert zwischen den beiden Punkten.
Open Rails verwendet die Textur overheadwire.ace, um die Oberleitung anzuzeigen. Eine solche Textur muss im Ordner TEXTURES der Route vorhanden sein. Wenn die Textur dort nicht gefunden wird, sucht Open Rails im Ordner GLOBAL\TEXTURES danach. Wenn die Textur auch nicht vorhanden ist, wählt Open Rails die Textur GLOBAL\TEXTURES\dieselsmoke.ace aus. Es wird jedoch dringend empfohlen, eine bestimmte Textur zur Darstellung der Oberleitung zu verwenden. Eine mögliche zu verwendende Textur kann hier Documentation\SampleFiles\Manual\overheadwire.zip heruntergeladen werden.
Bei Open Rails werden Signallampen ein- und ausgeschaltet, um einen optisch ansprechenden Übergangseffekt zu erzielen. Die Fade-Zeit beträgt standardmäßig eine Fünftelsekunde. Es kann im SignalType-Block der Datei sigcfg.dat mithilfe der ORTSOnOffTimeS-Eigenschaft angepasst werden:
SignalTypes( ...
SignalType ("AM14Light"
...
ORTSOnOffTimeS ( 0,2 )
)
)
Der Wert ist die Fade-Zeit in Sekunden. Verwenden Sie 0, um den Effekt vollständig zu deaktivieren.
Animierte Uhren, die die Simulationszeit anzeigen, können einer Route hinzugefügt oder nachgerüstet werden. Die Uhren können einen Sekundenzeiger haben, der jede Sekunde tickt, oder einen, der sich reibungslos oder gar nicht bewegt. Typische Uhren sind Bahnhofsuhren, Kirchturmuhren oder Uhren an anderen öffentlichen Gebäuden. Sie werden als normale statische Formen in einer Route platziert, ähnlich wie andere Formen wie Häuser oder Bäume.
Hinweis: In den Lokkabinen sind bereits Analog- und Digitaluhren vorgesehen.
Du wirst brauchen:
1. Form- und Texturdateien
Eine Formdatei, die jede Form einer Uhr, ihre Zeiger und ihre Animation sowie die von der Form verwendeten Texturdateien definiert.
2. Referenzdatei
Für jede Uhrenform in der Route ein Verweis auf die Formdatei in der Referenzdatei.
3. Weltdatei
Der Standort jeder Uhr auf der Welt muss in der Weltdatei angegeben werden.
1. Form- und Texturdateien
Erstellen Sie eine Uhr wie jede andere Form. Die Zeiger der Uhr müssen Unterobjekte innerhalb der Form sein. Sie müssen bestimmte Namen und eine Animation haben.
Open Rails sucht in der Formdatei nach den folgenden Namen von Uhrzeigern und animiert sie entsprechend der Simulationszeit.
Die Namen der Uhrzeiger müssen beginnen mit:
• „ORTS_HHand_Clock“ für den Stundenzeiger
• „ORTS_MHand_Clock“ für den Minutenzeiger
• „ORTS_SHand_Clock“ für den Sekundenzeiger
• „ORTS_CHand_Clock“ für den Centisekundenzeiger
Letzteres sorgt für eine gleichmäßige Bewegung im Hundertstelsekundenbereich, während der Sekundenzeiger einmal pro Sekunde vorwärts tickt. Es wird empfohlen, entweder den Sekundenzeiger oder den Zentisekundenzeiger oder keinen von beiden zu verwenden.
Wenn eine Uhr mehrere Zeiger des gleichen Typs haben soll, hängen Sie einfach eine Zahl an die Namen der Zeiger an, etwa so:
Die Animation erfordert 4 Schlüsselbilder an den Positionen 12, 3, 6 und 9 und berechnet die Zwischenpositionen mithilfe linearer Interpolation.
Zum Beispiel:
anim_node ORTS_HHand_Clock01 (
controllers ( 1
tcb_rot ( 5
slerp_rot ( 0
0
0 0 -1 )
slerp_rot ( 1 -0.707 0 0 -0.707 )
slerp_rot ( 2 -1
0 0
0 )
slerp_rot ( 3 -0.707 0 0
0.707 )
slerp_rot ( 4
0
0 0
1 )
)
)
)
Verschieben Sie abschließend die Uhrenform und ihre Texturen in die entsprechenden Ordner SHAPES und TEXTURES Ihrer Route, z. B. ROUTES\<route_name>\SHAPES\clocks.s
2. Referenzdatei
Fügen Sie einen Verweis auf die Shape-Datei in die Referenzdatei ROUTES\<route_name>\<route_name>.ref ein. Stellen Sie sicher, dass dieser Verweis mit dem Schlüsselwort „Static“ beginnt:
Static (
Filename
( "ChurchClock.s" )
Class
( "Clocks" )
Align
( None )
Description ( "ChurchClock" )
)
3. World-Datei
Verwenden Sie einen Routeneditor, um die Uhren in der Weltdatei zu finden.
Hinweis: Fügen Sie die Formen nicht als animierte Formen ein. Andernfalls drehen sich die Zeiger der Uhr wild, wenn MSTS zum Anzeigen der Route verwendet wird. In Open Rails entsprechen sie ohnehin der Simulationszeit.