📚 Docs

Karten-Mods: Phase 2

Aktualisiert mit v252 - April 2020 Von Marcos Elias

Einführung

Phase 2 des Proton Bus Karten-Mod-Systems ermöglicht Passagiere, Verkehr und mehr im Spiel! Dies hebt es auf ein ganz anderes Niveau, man kann Proton buchstäblich in vor und nach diesem Feature unterteilen. Es ist fast wie ein neues Spiel!

Warnung: Aus Zeitgründen ist ein individueller Support beim Konvertierungs- und Bearbeitungsprozess nicht möglich. Wir empfehlen, es selbst zu versuchen, zu sehen, wie andere Karten erstellt wurden, und die Dateistrukturen zu erkunden. Posten Sie Fragen und verwandte Probleme lieber in den Facebook-Gruppen des Spiels, damit die Lösungen allen helfen und auch andere Mod-Ersteller Ihnen helfen können.

Falls Sie noch nicht abonniert sind, treten Sie dem Kanal des Produzenten bei: www.youtube.com/marquinhosxp. Dort werden einige Videos und Tutorials veröffentlicht.

Offizielle PBSU Facebook-Seite: https://www.facebook.com/protonbusoficial Und PBSR: https://www.facebook.com/protonbusrod.oficial/

Facebook-Gruppen

Exklusive Gruppe für Mod-Ersteller: https://www.facebook.com/groups/pbsmods/ Bitte vermeiden Sie es, dieser Gruppe beizutreten, wenn Sie nur Spieler sind, um sie nicht mit themenfremden Beiträgen zu überladen (die gelöscht werden)!

Gruppen für Benutzer: In diesen sind Beiträge mit Screenshots, Tipps, Videos, verschiedenen Tutorials usw. aus Sicht der Spieler willkommen:

Tipp für eine gute Seite, um Texturen für Mods zu erhalten: http://www.textures.com


Anmerkungen zu Phase 1

Bevor Sie eine Karte in Phase 2 beginnen, müssen Sie die grundlegende Produktion für Phase 1 beherrschen. Wenn Sie damit noch nicht vertraut sind, machen Sie sich keine Sorgen, Sie können dieser Anleitung anhand der Beispielkarte folgen. Die größte Anforderung sind grundlegende Blender-Kenntnisse, da wir es verwenden werden, um die Karten zu exportieren.

Die alte Dokumentation zu Phase 1 finden Sie hier, für Karten: http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html

Und für Busse: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

Es ist immer gut, die neueste Version des Spiels zu haben! Alte Versionen werden nicht mehr unterstützt, die Beta entwickelt sich ständig weiter, daher betrachten wir immer die neueste. Die neuesten Builds finden Sie unter http://pbsu.busmods.com für Stadtbusse und http://pbsr.busmods.com für Reisebusse.

Im Grunde verwenden wir Blender 2.79, um die Szenerie zu erstellen, das Modell im 3ds-Format zu exportieren und die Ordner- und Dateistruktur für das Proton Bus-System zu erstellen.

WICHTIG: VERWENDEN SIE BLENDER 2.79! Der für das aktuelle Spielformat erforderliche Exporter funktioniert anscheinend nicht mit Blender 2.8, er wurde offenbar eingestellt und niemand hat ihn bis heute aktualisiert. Vielleicht funktioniert er in Zukunft wieder, einige Leute versuchen es.

Sie können Blender 2.79 hier herunterladen: https://download.blender.org/release/Blender2.79/ Die neueste Version ist normalerweise die mit einem „b“ im Namen. Die Plattform ist egal, es hängt von Ihrem System (Windows, Linux oder Mac) und der Architektur (32 oder 64 Bit) ab.

Wenn Sie die Karte bereits in 2.8 begonnen haben, wäre die Empfehlung, sie in ein Zwischenformat zu exportieren, das 2.79 öffnen kann, und dann von dort aus für das Spiel zu exportieren.

WICHTIG: ÄNDERN SIE DEN 3DS-EXPORTER FÜR PROTON! Der Standard-3ds-Exporter in Blender kürzt Objekt- und Texturnamen auf 12 Zeichen. Wir werden normalerweise mehr als das benötigen, um Fehler in den Namen einiger Teile und/oder Texturen zu vermeiden.

Download des geänderten Blender-Plugins zum Exportieren (Datei für Blender 2.79): http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip

TUTORIAL ZUM ÄNDERN DES PLUGINS: https://youtu.be/0EokFmSjGdA

Wenn Sie es vorziehen, anstatt dieses herunterzuladen, ändern Sie die Datei export_3ds.py im Ordner scripts\addons\io_scene_3ds Ihres Blenders. Suchen Sie nach [:12] und ändern Sie die 12 in eine viel größere Zahl, wie 999. Das ist das Zeichenlimit. Ohne dies kann der Export in das Spiel fehlschlagen.

