City Bus Manager

City Bus Manager

Not enough ratings
[Deutsch] Bus Modding
By [PeDePe] Niklas and 1 collaborators
In dieser Anleitung wird beschrieben, wie man neue Busse erstellen und zum City Bus Manager hinzufügen kann. Spieler, die keine eigenen Busse erstellen möchten, können auch geteilte Busse direkt im Steam Workshop herunterladen.
   
Award
Favorite
Favorited
Unfavorite
Video Guide
Allgemein

Gelenkbus
I. Erstellung des Bus Modells
In diesem Abschnitt geht es um die Erstellung eines Bus Models im 3D Programm und die benötigten Texturen.

1. Modeling
Orientiere dich für die Maße der jeweiligen Bustypen an den Stellplatz Referenzen aus dem Modding Plugin.

Das Busmodell muss aus folgenden separaten Objekten bestehen:
  • Bus Body Objekt (Objekt Name: Model)
  • Räder vorne
  • (Räder mitte, bei Gelenkbus)
  • Räder hinten
  • Vordertür



Empfohlene Polygonanzahl für optimale Performance: <10.000

2. Texturing
Allgemeine Informationen & UV Struktur
Nur das Bus Body Objekt wird ingame in der Lackiererei bemalbar sein.
Jede Seite des Busses bzw. jede Fläche, die bemalbar sein soll, muss auf eine gemeinsame UV Map (2048x2048px) unwrapped werden und ein gemeinsames Material haben.
Die vordere Tür, Räder, Spiegel und sonstige extra Objekte können unterschiedliche Materials und Texturen haben.

Folgende Texturen werden für alle Modding Busse benötigt:

Repaint Template
Diese Textur wird ingame in der Lackiererei herunterladbar sein und dient als Referenz für externe Repaints. Alle Flächen und Details des Busses müssen vollständig darauf abgebildet sein. Die Flächen mit der Grundfarbe bzw. die Flächen, die lackierbar sein sollen, müssen weiß sein. Der Hintergrund muss transparent sein.



Details Textur
Diese Textur muss alle Flächen und Details enthalten, die in der Lackiererei nicht übermalt werden sollen. Zum Beispiel Fenster, Lichter oder Lüftungsschlitze. Der Hintergrund muss transparent sein.



Emission Textur
Diese Textur muss alle Flächen beinhalten, die nachts als Lichter sichtbar sein und leuchten sollen. Der Hintergrund muss schwarz sein.



Dach Alpha Textur
Diese Textur muss die Silhouette der Dachflächen mit 100% schwarzer Füllung beinhalten. Der Hintergrund muss transparent sein.


3. Rig / Animations

Vordertür
  • Muss ein separates Objekt zum Bus Body sein
  • Bei Doppeltür: Jede Tür muss mit einem Bone verknüpft sein (z.B. Door.L, Door.R)
  • Idle Zustand muss geschlossen sein
  • Eine Animation zum Öffnen der Tür, eine zum Schließen mit dem Model exportieren

Gelenkbus
  • Erstelle die Bones im selben Skeleton/Armature wie die Vordertür Bones
  • Erstelle zwei verknüpfte Bones: Einen für den vorderen, einen für den hinteren Bus Teil. Der Schnittpunkt ist die Mitte des Gelenks.
  • Wende Weight Paint auf das Bus Body Objekt an und achte auf einen weichen Übergang am Gelenk (s. Bilder unten)
  • Lege die Armature als Parent für alle Objekte des Bus Modells fest, die sich mit dem Gelenk bewegen sollen (z.B. Räder)



II. Einrichtung von Unity
In diesem Abschnitt geht es darum, Unity zu installieren, ein neues Projekt zu erstellen und unser Modding-Plugin einzurichten.

1. Installation von Unity
Unity kann hier[unity.com] heruntergeladen werden. Wir empfehlen Unity 2022.3.44 zu verwenden.

2. Erstellen eines neuen Projekts
  1. Klicke im Unity Hub auf "New project"
  2. Wähle als Template das 3D (URP) Core Template. Dieses muss ggf. erst heruntergeladen werden. Wähle anschließend einen Projektnamen (z.B. Name des Busses). Die Konfiguration sollte folgendermaßen aussehen:

  3. Klicke auf "Create project" und warte, bis sich Unity geöffnet hat.
  4. Wenn sich ein "TMP Importer"-Fenster öffnet, klicke auf "Import TMP Essentials".
  5. Installiere das Unity Plugin TextMeshPro in der Version 3.2.0-pre.10. Klicke dazu in Unity in der Leiste oben auf "Window" => "Package Manager". Klicke nun auf das Plus-Icon oben links und wähle "Add package by name".


    Gib nun als Name "com.unity.textmeshpro" und als Version "3.2.0-pre.10" (ohne Anführungszeichen) ein und klicke auf Add.

