Pinned Modding Hilfe für Anfänger (WIP)

    • Modding Hilfe für Anfänger (WIP)

      (Link to the same article in the english section)
      Einleitung

      Hallo,

      ich habe mir CnC im März 2021 zugelegt und hatte hier nun irgendwie Bock Mods zu erstellen. Beim "Ur-Vater" hatte ich in der Vergangenheit auch schon einiges geändert, aber immer nur für mich und meinen PC.

      Um eventuellen Neu-Moddern den Weg ein wenig zu erleichtern, möchte ich hier nun meine Erfahrungen der letzten 2 Monate zusammenfassen. Warum? Ganz einfach, ich bin z.B. Jemand der "Filme angucken" überhaupt nicht mag. Es gibt auch viele-viele Filme, aber manchmal reicht auch nur ein Stichwort zur Lösung. Und darum werde ich diese kleine "Online-Modder-Hilfe" erstellen. Das Ganze wird auch keine Enzyklopledie, aber ein Anfang in Textform, wo man mit Textsuche auch evtl. etwas findet. Bei Themen, die hier im Forum bereits existieren, werde ich auf die entsprechenden Seiten per Link verweisen.

      Hier am Anfang wird ein Inhaltsverzeichnis entstehen, indem ich dann direkt auf die folgenden Postings verweise. So bin ich auch an keine Bearbeitungsreihenfolge gebunden, auch wenn ich in 6 Monaten neue Dinge gelernt habe.
      Ich werde diese Hilfe auch mit meinen Englisch-Kenntnissen nebenan veröffentlichen. Wenn Ihr auch etwas beitragen möchtet: Gerne doch.

      Gruß
      Pebcak

      PS: Meine ersten 3 7 (**) Mods findet man auf Modhoster
      **) steigend

      The post was edited 2 times, last by Pebcak ().

    • Überblick

      Was Du zum Modden benötigst:
      1. Ein Tool zum Erstellen des Modells
      2. Ein Tool zum Erstellen der Texturen
      3. Ein Tool um Modell + Texture ins Spiel zu bringen.
      4. "Mod-Idee"


      Bei der Tool-Übersicht kann ich nur von meinen Erlebnissen berichten. Ob es Besseres, Billigeres, Einfacheres gibt ... keine Ahnung, aber es sind ja auch nur die Erfahrungen meiner 2 Monate.

      Ein sehr guter Einblick ins Modding wurde hier bereits von @TheCoCe erstellt Link zum Modding Tutorial mit Film + einigen Links.

      1. Modellerstellung
      Hier benötigt man ein Tool, mit welchem man das Modell (Drahgittermodell) erzeugen kann. Ich bin dann auch nach sehr kurzer Suche (ca. 5 Sekunden) bei Blender hängen geblieben. Kann Alles was benötigt wird, hat viele Funktionen, hat alle benötigten Export- und Importformate und das Beste, Blender ist FreeWare (kostet also Nichts).

      2. Texturen erstellen
      Das war der Teil, der mich 2 Wochen Forschung und Internetrecherche gekostet hat.
      In diesem Post sind auch Links zu Alternativen enthalten.
      Schlußendlich bin ich dann aber auch bei SubstancePainter hängengeblieben. Das ist ein Kauf-Tool, dafür aber mit vollem Funktionsumfang und vorgefertigten Texturierungen. Die mitgelieferten Texturierungen war auch mein ausschlaggebender Faktor.
      Sicher, man kann sich Texturen für FreeWare Tools auch von unterschiedlichen Seiten herunterladen, dann bei der notwendigen 4K Auflösung aber wiederum nur gegen Einwurf kleiner Münzen. CnC kann und arbeitet mit 4K, dann will ich das auch nutzen.
      Ein Tip zu SubstancePainter: Kostet auf der Hersteller Seite ca. 220$/180€, bei Steam in 2021 für 127€ und im jährlichen "Neue-Version-Vorverkauf" auf Steam noch etwas darunter.

      3. Mod ins Spiel bringen
      Hier verwende ich natürlich den von CnC mitgelieferten Editor. Also gibt es hier nicht viel mehr von mir zu schreiben.

      4. Mod-Idee
      Nun fehlt nur noch die Mod-Idee und Zeit+Lust.
      Zeit+Lust ist ein Faktor, den man nicht unterschätzen sollte. Es wird Rückschläge geben und bei Problemen, mache es wie ich: Hier im Forum fragen.

      Und das Ganze nochmals als bildliche Darstellung

      The post was edited 1 time, last by Pebcak ().

    • Erstellen des Modells mit Blender

      Auch wenn Blender ein FreeWare Tool ist, man könnte/kann damit Zeichentrick-/Animationsfilme erstellen. Nur einfach mal so erwähnt um den Funktionsumfang zu verdeutlichen und was man damit anfangen kann.
      Bereits nach 3 Mods könnte ich hier seitenweise Bedienungstext runter schreiben. Das ist mir aber auch zuviel ;) .

      Daher meine Tipps:
      • Schau Dir das Video von @TheCoCe aus dem Anfänger Modding Tutorial an. Was und wie er dort das Modell erstellt. Damit ist schon vieles verstanden.
      • Schau Dir die Videos von BlenderHilfe an. Ich habe mir dort teilweise die Videos zum Modellieren einer Dampflok angeschaut. Teilweise?! Wie ich oben schon schrieb, ich mag es nicht Videos anzuschauen - das geht mir alles zu langsam :D .
      • Videos von MBB bezüglich der Arbeit mit Blender (in Englisch):
        Youtube: Einführung in Blender
        Youtube: Highpoly Modelling
        Youtube: Lowpoly Modelling
        Youtube: Blender UV-Mapping
        In den Videos kann man auch sehen, welche Kommandos (Tastatur/Maus) verwendet wurden. :thumbup:
      • Dann versuche Dich einfach mal am Tool. Einfach mal irgend etwas versuchen zu erzeugen. Lerne dabei die Oberfläche kennen, strukturiere die Oberfläche für Dich.
      Einige Hinweise zu Blender. Ich habe meine Oberfläche auch auf Englisch eingestellt, die deutsche Übersetzung ist zwar Klasse, aber ich habe dann nicht mehr alle Funktionen gefunden, die ich in den meist englischen Videos gesehen und gehört habe. Somit sind auch meine Menühinweise Englisch. In meinem Beispielbild sieht man von links nach rechts: das Fenster vom UV-Editor, das Modelling Fenster und rechts oben das Objekte Fenster (Scene Collection).

      • In der obersten Menüzeile benötigt man für den Anfang nur "Modelling" und "UV Editing"
        Mit Modeling erstellen/malen wir das Modell.
        UV-Editing wird später interessant, wenn Du Dein Modell für die Texturierung vorbereiten musst.
      • Im Modelling sind Anfangs nur interessant "Object Mode" und "Edit Mode"
        Im Edit Mode kann man einfach Alles editieren, ganze Flächen, einzelne Linien, oder einzelne Eckpunkte. In diesem Modus ist man dann vermutlich am Meisten am Arbeiten. Fügt man neue Körper/Meshes im Edit Mode mit Add hinzu, werden diese zum bestehenden Objekt hinzugefügt. Fügt man hingegen neue Körper/Meshes im Object Mode hinzu, wird ein neues Objekt angelegt. Das ist später wichtig, denn jedes separat bewegliche Teil eines Mods muss ein eigenes Objekt sein. So besteht hier mein Tiefenflug-Mod aus 12 einzelnen Objekten: Rahmen Mitte, Ausleger Links, Ausleger Rechts, 2 Hydraulik Zylinder, 2 Hydraulik Stangen, 3 Stützfüße, sowie 2 Extra-Körper, die später für die Pfluganimation benötigt werden. Da die Pfluganimation nicht texturiert werden muss, hat mein Low-Poly Modell nur 10 statt 12 Objekte. Wer sich nun fragt: High-Poly? Low-Poly? Ingame? -> siehe das Anfänger Modding Tutorial.
        Oder hier mal als Beispiel eines Objektes, die Anzahl der Flächen eines Objektes verringern


        Im nächsten Screenshot habe ich mal die bisher von mir am Häufigsten verwendeten Funktionen markiert:
        - oben: Punkt-, Linien- oder Flächenauswahl
        - links: Auswahl, Verschieben, Rotieren, Größe Ändern, Extrude, Loop Cut (sehr gut erklärt im Dampflok Video)

        Bei den Modifiern ist ein Blick auf Mirror (Spiegeln) und Array (ein Stück mehrfach kopieren) interessant.
        Nebenbei, würdest Du mir glauben, dass das Bauteil "Rahmen Mitte" (ohne die X-Förmige Rahmenverstärkung, ohne Pflugschare, ohne Bolzen und Splinte) nur aus einem einzigen Quader entstanden ist?
      • Wenn das Modell soweit fertig müssen wir unseren Mod für die Modellierung vorbereiten. Aus dem High-Poly Modell machen wir dann das Low-Poly Modell (wir entfernen alle nicht benötigten Flächen und/oder reduzieren auch die Anzahl der Polygone. Ist das geschafft müssen wir alle übrig gebliebenen Flächen in eine UV-Map bringen. Dazu benötigen wir die Ansicht mit UV-Editor. Das kann man auch Blender automatisch machen lassen, das Ergebnis ist jedoch .. naja. Also Handarbeit. Wenn Du Dich nun fragst "warum so kompliziert?", dann hast Du Dir das Anfänger Modding Tutorial noch nicht angeschaut.
        In Kurzfassung also: Eine neue 4K UV-Map anlegen (am Besten mit Muster, kann man dort auswählen), jedes sichtbare Polygon aus dem Modell in der UV-Map platzieren. Um relativ gleiche Auflösungen für die Polygone und mögliche Verzerrungen auf den Polygone zu sehen empfehle ich die UV-Map im Modell als Bildhintergrund zu legen. Wie das geht? Siehe nachfolgendes Bild. Zuerst klickt man auf die Farbe (ja Farbe) und erhält dann in einem großen Auswahlfenster unter anderem "Image Texture", danach kann man durch klick auf das unscheinbare Icon die 4k Texture auswählen. Sieht man noch keine "Quadrate" muss man noch die Ansicht ändern (die 3. von den 4 symbolischen Kugeln, bei mir oben rechts, siehe 1. Bild)

        Die roten Linien sind die von mir für das Tool/Blender festgelegten Schnittkanten. Dort soll Blender also bevorzugt die Körper aufschneiden.

        Anbei noch ein Beispiel, bei dem man anhand des Musters bereits deutlich Verzerrungen erkennen kann. Hier konnte Blender die Flächen nicht schneiden, wie wir uns das vorgestellt hätten. Alle Karos sollten rechteckig und Grau (mit meiner UV-Map) sein, jedoch erkennt man deutliche Verzerrungen vorne, sowie oben mit den Farben (das sollten vermutlich die +Zeichen geben. Das passt also nicht und Bedarf unserer Nachbearbeitung (z.B. durchzusätzliche Schnittkanten oder weniger Flächen auf einmal).

      • Um uns die Arbeit beim Texturieren später zu erleichtern empfehle ich (sowie Andere) nun noch im Vertexlayer jedem Polygon eine Farbe zuzuordnen. Gleiche Farbe im Modell = gleiche Farbe im Vertexlayer. Welche Farbe Du hier verwendet ist völlig egal, aber so kann man später in Substance Painter die Flächen auseinanderhalten und texturieren. Ein kleiner Exkurs hier in meiner Frage.
      • Nun sind wir fast bereit um das Modell für die Texturierung zu exportieren (2 Exporte, High-Poly und Low-Poly). Dateityp ist hier: FBX
        Vor dem Export sollte man jedoch noch alle Einzelteile/Objekte separieren. Einfach um einen geradzahligen Wert in X-, Y- oder Z-Richtung verschieben, sodass man später die Teile wieder einfach an die Originalposition geschoben bekommt. Macht man dieses nicht, werden anliegende Flächen "dunkler" texturiert, da Substance Painter auch den möglichen Lichteinfall berücksichtigt.
        Beispiel: Hier wurden die Tanks und das Hauptteil um jeweils 10m aus der Originalposition verschoben. Dieses kann/muss man dann nach der Texturierung und vor dem Import nach CnC wieder rückgängig machen.


        Hinweis: Es empfiehlt sich, die einzelnen Objekte im High- und Low-Poly mit gleichen Namen, aber unterschiedlicher Endung zu benamsen ("_low" bzw. "_high"). Beispiel
        im Low-Poly: Objekt1_low, Objekt2_low, Baum123_low
        im High-Poly: Objekt1_high, Objekt2_high, Baum123_high
        -> Hintergrund: Substance Painter kann dann die Objekte anhand des Namens aus High- und Low-Poly für das "Backen der Maps" zusammenführen. Andernfalls muss man das selber machen.

      The post was edited 12 times, last by Pebcak ().

    • Erstellen der Texturen mit Substance Painter

      Substance Painter, wo fange ich an? Ein sehr mächtiges Profi-Tool, kann viel und kostet. Da ich hier aber keine Doktor-Arbeit verfassen möchte, beschränke ich mich auf Hinweise bzw. versuche einen Weg zu zeigen. Den Weg finden und begehen müsst Ihr bitte für Euch. Youtube und Internet werden hier Eure weiteren Hilfe-Quellen sein.

      Wir haben nun 2 Dateien in Blender exportiert. Unser Modell in Low-Poly Version und in High-Poly Version. Mit der Low-Poly Version öffnen wir dort ein neues Projekt.
      Die High-Poly Version benötigen wir dann zum "Backen der Texturemaps".
      Wer meinem Rat gefolgt ist und mittels Vertexpaint im Low-Poly die unterschiedlichen Farben vorbereitet hat "backt" die ID-Map natürlich mit dem Low-Poly Modell.
      Warum Vertexpaint und ID-Map? Ich möchte den Vorteil an folgendem Beispiel erklären:
      Dein Modell hat 2 Objekte, ein Objekt mit 6 Farben und ein Objekt mit 4 Farben
      1. ohne Vertexpaint: Auch ohne Vertexpaint muss man die Flächen in Blender vorher mit unterschiedlichen Farben belegen (das passiert im Objekt-Layer). Damit kann Substance Painter die einzelnen Flächen unterscheiden. Nachdem die 6+4 Model-Farben die Textur-Farben erhalten haben geht es weiter zum Export (Einstellungen siehe unten). Substance Painter erzeugt nun für jede Farbe eines Objektes einen Export. Da wir je Textur 3 Dateien benötigen erhalten wir auf diese Methode: (1. Objekt mit 6 Farben + 2. Objekt mit 4 Farben ) * 3 Dateien = 30 Texturdateien. :( (ungünstigster Fall, etwas weniger ginge auch)
        Die günstigste Variante wäre hier, wenn die 4 Farben des 2. Objektes auch in den 6 Farben des 1. Objektes enthalten wären aber immer noch: 6 * 3 = 18 Texturdateien.
        Das Mergen (Zusammenführen) der Texturen in eine Datei ist ein lang geäußerter Wunsch an Substance Painter (> 10 Jahre alt), aber bisher nur durch externe Tools machbar.
      2. Mit Vertexpaint: Die Farbinformation ist im Vertexlayer enthalten mit dem Substance Painter die ID-Map gebacken hat. Im normalen Modus wurde das Modell nur mit einer einzigen Farbe angelegt (einfach alten Farblayer löschen, neuen anlegen, alle Objekte zeigen auf den gleichen Farblayer, fertig). Nun kann Substance Painter die einzelnen Flächen mittels der ID-Map unterscheiden und wir können die Texturen festlegen. Beim Export haben wir nun (günstigster Fall, beide Objekte in einer UV-Map): 1 * 3 Dateien = 3 Texturdateien.
        Für die Zählung der Farben rechnet Substance Painter die Farben im Objekt-Layer, nicht die Anzahl der Farben in anderen Layern. Da wir vorher einfach alles und allem eine einzige Farbe im Objekt-Layer gegeben haben ist die Anzahl der gezählten Farben = 1.
      Das habe ich auch nur durch Fragen (Tip!) herausgefunden, siehe hier im Forum

      Den Teil mit Layern, Brushes, Folder, Filter und den weiteren Funktionen von Substance Painter, ich mache es kurz: da gibt es sehr viel. Einfach ausprobieren, Videos anschauen, Internet Recherche. Mehr möchte ich dazu nicht schreiben. Keine Ahnung ob der Speicherplatz dieses Servers für eine vollständige Erklärung ausreichen würde ^^ . Aber sehr großer Vorteil von Substance Painter: Es arbeitet Zerstörungsfrei. Bedeutet alles kann wieder Rückgängig gemacht werden. So macht dann auch das Ausprobieren Spaß, neue Farbe draufwerfen .. sieht doof aus -> löschen, nächste Farbe. Anderes Material? Drauf werfen .. sieht gut aus -> behalten (und ggf. vorheriges löschen).
      Und auch hier wieder mein Tip, wer es noch nicht gemacht hat, schaut Euch das Anfänger Tutorial von @TheCoCe an. Ich habe es mir z.B. als Favorit direkt in der Schnellstartleiste des Browsers verlinkt.

      Die DirtMap ist jedoch etwas Besonderes. Mit deren Hilfe sagen wir CnC wo etwas dreckig werden könnte. Um die DirtMap direkt mit SubstancePainter zu erzeugen und direkt die Texturdatei exportieren zu können lege ich mir einen separaten Channel an (user0, ich benenne den nie um). Später kann man diesen Channel einfach zum "bemalen" auswählen. Die DirtMap besteht auch nur aus Schwarz oder Weiß, wobei Weiß bedeutet: hier kann Dreck entstehen.


      Nun müssen wir unsere Texturen nur noch exportieren. Im Anfänger Tutorial ist die Technik auch erklärt, es gibt verschiedene Techniken, aber CnC verwendet diese Eine. Zu unserem Glück hat sich Substance Painter in den 3 Jahren weiterentwickelt und man benötigt nun kein separates Tool um die verschiedenen Informationen in die 3 Texturdateien zu exportieren. Mit den richtigen Einstellungen geht das direkt aus Substance Painter heraus. Hierzu zwei Screenshots meiner Export Einstellungen (Die Lösung hierzu hatte ich vorher auch hier im Forum gefunden):

      Anmerkung: Die Farbkennzeichnung der Layer, Channel, Maps usw. ändert sich öfters, deshalb nicht so auf die Farben achten - Text zählt :-).

      mesh_a = RGB:Base Color (RGB) + A:Opacity (Grayscale)
      mesh_n = RGB:Normal DirectX
      mesh_r = R:Roughness(Grayscale) + G:Metallic(Grayscale) + B:Ambient occlusion(Grayscale) + A:user0(Grayscale)

      user0 ist mein Channel für die DirtMap, siehe oben.

      The post was edited 4 times, last by Pebcak ().

    • CnC Editor: Bringe Deinen Mod ins Spiel - Grundlagen

      Schauen wir uns zuerst noch einmal die Grundlagen an:

      Was wurde also bis hierhin alles getan:
      • Das Modell wurde mit den "Zeichen-Tool" (bei mir Blender) erstellt.
      • In Blender wurde ein High-Poly und ein Low-Poly Modell erzeugt. Beide Modelle wurden als fbx-Datei exportiert (bzw. den Dateitype, der vom verwendeten Textureprogramm unterstützt wird).
      • Mit den beiden fbx-Dateien haben wir im "Texture-Tool" (bei mir Substance Painter) die sogenannten Maps erstellt (gebacken) und dann dem Modell Farbe/Texturen gegeben. Das Ergebnis sind die tga-Dateien.
      • Bisher noch nicht erwähnt, aber um das Modell im CnC-Editor zu importieren, müssen wir vorher in Blender das Low-Poly Modell als Collada exportieren.
      Im CnC Editor wird nun erstellt:
      • Die World Datei -> Import der Collada Datei(-en)
      • Die Texturen = Import der tga-Dateien. Der CnC Editor bildet daraus die tex-Dateien, dem Format der C4-Engine
      • Nicht zu vergessen das Bild für den Shop (shop image)
      Damit der Mod auch geladen werden kann wird noch eine Mod-Informationsdatei benötigt. Dieses ist eine Textdatei im xml-Format. Sie enthält unter anderem die Information für die C4-Engine an welcher Stelle die Quelldateien liegen. Zum Aufbau der xml-Datei später mehr.

      The post was edited 3 times, last by Pebcak ().

    • CnC Editor: Import des Modells und der Texturen

      Der Editor kann in CnC jederzeit gestartet werden. Dazu drück man im Spiel (oder auch im CnC Hauptmenü) die Circumflex-Tast (ganz links oben, unterhalb der ESC-Taste, auf meiner Tastatur sind das 2 Symbole, ein kleiner Kreis und ein Dreieck ohne Bodenlinie).

      Dann kann man den Editor öffen. Um einen neuen Mod zu erzeugen wählt man "New World". Daraufhin wird eine neue leere Welt angelegt, die dann am Besten gleich unter neuem Namen abgespeichert wird. Die Reihenfolge der kommenden Schritte ist nicht verbindlich. Ob nun zuerst das Modell geladen wird, oder die Texturen bleibt Jedem überlassen.


      Nachdem das Modell (Collada Datei) mittels "Import Scene" erfolgreich importiert wurde, hat die "Infinite Zone" (bei mir unten links) alle separaten Objekte aus dem Modell (Bild links). Im späteren Verlauf kann es schnell unübersichtlich werden. Daher kann man Elemente im Scene Graph Fenster unsichtbar schalten: entsprechenden Eintrag, oder Einträge markieren und STRG+H gedrückt. Unsichtbare Elemente werden Grau hinterlegt (siehe Bild mitte). Bis zum fertigen Mod (Bild rechts) gibt es noch viel zu tun. Im Editor kann man Ansicht auf verschiedene Ansichtsoptionen ändern: 1 Fenster, 2 Fenster, 4 Fenster usw.. Jedem Fenster (Viewport) kann zugewiesen werden, was angezeigt werden soll. Das geschieht über das Menü (Maus-Rechtsklick, in der Perspektive allerdings STRG+rechte Maustaste).


      Die Texturen werden wieder über das Menü importiert "Import Texture Map" und die entsprechende tga Datei ausgewählt. Danach öffnet sich ein Dialogfenster, bei dem noch Optionen eingestellt werden können. "Use Block compression" sollte immer eingestellt sein. Bei den 2 Texturen für mesh_a und mesh_r bleibt zu berücksichtigen, dass hier im Alpha-Channel evtl. Informationen gespeichert sind. Bei diesen beiden Importen ist dann beim Eintrag "Apha channel" ein Eintrag auszuwählen, mesh_a: transparency und beim mesh_r: emission (-> dirt map, habe ich einfach so gemacht und es hat funktioniert).

      The post was edited 3 times, last by Pebcak ().