Eigene Modelle für Anno 1800/2205 einrichten + Adobe Substance Painter.

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Eigene Modelle für Anno 1800/2205 einrichten + Adobe Substance Painter.

      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.

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

      Ich benutze für die Erstellung des Modells und das UV Unwrapping Blender, für die Texturierung Substance Painter, für die Bildbearbeitung GIMP mit automatisiertem texconv.exe 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 kann. Für bestimmte Smart Materials wie Dirt solltet ihr außerdem gleich alle anderen Mesh Maps mitbaken, kann nicht schaden.

      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/712611775605899304/Screenshot_141.png]

      Die Template kann hier heruntergeladen werden: Google Drive Und muss unter Documents/Allegorithmic/Substance Painter/shelf/templates abgelegt werden.

      Anmerkung: Damit Substance Die Opacity richtig darstellt: Muss der Shader Pbr-metal-Rough-With-Alpha-Blending ausgewählt sein!

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

      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/712614922118365214/Screenshot_142.png]

      Die Export-Template kann hier heruntergeladen werden: Google Drive und muss unter Documents/Allegorithmic/Substance Painter/shelf/export-presets

      Beim Export muss dann hier die Template ausgewählt werden: [IMG:https://cdn.discordapp.com/attachments/274971101447192577/712615464831942697/Screenshot_143.png]
      ------------------------------------------------------------------------------------------------------------------

      Alternative Template Heightmap anstatt Mask (Hauptsächlich für Bodendecals, die leuchten nicht bei Nacht, benutzen dafür aber Heightmaps)
      ------------------------------------------------------------------------------------------------------------------

      Der letzte Schritt: Texturen nach dds konvertieren und Skalierungen.

      Die Texturen müssen für Anno in .dds, BC7_UNORM Format vorliegen. Dazu kann man sie in GIMP öffnen und nach dds exportieren, am besten mit automatisiertem Texture Tool, nach dieser Anleitung.

      Manuelles Konvertieren geht mit texconv.exe mit folgenden Argumenten:

      Source Code

      1. -f BC7_UNORM -ft DDS -sepalpha <filename>

      Für die Einstellung Texturqualität müssen außerdem noch zwei skalierte Varianten (für die Einstellung "Texturqualität" des Spiels) der Textur erstellt werden. Das lässt sich entweder in Substance Painter beim Exportieren einstellen, oder man skaliert sie manuell mit GIMP runter, ich empfehle ersteres, gibt bessere Qualität.
      Die Skalierten Varianten müssen jeweils die Hälfte der Auflösung der nächsthöheren haben. ist die diff_0.dds 1024x1024, dann muss die diff_1.dds 512x512 groß sein, usw.

      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), 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.

      The post was edited 9 times, last by Nale aka Taubenangriff ().