Erstellung von Gebäuden mit "Sub Buildings"

  • @Gun155


    Da ich in meiner Stadt noch keinen Flughafen gebaut habe wollt ich dich mal kurz fragen bis wann du den "Super-Awesome Airport" denn Workshop ready hast? :whistling::ms_smiling_face_with_halo:


    So einer würde sich ganz sicher gut in meiner Stadt machen. :D

    • Offizieller Beitrag

    Einführung


    Dieses Tutorial erklärt Euch die Erstellung von Gebäuden für Cities:Skylines mittels "Sub Buildings" (im Folgenden "Anbauten" genannt).
    Anbauten sind separate Gebäudeobjekte, die zur Erstellung von Gebäuden verwendet werden können, die größer als 16x8 Felder sind.
    Um diese Gebäude zu platzieren wird der Sub Buildings Enabler Mod benötigt, bis Colossal Order eine bessere Möglichkeit bereitstellt.


    Aber es gibt auch andere Anwendungsfälle!

    • Verwendet dasselbe Modul mehrmals. Das spart eine Menge Speicher und erhöht die Renderleistung.
    • Erstellt Gebäude mit unregelmäßig geformtem Grundriss (bestehend aus Rechtecken und Kreisen).
    • Verknüpft Gebäude verschiedener Funktionen (z.B. Krankenhaus + Feuerwehr).
    • Erstellt Gebäude mit mehreren, sich überlagernden Modulen, die verschiedene Shader verwenden (Eines, das sich dem Gelände als selbsterstellte Bodentextur anpasst, und Eines, das sich nicht dem Gelände anpasst)
    • Erstellt "props" (eigentlich Gebäude), die nicht verschwinden, wenn man rauszoomt. Dies ist besonders nützlich für große, dekorative Elemente.


    Über die Mod

    • Eigenschaft wird offiziell vom Spiel unterstützt, keine Hacks.
    • Ihr braucht die Mod nur, um das Gebäude zu platzieren. Selbst wenn die Mod nicht mehr funktionieren sollte, bleiben Eure super-großen Gebäude erhalten. Ihr benötigt die Mod auch nicht, um das Gebäude zu erstellen. Dafür reicht ein Texteditor (z.B. Notepad).
    • Minimaler, hoch-performanter Code (nur aktiv während des Ladebildschirms)
    • Das Hauptgebäude und die Anbauten können als ein zusammenhängendes Gebäude oder einzeln im Workshop veröffentlicht werden.
    • Ihr könnt jedes Gebäude aus dem Workshop als Anbau verwenden.


    Vorbereitung eures Modells


    Beachtet bitte, dass Ihr mehrere Modelle mit jeweils eigenem Gitternetzmodell und eigener UV-Map/eigenen Texturen erstellen müsst:

    • Ein Hauptmodell (das Gebäude, das an der Straße platziert werden muss, wenn Ihr nicht eine Vorlage (engl.: Template) verwendet, die überall platziert werden darf). Dieses wird zwingend benötigt.
    • Ein oder mehrere Erweiterungsmodelle ("Anbauten"). Die Gitternetzmodelle der Anbauten können mehrmals in verschiedenen Ausrichtungen wiederverwendet werden (z.B. Flughafen mit mehreren ähnlichen Flugsteigen).

    Jedes Gebäude muss als normales Gebäude im Objekteditor importiert werden. Das bedeutet, dass der Mittelpunkt jedes Gebäudes bei 0|0|0 liegen muss. Die maximale Größe jedes Teils beträgt 16x8, 15x9, 14x11 oder 13x12 Felder.
    Noch einmal: Jedes Modul hat seine eigene Textur. Beachtet das bitte!
    In diesem Tutorial werde ich einen einfachen Flughafen ohne Texturen erstellen, der aus einem zentralen Terminal-Gebäude und zwei Flugsteig-Anbauten besteht.
    Ich habe hierfür zwei separate Gitternetzmodelle erstellt:


    [Blockierte Grafik: https://camo.githubusercontent.com/af47b8599bf9de817a2ab7c9225371fca9022d77/687474703a2f2f692e696d6775722e636f6d2f3844504b486c4d2e706e67] [Blockierte Grafik: https://camo.githubusercontent.com/f8504f997e7b6401d9c0a3de9a619d094189882b/687474703a2f2f692e696d6775722e636f6d2f7645726d4476342e706e67]
    Speichert die .fbx-Dateien und die Texturen im Import-Ordner des Spiels.


    Importieren des Hauptgebäudes


    Wählt im Objekteditor die gewünschte Vorlage für euer Gebäude (z.B. Flughafen, Stadion, Hafen). Importiert euer Objekt (engl.: Asset), dekoriert es mit Props und Bäumen und legt Farbvariationen sowie die korrekte Größe des Grundrisses fest.
    Das Hauptmodell muss alle Verkehrswege beinhalten. Für einen Flughafen wären das die Start-/Landebahn, Rollbahnen, Fußgängerwege und evtl. auch normale Straßen.
    Dieses Tutorial erklärt nicht, wie Ihr diese Pfade erstellen könnt. Kontaktiert mich über Steam, wenn Ihr Hilfe benötigt.
    Falls euer Objekt wirklich riesig ist, wäre es sinnvoll ein "zusammengefasstes" Modell zu erstellen, das die Gitternetzmodelle aller Anbauten enthält, damit Ihr seht, wo die Pfade platziert werden müssen.
    Speichert das als Vorlage und importiert nur das Hauptgebäude (aktiviert das Kontrollkästchen "Import Props").
    Die Kategorie des Objekts bestimmt auch die Kategorie eures Gebäudes mit allen Anbauten im Workshop (falls Ihr alle Teile als ein einzelnes Objekt veröffentlichen wollt).
    Öffnet nun das "Speichern"-Fenster. Gebt einen Dateinamen (unten links) und einen Objektnamen (rechte Seite) ein. Der Objektname wird im Spiel angezeigt. Stellt auch sicher, dass das Vorschaubildchen gut aussieht.
    Notiert Euch den Dateinamen und den Objektnamen. Der interne Name eures Objekts, den wir später noch benötigen, hat das folgende Format: "Dateiname.Objektname".
    In diesem Beispiel wäre das "SBE_airport_terminal.Super-Awesome Airport":
    [Blockierte Grafik: https://camo.githubusercontent.com/3044ee199d6448abfc90c03bc2628d50c11133d0/687474703a2f2f692e696d6775722e636f6d2f763278304a77372e706e67]
    Speichert das Objekt.


    Importieren der Anbauten


    Nun werden wir alle Anbauten importieren. Der einzige wirkliche Unterschied ist, dass wir eine spezielle Vorlage verwenden, die keine Straßenanbindung benötigt und keinen Menüeintrag für die Anbauten erstellt.
    Die einzigen Vorlagen, die beide Bedingungen erfüllen, sind die Vorlagen der Anbauten des internationalen Flughafens ("Large Airport L1/L2/R1/R2", "After Dark"-DLC benötigt). Falls Ihr den DLC nicht besitzt, verwendet stattdessen diese Vorlage.
    Wählt das Modell eures Anbaus und importiert das Objekt. Ich empfehle Euch die "ItemClass" und die "UICategory" eurer Anbauten mit den von Snow_Cat veröffentlichten Asset Editor Mods zu verändern.
    Speichert nun auch dieses Objekt und notiert Euch den Datei- und Objektnamen. in diesem Beispiel verwende ich "SBE_airport_gate.Gate".



    Anordnung der Gebäude und Schreiben der SubBuildingsDefinition-Datei


    Kehrt in euer 3D-Modellierungsprogramm zurück und importiert alle Gitternetzmodelle bei 0|0|0. Dupliziert, bewegt und rotiert nun alle Gitternetzmodelle der Anbauten, bis sich alles an der richtigen Position befindet.
    Notiert Euch die Werte der Rotation und Position jedes einzelnen Anbaus.
    Öffnet euren Dateimanager und navigiert zum lokalen Verzeichnis für die Objekte (unter Windows gebt Ihr folgenden Pfad in die Pfad-Leiste ein: %AppData%\..\Local\Colossal Order\Cities_Skylines\Addons\Assets\ ).
    Erstellt ein neues Verzeichnis mit einem Namen eurer Wahl und kopiert die .crp-Dateien eures Hauptgebäudes und aller Anbauten in dieses Verzeichnis.
    Öffnet nun euren Texteditor und fügt den folgenden Code ein. Dieser legt die Anzeigepositionen eurer Anbauten fest (relativ zum Ursprung des Hauptgebäudes).


    Ersetzt alle Werte in dieser Datei mit euren eigenen Werten. Im <Building>-Tag ersetzt Ihr den Namen durch den internen Namen eures Hauptgebäudes.
    Die <SubBuilding>-Tags stehen für die Anbauten. Gebt hier die Namen ein und ersetzt die Werte für Position und Winkel durch die Werte aus dem 3D-Modellierungsprogramm.
    Beachtet, dass sich die Koordinatensysteme von Cities:Skylines und Blender unterscheiden(Y ist Hoch, + ist manchmal -).
    Anmerkung des &Uuml;bersetzers: Für Nachkommastellen verwendet bitte als Trennzeichen einen Punkt statt eines Kommas!
    Das Attribut "fixed-height" legt fest, ob das Objekt auf derselben Höhe wie das Hauptgebäude dargestellt werden soll.
    Speichert die Datei mit dem Namen "SubBuildingsDefinition.xml" in dem Verzeichnis, das Ihr für eure .crp-Dateien erstellt habt.
    [Blockierte Grafik: https://camo.githubusercontent.com/ba9106b31e7f525a342646d0cb2cfd569d3464e5/687474703a2f2f692e696d6775722e636f6d2f7557344d3436442e706e67]

    Letzte Anpassungen


    Jetzt könnt Ihr euer Objekt im Spiel platzieren. Stellt sicher, dass die 'Sub Buildings Enabler'-Mod aktiviert ist. Falls etwas mit der Konfigurationsdatei oder dem Objekt nicht stimmen sollte, gibt die Mod einen Warnhinweis aus.
    Platziert das Objekt und überprüft, ob alles stimmig aussieht.
    Um schnell die richtigen Einstellungen zu finden könnt Ihr die .xml-Datei anpassen und speichern, dann eine Stadt aus dem Hauptmenü heraus laden und das Gebäude erneut platzieren.
    Die Mod verwendet die neuen Einstellungen aus der Datei wenn eine Stadt geladen wird.
    [Blockierte Grafik: https://camo.githubusercontent.com/afad6e2d3afac8edf00165edd4a823825fc33da0/687474703a2f2f692e696d6775722e636f6d2f724a306b4f4c412e6a7067]



    Veröffentlichung im Workshop


    Es empfiehlt sich das Hauptgebäude und die Anbauten als einen einzigen Gegenstand im Workshop zu veröffentlichen. Dafür geht Ihr in die Inhaltsverwaltung und klickt auf den "Teilen"-Button eures Hauptgebäudes.
    Klickt auf das kleine Verzeichnis-Symbol im Vorschaubild (passt dieses bei Bedarf an) und öffnet das Unterverzeichnis "Content".
    Nun müsst Ihr eine weitere .xml-Datei erstellen, die sich leicht von der anderen unterscheidet, und diese in das Verzeichnis packen. Wenn Ihr etwas in den Workshop hochladet ändert sich die "Package ID".
    Statt des Dateinamens, den Ihr eingegeben habt, wird die Workshop-ID des Objekts verwendet (z.B. "1447385507"). Es gibt keine Möglichkeit diese ID vor der Veröffentlichung zu ermitteln.
    Aber die Mod ist intelligent: Sie versucht den Objektnamen automatisch zu vervollständigen, wenn alle Objekte die gleiche Workshop-ID teilen (ein einziger Workshop-Gegenstand).
    Ändert einfach die .xml-Datei, die Ihr zuerst erstellt habt, so dass sie mit dieser übereinstimmt (löscht alles in den Namen, das vor dem '.' steht):


    Speichert die geänderte "SubBuildingsDefintion.xml"-Datei im "Content"-Verzeichnis.
    Nun fügt Ihr die .crp-Dateien aller Anbauten in das "Content"-Verzeichnis ein. Somit werden alle Objekte zu einem einzigen Workshop-Gegenstand.
    Das Verzeichnis sollte ungefähr so aussehen:


    [Blockierte Grafik: https://camo.githubusercontent.com/92e3be1016ec002c92877a32f3e2c4c8cc8e2dab/687474703a2f2f692e696d6775722e636f6d2f666b647237446d2e706e67]


    Drückt "Veröffentlichen". Erstellt eine Sicherungskopie eurer lokalen .crp-Dateien und löscht die Originale. Anschließend abonniert Ihr euren Workshop-Gegenstand und probiert, ob alles richtig funktioniert.
    Vergesst nicht, die Mod als benötigtes Objekt einzutragen! Vermerkt auch, dass die Mod nur zum Platzieren des Objekts benötigt wird und jederzeit deaktiviert werden kann, ohne dass dadurch Spielstände unbrauchbar oder Objekte nicht gefunden werden.



    Fortgeschritten


    Ihr könnt auch Gebäude mit Funktionen (Servicegebäude) als Anbauten verwenden (z.B. um eine Feuerwache mit einem Krankenhaus zu kombinieren). Bedenkt dabei, dass so ein Anbau einen Straßenanschluß benötigt.
    Um das Gebäude im Baumenü auszublenden stellt Ihr mit den "Mod Tools" "propertyToolController.m_editPrefabInfo.m_placementStyle" auf "Procedural".


    Ihr könnt die Mod Tools auch verwenden, um den internen Namen von Workshop-Gegenständen herauszufinden (<workshopId>.some_text).
    Platziert einfach das Gebäude im Spiel und öffnet das Info-Fenster. Der Name wird oben angezeigt. Verwendet diesen Namen in eurer "SubBuildingsDefintion.xml"-Datei.

  • Subbuildings lassen sich ohne weiteres nun im Asset-Editor erstellen. Seit wann ist das eigentlich möglich?

    Meine Workshop-Schmiede auf STEAM und meine Alben hier

    Mein PC :matrix745:

    Mainboard: MSI X570-A PRO / AM4, AMD X570, ATX

    Prozessor: AMD Ryzen 7 3700X 8-Core Processor

    RAM: 4x DDR4-2132 (1066 MHz) G.Skill von Samsung /4x16GB

    Grafikkarte: MSI GeForce - NVIDIA RTX 4060 Ti, 16GB GDDR6

    Datenträger: Samsung SSD 860 QVO 1TB

    Monitor: LG UltraGear Gaming Monitor 27 Zoll, QHD, 2560x1440, Matt-Schwarz

  • Ja, so hatte ich das auch in der Erinnerung. Davor waren Subbuildings offiziell nicht möglich, zu erstellen. Ob sie aber auch ohne ND funktionieren und in der Stadt zu setzen sind....
    ...wäre das möglich?

    Meine Workshop-Schmiede auf STEAM und meine Alben hier

    Mein PC :matrix745:

    Mainboard: MSI X570-A PRO / AM4, AMD X570, ATX

    Prozessor: AMD Ryzen 7 3700X 8-Core Processor

    RAM: 4x DDR4-2132 (1066 MHz) G.Skill von Samsung /4x16GB

    Grafikkarte: MSI GeForce - NVIDIA RTX 4060 Ti, 16GB GDDR6

    Datenträger: Samsung SSD 860 QVO 1TB

    Monitor: LG UltraGear Gaming Monitor 27 Zoll, QHD, 2560x1440, Matt-Schwarz

    • Offizieller Beitrag

    Ob sie aber auch ohne ND funktionieren und in der Stadt zu setzen sind....
    ...wäre das möglich?

    es gehört zum kostenlosen Update.

    ...welches jeder, der mit Steam online geht und die automatischen Updates für C:S nicht deaktiviert hat, auch haben sollte. Ohne diesen Patch benötigt man natürlich die Mod und passende Assets.


    Im Thema "Sub-Building und NON-Sub-Building" findest Du auch eine kleine Diskussion dazu.