Beiträge von ma7t3

Willkommen in der OMSI-WebDisk!
Als Gast kannst du nur Inhalte in deiner ausgewählten Sprache sehen. Registrierte Nutzer können die Sichtbarkeit anderer Sprachen in ihrem Kontrollzentrum aktivieren, weitere Infos hier.
Alle Themen sind in den Foren mit einer Sprachflagge gekennzeichnet: = Englisch [EN], = Deutsch [DE], = Französisch [FR]. Wenn du die angegebene Sprache nicht beherrschst, schreibe auf Englisch!

    Moin zusammen,


    wer sich das erste Mal in OMSI mit Fahrplänen auseinandersetzt und Trips erstellt oder an großen Karten mit sehr vielen Trips arbeitet, kennt das Problem sicherlich: Wie benenne ich die Trips am besten?

    Schließlich sollten die Trips, um die Übersichtlichkeit zu wahren einer möglichst einheitlichen Nomenklatur folgen, damit sofort klar ist, wie die Trips heißen.

    Gleichzeitig ist - gerade bei einer großen Anzahl und verschiedenen Linienwegen - eine hohe Flexibilität notwendig.

    Dazu kommt noch, dass die Namen gleichzeitig kurz gehalten werden müssen, da das Dropdown-Menü im Fahrplan-Editor von OMSI, in dem man einen Trip auswählt, verhältnismäßig klein ist - zu lange Trips werden dann abgeschnitten.


    Aus diesem Grund habe ich über die Zeit für mich selbst ein klares "Benennungsschema" entwickelt, welches ganz klar festlegt, wie ein Trip-Name aufgebaut ist.

    Dieses System vermeidet dabei Mehrdeutigkeit, Redundanzen und "Interpretationsspielraum", was den Workflow - gerade bei sehr großen Projekten - enorm verbessert.


    Nun habe ich mich mal dazu entschieden, dieses System kompakt und verständlich aufzuschreiben und mit euch zu teilen. Natürlich gibt es auch andere Ansätze, das hier ist jedoch meine persönliche Empfehlung, die vielleicht auch für andere (neue User) ganz hilfreich ist, beim der Fahrplanerstellung in OMSI einen besseren Überblick zu wahren.


    Die besondere Kennzeichnung von Schulfahrten (inkl. "Morgens" und "Nachmittags"-Unterscheidung) dient in erster Linie dazu, Trips über verschiedene Busstop-Würfel laufen zu lassen, um ein realistischeres Fahrgastaufkommen umzusetzen (Morgens wollen viele Menschen an einer Schule aussteigen, nachmittags dort einsteigen).


    Achso, bevor mir jemand etwas vorwirft: Beim formulieren und formatieren habe ich mir von ChatGPT etwas helfen lassen, da ich selber von mir weiß, das meine eigenen Sätze schnell mal sehr "bandwurmig" und verdreht werden, was das Verständnis seltenst positiv beeinflusst. Von daher ganz offen: Credits auch an die KI dafür. 8o


    🚏 OMSI 2 Benennungsschema für Trips

    🔹 Allgemeine Struktur:

    [Liniennummer]_[Start][Steig]-[Ziel][Steig][_vZwischenhalt][_SM/SN]

    • Liniennummer → Immer drei Ziffern (z. B. 270)
    • Betriebsfahrten (Leerfahrten ohne Fahrgäste) → Statt einer Liniennummer wird "X" verwendet (X_SEB-SWB)
    • Start/ZielDreistellige Haltestellenkürzel
    • Steigbezeichnung → Falls nötig, direkt an das Kürzel anhängen (SEW1, RFM2)
    • via-Zwischenhalt → Falls alternative Routen existieren, mit _vXXX angeben (z. B. _vSWB)
    • Schulfahrten:
      • _SM → Schülerfahrt morgens zur Schule
      • _SN → Schülerfahrt nachmittags von der Schule

    🔹 Aufbau der Haltestellenkürzel

    Jede Haltestelle hat ein dreistelliges Kürzel, das nach folgendem Schema aufgebaut ist:

    🔹 Die ersten zwei Zeichen stehen für die Ortschaft oder den Stadtteil
    🔹 Das dritte Zeichen steht für die Haltestelle innerhalb der Ortschaft

    🛑 Beispiele für Haltestellenkürzel

    Haltestelle Kürzel
    Seestedt, Schule SES
    Seestedt, Weiher SEW
    Seestedt, Markt SEM
    Rosenfeld, Markt RFM
    Schönwalde, Bahnhof/ZOB SWB

    Falls eine Haltestelle mehrere Bussteige hat, wird die Steigbezeichnung direkt angehängt:

    • Seestedt, Weiher, Steig 1SEW1
    • Rosenfeld, Markt, Steig 2RFM2
    • Schönwalde, Bahnhof, Steig 3SWB3

    Bei großen Projekten mit vielen Haltestellen empfiehlt sich, alle verwendeten Haltestellenkürzel in einer Liste (z.B. als Excel-Tabelle) festzuhalten.


    🔹 Beispiele für Trip-Namen:

    🚍 Normale Fahrten (ohne Steigangabe, ohne via, ohne Schulbezug)

    Linienweg Trip-Name
    279 von Seestedt, Weiher nach Rosenfeld, Markt 279_SEW-RFM
    271 von Seestedt, Markt nach Schönwalde, Bahnhof/ZOB 271_SEM-SWB

    🚏 Fahrten mit Steigangabe

    Linienweg Trip-Name
    270 von Stein, Bahnhof, Steig 6 nach Rosenfeld, Markt, Steig 2 270_STB1-RFM2
    271 von Seestedt, Markt, Steig A nach Schönwalde, Bahnhof/ZOB, Steig 3 271_SEMA-SWB3

    🛤 Fahrten mit via-Angabe (alternative Streckenführungen)

    Linienweg Trip-Name
    279 von Seestedt, Weiher nach Rosenfeld, Markt via Strackdorf, Ort 279_SEW-RFM_vSTO
    271 von Seestedt, Markt nach Schönwalde, Bahnhof/ZOB via Rosenfeld, Markt 271_SEM-SWB_vRFM

    🏫 Schulfahrten (SM = morgens zur Schule, SN = nachmittags zurück)

    Linienweg Trip-Name
    279 von Seestedt, Weiher nach Rosenfeld, Markt (Schulfahrt morgens) 279_SEW-RFM_SM
    271 von Seestedt, Markt nach Schönwalde, Bahnhof/ZOB (Schulfahrt nachmittags) 271_SEM-SWB_SN

    🔀 Kombinierte Fahrten (via, Steig & Schulfahrten gleichzeitig)

    Linienweg Trip-Name
    279 von Seestedt, Weiher, Steig 1 nach Rosenfeld, Markt, Steig 2, via Seestedt, Schule (Schulfahrt morgens) 279_SEW1-RFM2_vSES_SM
    271 von Seestedt, Markt, Steig A nach Schönwalde, Bahnhof/ZOB, Steig 3, via Rosenfeld, Markt (Schulfahrt nachmittags) 271_SEMA-SWB3_vRFM_SN

    ⚙ Betriebsfahrten (Leerfahrten ohne Fahrgäste)

    Linienweg Trip-Name
    Betriebsfahrt von Seestedt Betriebshof nach Schönwalde, Bahnhof/ZOB X_SEB-SWB
    Betriebsfahrt von Rosenfeld, Markt, Steig 3 nach Seestedt, Betriebshof X_RFM3-SEB

    📌 Zusätzliche Regeln zur Einheitlichkeit:

    Alles in Großbuchstaben → Einheitlich und gut lesbar
    Keine Leerzeichen oder Sonderzeichen → Kompatibilität mit allen Dateisystemen
    Unterstriche _ zur Trennung von Modifikationen
    Steigbezeichnungen direkt am Haltestellenkürzel
    Betriebsfahrten immer mit "X" als Liniennummer


    Dieses "Dokument" findet man auch auf GitHub: https://github.com/ma7t3s-OMSI…nennungsschema-fuer-trips

    Kompromiss: Wir machen ein Chronoevent! Früher das alte, später das neue lol

    Wobei ich die Idee, es um 90° zu drehen, auch nicht so schlecht finde.

    Naja, mal schauen, das sind ja jetzt doch eher schon Kleinigkeiten ^^

    Wie meinst du das genau?

    Wo siehst du die Pfade?


    Auch, wenn ich dein Anliegen noch nicht ganz sicher richtig verstehe, vermute es sich, dass es sich um sogenannte "Pfadobjekte" handelt.

    Das sind idR. kleine Würfel, die irgendwo an einer Kreuzung stehen und die Pfade enthalten. Der Würfel selbst ist dabei nur im Editor als "Anfasser" sichtbar.


    Die Methode wird beim Mapbau oft verwendet um Pfade als Objekt zu platzieren (was einige Vorteile ggü. Invis-Splines bringt) ohne jedoch eine ganze Kreuzung in Blender bauen zu müssen.


    So kann man z.B. die Pfade einfacher mit Vorfahrtsregeln, Blinkereinstellungen und Ampelphasen ausstatten und dennoch die Kreuzungsgestaltung komplett im Editor mithilfe von Splines und somit ohne tiefere Blender-Kenntnisse vornehmen.

    Interessant, ich habe das gerade einfach mal mit Bamp mit einem einfachen Test-Soundwürfel ausprobiert. Hier die zugehörige Sound-cfg:

    (NightLightA nur als Testvariable, weil ich kein Bock hatte, eine Varlist anzulegen und diese Variable vordefiniert ist)

    Strassenmusiker1.wav habe ich auf die schnelle durch einen Sinuston ersetzt, damit man optimal das Verhalten beobachten kann.

    Die Erwartung wäre jetzt gewesen, dass der Sound beim Spawnen (?) über eine Sekunde einfadet. (siehe Beitrag von Theproloser) Das war hier jedoch nicht der Fall. Ich habe auch testweise die ganze Volcurve auskommentiert. Dabei war kein Unterschied zu hören.

    Allerdings erzeugt das auch keinen Fehler im Logfile. Omsi scheint es also schon irgendwie zu "verstehen".

    Eine normale, vordefinierte Variable scheint "-1" jedoch auch nicht zu sein: Versucht man nämlich, im Rahmen eines Scriptes diese mit (L.L.-1) aufzurufen und zuverwenden, kriegt man im Logfile den üblichen "unbekannter Variablenname"-Fehler.

    Vielleicht ist es also doch einfach nur eine Art "Ersatzauskommentierung". Jedenfalls scheint OMSI bzgl. dessen, was man tatsächlich hören kann, die Volcurve einfach zu ignorieren ohne dabei einen Fehler zu schmeißen.

    Mir fiel noch ein, dass es ja bei einigen Fehlern auch (ganz bewusst dokumentiert) die Möglichkeit gibt, einen Variablennamen wegzulassen bzw. einen ungültigen zu hinterlegen. Bei [matl_light gibt man ja auch z.B. eine Variable an, um die Lichttextur ein- und auszuschalten. Allerdings kann man sie auch weglassen oder etwas ungültiges dort eintragen um sie dauerhaft zu aktivieren.

    Das scheint hier bei der volcurve nicht so zu sein. "Einmal auf die Tastatur hauen" führt in diesem Fall zu Zugriffsverletzungen. Andere Integer-Werte gehen aber. "-2" interessanterweise führt dazu, dass der Sound garnicht hörbar ist, wirft aber auch keinen Fehler.


    Also alles sehr merkwürdig. :D


    Ich konnte das Geheimnis jetzt leider nicht lüften, aber vielleicht ein paar interessante "Versuchsergebnisse" präsentieren. ^^

    Diverse Tools, die du meist auch nutzt, um herauszufinden, welche Objekte für eine installierte Map fehlen (Bluesky, OMSI-Tools, ...) zeigen normalerweise auch gleich alle verbauten Objekte und Splines an und sind dabei noch erheblich schneller als der OMSI-Editor.


    Außerdem verweise ich an der Stelle auch gerne nochmal auf den folgenden Artikel: Klick

    Da kann man nochmal sehr gut nachgucken, welche Objekte und Splines tatsächlich Standard-Content sind (d.h. dass definitiv jeder diese hat bzw. haben sollte).

    Aber wie BusfahrerP schon richtig sagte: Du darfst nicht einfach so irgendwelche Objekte, die du verbaut hast, hochladen, es sei denn, sie stammen von dir selbst. Die Lizenz muss das erlauben.

    Viele Objektpakete (die man z.B. hier in der WebDisk herunterlädt) oder die bei anderen Maps dabei sind, erlauben zwar einen Reupload im Zusammenhang mit einer Map, wo diese verbaut sind, aber das gilt nicht grundsätzlich, das solltest du für jedes Objekt bzw. Objektpaket sicherstellen, dass das so ist.

    Erlaubt die Lizenz das nicht, darfst du es nicht hochladen. Du müsstest dann im Download darauf hinweisen, dass es ebenfalls notwendig ist und von den Spielern zusätzlich heruntergeladen und installiert werden musst.

    Wähle das Mesh, in dem der Almex mit "drinne hängt" aus und drücke Tab, um in den Edit Mode zu gelangen.


    Wählen dann alle einzelnen Flächen (Faces) aus, die zum Drucker gehören. Dazu kannst du im einfachsten Fall alle einzelnen Flächen mit Rechts- oder Linksklick (je nach Blender-Version und -Einstellung) auswählen, wenn du dabei Shift gedrückt hältst.

    Über die Tasten "B" und "C" gelangst du in die Rechteck- bzw. "Pinselauswahl", mit der es möglich ist, viele Flächen auf einem Haufen auf einmal auszuwählen.

    Zuletzt ist die Taste "L" (select linked) auch noch sehr hilfreich. Sie erlaubt dir, wenn du deine Maus über ein Mesh bewegst, und dann L drückst, alles auszuwählen, dass mit dem Face an der Mausposition verbunden ist.


    Wenn du dann den ganzen Drucker fertig ausgewählt hast, drücke einfach "P" und dann "Selection" um die Auswahl vom bisherigen Mesh zu trennen und zu einem eigenen Mesh zu machen.

    Moin,


    ich habe das noch nie selber ausprobiert, hatte aber auch eine ähnliche Idee. Man muss halt am Stopschild/Haltelinie eine Ampelschaltung definieren, die eine Anforderung hat. Die Anforderungsdistanz würde ich da auch sehr kurz (0-1 m) halten. Es ist ja nur für die KI relevant.

    Ich würde sagen, dass die Phase bei Anforderung halt startet bzw. fortgesetzt wird und dann nach 1-2 Sekunden auf grün springt. Sobald die KI angefahren ist und einmal die Haltelinie überfahren hat, kann/bzw. sollte es für das nächste Auto ja direkt wieder rot werden.

    Also mein ungetesteter Vorschlag für die Phase wäre jetzt:

    2 Sekunden grün

    1 Sekunde rot


    Und dann eben eine Anforderung bei "0", die pausiert, wenn keine Anforderung besteht.


    Damit das ganze funktioniert, ist noch wichtig, dass man mindestens ein Ampelobjekt dennoch tatsächlich auf der Map platziert und mit der Kreuzung verbindet, da die Autos es sonst ignorieren.

    Man kann die Ampel dann ja unter der Erde oder im Busch verstecken. :‑b

    In den meisten Fällen dürfte das relativ unproblematisch sein, solange sich nicht zwei Objekte mit der gleichen ID auf der gleichen Kachel befinden (ich wüsste aber auch gerade nicht, wie so etwas technisch passieren kann).

    Die doppelten IDs entstehen meistens dadurch, dass verschiedene Karten bzw. verschiedene Kacheln von verschiedenen Karten oder Entwicklungsständen der Karte einfach zusammengefügt wurden.

    Gerade wenn man zwei völlig separate quasi fertige Karten zusammenfügt, entstehen typischerweise haufenweise doppelte IDs.


    Ich würde mal ganz simpel sagen: Solange du im Spiel keine Probleme hast oder Fehler auftreten, die möglicherweise auf doppelte IDs zurückzuführen sind, kannst du es einfach ignorieren.


    Wenn man es doch beheben will, wäre wahrscheinlich die sicherste Möglichkeit, ein betreffendes Objekt zu löschen und neu zu platzieren. Dann kriegt es eine neue, noch freie ID.


    Wenn du weißt, was du tust, kannst du die ID-Codes auch direkt in der map-Datei einsehen und ändern.

    Sie stehen sowohl bei Objekten als auch Splines als dritter Parameter (nach dem Dateipfad dort).

    Diesen Wert kannst du prinzipiell einfach ändern, musst aber dann darauf achten, ob die ID nochmal woanders referenziert wird, z.B. beim var-parent von einem Objekt (das ist quasi das, wenn z.B. eine Ampel mit ihrer Kreuzung verbunden wird oder eine DFI mit ihrer Haltestelle).

    Die Referenz muss dann in dem Fall natürlich auch angepasst werden.

    Hm, das kommt so ein bisschen auf die genaue Situation an...

    Hast du ein komplettes Kreuzungsobjekt?


    Bei klassischen "Hubbeln" würde mir spontan einfallen, das ganze über ein Hightdeform-Mesh zu lösen.

    Also quasi ein Mesh, was grundsätzlich komplett flach ist ist, den Hubbel aber beinhaltet. Du musst es dann nur in der sco richtig eintragen.

    Dann kannst du die Pfade quasi gerade durch legen (musst sie nur im Bereich der Unebenheit in relativ kurzen Abständen oft teilen, damit das ganze sauber wird).

    Die KI-Autos sollten dann relativ gut da rüber fahren.


    Wenn der Unterschied sehr klein ist (z.B. bei einem teilweise abgesenkten Bordstein sind es vielleicht 2-3 cm), würde ich tatsächlich einfach eine kleine "Schrägung" einbauen oder die Autos das kleine Stück "hochspringen" lassen, indem man den Pfad einfach entsprechend höher setzt. Das fällt im Spiel tatsächlich meist kaum auf.


    Den Fehler hatte ich auch. Du findest den "Lierach-Ordner" unter OMSI 2\Sceneryobjects\Ahlheim4_Objekte\Lierach_Objects.

    Kopiere diesen Ordner einfach eine Ebene nach oben in den globalen "Sceneryobjects"-Ordner, dann sollte er alles finden.

    Ansonsten nochmal mit OMSI-Tools scannen, dann siehst du, was eventuell noch fehlt.

    Ich nutze Arch-Linux. Habe ich schon erzählt, dass ich Arch nutze?

    Wo ist die Haha-Reaktion, wenn man sie einmal braucht? :D


    Achtung, Windows Update 23H../24H.. unter WIndows 11 nicht Installieren.

    Scheint ja bei vielen sehr unterschiedlich zu sein. Habe schon seit einigen Monaten die aktuellste Windows 24H2-Version und versuche auch so, mein System immer aktuell zu halten und hatte nie irgendwelche Probleme im Bezug auf OMSI oder sonst irgendwas.

    Bin wirklich positiv überrascht, dass Windows 11 auch im Bezug auf Updates und Änderungen bisher wirklich erstaunlich reibungslos und ohne größere Probleme läuft. - Bei mir zumindest

    Unter Windows 10 hatte ich das viel häufiger mal, dass z.B. irgendwelche Einstellungen o.ä. nach einem Update weg waren.

    Edit: BusfahrerP war schneller ^^


    Das wäre einmal was Chat GPT sagt. Ob das eine Hilfe ist kann ich nicht sagen. Ich hab nur den Editor von Windows 11. Da Zeilen zum suchen dauert. Oder ich bin nur mal wieder unfähig keine Ahnung was da schiefgelaufen ist :(

    Da hat ChatGPT leider wohl quatsch erzählt.

    Ich habe die Datei, die du hochgeladen hast, in Notepad++ geöffnet und sie scheint in völlig gültigem UTF-8 kodiert zu sein. OMSI präferiert zwar eigentlich ANSI, das ist aber völlig egal, solange keine Umlaute bzw. "ß" oder andere ASCI-Zeichen vorkommen (was scheinbar so erstmal nicht der Fall ist).

    In Zeile 11 wird dort ein Kollisionsmesh definiert. Der Eintrag sieht syntaxmäßig richtig aus. Es könnte höchstens sein, dass die dort angegebene o3d-Datei fehlt.

    Kommentiere bzw. lösche im Zweifelsfall einfach diesen Eintrag aus der Datei heraus:

    Code: Static_Facelift_G_Spiegel.sco
    [collision_mesh]
    finish\Static_FLG.o3d

    da stimmt auch was noch nicht, bin in Mapfehlern nicht ganz so drin ma7t3 , kannst bitte mal helfen?

    Ist erstmal nur eine Warning, kann ggf. durch ungünstige Mapgestaltung kommen? Oder vielleicht wegen dem Kachelfehler, siehe oben :/

    Jo, richtig, sollte auf jeden Fall kein Fehler sein, der dazu führt, dass die ganze Map nicht geladen wird (überall Himmel).

    Höchstens, dass einige KI-Busse vielleicht rumbuggen oder "komische Sachen machen".

    Letztendlich dürfte es "nur" aussagen, dass zu einer bestimmten Haltestelle auf einer Route kein zugehöriger Pfad gefunden werden konnte. Das kann auch durchaus schon durch "Pfusch seitens der Mapbauer" entstehen, daher würde ich das einfach erstmal ignorieren, wenn sonst keine weiteren Probleme auftreten.

    Guten Tag!
    Bei mir fahren nun Autos auf den Radwegen. Ich schätze mal, dass der Fehler bei mir liegt, jedoch weiß ich nicht wo. Ich verwende die Park- und AI-List in der "Ohne Hafencity" Konfiguration. Weiß jemand was zu tun ist?

    Hatte mal den ähnlichen Fehler, falls der Abschnitt "Fahrräder" in deiner AI-Liste leer ist, trage bitte folgendes darin ein:

    Code: ailists.cfg
    [aigroup_2]
    Fahrraeder
    
    [end]

    Hatte bei mir gerade mal schnell geschaut, da ist der Eintrag ordnungsgemäß vorhanden.

    Dennoch ein guter Hinweis für Gansen123

    UVG-Datei und Logfile sieht für mich soweit eigentlich korrekt bzw. unauffällig aus.