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. Dies hat den Vorteil, dass Standard-Einstellungen schon vorgenommen wurden. Die Material Instances bieten einen Geschwindigkeitsvorteil ggü. der Verwendung von normalen Materialen.
Sind Material Instances vorhanden, wird das Vater-Element (engl: parent) oft "Master Material" genannt.
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:
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.beContent 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 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.beContent 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.comContent 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.comContent 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 Constant
Wie du eine Konstante (engl. Constant) hinzufügst:
Mit einer Constant definierst du einen einzelnen Wert.
3.2 Constant3Vector
Wie du eine konfigurierbare Farbe erstellst:
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.
4 Texture Sample
Wie du eine konfigurierbare Textur erstellst:
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.
5 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".
6 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.
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.
6.1 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.
7 Tutorials
How To Materials https://docs.unrealengine.com/…Graphics/Materials/HowTo/
Ray Wenderlich's UE4 Tutorials: Materials https://www.raywenderlich.com/…gine-4-materials-tutorial