TIPP: BEIM HERUNTERLADEN VON BLENDER KÖNNEN SIE DIE „PORTABLE“ ZIP-VERSIONEN WÄHLEN, UM MEHRERE VERSIONEN GLEICHZEITIG ZU BEHALTEN.


Die Dateistruktur des Karten-Mods

Die Karte in Proton besteht aus mehreren txt-Dateien (reiner Text) und einigen Ordnern. Die wesentliche primäre Struktur ist eine Kartendefinitions-txt und ein Ordner, die sich beide im Ordner maps befinden, der wiederum im Mods-Ordner des Spiels liegt.

Beispiel für die Struktur auf dem PC:

Ordnerstruktur

Die Kartendefinitions-txt muss auf .map.txt enden (z. B. Estrada Longa.map.txt). Es muss ein eindeutiger Name sein!

WICHTIG: VERWENDEN SIE NIEMALS AKZENTE, CEDILLAS ODER SONDERZEICHEN IN MOD-DATEINAMEN!

In dieser txt haben wir die Grundstruktur:

[map]
baseDir=Estrada Longe 
; Der Basisordner der Karte, der sich zusammen mit der .map.txt in maps befindet

modelsDir=Rota 1 
; Der Modellordner, der sich im Ordner tiles befindet

textures=textures 
; Der Texturordner

mapModVersion=2 
; Verwenden Sie Nummer 2 in Phase 2!

preview=preview.png 
; Bild des Auswahlbildschirms (16:9, z. B. 640x360)

Im Basisordner der Karte müssen andere Ordner vorhanden sein:

Basisordner

  • dest: Speichert Schilder und Kennzeichen.
  • skins: Speichert Kartenbus-Skins (in skins/0/pbc).
  • textures: Speichert Texturen. Vermeiden Sie JPG, verwenden Sie PNG!
  • tiles: Muss zwingend diesen Namen haben. Darin befindet sich der Modellordner (modelsDir).

WICHTIG: PROTON BUS KARTEN-MODS WERDEN VOLLSTÄNDIG GELADEN! SIE DÜRFEN NICHT ZU SCHWER SEIN. WENN SIE MEHRERE LANGE LINIEN MACHEN WOLLEN, TEILEN SIE SIE IN TEILE AUF.

Im Ordner, der in modelsDir definiert ist, befinden sich die exportierten .3ds-Dateien und Konfigurationen:

Ordner Tiles

Interne Struktur des Modellordners:

Modell-Unterordner

  • aipeople: Fußgängereinstellungen.
  • aitrains: Zugeinstellungen.
  • aivehicles: Verkehrseinstellungen.
  • busstops: Bushaltestelleneinstellungen.
  • entrypoints.txt: Erweiterte Einstiegspunkteinstellungen.
  • entrypoints_list.txt: Einfache Liste der Einstiegspunkte.

WICHTIG: MODS SIND NICHT GESCHÜTZT! TECHNISCH GESEHEN IST ES KEIN SPIEL. DER EINZIGE WEG, DASS IHR MOD NICHT BEARBEITET ODER GELEAKT WIRD, IST, IHN NICHT ZU VERÖFFENTLICHEN.


Konfigurieren der Einstiegspunkte

Einstiegspunkte definieren, wo der Bus beim Start des Spiels erscheint. Sie müssen eindeutige Namen haben (z. B. 351F-10 TP, Garagem Central).

WICHTIG: VERWENDEN SIE NIEMALS AKZENTE ODER SONDERZEICHEN IN DIESEN NAMEN! VERWENDEN SIE AUCH KEINE SCHRÄGSTRICHE.

entrypoints_list.txt

Einfache Liste, ein Name pro Zeile.

Liste der Entrypoints

entrypoints.txt

Definiert Position und physische Rotation auf der Karte.

Konfiguration Entrypoints

Denken Sie daran: In Blender ist Y vorne/hinten und Z Höhe. In Unity (Spiel) ist Y Höhe und Z vorne/hinten. Vertauschen Sie Y und Z beim Kopieren von Koordinaten!

Um die Koordinaten herauszufinden, verwenden Sie ein Empty-Objekt in Blender:

Empty in Blender

Schilder und Ziele

Erstellen Sie im Ordner dest Ordner mit EXAKT demselben Namen wie die in der txt definierten Entrypoints.

Ordner Dest

In jedem Zielordner befinden sich die Bilder:

Zielbilder

WICHTIG: VERMEIDEN SIE BILDER GRÖSSER ALS 2048 PIXEL FÜR MOBILTELEFONE!

Vorgeschlagene Dateinamen für Schilder:

  • 1.png, 2.png, 3.png (Elektronische Schilder 1024x128)
  • capelinhaDigital.png, capelinhaPVC.png (256x128)
  • lonaDestino.png, lonaLinha.png (Rollbandschilder)
  • placa1.png, placa2.png, placa3.png (Seiten- und Frontschilder)

Konfigurieren der Passagiere

Jede Haltestelle muss im 3D einen eindeutigen Namen haben (z. B. zzPonto1).

In Blender (3D)

