Eigene Modelle aus Blender & Substance Painter für Anno 1800/2205 exportieren

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Eigene Modelle aus Blender & Substance Painter für Anno 1800/2205 exportieren

      Zuersteinmal Danke an Judekw der sich komplett auf sich allein gestellt die Grafikengine der 3D-Annos erschlossen hat, und an kskudlik und Cyborg für die RDM-OBJ Conversion. Ohne diese Arbeit wäre das hier gar nicht möglich.

      --------------------------------------------------------------

      Ich gehe jetzt davon aus, dass ich mein Modell bereits erstellt, UV Unwrapped ( beides mit Blender) habe, es in Substance Painter texturieren möchte, und es dann nach Anno bringen will. Zum Modellieren, UV-Unwrappen und Texturieren gibt es auf Youtube bessere Tutorials, als ich das geben könnte.
      Außerdem setzt diese Anleitung ein höheres Level an Modding-Erfahrung mit Anno 1800 voraus, wie man ein Gebäude in der .cfg richtig zusammensetzt, in der .ifo Blocker schreibt oder wie man aus einer Grafik ein baubares Gebäude macht sollten bereits bekannt sein. Darauf wird hier nicht weiter eingegangen, es geht nur darum, wie man sein Gebäude aus Blender und Substance Painter in Anno reinbekommt.

      --------------------------------------------------

      Benötigte Programme:

      Ich benutze für die Erstellung des Modells und das UV Unwrapping Blender, für die Texturierung Substance Painter und für die rdm conversion den rdm-obj converter von kskudlik: github.com/kskudlik/Anno-1800-Model-Converter/releases

      --------------------------------------------------

      Grundlagen:

      Ein Modell in Anno ist folgendermaßen aufgebaut:

      Ordner "maps" (von jeder Map gibt es drei Variationen, diff_0 ist doppelt so groß wie diff_1, diff_1 ist doppelt so groß wie diff_2.
      • diffuse maps - Farbinformationen in RGB, Transparenzinfo in Alpha.
      • normal maps - Normalmap in RG, Glowmap in B, Glossiness in Alpha.
      • metallic maps - RGB Metallic, einfärben möglich. Klassisch weiß bedeutet, dass die Farbinformation der diffuse übernommen wird. Alphakanal speichert eine Ambient Occlusion Map.

        Außerdem noch optional:
      • mask maps - RGB, Leuchtende Stellen bei Nacht. Weiß bedeutet, dass dieser Teil bei Nacht beleuchtet wird.
      • dye maps - RGB, Weiß bedeutet, dass dieser Teil mit der Spielerfarbe eingefärbt wird (Achtung: diffuse und dye werden vermittelt!)
      • height maps: Graustufen, damit lässt sich Höhenunterschied ganz gut faken. Eignet sich daher gut für Bodentexturen.
      Ordner "rdm" (hierbei steht das lod_0 für das lodlevel der Grafik (0-4, je nach Distanz, sind weniger vorhanden wird automatisch das letzte bis zum Ende genommen, man kann also auch nur eine lod0 ablegen)
      • Alle benötigten Modelle im .rdm Format
      Ordner "anim" (Für uns nicht benötigt, da kein bisher geschriebener Konverter diese unterstützt)
      • Alle benötigten Animationen im .rdm Format
      <model>.fc (Zuständig für die Loops des visuellen Feedbacks. Eine Art xml-Dokument, die allerdings einige Teile in Binary hat, die entweder im Hexeditor bearbeitet oder erst konvertiert werden müssen, siehe maug-projekt.de/forum/index.ph…ditieren-der-cdata-in-fc/).
      <model>.cfg (Setzt Modelle zusammen, eine Art xml-Dokument, kann mit einem xml-Formatter wesentlich einfacher lesbarer gemacht werden.)
      <model>.ifo (Legt Blocking der Grafik fest, eine Art xml-Dokument, kann ebenso mit xml-Formatter lesbarer gemacht werden.)
      <model>.bfg (Global Illumination, der Unterschied, wenn diese Datei fehlt, ist marginal, daher braucht man diese nicht. Man könnte sie auch eh nicht selbst schreiben.)

      --------------------------------------------------

      Aufsetzen eines Projektes mit Substance:

      In Substance Painter lassen sich die Eigenschaften der Anno-Engine relativ einfach reproduzieren. Euer Projekt benötigt folgende Kanäle:
      • Base Color
      • Metallic
      • Normal
      • Glossiness
      • Opacity
      • Reflection (Weiß in diesem Kanal bedeutet, dass dieser Teil der Textur bei Nacht leuchtet.)


      Dazu benötigt ihr zumindest die Ambient Occlusion Mesh Map, die unter Edit -> Bake Mesh Maps aus dem Modell gebaket werden muss.

      Mithilfe von Templates können in Substance Painter Projekte direkt mit diesen Kanälen erstellt werden. Dafür kann beim Erstellen eines Projektes die entsprechende Template ausgewählt werden:

      [IMG:https://cdn.discordapp.com/attachments/274971101447192577/749231802308231188/Screenshot_324.png]

      --------------------------------------------------

      Anno 1800-spezifischer Shader

      Anno 1800 ist ein wenig besonders in der Hinsicht, dass es PBR mit Metal/Gloss anstatt Metal/Rough umsetzt. Der Unterschied ist nicht allzu groß, es gibt in Substance Painter aber keinen Shader, der das von Haus aus unterstützt.
      Insofern hier eine kleine Bearbeitung des Pbr-metal-rough-with-alpha-blending Shaders, die statt Roughness eben Glossiness benutzt. Das sollte ausreichend sein, um nicht jedes Mal erst das Spiel zu starten, um zu schauen, ob die Texturen, die in Substance perfekt wirken, denn in 1800 auch gut aussehen. Der Unterschied ist hauptsächlich das Lighting, die Materials sind aber im wesentlichen identisch.

      Hier ein Vergleich:

      [IMG:https://cdn.discordapp.com/attachments/274971101447192577/749226891088625704/Screenshot_321.png]
      Den Shader könnt ihr rechts einstellen, ein mit der Template aufgesetztes Projekt wird diesen automatisch verwenden.

      --------------------------------------------------

      Export der Texturen aus Substance:

      Substance ermöglicht nicht nur das Aufsetzen von Projekten mit den Eigenschaften wie Anno 1800, sondern auch das exportieren. Anno 1800 fasst dabei mehrere Informationen in eine Textur zusammen, im Alphakanal der Diffuse Textur steckt bspw. die Opacity Map. Für Anno 1800 sieht das ganze dann so aus:

      [IMG:https://cdn.discordapp.com/attachments/274971101447192577/749227879086424134/Screenshot_323.png]
      So und jetzt zum exportieren hier die Template einstellen:

      [IMG:https://cdn.discordapp.com/attachments/274971101447192577/749227424998490182/Screenshot_322.png]

      Mein Projekt ist ein ganz normales Gebäude, was keine Heightmap benötigt, daher ist dies im Export abgestellt.
      Jetzt exportieren und mit der Template Medium und halber Auflösung sowie der Template Low in Viertel-Auflösung wiederholen.

      ------------------------------------------------------------------------------------------------------------------

      DOWNLOADS:

      Project-Template, Export-Templates und Shader können hier heruntergeladen werden: Google Drive

      Alle drei Ordner müssen unter Documents/Allegorithmic/Substance Painter/shelf abgelegt werden und suchen sich ihren Ort dann selbst.

      ---------------------------------------------

      Der letzte Schritt: Texturen nach dds konvertieren.

      Die Texturen müssen für Anno in .dds, BC7_UNORM Format vorliegen. Substance Painter unterstützt jedoch kein dds, weshalb man die Texturen noch konvertieren muss. Dazu kann man sie zwar einfach alle in GIMP öffnen und nach dds exportieren, am besten mit automatisiertem Texture Tool, nach dieser Anleitung.

      Schneller geht manuelles Konvertieren mit texconv.exe mit folgenden Argumenten, dann wird direkt der ganze Ordner konvertiert..

      Quellcode

      1. -f BC7_UNORM -ft DDS -sepalpha *.png

      Damit hat man dann alles was man an Texturen benötigt.
      ---------------------------------------------------

      Damit sind die Maps erstellt, bleiben die .cfg und die .ifo. Diese müssen vielleicht nicht von Grund auf neu erstellt werden, aber Partikel und Props etc müssen von Hand hinzugefügt werden.

      Dabei besonders hilfreich ist, dass man für ORIENTATION_TRANSFORMS auch einfach Blender benutzen kann um bspw Props und Particles dort zu positionieren wo man das möchte. Beachtet dabei allerdings bitte, dass Blender ein Z-Up Koordinatensystem benutzt, während Anno Y-Up arbeitet. Daher müssen sämtliche y- und z- Positionswerte immer vertauscht werden beim copy+pasten.

      Rotationen lassen sich sogar aus Blender direkt ablesen (Anno speichert diese im Quaternion-Format, dieses kann man in Blender auch zur Anzeige auswählen. Beachtet dabei aber, dass Y und Z getauscht werden müssen.), oder aber mit der Seite quaternions.online/ easy aus Euler errechnen lassen.
      Für Partikel oder ähnliches lässt sich das genauso machen, einfach einen kleinen Cube an die gewünschte Position ziehen und dort die Position rauskopieren.

      Dieser Beitrag wurde bereits 12 mal editiert, zuletzt von Nale aka Taubenangriff ()

    • Vielen Dank für die Infos! da ich mich für 3D-Design interessiere und einige Erfahrung mit Blender und Texturen in Anno habe (mit Photoshop), würde ich mich gerne an die 3D-Modelle der Häuser ranwagen, die in den besagten rdm-Dateien stecken. Wie cfg und dds Dateien funktionieren, ist mir mittlerweile klar (hab an dem Mod "Project-Distinction" privat weiter herumgemoddet).

      Aber was ich überhaupt nicht schnalle, ist wie dieser rdm-Converter von kskudlik funktioniert. Wenn es eine Anwendung sein soll, verstehe ich nciht wie ich sie ausführen soll. Da gibt es keine exe-Datei oder so. Ich sehe unter dem Link nur eine Ansammlung von Dateien, von denen einige irgendwie im Visual Studio geöffnet werden können, aber mehr auch nicht...Stehe auf dem Schlauch. Für einen Tipp, wie man diesen Converter zum Laufen bringt, wäre ich echt dankbar!