3. Einrichtung des Modding Plugins
  1. Lade das aktuelle Modding Plugin hier[download.pedepe.de] herunter (Version 1.0.8).
  2. Mache einen Doppelklick auf die heruntergeladene .unitypackage Datei. Anschließend öffnet sich im Unity Editor folgendes Fenster:

  3. Klicke unten rechts auf "Import". Wenn alles korrekt funktioniert hat, sollte nun in Unity oben in der Leiste unter "City Bus Manager" der "Mod Editor" zur Verfügung stehen.

3b. Aktualisierung des Moddding Plugings
Folge einfach den Anweisungen von 3a. Das Plugin wird automatisch überschrieben.

Changelog:
1.0.8:
- Unterstützung für Sightseeing- und Reisebusse hinzugefügt
Hinweis: Bei bestehenden Projekten empfehlen wir Unity auf Version 2022.3.44 zu aktualisieren. Zudem muss vor der Installation TextMeshPro auf Version 3.2.0-pre.10 im Unity Package Manager aktualisiert werden.

1.0.7:
- Ladeanschluss für E-Busse hinzugefügt (siehe Kapitel III, Abschnitt 4 Nur für E-Busse: Ladeanschluss hinzufügen)

1.0.6:
- Unterstützung für E-Busse hinzugefügt
- Unterstützung für Zielanzeiger, Kennzeichen und Fuhrparknummern
Hinweis: Ab sofort wird TextMeshPro Version 3.2.0-pre.6 benötigt. Die Installationsanleitung findest du in diesem Kapitel in Abschnitt 2 (Erstellen eines neuen Projekts).

1.0.4:
- Material Texture Index wird nun automatisch gesetzt und wurde aus der UI entfernt
- Repaint Texture Compression wird jetzt automatisch auf "None" gesetzt, um Probleme beim Exportieren des Repaints aus der Lackiererei zu beheben

1.0.3:
- Überprüfungen und Fehlermeldungen beim Export hinzugefügt, wenn etwas nicht korrekt konfiguriert wurde

1.0.2:
- Fehler beim Exportieren unter Windows behoben

1.0.1:
- "Verwaschene" Bus Farben bei internen Lackierungen behoben
III. Import des Busses in Unity
Im Folgenden wird beschrieben, wie ein erstellter Bus in Unity importiert werden kann und wie der Bus für den City Bus Manager korrekt konfiguriert wird. Dies wird am Beispiel eines CapaCity L Gelenkbusses gezeigt.

1. Import des Bus Modells
  1. Texturen: Ziehe die vier Texturen (+ eventuelle extra Texturen separate Objekte) in den Textures Ordner und passe die Import Settings folgendermaßen an und klicke bei jeder Textur im Inspector anschließend auf "Apply":

    Übersicht:


    Details:


    Emission:


    Repaint:

    Es ist wichtig, dass Compression auf "None" gesetzt wird.

    Roof:


  2. Material: Gehe in den Materials Ordner und erstelle eine Kopie des Materials "M_Template". Wähle in dem Material die zuvor importieren Texturen für
    • "Roof Alpha Texture" => "CapaCity L roof"
    • "Unpaintable Details Texture" => "CapaCity L details"
    • "Emission Texture" => "CapaCity L emission"
    Paintjob kann leer gelassen werden.


  3. Modell: Ziehe den erstellten Bus (z.B. fbx-Datei) in den Models Ordner. Stelle Model und Materials folgendermaßen ein und bestätige die Einstellungen wieder mit "Apply":

    Model:

    Tipp: Je nach Export Einstellungen des 3D Programms ggf. den Haken bei "Bake Axis Conversion" entfernen.

    Materials:


  4. Animations: Erstelle eine Kopie des Animator Controllers "Animation/AnimatorTemplate" und öffne diesen. Stelle anschließend die OpenDoor und CloseDoor Animation auf die importierte Animation aus dem Model.

Der Bus ist nun vollständig importiert und kann nachfolgend in der Scene platziert werden.

