Objekt

Bald ist es soweit: Unsere nächste Leitstellenfahrt findet statt. Weitere Informationen findet ihr hier.

  • Objekte bilden zusammen mit Splines den Kern-Content einer Karte. Objekte sind feste Modelle, die beliebig auf der Karte platziert werden und bieten viele Anpassungsmöglichkeiten, zum Beispiel gesonderte Texturen, Nacht-Beleuchtung und Spezialfunktionen sowie das Einbinden von Scripts.

    1. Ordnerstruktur

    Die .sco-Dateien sind reine Textdateien und liegen in einem Unterordner von Sceneryobjects. Neben den .sco-Dateien gibt es drei mögliche Unterordner:

    • Im Ordner model liegen die 3D-Objektdateien. Sie können im DirectX-Format (.x) oder im omsi-eigenen Format (.o3d) vorliegen. Siehe Blender Import/Export.
    • Im Ordner script liegen Scriptdateien. Scripte sind für Funktionen wichtig, die mit einer reinen .sco-Datei nicht realisiert werden können, zum Beispiel dynamische Anzeigen. Siehe Scriptsystem.
    • Im Ordner texture liegen die Texturen, siehe auch Textur.

    2. Schlüsselwörter

    Im Folgenden werden die grundlegenden Schlüsselwörter in einer .sco-Datei aufgelistet. Diese Liste erhebt aber keinen Anspruch auf Vollständigkeit, tiefere Funktionen können z.B. von den originalen Objekten hergeleitet werden.

    Schlüsselwort Erklärung Besonderheiten Beispiel
    [friendlyname] Name des Objekts, der im OMSI-Editor angezeigt wird. Pflicht [friendlyname]
    Mein Objekt
    [groups] Ordner und Unterordner, in denen das Objekt im Omsi Editor angezeigt wird Die Anzahl wird vorangestellt
    [groups]
    2
    Meine Objekte
    Ausstattung

    2.1. Einstellungen

    Im Folgenden sind alle Einstellungen optional. Falls es einen Standard-Wert gibt, ist dieser eingestellt.

    Schlüsselwort Erklärung
    [LightMapMapping] Die Lightmap der Kachel hat Einfluss auf Texturen, beleuchtet zum Beispiel das Objekt. Dies ist besonders bei Flächenobjekten (Kreuzungen, Straßen) und Häusern empfehlenswert.
    [rendertype] Bestimmt, wann das Objekt gerendert wird. Die Render-Reihenfolge spielt z.B. bei Transparenzen und Flächenüberdeckungen eine große Rolle. Nach dem Befehl folgt eine der folgenden Einträge:
    presurface
    Vor dem Terrain. Dies ist z.B. hilfreich, um Löcher in den Boden zu schneiden.
    surface Mit dem Terrain (z.B. Kreuzungen und Straßen).
    on_surface Nach dem Terrain bzw. nach surface-Objekten. (z.B. Richtungspfeile auf Asphalt)
    1
    Vor normalen Objekten
    2 Standardwert
    3 Nach normalen Objekten
    4 Nach Straßenfahrzeugen und Fußgängern. Sinnvoll bei Objekten mit viel Glas und Transparenz.
    [absheight] Die Höhe des Objekts wird absolut angegeben, nicht relativ zum Boden. Sinnvoll bei Kreuzungen und Straßenobjekten, bei denen die exakte Höhe benötigt wird, um sie z.B. an Splines anzupassen.
    [onlyeditor] Das Objekt ist nur im Editor sichtbar. Hierbei bleiben die Pfade aber erhalten.
    [shadow] Sorgt dafür, dass das Objekt einen Schatten erzeugt, der mit dem Stand der Sonne wandert. Voraussetzung ist die entsprechende Einstellung. Nicht zu empfehlen bei kleineren Objekten und Hintergrundobjekten, da dies eine große Auswirkung auf die Performance hat.
    [petrolstation] Sorgt dafür, dass in der Umgebung des Objekts der Spielerbus getankt und gewaschen werden kann.

    2.2. Kollision

    Auch die Kollision des Objektes ("Aufprall", Touchieren, etc.) kann gesteuert werden. Alle Einträge sind optional.

    Schlüsselwort Erklärung Besonderheiten
    [nocollision] Der Spieler kollidiert nicht mit dem Objekt. Schließt andere Kollisionseinträge aus.
    [fixed] Das Objekt ist fest und kann durch eine Kollision nicht verschoben werden.
    [surface] Die Kollision erfolgt als Oberfläche/Terrain. Dies ist bei Kreuzungen notwendig. In Kombination mit [collision_mesh]
    [collision_mesh] Bestimmt das Mesh der Kollision. Fehlt dieser Eintrag, wird eine Boundingbox erzeugt. In der nächsten Zeile steht das Mesh im model-Unterordner. Das Kollisionsmesh kann die gleiche Objektdatei sein wie das Hauptmesh, es kann aber auch eine andere sein.
    [boundingbox] s. Boundingbox

    2.3. Veränderungen am sichtbaren Objekt

    Schlüsselwort Erklärung Besonderheiten Beispiel
    [mesh] Fügt eine Objektdatei (.o3d oder .x) hinzu.
    Es kann auch mehrere Objekte geben. Die Reihenfolge der Einträge bestimmt die Renderreihenfolge.
    [mesh]
    Bank.o3d
    [matl] Definiert die angegebene Textur als Material. Die folgenden Matl-Einträge bestimmen die Eigenschaften. Angehängt wird die Nummer des Sub-Meshs (bei mehreren Objekten), in der Regel 0. Bezieht sich auf die Textur im Objekt des vorangegangenen Mesh-Eintrags. [matl]
    Metall.dds
    0
    [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]
    2
    [matl_envmap] Definiert eine Reflexionstextur und die Stärke der Reflexion (als Gleitkommazahl zwischen 0 und 1)
    [matl_envmap]
    envmap.bmp
    0.4
    [complexity] Definiert die Sichtbarkeitsebene des Objekts. Über die Einstellungen können Objekte mit niedrigerer Priorität zwecks besserer Performance aus- und eingeblendet werden.
    0 - Sehr Wichtiges Objekt - Kreuzungen, Häuser, Laternen, Haltestellen, Verkehrszeichen
    1 - Wichtiges Objekt - Haltestellenhäuschen, kleine Gebäude
    2 - Normales Objekt - Straßenschild, kleinste Gebäude, Mülleimer, Telefonzellen
    Detailobjekt - Parkbänke, Poller
    [visible] Bestimmt eine lokale Variable aus einem Script als Variable für die Sichtbarkeit und den Wert der Variable falls das Objekt sichtbar ist.
    [visible]
    sommerhalbjahr
    1
    [NightMapMode] Bestimmt, wann die Nachttextur erscheint (Textur im Unterordner night) :
    0 - Das Objekt wird wie die Straßenbeleuchtung anhand der Umgebungshelligkeit beleuchtet.
    1 - Gebäude mit durchgehender Beleuchtung
    2 - Wohngebäude (nicht beleuchtet zwischen 23 und 6 Uhr)
    3 - Gewerbegebäude (nicht beleuchtet zwischen 18 und 7 Uhr)
    4 - Schule (nicht beleuchtet zwischen 15 und 7 Uhr)
    Die Uhrzeiten der Varianten 2-4 können geringfügig variieren.
    [crossing_heightdeformation] Verbiegt das Objekt inklusive Pfade. Die Basis dafür ist eine Plane, die gebogen ist.
    [terrainhole] Schneidet das Terrain anhand eines Meshs aus. Auch diesmal ist die Basis eine Plane, dessen Enden bestimmen, wo das Terrain anliegt.