Die Haltestelle besteht aus:

  1. Einem unsichtbaren Würfel (Trigger) namens haltestellenname_trigger.
  2. Kleinen Objekten (Ebenen/Würfel) für die Passagierposition, genannt haltestellenname.000, haltestellenname.001 usw.

Haltestelle in Blender

TIPP: Verwenden Sie einfache Ebenen für die Passagiere, um Polygone zu sparen.

Korrekter Trigger:

Korrekter Trigger

Beispiel für gut positionierten Trigger:

Beispiel Trigger

Beispiel für schlecht positionierten Trigger (darf nicht!):

Falscher Trigger

Überlappend (darf nicht!):

Überlappender Trigger

Korrekt an gegenüberliegenden Haltestellen:

Gegenüberliegende Haltestellen

Visualisierung im Debug:

Debug Modus

In der .txt-Datei (busstops)

Erstellen Sie eine txt im Ordner busstops mit demselben Namen wie die Haltestelle.

Txt Busstop

[busstop]
name=Platz Haltestelle
isLeft=0
paxAmount=15

[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
  • prefix: Muss exakt mit dem im 3D verwendeten Namen übereinstimmen (vor dem .000).
  • defPaxRotY: Standardrotation der Passagiere (testen Sie 0, 90, 180, -90).

Konfigurieren der Fußgänger

Funktioniert ähnlich wie Haltestellen: eine Folge von Objekten, die einen Pfad (Path) definieren. Beispiel: xxCalcada1.000, xxCalcada1.001 usw.

Fußgängerpfad Blender Fußgänger

Erstellen Sie eine txt im Ordner aipeople:

Txt Fußgänger

[automatic_setup]
enabled=1
loop=0
reverse=0

[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
  • loop=1: Der letzte Punkt verbindet sich mit dem ersten (kreisförmig).
  • loop=0: Der Pfad endet am letzten Punkt (linear).

Konfigurieren der Verkehrsfahrzeuge

Einfach genau wie die Fußgänger! Ordner aivehicles.

Verkehrs Txt

  • isBusSpawner=1: Damit Busse erscheinen.
  • spawnInterval: Erhöhen, um den Verkehr zu reduzieren.
  • speedMultiplier: Geschwindigkeit ändern (z. B. 0.5 halb, 2 doppelt).

Konfigurieren der Kartenbus-Skins

Platzieren Sie die Skins (PNG) in skins/0/pbc. Das Spiel wählt zufällig aus. PBC-Skin-Basis: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip


Konfigurieren der Züge

Gleiche Logik, Ordner aitrains. Empfehlung: isSpawner=0 in defaults, und definieren Sie manuelle Spawner mit Abstand.

Zug Txt

  • randomTimeToWaitAtStart=1: Startet zu zufälliger Zeit.
  • spawnTimeInterval: Intervall zwischen Zügen (z. B. 120 Sekunden).

WICHTIG: ZÜGE HALTEN NICHT AN! SIE ÜBERFAHREN ALLES. MACHEN SIE KEINE BAHNÜBERGÄNGE.


Spezielle Befehle und Namen in 3D-Modellen

  • Transparenz: Verwenden Sie _transparent_ im Objektnamen (z. B. grade_transparent_).
  • Collider: Verwenden Sie _gencol_, um automatische Collider zu generieren (Straßen, Gehwege). Sparsam verwenden!
  • Unsichtbarer Collider: Verwenden Sie _gencol_invisible_ (z. B. barreira_gencol_invisible_).
  • Emissive: Verwenden Sie _emissive_ für immer eingeschaltete Objekte.
  • Zone mit niedriger Geschwindigkeit: Objekt _low_speed_zone_ für Terminals (vermeidet Beschwerden).

Low Speed Zone

  • Ausgang erzwingen: Objekt _force_exit_ in der Nähe der Endhaltestelle.

Force Exit

  • Extra-Details: Beenden Sie die 3DS-Datei mit _det1.3ds (z. B. arvores_det1.3ds). Wird nur geladen, wenn der Benutzer "Extra-Details" aktiviert.

Konfiguration der glitzernden Texturen

Um flackernde Texturen (Z-Fighting/Flickering) auf dem Boden zu vermeiden, erstellen Sie eine .config.txt-Datei neben der Textur. Bsp: asphalt.png.config.txt.

Config Txt


Extras - Optimierungstipps

  • Kleine Texturen: Verwenden Sie 256x256 oder 512x512 für repetitive Texturen.
  • MAX 2048px: Verwenden Sie NIEMALS Texturen größer als 2048px für Mobiltelefone!

Textur Warnung

  • Collider: Vermeiden Sie komplexe Collider. Verwenden Sie _gencol_ nur auf dem Boden und Hauptwänden.
  • Materialien: Vermeiden Sie viele Materialien auf demselben Objekt.
  • Objekte kombinieren: Kombinieren Sie nahegelegene Bäume mit demselben Material, um Draw Calls zu reduzieren.

Das war's für heute! Viel Spaß!