2. Bus in der Scene platzieren und skalieren
  1. Ziehe das Bus Modell in die Unity Scene und setze die Positionskoordinaten auf X=0, Y=0, Z=0.

  2. Um den Bus richtig zu skalieren und zu positionieren, werden die Stellplatz Objekte mitgeliefert. Hierbei gibt es im Prefabs Ordner den "Bus Space Large" für Gelenkbusse, den "Bus Space Medium" für Solobusse und den "Bus Space Small" für kleine Busse (z.B. Cito, Sprinter). Ziehe den passenden Bus Space vom Prefabs Ordner in die Scene und setze die Koordinaten auf X=0, Y=0, Z=0.
    Die Scene sollte nun folgendermaßen aussehen:


  3. Verändere nun vom Bus Objekt in der Scene die Position und Scale so, dass der Bus korrekt auf dem Stellplatz steht und nicht darüber hinaus schaut. Zudem sollte die Vorderseite des Busses auf dem Stellplatz ebenfalls nach vorne schauen, so wie es auf dem oberen Bild dargestellt ist. Wenn der Bus falschrum ist, kann die Y Rotation auf 180 gesetzt werden.

  4. Stelle in der Hierachie sicher, dass die Objekte korrekt benannt sind. Es ist wichtig, dass das Haupt-Mesh "Model" heißt und das hintere Gelenk "Articulation". Dies kann an dieser Stelle noch umbenannt werden, falls die Namen falsch sind.


  5. Füge dem "Model"-GameObject einen MeshCollider hinzu. Wähle hierbei als Mesh das selbe Mesh aus, wie im bereits vorhandenen Skinned Mesh Renderer.


  6. Füge dem Parent-GameObject des Busses einen Animator hinzu und wähle den zuvor erstellten Animator Controller als Controller.

3. Kennzeichen, Zielanzeiger und Flottennummer hinzufügen
  1. Ziehe einfach die Prefabs aus "Prefabs/Additions" in die Unity-Szene als untergeordnetes GameObject des Busmodells. In der Hierarchie auf der linken Seite müssen die Prefabs ein Kind des Busmodells sein. Bei Gelenkbussen musst du die Prefabs, die hinten am Gelenk des Busses sind (z.B. hinteres Kennzeichen), als Kind des GameObjects "Articulation" platzieren.
  2. Jetzt kannst du sie auf die richtige Position und Rotation einstellen.
  3. Du kannst so viele dieser Prefabs platzieren, wie du möchtest. Stelle nur sicher, dass die GameObjects in der Szene noch die Namen "FleetNumber", "LicensePlate", "LineDestination" bzw. "LineNumber" enthalten.

4. Nur für E-Busse: Ladeanschluss hinzufügen
  1. Ziehe einfach das Prefab aus "Prefabs/Additions/ChargingPort" in die Unity-Szene als untergeordnetes GameObject des Busmodells. In der Hierarchie auf der linken Seite muss das Prefab ein Kind des Busmodells sein.
  2. Jetzt kannst du es auf die richtige Position und Rotation einstellen. Die Vorschau ist sehr klein, um sie besser zu sehen, kannst du den Scale auf z.B. 100 einstellen. Stelle das Scale nach der korrekten Einstellung wieder auf 0,95.
  3. Wenn das Ladegerät im Spiel in den Bus gesteckt wird und der Ladeanschluss nicht sichtbar ist, muss man 180 Grad zur y-Drehung addieren. Wenn sie also z.B. 90 beträgt, musst du sie auf 270 setzen.
IV: Konfiguration des Busses mit dem Mod Editor
1. Erstellen einer neuen Mod
Klicke in Unity oben auf "City Bus Manager" -> "Mod Editor". Es öffnet sich nun ein neues Fenster. Klicke hier auf "New mod", wähle einen Mod Namen und klicke auf "Create".


2. Konfiguration
Es öffnet sich nun der Mod Editor zur Konfiguration des Busses. Dieser sieht folgendermaßen aus:


Im Folgenden werden die verschiedenen Attribute erläutert, die eingestellt werden können:

Einstellungen zur Mod:
  • Name: Name der Mod. Dieser wird im Steam Workshop und in der Mod Übersicht angezeigt.
  • Description: Beschreibung der Mod. Diese wird im Steam Workshop und in der Mod Übersicht angezeigt.
  • Type: Mod Typ. Aktuell werden nur Bus Mods unterstützt.
  • Version: Versionsnummer der Mod. Diese kann bei Updates erhöht werden.

