Google Maps als Bodentextur

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


  • Ich habe gerade mal einen Mitarbeiter von UG gefragt, er meint, dass es mit dem aktuellen Terrainshader wohl eher nicht möglich ist. Es wäre aber wohl möglich, dass man den Terrainshader selbst neu schreibt.

    Da bin ich dann aber der falsche Ansprechpartner für ;)

  • Hendi

    Hat das Label Feature-/Scriptanfrage hinzugefügt
  • Bin heute auf eine Idee gestossen (die es jedoch schon gibt, aber für meinen geschmack nicht genau das ist was ich mir vorstelle). Anstelle den Shadder neu zu bauen wäre es einfacher ein Mod zu erstellen der anhand eines Bildes die Oberfläche platzieren lässt.


    Siehe Idee auf Steamworkshop: Map overlay tool


    Für meinen Geschmack müsste die Mod aber wie folgt funkitionieren:


    ENTWEDER mit dem Pinseltool, anhand der Coordinaten und der Himmelsrichtung auf der Karte die Fläche abgebildet werden wo gerade gepinselt wird.

    1. Modeinstellungen: Bildsource und Bildgrösse entsprechend der Kartengrösse
    2. Asset - Pinsel - "PaintYourMap" auswahl
    3. (nun kommt der Trick und die Komplexität) die Mod soll die Mauscoordinaten erkennen und die Pinselgrösse, sobald gepinselt wird, wird die Map auf der Oberfläche der Karte gepinseln.
      1. Da kommt eher die Frage ob die Koordinaten auch auf das Bild übertragen werden können bzw. gelesen werden können damit dafür die richtige Texture entsprechend des Bildes aufgetragen wird.
    4. Mit dem Ingame-Löschen Pinsel kann die Textur auch wieder weg radiert werden.

    ODER: "Einfach" das Bild entspricht der Kartengrösse. Diese kann man dann über ein Menü in der Taskliste EIN/AUSSCHALTEN.

    • Hier die Schwierigkeit, dass das Bild der Oberfläche entspricht und nicht einfach nur "flach"ist.
  • Deutsch

    Da ich bereits mit Terrain-Texturen zu tun hatte, habe ich mich im Februar schon mal kurz damit beschäftigt: Luftbilder als Konstruktionsvorlage nutzen

    Bei /// M Power hatte ich dazu paar Ideen gesehen und die mit den Terrain-Texturen damals direkt ausprobiert, aber sonst nichts weiter. Jetzt habe ich wieder etwas mehr Zeit und wollte das nun ausführen.


    Grundsätze

    • eine Spielwelt braucht mind. vier Kartenbilder, denn im Zentrum befinden sich immer die Ecken von vier Texturen

           

    • eine Terrain-Textur muss immer 4096x4096 Pixel Größe besitzen
    • wird in der Config-Datei einer Terrain-Textur für detailSize z.B. der Wert 1 / 2048 angegeben, dann wird die Textur auf ziemlich (oder ganz) genau 2048 m skaliert

    Beispiele

    Nachfolgend gibt es paar Beispiele verschiedener Skalierungen samt der Bedeutung für eine Spielwelt mit 12x12 km Größe.


    Beispiel 1:

    Skalierung der Terrain-Texturen: detailSize = 1 / 2048

    Ein Pixel der Terrain-Textur entspricht im Spiel: 0,5 m

    Umgerechnete Breite einer Textur: 2048 m

    Anzahl benötigter Terrain-Texturen bei Spielwelt 12x12 km: 36 (6x6)


    Beispiel 2:

    Skalierung der Terrain-Texturen: detailSize = 1 / 3072

    Ein Pixel der Terrain-Textur entspricht im Spiel: 0,75 m

    Umgerechnete Breite einer Textur: 3072 m

    Anzahl benötigter Terrain-Texturen bei Spielwelt 12x12 km: 16 (4x4)


    Beispiel 3:

    Skalierung der Terrain-Texturen: detailSize = 1 / 1024

    Ein Pixel der Terrain-Textur entspricht im Spiel: 0,25 m

    Umgerechnete Breite einer Textur: 1024 m

    Bewertung: Die Auflösung ist gut.

    Anzahl benötigter Terrain-Texturen bei Spielwelt 12x12 km: 144 (12x12)


    Beispiel 4:

    Skalierung der Terrain-Texturen: detailSize = 1 / 4096

    Ein Pixel der Terrain-Textur entspricht im Spiel: 1 m

    Umgerechnete Breite einer Textur: 4096 m

    Bewertung: am simpelsten, weil 1 px = 1 m

    Anzahl benötigter Terrain-Texturen bei Spielwelt 12x12 km: 16 (4x4)


    Beispiel 5:

    Skalierung der Terrain-Texturen: detailSize = 1 / 4000

    Ein Pixel der Terrain-Textur entspricht im Spiel: 0,9766 m

    Umgerechnete Breite einer Textur: 4000 m

    Bewertung: simpel anzuwenden, wenn ein Einzelbild exakt 1 km abbildet, 16 1-km-Einzelbilder können zu einem 4-km-Bild zusammengefügt werden

    Anzahl benötigter Terrain-Texturen bei Spielwelt 12x12 km: 16 (4x4)


    Möchte man sich für eine Skalierung der Terrain-Texturen entscheiden, sind zwei Informationen interessant:

    • Spielweltgröße (so größer die Welt, desto mehr Arbeit und mehr Texturen bei kleinerer Skalierung wie z.B. detailSize = 1 / 1024, besser größere Skalierung wie detailSize = 1 / 4096 wählen)
    • Skalierung originaler Karten- oder Luftbilder (wenn z.B. 1 px = 1 m, dann detailSize = 1 / 4096)


    Hier sind jetzt viele Infos zu finden, die ich hauptsächlich durch probieren und berechnen herausgefunden habe, eine absolute Garantie für Richtigkeit kann ich daher nicht geben.


    Kurzanleitung zum Hinzufügen von Bild-/Kartenmaterial zur Modifikation

    • eine einzelne Terrain-Textur braucht immer eine Config-Datei (Pfad: "relozu_map_test_1/res/config/terrain_material/shared")
    • eine einzelne Terrain-Textur braucht trotzdem mehrere Texturdateien (Pfad: "relozu_map_test_1/res/textures/terrain")
    • die Config-Datei führt die Texturdateien zusammen
    • für neue Karten-Terrain-Texturen werden immer jeweils eine neue Config-Datei und eine Texturdatei mit der Endung _albedo benötigt, andere Texturdateien können wiederholt verwendet und daher ignoriert werden
    • beim Erstellen in einem Editor wie GIMP muss die Textur vertikal gespiegelt und als dds mit der Kompression DXT1 und generierten Mipmaps exportiert werden
    • ihr könnt die in der Mod enthaltene Textur als Basis nehmen (Datei kopieren, umbenennen, bearbeiten und exportieren)
    • auch die Config-Datei könnt ihr immer wieder kopieren und müsst darin Folgendes ändern:
      • name – Hier kommt der Anzeigename der Terrain-Textur hin
      • detailColorTexture – Hier kommt der Name der Albedo-Textur hin
      • detailSize - ggf. und oben erklärt
    • Benennungen können sich z.B. an einem 2D-Koordinatensystem orientieren:
      • Textur am weitesten südwestlich (links unten) ..._0-0
      • Textur östlich (rechts) daneben ..._1-0
      • usw.

    Nutzung im Spiel

    Falls ihr die Standard-Terrain-Textur der Mod behaltet, könnt ihr am Anfang den Boden mit einem Gitter bemalen und naher eure angepassten Terrain-Texturen in die entsprechenden Felder malen.

    Automatisch geht das leider nicht, es ist halt eine Bastellösung. Der Vorteil ist, es müssen keine Shader geändert werden.

    Ist ein Bereich später fertig bebaut, kann der Radiergummi verwendet werden, um die Terrain-Texturen in den Ursprungszustand zurückzubekommen.


    Changelog des Beitrags grob

    • Entfernung veralteter Informationen zu Kartengrößen (Abmessungen richten sich nicht mehr nur nach n * 256 + 1)! und Überarbeitung der Beispiele
    • Mod angepasst - Dateinamen geändert und Buchstaben für Himmelsrichtungen hinzugefügt
    • Nutzung im Spiel bearbeitet - es reicht ein Gitter zu malen
    • Beispiel 5 hinzugefügt

    Dateien

    5 Mal editiert, zuletzt von Relozu () aus folgendem Grund: siehe Changelog

BlueBrixx