Teilen

Kommentare 3

  • Könnte man den Punkt [groups] noch etwas näher beleuchten. Aus der angegebenen Erklärung werd ich leider nicht allzu schlau ^^

    Ausserdem fehlt hier wohl auch noch der Punkt [tree] im Wiki.

    • [groups] definiert die Ordner, unter denen das Objekt im Editor angezeigt wird. Hier im Beispiel kommt das Objekt unter "Meine Objekte", und dann in den Unterordner "Ausstattung" und da es zwei Ebenen sind, ne 2.

      Zu [tree] hab ich jetzt aus dem Gedächtnis nichts ... Evtl. hat das damit was zu tun, dass das Objekt zufällig rotiert wird und die Textur automatisch tauschbar ist.

    • Danke Rumpel für die Antwort(en) ^^

      So ganz versteh ich den Sinn bei [group] nicht, da ich das Objekt ja in dem entsprechenden Ordner suche, in dem es sich befindet...Aber Okay.


      Ich hab mir mal die Bäume (Tree's) bisschen betrachtet.

      Da wird wohl (je nach Texture, die unter dem [tree] eingetragen wird) die Höhe, Breite x und Breite y angegeben (so versteh ich das zumindest)

CC BY-SA 4.0

Sämtliche Inhalte unseres OMSI-Wiki sind unter Creative Commons Namensnennung & Weitergabe unter gleichen Bedingungen (CC BY-SA 4.0) lizensiert.