______________________________________________________________________________________________________________________________
1. Allgemeiner Überlick
Für das Verhalten und die Positionierung der Passagiere im Bus gibt es zwei Dateien:
Diese Dateinamen sind nicht fest vorgegeben und können auch umbenannt werden. Auch der Speicherort ist frei wählbar. Diese beiden Dateien befinden sich meist im Unterordner 'model' und werden mit dem Datei-Pfad vom Busordner aus, in die Busdatei eingetragen. Zusammen steuern diese beiden Dateien das gesamte Verhalten der Passagiere im Bus, vom Einsteig in den Bus bis zum Verlassen. Zudem werden hier auch die Positionen der Eingänge in den Bus, der Ausgänge aus dem Bus, die Positionen der Steh- und Sitzplätze, den Positionen der einzelnen ausgegebenen Fahrkarten festgelegt, die Position des Fahrkartenentwerters, sowie die Sitzposition des Fahrers. Außerdem werden hier auch die Lichtzuweisungen der Passagiere auf den Sitz- und Stehplätzen angegeben, die Sounds beim Laufen und die unterschiedlichen Höhen des Fußbodens im Bus. Hier geht es nur um die Erklärung der einzelnen Befehle mit den dazugehörigen Strings und dem genauen Dateiaufbau.
1.1. Verknüpfung im Busordner
Diese beiden Dateien sind reine Textdateien und bekommen die Dateiendung 'cfg', womit diese Konfigurationsdateien sind. Geöffnet werden diese Dateien mit einem einfachen Editor (siehe Textdatei in Wiki-Beitrag Dateiformate). Beide Dateien müssen in der 'bus'-Datei oder 'ovh'-Datei, bei Szeneryobjekte mit Steh- und Sitzplätzen, in der 'sco'-Datei eingetragen werden. Ausgangsort ist der Busordner, wo sich auch die Bus-Datei befindet.
[paths]
model\paths.cfg
[passengercabin]
model\passengercabin.cfg
1.1.1. Tipps zur Arbeitsweise
Um sich selbst, die Arbeit leicht zu machen, sollte man sich zuerst eine Skizze anfertigen. Am leichtesten gelingt einem das, in einem 3D-Programm, wenn man den Bus importieren kann.
Ist dies nicht möglich, kann man auch, ohne einem 3D-Programm, auf andere Hilfsmittel zugreifen. Es empfiehlt sich eine Skizze anzufertigen und mit einem Hilfsmittel, die Positionen der einzelnen Wegpunkte, Sitz- und Stehplätze in die Skizze einzutragen.
Zuerst notiert man sich die Pfadpunkte (hier rot dargestellt), beginnend bei Null. Diese werden später als [pathpnt] eingetragen. Anschließend werden die Verbinungen der Punkte untereinander notiert (hier orange dargestellt). Diese Verbindungen werden später als [pathlink] eingetragen. Nun notiert man sich noch die Stehplätze (blaue Buchstaben), die mit [passpos] festgehalten werden und die Sitzplätze (grüne Zahlen). Weiterhin schreibt man sich noch die Fahrersitzposition auf, die dann unter [drivpos] eingetragen werden muß.
Abschließend werden noch die genauen Positionen für die Ablage der Fahrkarten (falls erforderlich) aufgeschrieben, die Position des Geldes der Fahrkunden, die Position der Ausgabe des Wechselgeldes und die Position, an denen der Passagier seine Fahrkarte entwerten kann. Dann fehlen nur noch die Lichtpunkte im Bus, die man später noch eintragen kann.
1.1.2. Positionsbestimmung
Um die richtigen Positionen zu bestimmen, gibt es drei Möglichkeiten:
- Man importiert die Objektdateien des Busses in einem 3D-Programm und liest die Positionen genau aus.
- Man schreibt eine Position ein und testet diese solange aus, bis es paßt.
- Man nutzt einen einfachen Würfel als Hilfsmittel (siehe WebDisk-einfacher Würfel).
1.2. Koordinatensystem in Omsi
Das Koordinatensystem in Omsi, wird im Beitrag Blender Import/Export genau erklärt.
______________________________________________________________________________________________________________________________
2. Pfaddatei
In der Pfaddatei erscheinen folgende Einträge:
- Sounds für die Geräuche, die die Passagiere beim laufen im Bus verursachen.
- Positionen der Pfadpunkte
- Verbindungen der Pfadpunkte
- Beschränkungen der Pfadpunkte
- Höhenänderungen der Pfadpunkte
- Position der einzelnen Laufsounds
2.1. Schlüsselwörter der Path.cfg
Die folgenden Befehle [die immer in eckigen Klammern geschrieben werden] haben unterschiedliche Wirkungen und verschiedene Anzahlen an Strings
2.1.1. stepsoundpack
Unter diesen Befehl werden alle benötigten Schrittsounds eingetragen, die im Unterordner Sounds, für die Laufgeräusche der Passagiere zu finden sind. Diese variieren in der Lautstärke (vorn lauter, hinter leiser) und je nach Fußbodenbelag (Holz, Gummi, Plastik, bitumenhaltige Baustoffe, Metalle) oder anderen Gegebenheiten (klappernde Rampen, Stufen).
Beispiel:
[stepsoundpack]
NUM
Sounddatei1.wav
Sounddatei2.wav
Sounddatei3.wav
u.s.w.
Damit uterschiedliche Bereiche, wie Ein- und Aussteigsstufen, Treppen, Laufwege, Entfernungen zum Fahrer oder Bodenbeläge unterschiedlich klingen und diese Schritte auch noch einen abwechslungsreichen Klang haben, werden zuerst die einzelnen Sounds eingetragen. Jeder eingetragene Sound ist dabei ein neuer Bereich im Bus und wird bei Null beginnend gezählt. Mit NUM wird angegeben, wieviele Sounddateien es insgesamt gibt. Darunter werden alle verfügbaren Sounds eingetragen, welche sich im Unterordner: Omsi\Sounds\Passengers befinden sollten (dort kann natürlich auch ein Unterverzeichnis eingerichtet werden und dann mit unterverzeichnis\filename1.wav vermerkt werden).
Die Stepsoundpacks müssen vor dem ersten [pathlink] / [pathlink_oneway]-Eintrag definiert werden.
2.1.2. pathpnt
Dieser Befehl definiert einen neuen Pfadpunkt. Wichtig ist dabei, dass alle Pfadpunkt soweit von einander abstehen, dass sich die Passagiere nicht berühren können. Als Faustformel kann man einen Mindestabstand von 25 cm bis 30 cm nehmen. Bei dicken Personen, kann man diesen Wert auch erhöhen, damit der Bauch der dicken Person nicht im Rücken, der Person vor ihm steckt.
Beispiel:
0
[pathpnt]
X-Koordinate
Y-Koordinate
Z-Koordinate
Jeder dieser Pfadpunkte muß sich dabei genau auf dem Boden des Fahrzeuges befinden. Man kann diesen Punkt auch ein oder zwei Zentimeter darüber angeben, aber auf keinen Fall darunter.
Wichtig:
Bei den ersten Wegpunkten, die für einen Eingang definiert sind, kann dieser an der Fahrzeugkante liegen, damit die Passagiere mit
dem halben Fuß ins Fahrzeug einsteigen. Liegt dieser Punkt zu weit im Fahrzeug drin, dann ist der erste Schritt im Fahrzeug, wobei
die Passagiere mit dem ganzen Fuß auftreten, was bei Stufen oder Erhöhungen unrealistisch ist.
Bei den Wegpunkten die einen Ausstieg definieren, dürfen sich diese Punkte nicht zu dicht an den Türen befinden, damit die
Passagiere nicht in der verschlossenen Tür stehen, wenn diese auf den Ausstieg warten. Hier muß ein Abstand von 30 oder 40 cm
eingehalten werden. Außerdem dürfen diese Punkte nicht zu weit an den Seiten des Ausstieges liegen, weil die Passagiere nicht
gerade weiterlaufen, sondern meist einen Bogen einschlagen. Ist der Punkt zu weit seitlich, dann laufen die Passagiere durch die
seitlichen Türkanten oder durch die geöffneten Türflügel (beispielsweise Außenschwingtüren).
"Wichtiger Hinweis zum Licht"
Solange die Passagiere im Bus auf diesen Pfaden wandeln, reagieren diese auf die Lichtpunkte, die ihnen am nächsten
sind. Die Eintragungen dieser Lichtpunkte befinden sich in der 'model.cfg', in der die Positionen der Lichtpunkte festgelegt sind.
Die Passagiere reagieren nur auf die VIER naheliegendsten Lichtpunkte, egal, wieviele um den Passagier herum eingetragen wurden.
Hierbei ist unbedingt darauf zu achten, dass für die Passagiere, die vier naheliegendsten Punkte entscheidend sind. Gibt es
beispielsweise zuviele Lichtpunkte an Podesten im Fußraum oder zuviele Lichtpunkte an den Stufen des Einstieges, dann werden
die Deckenleuchten nicht mehr beachtet. So kann es passieren, dass ein Passagier direkt unter einer Deckenleuchte geht, ohne das
die Deckenleuchte den Kopf erhellt. Die Lichtpunkte, die in der 'model.cfg' eingetragen wurden, werden aber nur solange beachtet,
wie sich die Passagiere auf den Pfadpunkten befinden. Also solange sie laufen oder auf eine bestimmte Aktion warten
(freie Stelle vor der Kasse, freie Stelle vor dem Entwerter, freier Ausstieg aus dem Fahrzeug). Die Lichtzuweisung für die Sitz- und die
Stehplätze, werden in der passengercabin.cfg eingetragen. Daher sollte man in der Skizze auch eventuelle Lichtpunkte eintragen,
damit die Zuordung später auch richtig erscheint.
Beispiel-Skizze:
Die effektive Reichweite der Lichtpunkte ist aber höher, als in der 'model.cfg' eingetragen wurden.
2.1.3. pathlink
Unter diesem Befehl werden die einzelnen Punkte direkt miteinander verbunden. Fehlende Verbindungen bewirken ein verschwinden der Passagiere am letzten Wegpunkt und ein aufploppen am Eingang oder am nächsten möglichen Wegpunkt. Hier muß sehr gewissenhaft gearbeitet werden.
Beispiel:
[pathlink]
Pfadpunkt 0
Pfadpunkt 1
[pathlink]
Pfadpunkt 1
Pfadpunkt 2
2.1.4. pathlink_oneway
Dieser Befehl begrenzt die Laufrichtung einer Verbindung zwischen zwei Wegpunkten als Einbahnstraße. Die Laufrichtung wird dabei immer vom oberen Wegpunkt zum unteren Wegpunkt festgelegt. Hierbei kann man dafür Sorgen, dass Ausgänge generell nur zum Ausstieg genutzt werden können, auch wenn diese Wege, zusätzlich als Eingang definiert wurden. Man kann aber auch Wege so definieren, damit die Passagiere im Bus, aneinander vorbei laufen, wenn genügend Platz vorhanden ist. Sinnvoll wird dies, wenn der Passagier, von einem Wegpunkt im Gang zu einem Sitz laufen soll und beim verlassen des Sitzes in eine andere Richtung, wieder zum nächsten Wegpunkt im Gang gehen soll.
Beispiel:
[pathlink_oneway]
Pfadpunkt 5
Pfadpunkt 6
2.1.5. Gruppenbefehle in der Pathdatei
Folgende Befehle werden als Gruppenbefehle eingetragen. Das bedeutet, man schreibt diese für eine Reihe von weiteren Pfadpunkten auf, die darauf folgenden und nicht für jeden Pfadpunkt einzeln.
2.1.5.1. next_roomheight
Mit diesem Befehl, werden alle folgenden [pathlink]- und [pathlink_oneway]-Befehle bis zum nächsten Auftauchen dieses Befehls, auf eine höhere Ebene gesetzt. Der Wert wird dabei in Meter angegeben. Damit verhindert man, dass die Passagiere mit den Kopf durch die Decke laufen. Es wird damit nicht die Höhe des Fußbodens definiert. denn diese Werte stehen in den Pfadpunkten drin, sondern die maximale Höhe des Raumes zwischen Fußboden und Decke. Hilfreich wird dies in Doppeldeckerbussen, wo im oberen Fahrzeugteil die Raumhöhe geringer ist. Oder auch in anderen Bussen, wo die Sitze auf Podesten stehen oder in Fahrzeugen, die keine durchgängigen Niederflurfahrzeuge sind.
Beispiel:
[next_roomheight]
1.75
2.1.5.2. next_stepsound
Ein weiterer Gruppenbefehl, der für alle folgenden [pathlink]- und [pathlink_oneway]-Befehlen gilt, gibt den nächsten Sound aus der Liste der [stepsoundpack]-Einträge an. Dieser Befehl bleibt dann für alle folgenden Pfadpunkte und Verbindungen gültig, bis dieser Befehl erneut auftaucht. Die Zuweisung der Sounds wird dabei von der eingetragenen Reihenfolge oben ausgelesen. Unter dem Befehl, muß also die Zuordnungszahl des gewünschten Sounds eingetragen werden (die Zählung beginnt bei Null, für die erste Sounddatei).
Beispiel:
[next_stepsound]
3
______________________________________________________________________________________________________________________________
3. Passagierkabine
Die 'passengercabin.cfg' ist eine einfache Textdatei. In dieser werden folgende Punkte eingetragen:
- Ein- und Ausgänge
- Sitzposition des Fahrers,
- alle Sitzpositionen und Stehplätze für die Fahrkunden (Passagiere),
- Position des Entwerters,
- Position der Fahrkartenausgabe,
- Ablageposition des Geldes der Passagiere,
- Ausgabeposition des Wechselgeldes,
- Pfadpunkt zum Übergang in einen weiteren Fahrzeugteil,
- Lichtzuweisungen
3.1. Schlüsselwörter der passengercabin.cfg
In der Passengercabin, gibt es wieder Befehle die in eckigen Klammern gesetzt werden und je nach Befehl, eine unterschiedliche Anzahl von Strings besitzen. Außerdem finden sich hier noch Hinweisbefehle und Objektzuordnungen. Diese werden gleich genauer erklärt.
3.1.1. Entry / Exit
Diese Befehle definieren einen Pfadpunkt als Ein- oder Ausgang. Die Anzahl variiert je nach Busmodell. Jeder dieser Befehle kann immer nur ein Pfadpunkt zugeordnet werden. Um einen Pfadpunkt als Ein- und Ausgang festzulegen, trägt man den Pfadpunkt unter zwei verschiedenen Befehlen ein. Hier erscheinen auch die Hinweisbefehle, die nicht in eckigen Klammern, sondern in geschwungenen Klammern gesetzt werden.
Beispiel:
[entry]
0
[entry]
15
{noticketsale}
{withbutton}
[entry]
21
{noticketsale}
{withbutton}
[exit]
15
[exit]
21
[exit]
20
Ausgehend von der Skizze mit den Pfaden, oben im Beitrag, ergeben sich somit, die Pfadpunkte 0, 15, 20 und 21 - als Ein- oder Ausgänge. Hierbei wurde der zweite und dritte Türflügel als Ein- und Ausgang gleichermaßen definiert. Der erste Türflügel wurde lediglich als Eingang und der letzte Türflügel, nur als Ausgang festgelegt.
3.1.2. linkToPrevVeh
Dieser Befehl ist nur für Gelenkbusse und gibt an, welcher Pfadpunkt der letzte im Vorderwagen ist und zum nächsten Fahrzeugteil führt. Es folgt nur ein String und gibt den Pfadpunkt an.
Beispiel:
[linkToPrevVeh]
22
In der beiliegenden Skizze nicht eingezeichnet.
3.1.3. linkToNextVeh
Für den hinteren Wagenteil, gibt dieser Befehl an, welcher Pfadpunkt zum vorderen Wagenteil (also durch ein begehbares Gelenk hindurch) führt. Der Nachläufer benötigt eine eigene Path.cfg und eine eigene passengercabin.cfg.
Beispiel:
[linkToNextVeh]
6
3.1.3.1. {noticketsale}
Hiermit wird darauf hingewiesen, dass über diesen Eingang, der Zahltisch nicht erreicht werden kann. Um mit Geld eine Fahrkarte kaufen zu können, müßen die Passagiere, den Eingangspfadpunkt 0 benutzen.
3.1.3.2. {withbutton}
Hiermit wird darauf hingewiesen, dass es aussen, neben diesen Zugang, einen Aussentürtaster gibt. Damit kann vom Passagier von aussen, der Haltewunsch getätigt werden. Hierfür muß der Passagier aber nahe am imaginären Aussentürtaster sein.
3.1.4. Stamper
Dieser Befehl gibt an, wo ein Fahrkartenentwerter ist. Es ist egal, wieviele Entwerter in einem Bus verbaut wurden. Omsi kann nur einen einzigen Entwerter nutzen. Direkt unter dem Befehl wird der Pfadpunkt gesetzt, von dem aus der Passagier, den Entwerter erreichen kann. Nach der obrigen Skizze ist dies, der Pfadpunkt 17. Als Position muß die genaue Position des Schlitzes eingetragen werden, wo der Fahrschein eingeführt wird, damit die animierte Hand des Passagiers, seine Hand nahe dem Entwerterschlitz führt.
Beispiel:
[stamper]
17
0.636
2.9521
1.62
3.1.5. ticket_sale
Damit der Passagier weiß, wo er seine gekaufte Fahrkarte erhält, muß er einen Eingang nutzen, der nicht mit dem Hinweisbefehl {noticketsale} behaftet ist. Über diesen Zugang, kann er die Kasse / Verkaufstisch erreichen. Nach dem Befehl folgt wieder der Pfadpunkt, andem er dem Zahltisch nahe ist, gefolgt von den Positionen.
Beispiel:
[ticket_sale]
3
-0.021
3.38
1.502
3.1.6. ticket_sale_money_point / ticket_sale_money_point_2
Für die Position der Geldabgabe des Passagiers, steht dieser Befehl zur Verfügung. Er befindet sich auf dem Kassentisch und gibt neben der Koordinaten des Kassentisches an, wie weit das Feld ingesamt ist, damit das Geld nicht auf einen Haufen liegt. Je größer das Feld angegeben wird, desdo weiter liegt das Geld im Umkreis des Koordinatenpunktes. Diese beiden Befehle unterscheiden sich lediglich in der Anzahl der folgenden Strings.
- [ticket_sale_money_point] - mit 5 Strings
- [ticket_sale_money_point_2] - mit 6 folgenden Strings
In den ersten fünf Strings gleichen sich die Befehle. Zuerst folgen die drei Positionen des Zahltisches, wo der Fahrkunde das Geld für die Kosten des Fahrscheins ablegen soll. Die beiden folgenden Werte ergeben die Ausrichtungen von der Ursprungskoordinate.
Beispiel:
[ticket_sale_money_point]
X-Position
Y-Position
Z-position
Weite in beiden X-Richtungen
Weiten in beiden Y-Richtungen
Mit dem Präfix _2 erweitert sich die Stringsanzahl um 1, womit nun 6 Strings zur Verfügung stehen.
Beispiel
[ticket_sale_money_point_2]
X-Position
Y-Position
Z_Position
Weite in beiden X-Richtungen
Weiten in beiden Y-Richtungen
animparent
Bei 'animparent' wird die Animationsvariable des Objektträgers eingetragen. Dazu bekommt das Trägerobjekt in der model.cfg unter dem Mesh-Eintrag den zusätzlichen Befehl [mesh_ident].
Beispiel aus der Model.cfg:
[mesh]
Kassengehäuse.o3d
[mesh_ident]
Kassentisch
Beispiel für den Eintrag in die passengercabin.cfg
[ticket_sale_money_point_2]
0.1853
3.456
1.5
0.10
0.15
Kassentisch
3.1.7. ticket_sale_change_point / ticket_sale_change_point_2
Genau wie die beiden vorherigen Befehle, die für die Position des Geldes der Passagiere da sind, so sind diese Befehle für das Wechselgeld des Spielers da.
3.1.8. drivpos
Hier wird die Sitzposition des Fahrers angegeben.
Beispiel:
[drivpos]
X-Koordinate
Y-Koordinate
Z-Koordinate
Sitzhöhe über dem Boden (0 = Stehplatz)
Rotation um die Z-Achse (Angabe in Grad, Null ist nach Vorn in Fahrtrichtung)
3.1.9. passpos
Genau wie bei der Fahrerposition werden mit diesem Befehl die Positionen der Sitz- und der Stehplätze definiert.
Beispiel
[passpos]
X-Koordiate
Y-Koordinate
Z-Kooordinate
Sitzhöhe über dem Boden (0 = Stehplatz)
Rotation um die Z-Achse für die Sitzrichtung. (Angabe in Grad)
Rotation um die Z-Achse bedeutet, dass die Sitz- oder Stehrichtung in Grad angegeben wird.
0 = Nach Vorn in Fahrtrichtung,
90 = Nach Links um 90°,
180 = Nach Hinten, entgegen der Fahtrichtung,
-45 = Nach rechts Vorn,
-90 = Nach Links,
-135 = Nach rechts Hinten.
Die Sitzhöhe gibt an, in welcher Höhe sich die Oberfläche des Sitzes über dem Fußboden des Busses befindet.
Unbedingt beachten:
Die Sitzhöhe gibt nur die Höhe der Sitzfläche an. Der eingetragene Wert hat keine Auswirkung auf das Sitzverhalten der Passagiere.
Es ist also egal, ob sich die Sitzhöhe nur 20 Zentimeter über dem Boden befindet oder 60 Zentimeter. In beiden Fällen sitzen die
Passagiere gerade auf dem Sitz, wobei die Oberschenkel, im Verhältnis zum Körper und Unterschenkel, genau 90° angewinkelt sind.
Ist die Sitzfläche zu tief, dann verschwinden die Füße im Boden. Liegt der Sitz zu hoch, dann schweben die Füße über dem Boden.
Man kann für jeden Sitzplatz nur einen Koordinatenpunkt eintragen. Da die Passagiere in Omsi unterschiedlich groß sind, gibt es
keine Möglichkeit die Position für alle Passagiere richtig anzugeben. Bei großen Passagieren werden die Beine immer im Fußboden
versinken, während die Beine der Kinder oder der Oma in der Luft über dem Boden schweben. Problematisch wird dies, wenn sich
im Fußraum Objekte befinden, wie z.B. ein Radkasten, Erste-Hilfe-Koffer, Feuerlöscher, etc. Hier muß man leider Kompromisse
eingehen. Entweder sitzen die Personen falsch auf dem Sitz oder man läßt die Sitze frei. Bei der letzteren Variante, fallen die leeren
Sitze im Bus auf, wenn alle anderen Plätze belegt sind und weitere Passagiere im Gang stehen oder sich dort drängeln.
3.1.10. Lichtzuweisung
Dieser Befehl gehört zu den sogenannten Gruppenbefehlen. Das heißt, das dieser Befehl nicht für jedes Objekt einzeln eingetragen werden muß, sondern dieser Befehl gilt so lange, bis er durch eine Wiederholung geändert wird. Wichtig ist hierbei die Reihenfolge der Lichteintragungen in der model.cfg. Bei der Verwendung von Innenlicht in Omsi, muß man die Arten des Lichts unterscheiden. Für die Lichtzuweisung auf Objekte ist der Lichtschein wichtig. Nur dieser Lichtschein kann Objekte beleuchten. Alle anderen Lichtobjekte haben keinerlei Lichtwirkung auf Businterne Objekte.
Mit dem Befehl [interiorlight] werden in der model.cfg die Lichtquellen definiert. Die Reihenfolge bestimmt dann die Lichtzuweisungen. Es können aber immer nur maximal 4 Lichtquellen auf ein Objekt zugewiesen werden. Die Zählung ist auch hier wieder nullbasiert. Das bedeutet, dass der erste Lichtquelleneintrag die Nummer Null besitzt.
Beispiel:
0
[interiorlight]
Fahrerlicht
1
[interiorlight]
Türlicht vorn
2
[interiorlight]
Türlicht mitte
3
[interiorlight]
Licht vorne rechts
Und so weiter.
In der Beispielskizze finden sich insgesamt 12 Lichtquellen. Somit werden in der model.cfg alle 12 Punkte eingetragen und es ergeben sich die Zuweisungsnummern 0 bis 11. Die Bauart des Busses entscheidet nun, über die Zuweisungen der Lichtquellen auf die Passagiere auf den Sitz- und Stehplätzen. Befindet sich hinter dem Fahrerplatz eine undurchsichtige Trennscheibe, dann werden der Fahrersitz, Amaturenbrett und Lenkrad nicht von der Lichtquelle dahinter angestrahlt. Demzufolge darf auch der Fahrer nicht von dem Licht dahinter beleuchtet werden. Das selbe gilt auch für den Sitzplatz direkt hinter dem Fahrer. Der dort sitzende Passagier darf nicht vom Fahrerlicht beleuchtet werden. Aber es werden beide vom Türlicht beleuchtet, sowie vom Licht rechts Vorn.
Beispielskizzen:
- Fahrerlicht/Kassenlicht aktiv
- Türlicht 1 aktiv
- Innenlicht links Vorn aktiv
Beispiel:
[drivpos]
...
[interiorlight]
0
1
4
6
[passpos]
Platz 2
[interiorlight]
1
3
4
5
[passpos]
Platz 3
[interiorlight]
0
1
3
4
______________________________________________________________________________________________________________________________
4. Allgemeine Hinweise
Bei der Erstellung neuer Pfade und Plätze für die Passagiere, muß man nicht nur das Licht beachten. Bereits der Aufbau und die Anordnung der einzelnen Punkte für die Positionen der Passagiere ist wichtig. Die Anzahl der Pfadpunkte sind keine Grenzen gesetzt. Man sollte aber unbedingt beachten, dass man nicht zu wenige Punkte nutzt. Die Anzahl der Wegpunkte entscheidet darüber, wie die Passagier sich durch den Bus bewegen. Bevor ein Passagier einen Wegpunkt verläst, um den Pfad zum nächsten Wegpunkt zu folgen, richtet sich der Passagier ersteinmal aus. Kein Passagier läuft einen Bogen, sondern nimmt immer den kürzesten Weg zwischen zwei Punkten. Unabhängig davon, ob ein Objekt dabei im Wege ist oder nicht. Zu wenige Wegpunkte führt auch zum Ploppen der Passagiere im Bus. Es gibt keine Animationen zwischen Stehen - Sitzen und wieder aufstehen. Das bedeutet, dass ein Passagier vom letzten Wegpunkt zu einem freien Steh- oder Sitzplatz "beamt". Ist der Abstand zwischen beiden Plätzen zu groß, verschwindet der Passagier im Bus und erscheint an einer anderen Stelle wieder. Dieses Verhalten kann man in sehr vielen Payware-Bussen beobachten. Mit mehreren Wegpunkten kann man das Verhalten aber steuern.
4.1. Verbindung zwischen zwei Wegpunkten
Wie schon erwähnt, richtet sich ein Passagier auf einem Wegpunkt zum nächsten Wegpunkt aus, bevor er den dazwischen liegenden Pfad benutzt. Liegen Objekte dazwischen, werden diese Objekte durchlaufen. Ist der Winkel zum nächsten Pfadpunkt zu groß, zuckt der Passagier in die neue Richtung. Bögen oder Kurven müssen also eingerichtet werden. Winkel von mehr als 45° sollten dabei vermieden werden. So kann es sein, dass man mehrere Wegpunkte setzen muß, um ein Objekt zu umgehen. Je kleiner der Winkel desdo flüssiger erscheinen die Laufbewegungen und die Bewegungen durch den Bus.
4.2. Vier-Wege-Kreuzungen
Auch die Wegekreuzungen in vier Richtungen sollten vermieden werden. Hier kann es zu Fehlern kommen, wenn der Punkt gerade besetzt ist (durch wartende Passagiere). Diese tauchen dann irgendwo auf oder am Eingangsbereich. Hier sollte man versuchen mit Drei-Wege-Kreuzungen auszukommen. Das ist nicht immer einfach, wenn der Platz im Bus eingeschränkt ist (Reisebusse). Diese Probleme kann man verringern, wenn man einige Wege als "Einbahnstraßen" umsetzt.
4.3. Abstände zwischen zwei Wegpunkten
Die Abstände sollte wikrlich so gering wie möglich erstellt werden. Aber auch nicht zu dicht, da sonst die Passagiere in einander stehen. Wenn sich an einigen Orten etwas staut (zum Beispiel an der Kasse oder dem Entwerter) dann stehen die Leute im sehr großen Abstand voneinander entfernt. Nur an einem Kreuzungspunkt zum Augang, läßt es sich nicht verhindern. Hier stapeln sich die Passagiere leider und warten auf die Freigabe der Ausgangspfade. Wenn im Bus zu wenig Wegpunkte eingetragen sind, dann stehen viele Passagiere am letzten Kreuzungspunkt vor dem Ausgang, ineinander. Sobald eine Haltestelle errericht wird, wo eine große Anzahl an Passagieren aussteigen möchte, verlassen diese sofort den Steh- oder Sitzplatz um schnellstmöglich in die Nähe des Ausgangs zu kommen. Hier sollte man einen Abstand wählen, damit die Passagiere dicht hintereinander stehen, aber nicht ineinander.
4.4. Abstände zwischen Wegpunkten zu den Sitz- & Stehplätzen
Wenn ein Passagier in den Bus einsteigt, läuft er zuerst zu der Kasse oder dem Entwerter, damit er seine Fahrt einlösen kann. Anschließend begibt er sich durch den Bus zu einem freien Sitz- oder Stehplatz. Dabei läuft der Passagier zum naheliegenden Wegpunkt. Hat er diesen Wegpunkt erreicht, wird der Passagier schlagartig vom Wegpunkt entfernt und auf den Sitz- oder Stehplatz gesetzt oder gestellt. Ist der Abstand zu groß, dann ploppt der Passagier durch den Bus. Besonders auffällig ist dies bei Doppelsitzreihen, wenn ein Passagier zwischen dem Wegpunkt im Gang zu einem Fensterplatz beamt. Nicht immer kann man zwischen zwei Wegpunkten genügend Platz einsetzen. Daher ist es sinnvoll, einen weiteren Wegpunkt zu setzen, der den Passagier näher an einen Platz heranbringt.
______________________________________________________________________________________________________________________________
5. Tipps zum Erstellen der Pfade
Hier sind einige Hinweise, wie man die Pfade am besten umsetzen kann, aber nicht umsetzen muß.
5.1. Beispielbilder
Folgenden Beispielbilder sollen als Grundlage zum erklären dienen. Es sind keine Vorgaben für irgendwelche Standards.
1 - 2 - 3
4 - 5 - 6
5.1.1. Beispiel 1
Wenn man den Pfad von Punkt 1 zu Punkt 2 so wie im Bild setzt, dann laufen die Personen zu Punkt 2 und drehen sich dann zur Kasse. Würde man den Weg von 1 zu 2 direkt in Richtung Kasse setzen, dann nutzen die Passagiere zuerst die Kasse und drehen sich nach dem Kauf, weiter zu Punkt 3, um diesen Pfadabschnitt zu nutzen. Weitere Passagiere warten auf den Pfadpunkten 0 und 1, bis Punkt 2 frei ist. Die "Einbahnstraße" von Punkt 3 zu Punkt 4 verhindert einen Sperrstau, weil Personen den weiteren Weg vom Eingang 0 zur Kasse und den Innenraum nicht blockieren können, wenn der zweite Weg auch als Ausgang deklariert werden würde.
5.1.2. Beispiel 2
Im Beispiel 2 wurde der Pfadpunkt 7 nicht direkt vor den Entwerter gesetzt, sondern noch davor. Damit drehen sich die Passagiere nicht erst zum Entwerter um, sondern nur ein wenig in die Richtung des Entwerters. Nach dem Entwerten der Fahrkarte, laufen sie über Pfadpunkt 8 zu Punkt 4 um den Innenraum zu betreten.
5.1.3. Beispiel 3
Bei einem 4-er-Platz wie im Beispielbild 3, werden die Passagiere bis zu ihren Plätzen gebracht. Sie ploppen nicht mehr aus dem Gang weg und erscheinen dann auf den Sitzplätzen, sondern laufen bis zu den Sitzplätzen. Um den Lauffluß zu erhalten, kann man zwischen den Pfadpunkten 11 bis 14, 12 zu 18 und 18 zu 17 "Einbahnstraßen" setzen. Allerdings nur wenn sich der Ausgang links von 19 befindet.
5.1.4. Beispiel 4
Beispielbild 4 zeigt die Möglichkeiten bei einer doppelflügligen Tür. Hierbei werden die Pfadpunkte so eng wie möglich gesetzt. Es gibt keine 4-Wege-Kreuzungen. Pfadverbindungen können sich dabei überlagern. Da Passagiere nie zwischen 2 Pfadpunkten stehen bleiben, können sie auch nicht ineinander stehen. Dafür gibt es mehrere 3-Wege-Kreuzungen, wo sich eventuell einige kleinere Grüppchen bilden können.
5.1.5. Beispiel 5
In einigen engen Stellen in Bussen, kann man selten mehrere Wegpunkte erstellen, weil der Platz dafür einfach nicht gegeben ist. Hier kann man aber die Bewegungen der Passagiere zu den Sitzplätzen ein wenig steuern, womit es den Anschein erweckt, ein Passagier läuft zu seinem Platz und lasse sich auf diesen fallen. Auch beim Aufstehen ploppt der Passagier nicht in den Gang hinein. Zusätzlich sollte man die Zu- und Abgänge zu den Sitzplätzen in Richtung der Ausstiegstüren setzen. Wenn in dem Bus kein Platz zum weiterlaufen ist, bleiben die Passagiere am Punkt vor dem Gang stehen, bis dieser wieder frei ist.
5.1.6. Beispiel 6
Für Stehplätze, wie beispielsweise im Kinderwagenbereich, sollte man die Pfadpunkte dicht an die Stehplätze bringen. Ein weiterer Weg zum Laufen durch den Bus ist nicht notwendig, da die Passagiere die Stehplätze nur dann wieder verlassen, wenn sie auch den Bus verlassen möchten oder müssen. Im vorliegendem Beispiel, laufen die Passagiere zum Punkt 50 für die Stehplätze A und D und zum Punkt 51 für den Stehplatz H. Für die folgenden Plätze werden die Pfadpunkte 61 und 62 genutzt.
______________________________________________________________________________________________________________________________
6. Zusätzliche Hinweise
Marcel und Rüdiger haben nur das umgesetzt, was sie selber für ihre Fahrzeuge benötigten. Daher sind viele Dinge nicht möglich. Da M+R Software nur einen Entwerter im Bus umsetzen mußten (in Berlin galt damals, immer Einstieg vorn und Ausstieg hinten), wurde nur ein Enterter umgesetzt. Da Marcel nicht auf Userwünsche eingeht, ist es nicht möglich einen zweiten Entwerter in die Fahrzeuge, funktionsfähig umzusetzen. Also alle weiteren verbauten Entwerter sind nur noch Dummyentwerter. Einzigste Ausnahme bilden hierbei Gelenkomnibusse, da somit ein Entwerter pro Fahrzeugteil gesetzt werden kann. Möchte man mehrere Entwerter pro Fahrzeugteil setzen, dann geht dies nur, wenn man die Fahrzeuge auftrennt und als unbewegliche Fahrzeugteile anhängt. Dieser Aufwand steht aber im Wiederspruch zum Nutzen.
Weitere wichtige Hinweise zum Licht, findet man in dem Wiki-Beitrag Licht.
In den meisten Fahrzeugen wurde nur wenige Pfadpunkte gesetzt, weil auch das erstellen der Passagierdatei einige Zeit in Anspruch nimmt. Zudem ist die Anzahl der möglichen Pfadpunkte, auch durch den Platz im Bus selbst begrenzt.
Die eingetragenen Pfadpunkte dienen in Omsi nicht als Stehplätze. Sind in einem Bus alle eingetragenen Sitz- und Stehplätze besetzt, dann laufen wartende Passagiere an den Haltestellen zu Tür, steigen aber nicht ein. Ist der Bus voll besetzt, dann können immer nur soviele Personen einsteigen, wie aussteigen wollen. Es können also niemals mehr Passagiere in den Bus einsteigen, als die Anzahl der eingetragenen Sitz- und Stehplätze. Das entspricht nicht immer der Realität. Verkehrsbetriebe wie die BVG rechnen mit einer sogenannten 300%-Regel.
- 100% = ein Drittel aller Steh- und Stitzplätze sind belegt.
- 200% = zwei Drittel aller Steh- und Sitzplätze sind belegt.
- 300% = Alle Steh- und Sitzplätze sind belegt, womit der Bus als Ausgelastet gilt.
-
301% = Der Maximalwert sagt aus, dass die Passagiere dicht gedrängt im Fahrzeug
stehen / sitzen und auch betriebsbedingte Freiräume benutzen (Türraum, Sichtbereich des Fahrers nach recht).
In Omsi ist eine Auslastung von 301% nicht möglich, wenn die Plätze nicht eingetragen wurde. Werden diese mit eingetragen, so kann es vorkommen, dass diese Plätze benutzt werden, wenn der Bus unter 300% ausgelastet ist.
______________________________________________________________________________________________________________________________
7. Quellen
Beitrag aus dem originalen Omsi-wiki.
Diverse Passengercabin-Dateien und Pathdateien in verschiedenen Bussen.
______________________________________________________________________________________________________________________________