Eigenschaften des Busses:
  • Ingame bus name: Der Name der im Spiel für den Bus angezeigt wird.
  • Total capacity: Die maximale Anzahl an zulässigen Fahrgästen für den Bus.
  • Seating capacity: Die Anzahl an Sitzplätzen.
  • Max fuel / battery: Die Größe des Tanks in Litern / des Akkus in kWh.
  • Fuel consumption: Der Spritverbrauch des Busses in Liter pro 100km / bei E-Bussen in kWh/100km.
  • Charging speed (nur für E-Busse): Maximale CCS Ladegeschwindigkeit in kW.
  • Propulsion type: Diesel oder Elektro Bus.
  • Construction year: Jahr der Veröffentlichung des Busses.
  • Size: Größe des Busses. Large für Gelenkbusse, Medium für Solobusse und Small für kleine Busse (z.B. Cito, Sprinter)
  • Category: Art des Busses. "City Bus" oder "Coach and Sightseeing". Abhängig davon wird der Bus im Spiel in der Forschung in einer anderen Kategorie gelistet.
  • Type: Art des Busses. Double Decker für Doppeldecker und normal für alle anderen Busse.
  • Number of preferred countries: Anzahl an Ländern, in denen die Busse bevorzugt freigeschaltet werden. Anschließend kann in der Liste der "preferred countries" die englischen Namen der Länder eingetragen werden. So kann ermöglicht werden, dass z.B. deutsche Busse bevorzugt freigeschaltet werden, wenn man in einer deutschen Stadt spielt und britische Busse wenn man in einer Stadt in Großbritannien spielt.

Technische Konfiguration des Busses:
  • Preview image: Das Vorschaubild wird im Marktplatz angezeigt und standardmäßig als Bild für den Steam Workshop verwendet. Als Vorlage für das Vorschaubild kann das Bild oder Photoshop Template in "Resources/Preview Image/bus-preview-template" verwendet werden. Die notwendigen Texture Import Settings können vom Bild ebenfalls übernommen werden.

  • Repaint template: Referenz zur Repaint Textur (in diesem Beispiel "Assets/Texture/CapaCityL/CapaCity L repaint")

  • Original details: Referenz zur Details Textur (in diesem Beispiel "Assets/Texture/CapaCityL/CapaCity L details")

  • Bus GameObject: Referenz zum GameObject in der Scene. Hierbei ist es wichtig, dass das GameObject im vorherigen Schritt korrekt positioniert, rotiert und skaliert wurde.

  • Repaint material index: Jeder Bus hat mehrere Materials. Hierbei muss der Index des Materials, das zuvor erstellt wurde und den Shader "Paint Overlay" nutzt (in diesem Beispiel Assets/Materials/M_CapaCityL), angegeben werden. Der Index kann in den Import Settings des Models im Tab "Materials" eingesehen werden (siehe Bild aus Abschnitt 1). Das erste aufgelistete Material hat den Index 0 und das zweite den Index 1. In diesem Beispiel ist der Index 1 korrekt.
    Wenn der Index falsch eingestellt ist, wird das Bemalen in der Lackierei nicht funktionieren. In diesem Fall muss der Index korrigiert werden.

  • Edit access point position: Hierbei wird der Punkt festgelegt, zu dem die Mitarbeiter laufen, um in den Bus einzusteigen. Der Punkt sollte direkt vor der animierten Vordertür sein und Y=0 sein. Nach dem Klick auf den Button kann die Position direkt in der Scene festgelegt werden oder die Koordinaten manuell eingetragen werden.


  • Edit in bus point position: Hierbei wird der Punkt festgelegt, an dem die Mitarbeiter spawnen, bevor sie aus dem Bus aussteigen. Der Punkt sollte direkt hinter der animierten Vordertür im Bus sein und Y sollte auf die Höhe des Boden des Busses eingestellt werden. Nach dem Klick auf den Button kann die Position direkt in der Scene festgelegt werden oder die Koordinaten manuell eingetragen werden.


  • Edit front light left / right: Die Positionen für die Vorderlichter werden hiermit festgelegt. Zusätzlich zur Position wird hier auch eine Rotation benötigt, in dessen Richtung das Licht leuchtet. Die gepunktete Linie zeigt hierbei visuell die Richtung in der Scene an. Nach dem Klick auf den Button kann die Position und Rotation direkt in der Scene festgelegt werden oder die Koordinaten manuell eingetragen werden.


  • Edit damage particles: Wenn ein Bus im Spiel beschädigt ist, wird ein Partikel Effekt eingeblendet. Hier wird die Position des Partikel Effekts und die Rotation festgelegt. Nach dem Klick auf den Button kann die Position direkt in der Scene festgelegt werden oder die Koordinaten manuell eingetragen werden. Die Rotation kann gewählt werden zwischen 0°, 90°, 180° oder 270°. Die visuelle gepunktete Linie zeigt die Richtung der Partikel.


  • Number of doors / Edit doors : Hier wird die Anzahl der Türen festgelegt. Für jede Tür muss die Position der oberen Mitte der Tür angegeben werden. Dies wird für die Partikel Effekte benötigt, wenn der Bus innen dreckig ist. Nach dem Klick auf den Button kann die Position direkt in der Scene festgelegt werden oder die Koordinaten manuell eingetragen werden. Die Rotation kann gewählt werden zwischen 0°, 90°, 180° oder 270°. Die visuelle gepunktete Linie zeigt die Richtung der Partikel.


  • Edit bus collider : Hiermit wird eine Bounding Box festgelegt, die als Collider dient. Die Box sollte den gesamten Bus gerade so beinhalten. Der In Bus Point, der zuvor festgelegt wurde, sollte außerhalb des Colliders sein. Nach dem Klick auf den Button kann der Mittelpunkt und die Größe des Colliders direkt in der Scene festgelegt werden oder die Koordinaten manuell eingetragen werden.

