Kupplungen konfigurieren und scripten

  • Konfigurieren von Kupplungen, um Fahrzeuge in LOTUS miteinander zu verbinden

    1 Konfigurieren

    Die Kupplungen werden in den Objekteinstellungen eines Fahrzeuges konfiguriert.


    Ganz unten befinden sich die Abschnitte "Frontkupplung" und "Rückseitige Kupplung". Diese enthalten alle nötigen Parameter:


    • Y-Koordinate: An dieser Stelle befindet sich in Längsrichtung der Kupplungspunkt, an dem sich die beiden Kupplungen berühren.
    • Mount: Angabe der Koordinaten des Kupplungslagers, wo die Kupplung am Wagenkasten befestigt ist
    • Parent-Animation: Auswahl der Animation, an die das Kupplungslagers befestigt werden soll.

    2 Animation

    Kupplungen können animiert werden. Damit können beispielsweise Scharfenbergkupplungen in die richtige Stellung gedreht werden, damit sie sich gegenseitig perfekt berühren.

    Hierfür gibt es im ContentTool einen eigenen Animationstyp "Kupplung".


    Die Konfiguration erfolgt wie auch bei allen anderen Animationen:

    • Anlegen einer neuen Animation (je eine pro Kupplung) vom Typ "Kupplung"
    • Bearbeitung der Eigenschaften der Kupplung: "Kupplungsindex" muss 0 für die vordere und 1 für die hintere Kupplung betragen
    • Mit "Meshs hinzufügen/entfernen" die zu animierenden Meshs hinzufügen.

    Selbstverständlich können auch weitere Animationen als "Kinder" der Kupplungsanimation hinzugefügt werden, z.B. um eine E-Kupplung oder andere beweglicher Teile am Kupplungskopf zu animieren.

    3 Script

    3.1 Kupplungszustand

    Der Kupplungszustand kann mit den Variablen coupled_0 und coupled_1 für die vordere und die hintere Kupplung geprüft werden. Diese Variablen brauchen im Script nicht gesondert deklariert werden.

    3.2 Kuppeln und Entkuppeln via Script

    Ob Fahrzeuge beim Berühren ankuppeln sollen sowie das Abkuppeln selbst werden von einem Script-Variablen-Paar gesteuert: couplingState_0 und couplingState_1. Diese können drei Zustände annehmen:

    • 0: Werden sie vom Script auf 0 gesetzt, dann werden die Kupplungen ggf. getrennt und bleiben es auch bei erneuter Berührung der Fahrzeuge, d.h. das jeweils andere Fahrzeug kann geschoben werden, aber nicht gezogen. Dies entspricht einer Schraubenkupplung, also Puffer + Haken, wie er bei der europäischen Eisenbahn Standard ist. Erst, wenn die Fahrzeuge aneinander gefahren wurden, aber auch erst, wenn die Variable bei beiden Fahrzeugen auf 2 gesetzt wird, wird die Kupplung geschlossen.
    • 1: Das ist der Standard-Zustand und entspricht dem ungekuppelten Zustand einer automatischen Mittelpufferkupplung wie z.B. der "Schaku", der Scharfenbergkupplung, wie sie bei den meisten Straßenbahnen, U-Bahnen und S-Bahnen sowie auch oft bei Vollbahn-Triebwagen zur Anwendung kommt. Die Kupplung ist hier vorgewählt für's Ankuppeln und tut dies, sobald sie an die Kupplung eines anderen Fahrzeuges stößt.
    • 2: Die Fahrzeuge sind gekuppelt. Diesen Wert nimmt die Variable automatisch an, wenn die beiden Kupplungen zuvor auf "1" eingestellt waren. Befindet sich mindestens ein Fahrzeug im Zustand "0", erfolgt kein automatisches Ankuppeln und die Variable wird nicht auf "2" gesetzt.

    Kurz gesagt: Zum Entkuppeln zweier Fahrzeuge mit automatischen Kupplungen einfach die betreffende Variable auf "1" setzen. Damit sind die Wagen abgekuppelt und beim erneuten Berühren der Kupplung "schnappt" sie wieder zu. :-)

    3.3 Variablenübertragung zwischen Fahrzeugen

    3.3.1 Senden

    Es gibt vier Funktionen zum Senden von Daten an die angekuppelten Fahrzeuge:

    • SendToECouplerSingle(self: integer; id: string; value: single; couplingindex: integer),
    • SendToECouplerString(self: integer; id: string; value: string; couplingindex: integer),
    • SendToECouplerInteger(self: integer; id: string; value: integer; couplingindex: integer) und
    • SendToECouplerBoolean(self: integer; id: string; value: boolean; couplingindex: integer).

    Als erster Parameter muss stets die (automatisch von LOTUS deklarierten) Public-Var "Self" gesetzt werden. Couplingindex ist 0, wenn es sich um die vordere Kupplung handelt, und 1, wenn es sich um die hintere Kupplung handelt.

    3.3.2 Empfangen

    Auf der Empfängerseite müssen Variablen definiert werden, in die das sendende Fahrzeug schreiben kann. Diese müssen folgender Namenskonvention folgen:

    • [id]_front und [id]_back erhalten den gesendeten Wert (können wahlweise single, string, integer oder boolean sein) (wahlweise empfangen auf der Front- oder der Heckkupplung)
    • [id]_front_sent und [id]_back_sent werden nach dem Sendevorgang (auf der Front- bzw. Heckkupplung) auf true gesetzt und nach der Abarbeitung des Scripts auf false.

    3.4 Alternative Kommunikation zwischen Fahrzeugen

    Das Modulsystem bringt das Prinzip der Broadcasts zwischen Fahrzeugen und Modulen mit. Diese Broadcasts können aber auch freigeschaltet werden, damit sie auch über Kupplungen hinweg laufen können, wodurch sich eine weitere Möglichkeit bietet, wie gekuppelte Fahrzeuge miteinander kommunizieren können.


    Genaueres findet sich in diesem Artikel: https://www.lotus-simulator.de…l-objekte/#3.2-Broadcasts