Änderbare Orts- und Bahnhofsschilder

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • SO was wolte ich auch machen war schon am überlegen wie man sowas umsetzten kann.
    Leider können keine Texte so wie du dir es vorstellst geändert werden.


    Warte mal auf den Patch ab und schauen ob das Parameterfenster noch verbessert wird dann könnte ich mir sowas in der Richtung vorstellen dieses umzusetzten.


    Gruß Zargom

  • Diese Frage habe ich bereits am Anfang der Beta gestellt. Da wurde mir mitgeteilt, das die Namen reine Texturen sind, und es daher nicht möglich wäre. Gehen würde es nur, wenn ein Feld in der Textur dynamisch geladen werden könnte. Bzw. der Name eine eigene Textur wäre, die dynamisch geladen werden könnte. Und dann bleibt noch die Frage, wer macht die Texturen?

    --
    RIP Roy Batty, Cardinal Roark, Frank Warren, Sallow, Nick Parker, John Ryder und Navarre. Nur eine kleine Auswahl.

  • Schon zu TF Zeiten hatte ich ja den Traum von sowas in der Art. Gererierte Texturen oder wie mans nennen mag - also ein Material einzig dazu geschaffen dynamisch Texte zu generieren. Als mtl könnte ich mir da bspw sowas vorstellen:




    Als "Typ" oder wie auch immer gibt man map_dynamic_text an und ganz unten DYNAMIC_TEXT. Neben so manchen Standard-Settings gibts hier aber ein paar Alternativen. der textString ist dann eben genau der Text, der generiert werden soll. Hier hab ich mal 3 Beispielzeilen erstellt, in der fertigen mtl würde da natürlich nur eine stehen ^^ Also entweder gibt man fest einen Text ein oder nutzt "Variablen" (also eben von TpF gelieferte Werte). Als solche Variablen fielen mir Spontan der Stationsname ein (also ich platziere in TF ne Haltestelle und dann hat das Teil ja einen Namen - der würde dann angezeigt) oder aber eben der nächste Halt (also mein Bus fährt zur Wiesenstrasse, dann würde genau das der Text sein).


    Hier muss natürlich seitens UG beim Implementieren Sorgfalt bewahrt werden. Hab ich einen Bus mit ~stationName, sollte das Spiel nicht einfach abrauchen (weil ein Bus ja keinen Stationsnamen hat ^^ ) sondern am besten einen kurzen Fehlertext statt des Stationsnamens generieren. In der Zielanzeige des Busses würde dann halt Error stehen oder so ^^ bzw am Schild des Bahnhofs würde eben als ~nextStop ebenso Error generiert :P


    Der textStyle soll einfach nur angeben, wie der Text ausgegeben wird. Ein Stationsschild würde man wohl als static deklarieren, aber ne moderne LCD-Anzeige kann ja durchaus bewegten Text beinhalten. Also bounce wäre dann für überlange Texte, die nicht ganz auf die Textur passen, dass der Text eben von links nach rechts läuft, dort Stoppt und wieder zurückläuft. Loop hingegen würde den Text quasi in einer Tour von rechts nach links laufen lassen. Hier könnte man also bspw auch noch weitere Optionen anfügen. Aus loop wird Loop_left und loop_right oder ein horizontal_loop_up und _down bla.


    Was ich mir auch vorstellen könnte, dass man mehrere Texte angeben kann. Dann müsste die Struktur von textString etwas angepasst werden. Eventuell so:


    Code
    textString = {
    	~lineName,
    	~nextStop,
    }
    textTransition = "loop", ["bounce", "fade", "instant"...]


    Hier als Übergangsmöglichkeit auch wieder die verschiedensten Optionen. Vorstellung für eine Umsetzung wäre bspw die Fahrtzielanzeige im Bus, dass zuerst die Linie angezeigt wird, dann schiebt sich der nächste Halt von unten nach oben ins Bild bla. Irgendwie sowas. Ach es gibt da soviele Ideen! Man könnte die Linien etwas umformen, also anstelle eines simplen Namens wie bisher könnte man auch ne Liniennummer (A, B, C1, C2, 453...) seperat angeben und dann die Variable ~lineNumber und ~lineName erstellen. Dann könnte man ne LCD-Anzeige aus 2 Rechtecken gestalten wo vorne in nem sehr kurzen Rechteck dann eben die Liniennummer statisch ausgegeben wird und danaben im "Hauptbereich" der Anzeige, weche eben ein 2. Face/Rechteck mit 2. Material darstellt, dann eben dynamisch immer Linienname und nächsten Stop anzeigen. Übergang zwischen beiden wäre dann von oben nach unten oder ein direkter switch ("instant") oder so und die eigentliche Textanzeige bounced von links nach rechts. Auch könnte man ne transitionDuration noch andenken, also nach wievielen Millisekunden soll die Transmission zwischen den Texten stattfinden? Auch hier könnte man noch ins Detail gehen:


    Code
    transmissionDuration = {
    	type = "loop", ["mseconds"]
    	duration = 2,
    }

    Hier hab ich bspw 2 Loops angegeben. Also meinetwegen läuft ein Text durch - dann soll das 2mal passieren, bevor gewechselt wird. Allerdings braucht man hier sicher noch Feinschliff für die Idee - weill wenn ich bspw Platz für 20 Zeichen hätte, der Text aber nur 10 lang ist, wird nichts gelooped ^^ Wird nichts gelooped (loop-dauer = 0 szs), dann sind 2 Loops eben auch recht fix vorbei (2*0=0 >< ). Also eventuell eher sowas hier:


    Code
    transmissionDuration = {
    	preferredType = "loop", ["mseconds"]
    	loopDuration = 2,
    	msDuration = 5000,
    }

    Würde also bedeuten, dass er immer erstmal von der Loop-Dauer ausgeht. Looped da nix, dann wird eben 5 Sekunden gewartet. Meine Güte, jetzt bin ich kaum am Anfang und schon soviel Text >< Mir käme noch die Idee in den Sinn, dass man die Dauer/Geschwindigkeit von Loops und Transmissionen angeben könnte. Also bspw soll der Text mit 6 Zeichen pro Sekunde von links nach recht bewegt werden oder eben eine Transmission von einem Text zum anderen 3 Sekunden dauern. Hach, da kann man so schön ins Detail gehen xD


    Najut, mal weiter zu den font Geschichten. Also font an sich ist relativ Klar denk ich mal. Hier gibt man einfach den Namen der Schriftart an. Ich würde da ganz simpel auf den Windows Font-Ordner zugreifen (also das wendet sich an UG, die ja irgendwo die Fonts herholen müssen), alternativ kann man natürlich auch über einen fonts-Ordner im TpF-Verzeichnis nachdenken. So könnte man diesen in die Mod-Struktur mit einpflegen... hm, klingt garnichtmal so übel. Zudem könnte UG einen Standard-Font bereit stellen, der auf allen Systemen (Win, Mac, Linux) funzt. Die Standard Windows-Fonts werden wahrscheinlich nicht überall Standard sein. Naja, da müsste man wohl doch noch etwas tiefgehender drüber nachdenken.


    fontStyle wäre halt eben bold (fett), italic (kursiv), none (normal)... Wohl auch recht selbsterklärend ebenso wie fontSize. fontColor sowie backgroundColor dürfte auch selbsterklärend sein, was ich da meine. Was man hier noch überlegen könnte wäre, dass man (zumindest als Background) auch Texturen zulässt. Bzw man hier ein Material angeben kann. Verwitterte Bahnhofsschilder sind sicher selten blütenweis ^^


    Bei den Dimensionsangeben bin ich mir etwas unschlüssig, ob man die überhaupt braucht. Man hat ja ne UV-Map und kann doch eigentlich daraus Rückschlüsse ziehen oder? Naja, ich habs mal mit aufgeführt.


    Joa, dann bleiben eigentlich nur noch die Props. Hier hab ich jeweils für den Vordergrund (also Text) und den Hintergrund separierte Angaben gebastelt. Grund eben LCD's wo ja nur der Text leuchten soll als Beispiel ^^




    Nun gut, ich muss schon wieder :/ Hab ja nichmal Zeit fürs Forum ><

  • Da wirds aber schewiriger...weiss nicht ob man die mit Station_name verknüpfen kann...

  • Der einfachhalber würde ich als Text nur die Endbahnhöfe nehmen. Kenne ich auch gar nicht anders aus Berlin. Und die Anzeigen innerhalb der Fahrzeuge dürfte sowieso keine Rolle spielen. mit nur 24 freigestellten Texturen ließe sich da sicherlich etwas machen.
    Was problematisch sein dürfte, ist das was @DarkMo ansprach.

    --
    RIP Roy Batty, Cardinal Roark, Frank Warren, Sallow, Nick Parker, John Ryder und Navarre. Nur eine kleine Auswahl.

  • Hmm, als Asset Bahnhofsschild?


    Das wäre theoretisch jetzt schon möglich wenn es jetzt nur Großbuchstaben sein sollen, das wären dann 25 Modelle (für Leerzeichen) + ein Mast. Sonst hat man 49 Modelle.
    Performance technisch wäre das aber überhaupt nicht gut...

  • Weil 49 unterschiedliche Modelle mit 12 Dreiecken viel langsamer Rendern als ein Modell mit 1000 Dreiecken. Du errechnest dann ja für jede Modellinstanz ja auch noch so Sachen wie Lods und co und hast jeweils einen Render Befehl.


    Wer gerne die Modelle erstellt und die 25 bzw. 49 "Buchstaben" per UV Map erstellt kann sich gerne bei mir melden, das Script dafür würde ich schreiben.
    Zum Bauen muss der besagte Bahnhof kurz umbenannt werden, sprich ein Anhängsel bekommen damit das Script den Bahnhofsnamen findet. Oder wie bei meinem Bahnhof dann per Liniennamen, da kann man dann jeden Text erstellen. (Jeder Buchstabe bekommt ein Modell damit der Zeichenabstand stimmt)


    Um es einfacher zu machen, kann man dann eine Textur haben mit weißen Text auf blauen Grund (heute) und noch eine zweite mit schwarzen Buchstaben auf weißen Grund. (alte Bahnhöfe)

  • Oh das habe ich nicht gewusst ich dachte ein Modell aus einem Mesh mit 10 000 Tris braucht genau so viel Leistung wie 100 Meshes mit je 100 Tris.
    Na gut hab ich auch wieder etwas dazugelernt.


    Edit: aja und wie kommst du auf 25 bzw. 49 Buchstaben? Das Alphabet hat doch 26 + äöü + Leerzeichen = 30 bzw. 59

  • Wäre auch was Tolles für die Zielanzeigen der Züge!

    Da wirds aber schewiriger...weiss nicht ob man die mit Station_name verknüpfen kann...

    Ich schrieb doch explizit, dass es mir nicht nur um Bahnhofsschilder geht. Lies am besten nochmal alles, deine Frage wurde in meiner Idee längst bedacht ;)

  • In der Beta ging es mir hauptsächlich nur um die Bahnhofsnamen. Es gab nur die einheitlichen UG Bahnhöfe. Da bin ich ganz naiv ran, und dachte man könnte schon bei Spielstart anhand der Stadtnamen "Schilder" vorfertigen (Abgesehen von den ganzen Schriftarten und optischen Spielereien). Diese dann beim Bau des Bahnhofs in einen dafür vorgesehenen Platzhalter einfügen, und somit jeden Bahnhof zu individualisieren. Nachträglich wird das wohl nur sehr umständlich ;oder auch garnicht; einzupflegen sein.


    Und mich würden alle Bahnhofs Spezialisten hassen.

    --
    RIP Roy Batty, Cardinal Roark, Frank Warren, Sallow, Nick Parker, John Ryder und Navarre. Nur eine kleine Auswahl.

BlueBrixx