3. Export
Der Bus kann nun über den "Export" Button exportiert werden. Dieser wird automatisch in das City Bus Manager Modding Verzeichnis gespeichert.

Windows: ...AppData\LocalLow\PeDePe GbR\City Bus Manager\Mods\Buses
MacOS: /Users/*Username*/Library/Application Support/PeDePe GbR/City Bus Manager/Mods/Buses/

Nun ist die Erstellung des Busses vollständig abgeschlossen und kann im nächsten Schritt getestet und geteilt werden.
V. Testen und Teilen des Busses im Steam Workshop
1. Bus im Modding Menü aktivieren
Im City Bus Manager Hauptmenü sollte der Bus nun im Modding Formular angezeigt werden:



Stelle sicher, dass die Mod mit dem Haken auf der linken Seite aktiviert wurde. Der Bus sollte nun im Spiel zur Verfügung stehen. Im Sandbox Modus ist der Bus sofort verfügbar und im normalen Modus wird der Bus über die Forschung freigeschaltet.

2. Bus testen
Um sicherzustellen, dass der Bus korrekt funktioniert, sollte folgendes überprüft werden:
  • Ist die Position des Busses auf dem Stellplatz korrekt?
  • Funktioniert die Animation der Türen?
  • Steigen die Mitarbeiter korrekt in den Bus ein und wieder aus?
  • Funktionieren die Lichter des Busses in der Nacht und sind diese an der korrekten Position?
  • Funktioniert ggf. das Gelenk des Busses?
  • Wenn der Bus beschädigt ist, wird der Rauch Partikel an der korrekten Stelle angezeigt?
  • Wenn der Bus innen dreckig ist, werden die Partikel an den Türen korrekt angezeigt?
  • Wird der Bus äußerlich dreckig?
  • Funktionieren sowohl die Ingame Lackierung in der Lackiererei als auch externe Lackierungen?

3. Bus teilen
Wenn alles korrekt funktioniert, kann der Bus im City Bus Manager Hauptmenü über das Modding Formular im Steam Workshop geteilt werden. Klicke dazu einfach auf den blauen Upload Button.

Wenn du eine Änderung am Bus vorgenommen hast, kann der Bus im gleichen Formular mit dem orangenen Update Button aktualisiert werden.
VI. FAQ
Das Bemalen des Busses funktioniert nicht
Bitte überprüfe die folgenden Punkte:
  • Hast du die neuste Version des CBM Modding Plugins installiert (step II.3)?
  • Ist der Mesh Collider hinzugefügt (Schritt III.2.5)?
  • Ist "Read/Write" in den Model Import Settings angehakt (Schritt III.1.3)?

Der Export des Repaints in der Lackiererei funktioniert nicht
Stelle sicher, dass du die neuste Version des CBM Modding Plugins installiert hast. Falls du eine ältere Version hast und nicht updaten möchtest, musst du die Compression des Repaint Textures auf "None" setzen (Schritt III.1.1).