Checked Spline

  • Splines bilden zusammen mit Objekten den Kern-Content einer Karte. Sie sind gekennzeichnet durch ein 2D-Profil, das in Länge und Krümmung (Radius und Steigung) veränderlich ist.

    In OMSI werden Splines mithilfe von .sli-Dateien, die reinen Text enthalten, erstellt. Da Splines frei drehbar sind und auch Kurven möglich sind, bedarf es nur einem zweidimensionalen Profil. Die Texturen und Krümmung rechnet OMSI anhand von Länge, Radius und Steigung aus.


    Im Folgenden ist mit x-Achse die Breite gemeint, mit z-Achse die Höhe.

    1 Ordnerstruktur

    SLI-Dateien sind neben Texturen die einzigen Dateien, die gebraucht werden, um Splines zu erstellen. Sie liegen im Unterordner von Splines. Die Texturen liegen von den .sli-Dateien aus gesehen immer in einem Unterordner texture. Siehe auch Textur.

    2 Aufbau der .sli-Datei

    Im Folgenden wird der Aufbau der Schlüsselwörter erläutert. Hierbei ist zu beachten, dass vom Querschnitt aus gesehen die Splinedatei von links nach rechts gelesen wird. Möchte man die Spline in der Mitte haben, so empfiehlt es sich, mit negativen und positiven Werten zu arbeiten (s.o., hierbei ist die linke Seite negativ, die rechte positiv): In der Regel beträgt die Höhe der Fahrstreifen 10cm (0,1m), die des Gehwegs 25cm (0,25m). Diese Werte sind weitestgehend eine akzeptierte Norm und sollten eingehalten werden. In OMSI werden Gleitkommazahlen stets mit Dezimalpunkt angegeben!

    2.1 Höhenprofil

    In vielen Splines ist zusätzlich ein Höhenprofil definiert, dessen Nutzen bisher aber nicht verifiziert werden konnte.

    Syntax Erklärung
    [heightprofile]
    {Punkt 1}
    linker x-Wert
    {Punkt 2}
    rechter x-Wert
    {Höhe 1}
    Höhe am linken x-Wert
    {Höhe 2}
    Höhe am rechten x-Wert

    Beide Wertepaare müssen nicht den selben Wert haben. Möglich wäre z.B. auch eine Steigung von links nach rechts oder umgekehrt.

    2.2 Textur-Definition

    In diesem Abschnitt werden die grundlegenden Textur-Einstellungen gemacht.

    Syntax Erklärung Beispiel
    [texture] Fügt eine angegebene Textur hinzu (Die folgenden Einträge beziehen sich auf diese Textur). OMSI akzeptiert .dds, .tga und .bmp-Bilddateien.
    [texture]
    Asphalt.bmp

    [matl_alpha] Bestimmt, ob die Textur eine Transparenz über den Alpha-Kanal der Textur hat:
    0 - keine Transparenz
    1 - Volltransparenz (jede Transparenz wird als Volltransparenz interpretiert)
    2 - Teiltransparenz
    [matl_alpha]
    1

    [patchwork_chain] Definiert eine Variation der Textur (s. auch Beitrag 77 von Marcel Kuhnt). Dieser Eintrag teilt die Textur in Teile auf, die der Länge nach variiert werden können. [patchwork_chain]
    10
    AABAAAAAA
    11211114
    10011111

    {Länge} Die Länge jedes Segments.
    {Übergänge} Die Art des Übergangs der einzelnen Segmente, falls es verschiedene Arten gibt. Die Übergänge werden mit Buchstaben gekennzeichnet, der erste Übergang bestimmt den Anfang der Textur, danach geht es von Segment zu Segment auf der Textur bis zum Schluss (Die Anzahl der Zeichen in dieser Zeile muss immer eine mehr sein als die Anzahl der Segmente insgesamt.)
    {Häufigkeit} Die Häufigkeit eines jeden Segments (zwischen 1 und 9). Die Anzahl der Zeichen in dieser Zeile bestimmt die Anzahl der Gesamtsegmente auf der Textur, die gleichmäßig verteilt werden.
    {Spiegelung} Kann das Segment gespiegelt werden, wird hier eine 1 eingetragen, ansonsten eine 0.


    2.3 Textur-Aufbringunng

    Syntax Aufbringung
    [profile] Definiert eine neue Fläche mit der angegebenen Textur. Pro Eintrag existieren zwei der folgenden Einträge. Es folgt der nullbasierte Index der Textur.
    [profilepnt] Fügt einen neuen Punkt hinzu mit folgenden Daten:
    {x-Koordinate} Die x-Koordinate des Punktes.
    {Höhe} Die Höhe des Punktes.
    {x-Texturpunkt} Die x-Koordinate der Textur am angegebenen Punkt in %. Berechnet werden kann dieser wie folgt: x-Pixel / Breite. Es empfiehlt sich, anstelle von 0 oder 1 die Werte 0.005 und 0.995 zu nutzen.
    {Streckfaktor} Streckfaktor der Textur, der wie folgt berechnet wird: 1 / Länge der vollen Textur in Metern.

    2.4 Pfade

    Damit Verkehr auf der Spline fließen kann, müssen Pfade definiert werden. Dies geschieht nach folgendem Muster:

    Syntax Erklärung
    [path]
    Definiert einen neuen Pfad
    {Typ} 0: Straßenfahrzeuge (Busse, Autos, Motorräder)
    1: Menschen
    2: Schienenfahrzeuge (Züge, U-Bahnen)
    3: Flugzeuge
    {x-Koordinate} Die Mitte des Pfades ausgehend vom Spline-Mittelpunkt.
    {z-Koordinate} Die Höhe des Pfades. Auch hier empfiehlt sich bei normalen Straßen eine Höhe von 0.25 (Fußgänger) bzw. 0.1 (Straßenverkehr).
    {Breite} Die Breite des Pfades.


    3 Beispiel-Dateien

    Angehängt sind drei Beispiel-Splines inkl. Texturen:

    • Str_kaputt: Eine normale Straßen-Spline mit Gehweg und Straßenspuren
    • Str_kaputt_var: Eine Spline ohne Gehweg als Beispiel für variable Straßenschäden. Am unsichtbaren Gehweg sieht man auch, dass Pfade nicht unbedingt eine Fläche erfordern.
    • Weg_Kies_3m: Eine Fußgänger-Spline als Kiesweg als Beispiel für die Nutzung transparenter Texturen

Share