Modding: Material (de)

You are currently viewing an older version of the entry. Click here, to view the current version.

  • Modding: Material

    1 Grundsätzliches

    Ein Material ist immer einem (oder mehreren) Meshes zugeordnet. Ein Material beschreibt die folgenden visuellen Eigenschaften:

    • Farbe (engl: Colour)
    • Ob es eine metallische Oberfläche ist und zu welchem Grad (engl: Metallic)
    • Glanz von nicht-metallischen Flächen (engl: Speculiar)
    • Oberflächen-Rauheit (engl: Roughness)
    • Oberflächenkonturen, d.h. Erhebungen und Senken (engl: Normals)
    • Transparenz (Engl: Opacity, standardmäßig ausgegraut, nur aktiv, wenn Blend Mode in den Main Node Einstellungen auf "Opaque" gesetzt wird)
    • "Glühen" (engl. Emissive Colors)

    Die ersten vier Punkte werden oft (aber nicht immer) über Texturen definiert, wobei Roughness und Metallic ebenfalls oft in einer Textur zusammengefasst werden. Über die unterschiedlichen Farbkanäle (Rot, Grün, Blau) werden dann z.B. die Werte von Roughness und Metallic abgerufen.


    Man kann einzelne Elemente des Materials als Parameter definieren, sodass diese Elemente in einer Kind-Instanz des Materials (engl: Material Instance) konfiguriert werden können. Sind Material Instances vorhanden, wird das (oberste bzw. erste) Vater-Element (engl: parent) oft "Master Material" genannt. ee

    1.1 Namensschemata

    Abkürzung Bedeutung
    M_ Material, Master Material
    MI_ Material Instanz
    MF_ Material Funktion


    2 Inkompatibilität von Materialien aus anderen UE4 Versionen

    Achtung! Versucht nicht, Materialien aus anderen UE4 Versionen, insbesondere solche aus einer höheren UE Version als 4.15.3 zu importieren. Das dürfte mit hoher Wahrscheinlichkeit zu einem Crash führen. Insbesondere beim Material Editor gibt es über die verschiedenen Versionen der Unreal Engine Weiterentwicklungen, die nicht untereinander kompatibel sind.
    Was ihr aber machen könnt: Ihr könnt die Texturen aus anderen Versionen exportieren und in das DevKit importieren.

    Hier gibt es jedoch noch einige Dinge zu beachten, die ihr unter <insert Link> beschrieben findet.

    3 Ein Basis-Material erstellen

    Wie man ein Material erstellt:

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    Ein einfaches Material ist in wenigen wenigen Schritten erstellt.

    • Klicke zunächst mit der rechten Maustaste in den Inhaltsbrowser und wähle dann im Kontext Menü im Abschnitt "Create Basic Assets" die Option "Material".
      Material creation Material main node Sobald das Material erstellt wurde, gibt dem Material einen aussagekräftigen Namen. Idealerweise folge folgendem Benennungsschema:
      DeinModkürzel_M_Materialbeschreibung z.B. MG_M_RedMetal
    • Öffne das Material im Material Editor durch einen Doppelklick mit der linken Maustaste im Inhaltsbrowser. Hier siehst du nun den Hauptknoten (engl. main node) des Materials. Ein Knoten wird im engl. als "Node" bezeichnet.
    • Du kannst nun verschiedene Nodes hinzufügen, klicke dazu mit Rechts neben den main node. Wähle im Kontextmenü eine Node aus. Alternativ gehe rechts in die Palette und wähle dort den Node aus, den du dazufügen möchtest, indem du sie mit der linken Maustaste anklickst. Ziehe die Node mit gedrückter linker Maustaste in den Materialgraphen und lasse die linke Maustaste los, wenn du dich über der Stelle im Materialgraphen befindest, an der du die Node platzieren möchtest.


      Beispiel:

      External Content youtu.be
      Content embedded from external sources will not be displayed without your consent.
      Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


      Die 3 wichtigsten Nodes sind folgende (alle drei werden nachfolgend noch genauer erklärt)

      • Constant

      • Constant3Vector

      • Texture Sample

    • Mit Rechtsklick auf die Node kannst du diesen im Fall von Konstanten, Vektoren oder Texturen auch in einen Parameter umwandeln, den du dann in einer Material Instance konfigurieren kannst. Material Instanzen werden in einem separaten Abschnitt genauer erklärt.
    • Füge nun wie im Beispielvideo oben eine "Constant3Vector" Node zu Materialgraphen dazu. Doppelklicke zum Öffnen des Farbwählers (engl. Color-Picker) zunächst mit der linken Maustaste auf die Node "Constant3Vector". Wähle bei geöffnetem Color-Picker deine Wunschfarbe aus, z.B. Rot.
    • Als Nächstes füge die Node "Constant" zum Materialgraphen hinzu, indem du im Kontextmenü nach dem Wort "constant" suchst. Dupliziere die Constant node aus dem vorherigen Schritt, in dem du diese zuerst auswählst und dann einmal Strg+W auf der Tastatur drückst. Alternativ markiere eine Node, drückte STRG +C und dann STRG+C. Gib der ersten Node auf der linken Seite den Wert 1, dem zweiten den Wert 0.5.
      External Content youtu.be
      Content embedded from external sources will not be displayed without your consent.
      Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.
    • Verbinde nun die Constant3Vector Node mit dem main node. Klicke dazu mit der linken Maustaste auf den Kreisausgang, der sich rechts neben dem Node Constant3Vector Material Expression befindet. Ziehen dann mit gedrückter linker Maustaste nach rechts, bis du eine Linie siehst, die vom Kreisausgang ausgeht. Verbinde diese Linie z.B. mit dem Eingang "Base Color" des main nodes.
      External Content www.youtube.com
      Content embedded from external sources will not be displayed without your consent.
      Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.
    • Wiederhole dies für die beiden Konstanten. Verbinde die Konstante mit dem Wert 1 nun mit dem Eingang "Metallic" der main node und die Konstante 0.5 mit dem Eingang "Roughness":
      External Content www.youtube.com
      Content embedded from external sources will not be displayed without your consent.
      Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.
    • Klicke oben im Menü auf "Apply" und dann "Save" um dein Material zu kompilieren und zu speichern. Herzlichen Glückwunsch! Du hast nun dein erstes Material erstellt!

    3.1 Farblogik von Nodes und Materialfunktionen

    Im Material-Editor haben die unterschiedlichen Nodes eine individuelle Farbgebung, um die Daten-Typen besser voneinander unterscheiden zu können.

    Material: Color of nodes

    Beispielsweise sind Konstanten in einem Gras-Grün dargestellt, während Mathe-Knoten ein eher dunkleres Tannen-Grün haben. Constant3Vectoren sind in einem schmutzigen Gelb-Gold dargestellt, Texture Samples sind Blau mit einem Tüpfelchen Türkis, während Material-Funktionen in einem helleren Blauton visualisiert werden.

    3.1.1 Node: Constant

    Wie du eine Konstante (engl. Constant) hinzufügst:

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    Mit einer Constant definierst du einen einzelnen Wert.

    3.1.2 Node: Constant3Vector

    Wie du eine konfigurierbare Farbe erstellst:

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    Mit einem Constant3Vector definierst du eine Farbe, die aus den drei Werten R = Rot (engl. Red), G = Grün (engl. green) und B = Blau (engl. blue) besteht. Die Farben sind bei der Eingabe der Werte in [...? links] auf einen Wert zwischen 0 und 1 begrenzt.
    Du kannst auch alternativ einen Farbwähler (engl. Color-Picker) benutzen. Doppelklicke dafür zunächst mit der linken Maustaste auf die Node "Constant3Vector", um den Color-Picker zu öffnen. Wähle bei geöffnetem Color-Picker deine Wunschfarbe aus, z.B. Rot. Zudem kannst du mit dem linken vertikalen Schieber die Sättigung (engl. Saturation) auswählen und rechts den Hellwert (value) aus dem HSV Farbraum. Drücke dann die Schaltfläche Ok.

    3.1.3 Node: Texture Sample

    Wie du eine konfigurierbare Textur erstellst:

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    Mittels eines Texture Sample bist du in der Lage, Texturen in deinem Material einzubinden und zu verknüpfen. Du kannst dafür Texturen nehmen, die schon im DevKit vorhanden sind, läufst jedoch Gefahr, wenn sie sich nicht in deinem Mod-Verzeichnis befinden, dass die Texturen jederzeit bei einem Update von Funcom geändert, verschoben oder gelöscht werden können.
    Du bist auf der sicheren Seite, wenn du die Texturen in dein Mod-Verzeichnis kopierst.

    3.1.4 Material Funktionen

    Material Funktionen sind modulare und in sich gekapselte Logik-Blöcke, die generelle und wiederverwendbare Funktionalität auslagern. Die Unreal Engine bringt hier standardmäßig eine ganze Palette Material Funktionen mit sich, die Entwickler frei in ihren Arbeiten verwenden können. Auch Funcom hat einige Material Funktionen entwickelt und im DevKit zur Verfügung gestellt.
    Solche Material Funktionen können z.B. das überblenden von zwei nahen Materialien sein, sodass beispielsweise eine Landschaft organischer aussieht (z.B. bei Übergängen von Gebirgen zur Erde)

    4 Einstellungen in der Material Main Node

    Klickst du mit rechts auf die Material Main Node kannst du weitere Einstellungen vornehmen.

    Hier kannst du weitere Einstellungen vornehmen. Im Blend Mode unter "Material" kannst du beispielweise einstellen, ob dein Material "opaque" sein soll, d.h. nicht durchsichtig, oder beispielsweise "translucent" (findet z.B. Anwendung bei Materialen für Glas oder Wasser). Je nachdem ändern sich die Eingänge der main node. Ausgegraute Eingänge oder bereits verknüpfte Verbindungen, die nun in grau erscheinen, sind inaktiv.


    Im Bereich "Usage" solltest du den Haken setzen bei "Used with Instanced Static Meshes", wenn es sich beispielsweise um ein Deko Objekt handelt. Mit dieser Option wird dein Material kompatibel zu "Amunets Deco Collector".

































    5 Material Instanzen

    Klicke mit Rechts im Inhaltsbrowser auf dein Material. Wähle dann im Kontextmenü unter "Material Actions" die Option "Create Material Instance" aus. Create an material instance
    Gib deiner Material Instanz einen aussagefähigen Namen, z .B.
    DeinModkürzel_MI_Materialbeschreibung z.B. MG_MI_Metal_Blue


    Mit Doppelklick auf die Material Instanz kannst du diese Öffnen. Je nachdem, ob und wieviele Parameter du in deinem Master Material erstellt hast, kannst du diese nun in der Material Instanz wiederfinden. Um den jeweiligen Parameter zu bearbeiten, muss die entsprechende Checkbox gesetzt werden.














    5.1 Beispiele

    Beispiel 1:

    Example 1: Master Material Example 1: Material Instance






















    In Beispiel 1 sieht man eine Constant3Vector Variable (rotes Kästchen), die Farbe des Materials definiert und konfigurierbar ist. Zudem gibt es zwei konfigurierbare Konstanten (blaues und grünes Kästchen). In der Material-Instanz lässt sich nun beispielsweise durch anhaken der Constant3Vector Variable "MyColor" die rote Farbe in Blau umändern, sodass das Material nun nicht mehr rot-metallisch ist, sondern blau-metallisch.


    Beispiel 2:

    Example 2: Master Material Example 2: Master Material Instance


    Beispiel 2 zeigt eine Master Material mit 3 Texture Samples, die als Parameter konfigurierbar sind. Diese finden sich auch in der Material Instanz wieder.

    5.2 Vorteile von Material Instanzen

    Die vorher gehenden Beispiele sind recht simpel gehalten. Der große Vorteil von Material-Instanzen wird so richtig erst spürbar, wenn die Materialien sehr viele Nodes enthalten und in ihrer Logik komplex sind. So können beispielsweise auch Schalter-Logiken in das Master Material eingebaut werden, die dann je nach Erfordernis in der Material Instanz aktiviert oder deaktiviert werden können. Man nutzt die dahinter liegende Logik mehrfach, ohne sie aber mehrfach programmieren zu müssen.

    6 Tutorials

    Beachtet bitte dass einige Guides auf neureren Versionen der Unreal Engine basieren und ggf. nicht komplett nachbaubar sind.


    Material

    Unreal Engine: How To Materials https://docs.unrealengine.com/…Graphics/Materials/HowTo/

    Ray Wenderlich's UE4 Tutorials: Materials https://www.raywenderlich.com/…gine-4-materials-tutorial


    Material Funktionen
    Unreal Engine: How To Materials - Making Functions https://docs.unrealengine.com/…s/HowTo/Making_Functions/

    Video Tutorial: Material Funktionen (Englisch): https://www.youtube.com/watch?v=pbxoSngHy0o