Hallo zusammen,
heute ein tieferer Einblick in das Thema Zugzeilanzeigen:
Im TrainSim wird es mit dem Ringbahn-483 kein vollständiges IBIS geben, aber wechselbare Zugziele. Diese sollten möglichst nah ans Original kommen. Dazu haben wir uns zunächst mal das original angesehen und festgestellt, dass die Anzeiger mit 200, 192 und 160 Pixel Breite an Front, Seite und Innenraum unterschiedlich groß sind, obwohl teils die gleichen Schruftarten zum Einsatz kommen. Das sollte natürlich beim Spielerzug auch so separat umgesetzt werden, weil es optisch doch einige Auswirkungen hat. Zusätzlich sollte auch die Anzeige der HMI des Führerstands einbezogen werden.
Ganz grundsätzlich sind die Zugzielanzeiger (ZZA) mitunter ein sehr charakteristischer Bestandteil der Optik, vor allem an der Fahrzeugfront - je größer sie präsent sind, umso mehr prägen sie das Gesamtbild. Wenn man bedenkt, welche Drehgestellschrauben und Innenraumschlaufen mittlerweile ausmodelliert werden, sind ZZA einfach nicht mehr zeitgemäß, wenn sie mit Vektor-Schriftarten aus Windows-Bordmitteln à la "Arial" Zugziele umgesetzt werden. Daran ändert auch nichts, wenn die Vektorschrift dannn mit "Pixel-Hintergrund" ausgefüllt wird - es gibt dahingehend bis heute immer wieder Umsetzungen zu sehen, die meilenweit am Vorbild vorbeigehen. Auch wenn wir das in Vergangenheit v.a. für KI-Fahrzeuge ebenso gehandhabt haben, wollten wir doch davon wegkommen und hin zu einer originalen Optik. Aber machen wir uns nix vor: die vorbildnahe Optik erkauft man sich mit hohem Umsetzungsaufwand, vor allem wenn gleich eine ganze Serie an Zugzielen geboten werden soll. Doch es gibt ein paar "Verrückte" in der Szene, die ebenfalls so denken und schon so manche Originalschriftarten "nachgepixelt" haben. Da auch wir schon davon profitieren durften, nochmals ein dickes Dankeschön an dieser Stelle!
Ich habe für künftige ZZA-Umsetzungen mehrere Tools entwickelt, primär eigentlich für andere Projekte - dazu bei Zeiten mehr - deren Workflow hier kurz gezeigt werden soll.
Das Ziel ist es, die Pixelgrafiken nicht mehr vollends händisch zusammensetzen zu müssen.
Im ersten Schritt sollen aus Pixelmustern die Buchstaben des "Alphabets" einer Schriftart als Grafik entstehen.
Dazu benötigt es jede Menge Vorbildfotos, um zunächst alle benötigten Buchstaben, Ziffern und benötigten Sonderzeichen "nachzupixeln", d.h. als maschinenlesbares Pixelmuster zu erfassen. Das geht mit Textdateien ganz einfach, in den Matrizen abgespeichert werden -> "." = Pixel aus und "x" = Pixel an.
Bei der S-Bahn stehen neben den üblichen Zeichen natürlich als Sonderzeichen v.a. Ringbahnsymbole und Flugzeugsymbol im Fokus. Die NSB verfügt zudem über mehrere mögliche Schriftarten - hier umgesetzt wurden zunächst Fett- und Schmalschrift in voller Höhe. Die zweizweilige Darstellung folgt evtl. noch später.
Mit einem "Musterpixel" als Grafikvorlage werden aus den getippten Pixelmustern Grafiken:
Nun sieht das aber insbesondere bei den neuen, stark leuchtenden LED-Anzeigen etwas zu "brav" aus, weil diese im Gegensatz zu alten Flipdot-Anzeigen häufig überstrahlen, so dass der Schein eines Pixels seinen Nachbarn überragt. Dazu wurde der Programmkern erweitert, so dass auch über ihre eigentlichen Pixelränder hinaus strahlende Anzeige-Pixel passend zu Zeichen zusammengesetzt werden können und sich benachbarte Pixel überlagern können. Im Gegensatz zum Standard-Modus genügt es hier nicht mehr, einfach Pixelgrafiken entsprechend des Matrix-Musters zu "stempeln", sondern die Farbwerte müssen sich additiv überlagern, so dass ein smoother Überstrahl-Effekt entsteht - man braucht also eine echte Filter-Anwendung.
Beispielhaft dazu mal einige Zeichen aus dem Softwaretest:
Links klassisch, rechts daneben im Testmodus fürs Überstrahlen (schwach rote Ränder um jeden Anzeige-Pixel, die stark rot werden, wo sie sich überlappen). Halbrechts im Ergebnis eine leuchtende "6" und ganz rechts noch eine zusätzlich generierte Glow-Maske: die gibt nicht nur den Effekt sehr eindrücklich wieder, sondern wird im Train Sim Classic auch im zweiten Texturkanal benötigt, um auch den passenden Shader nutzen zu können, der für strahlende Ergebnisse sorgt ![]()
Mit einem weiterem Tool werden aus den Einzelbuchstaben der jeweiligen Schriftarten dann Schriftzüge "gestempelt" (wobei im Leucht-Modus auch hierher Informationen zu ggf. übertrahlenden Rändern der Buchstaben übertragen werden müssen). Es wurde eine Skriptsprache entwickelt, die es erlaubt, für ganze Zugziel-Sätze stapelverarbeitend Befehle vorzubereiten. Dabei können vorbereitete Hintergründe zum Einsatz kommen, auf die mit entsprechendem Versatz die Schriftzüge passend aufgebracht werden.
Wir sehen hier beispielhaft das Ziel Potsdam mit und ohne Überstrahl-Effekt.
Um auch hier einfach mal zu testen, dass leuchtende Überlagerungen genauso für Nachbarbuchstaben (wie für Nachbarpixel eines Zeichens) funktionieren, ein übertriebenes Beispiel der S46 - klappt offensichtlich:
Schließlich hab'ich versucht, ein halbwegs realistisches Leuchten der LED-Anzeige im Spiel zu erzeugen, die weder hinter dem getönten Glas weder am Tage, noch nachts oder im Tunnel völlig unrealistsich wirkt - gar nicht so einfach...
Im Falle der Spielerzug-ZZA für den 483 / 484 wurden solche ZZA-Texte mit mehrfachem Versatz viermal für die verschiedenen Anzeigen ggf. abgewandelte Texte via Skript umgesetzt.
Das Beispiel zeigt auch gleich den Einsatz mehrerer Schriftarten in einer Anzeige. Auf diese Art sind 57 Zugzielanzeigen mit ringbahntypischem Inhalt entstanden, die im Spiel ganz klassisch durchgeschaltet werden können.
Als kleines Goodie zum fehlenden IBIS wird immerhin auch in der HMI stets das aktuell geschilderte Zugziel angezeigt:
Zudem wird auch im Innenraum die ZZA mitgeschaltet:
Und noch eine Impression von außen:
Die gezeigten Tools werden uns für andere Projekte eine unverzichtbare Hilfe sein, konnten aber auch hier schon ihre Leistungsfähigkeit toll unter Beweis stellen ![]()
Viele Grüße,
Benjamin