Kurz gesagt
- Eine Material Instance übernimmt Eigenschaften vom Hauptmaterial. Bearbeitbar sind nur Werte, die als Parameter definiert wurden.
- Scalar Parameter enthalten einen einzelnen Zahlenwert, Vector Parameter einen Wert mit vier Kanälen.
- Um eine Material Instance zu erstellen, richten Sie zunächst ein parametrisiertes Hauptmaterial ein und erzeugen anschließend die Instanz im Content Browser.
- Parametergruppen sorgen dafür, dass Instanzen mit vielen Bedienelementen im Material Instance Editor übersichtlich bleiben.
Was lernen Sie in diesem Leitfaden?
Für Materialvarianten in Unreal Engine muss der Node-Graph nicht für jede neue Optik von Grund auf neu aufgebaut werden. Eine Material Instance übernimmt Eigenschaften eines Hauptmaterials und ermöglicht es, Werte, die darin als Parameter definiert sind, einzeln anzupassen. So lassen sich beispielsweise aus derselben Oberflächendefinition Materialien mit unterschiedlichen Farb-, Rauheits- und Metallizitätswerten erstellen.
In diesem Leitfaden erfahren Sie, wie Sie ein parametrisiertes Hauptmaterial einrichten, eine Material Instance erstellen und bearbeiten sowie Bedienelemente gruppieren. Laut der Dokumentation von Unreal Engine kann diese Methode den Workflow beschleunigen, da Standardmaterialien nicht erneut kompiliert werden müssen. Wenn Sie Parameter bearbeiten, wird die Vorschau aktualisiert. Wurde die Instanz auf einen Actor in der Beispielszene angewendet, ist die Änderung auch dort zu sehen.
Voraussetzungen
Der Workflow erfolgt in Unreal Engine über den Material Editor, den Content Browser und den Material Instance Editor. In den bereitgestellten Anleitungen von Epic Games werden keine bestimmte Unreal-Engine-Version, Hardwareklasse oder Kontoanforderung genannt. Daher enthält dieser Leitfaden weder eine Versionsnummer noch eine Systemempfehlung. Sie müssen ein Material erstellen und speichern sowie eine Material Instance anlegen können.
Welche Eigenschaften sich in einer Material Instance ändern lassen, hängt davon ab, wie das Hauptmaterial eingerichtet ist. Normale Material Expressions werden nicht automatisch zu bearbeitbaren Bedienelementen: Die Eigenschaften, die geändert werden sollen, müssen mit Parameter-Nodes definiert werden. Deshalb empfiehlt es sich, vorab zu planen, welche Werte das Hauptmaterial bereitstellen soll, anstatt direkt mit der Instanz zu beginnen.
Schritt-für-Schritt-Workflow für Material Instances
Erstellen Sie das Hauptmaterial. Erstellen Sie im Material Editor ein Material. Es dient als Parent der späteren Instanzen und legt deren grundlegendes Erscheinungsbild fest. Bestimmen Sie, welche Eigenschaften sich ändern sollen, zum Beispiel Base Color, Metallic und Roughness.
Machen Sie die bearbeitbaren Werte zu Parametern. Sie können im Material Palette nach „parameter“ suchen oder über das Rechtsklickmenü im Material Editor passende Parameter-Nodes hinzufügen. Für einen einzelnen Zahlenwert fügen Sie einen Scalar Parameter hinzu, indem Sie im Graph auf S drücken und links klicken. Für einen Vector Parameter mit vier Fließkommawerten drücken Sie V und klicken links.
Ein Vector Parameter für Base Color und Scalar Parameter für Metallic und Roughness bilden das grundlegende Beispiel in der Dokumentation. Benennen Sie die Parameter so, dass ihr Zweck klar ist, zum Beispiel „Roughness“ und „Metallic“. Aussagekräftige Namen erleichtern es, die Wirkung der einzelnen Werte zu erkennen, wenn die Bedienelemente im Material Instance Editor angezeigt werden.
Legen Sie Standardwert und Wertebereich fest. Wenn Sie im Graph einen Parameter-Node auswählen, können Sie im Details-Panel den Standardwert festlegen. Im Beispiel von Epic Games liegt der erwartete Bereich für Roughness zwischen 0 und 1; diese Grenzen lassen sich in die Felder Slider Min und Slider Max eintragen. Damit wird der Bereich festgelegt, innerhalb dessen sich der Wert in der Instanz verschieben lässt. Für andere Werte sollten Sie keine in der Quelle nicht genannten Grenzen annehmen, sondern die Einstellungen an den Anforderungen des Materials ausrichten.
Wandeln Sie bei Bedarf eine bestehende Expression in einen Parameter um. Wählen Sie eine Material Expression aus, die noch kein Parameter ist, klicken Sie mit der rechten Maustaste darauf und wählen Sie Convert to Parameter. Diese Option ist nicht für jede Expression verfügbar, sondern nur für solche, die sich in einen Parameter umwandeln lassen. Geben Sie dem Node anschließend einen eindeutigen und verständlichen Namen.
Wenden Sie das Material an und speichern Sie es. Wenn alle Parameter verbunden sind, klicken Sie oben links im Material Editor auf Apply und speichern Sie das Material anschließend mit Save. Das parametrisierte Hauptmaterial bildet die Grundlage für die Instanzen. Werte, die unverändert bleiben sollen, müssen nicht als Parameter angelegt werden; sie erscheinen dann im Editor der Instanz nicht als bearbeitbare Bedienelemente.
Erstellen Sie eine Material Instance. Klicken Sie im Content Browser mit der rechten Maustaste auf das Hauptmaterial und wählen Sie Create Material Instance. Sie können die erstellte Instanz auswählen und mit F2 oder durch einen einzelnen Klick auf das Namensfeld umbenennen. Die Instanz übernimmt die Eigenschaften des Hauptmaterials und sieht beim Erstellen zunächst genauso aus, sofern ihre Parameter nicht geändert werden.
Bearbeiten Sie die Werte der Instanz. Öffnen Sie den Material Instance Editor, indem Sie im Content Browser auf die Material Instance doppelklicken. Die Bedienelemente werden im Details-Panel unter den Parameternamen des Hauptmaterials aufgelistet. Aktivieren Sie das Kästchen neben dem Parameter, den Sie bearbeiten möchten. Geben Sie anschließend einen neuen Wert ein oder klicken Sie auf das Feld und ziehen Sie, um den Wert anzupassen. Um die Farbe eines Vector Parameter zu ändern, klicken Sie auf das Farbfeld und öffnen den Farbwähler. Mit dem jeweiligen Zurücksetzen-Pfeil stellen Sie den Standardwert wieder her.
Gruppieren Sie zahlreiche Bedienelemente. Parametergruppen werden im Hauptmaterial festgelegt, nicht in der Instanz. Wählen Sie im Graph des Hauptmaterials einen Parameter-Node aus und tragen Sie im Feld Group des Details-Panels einen Gruppennamen ein. Sie können die Bedienelemente beispielsweise nach den Materialeigenschaften sortieren, die sie steuern. Für die Reihenfolge innerhalb einer Gruppe verwenden Sie das Feld Sort Priority des Parameter-Nodes; die Reihenfolge der Gruppen legen Sie über Group Sort Priority im Hauptmaterial fest. Laut der Dokumentation von Epic Games werden Gruppen standardmäßig alphabetisch sortiert.
Auswirkungen auf Architektur-, Innenarchitektur- und Archviz-Workflows
Diese Methode kann für Architektur- und Innenarchitektur-Visualisierungsteams hilfreich sein, die mehrere Varianten derselben Oberfläche erstellen müssen. So lassen sich beispielsweise Farben oder Rauheitswerte von Oberflächen in einer Szene über ein parametrisiertes Hauptmaterial und dessen Instanzen variieren. Die Werte werden im Material Instance Editor angepasst; der Node-Graph muss nicht für jede Variante neu aufgebaut werden.
Eine weitere Einsatzmöglichkeit sind visuelle Änderungen während der Laufzeit einer Szene. Epic Games nennt Dynamic Material Instances, die während des Spiels geändert werden können, als eine Möglichkeit, in der Architekturvisualisierung beispielsweise die Farbe eines Anstrichs anzupassen. Dabei handelt es sich jedoch um einen anderen Workflow als das Erstellen eines parametrisierten Materials und einer Material Instance im Content Browser: Dynamic Instances werden über Skripte oder Blueprints erzeugt und können während der Laufzeit aktualisiert werden. Da die Quelle keine ausführliche Anleitung für diesen Workflow enthält, werden hier keine zusätzlichen Node-Verbindungen oder Code-Schritte aufgeführt.
Für die Nutzung im Team sollten Bedienelemente und Gruppen verständlich benannt werden; eine einzige Liste mit zahlreichen Parametern kann die Bearbeitung erschweren. Außerdem werden Static Parameter zur Compile-Zeit angewendet, und unterschiedliche Kombinationen können neue Materialkompilierungen erfordern. Epic Games warnt davor, dass zahlreiche Kombinationen statischer Parameter zu einer übermäßigen Zahl an Shader-Kompilierungen führen können. Lizenz-, Preis- und Hardwareanforderungen werden in der bereitgestellten Dokumentation nicht erläutert. Für die Projektplanung sind dazu gesondert verifizierte Informationen erforderlich.
Häufige Fehler
Die zu ändernde Eigenschaft nicht als Parameter anlegen: Wenn im Hauptmaterial ein normaler Wert verwendet wird, erscheint er in der Instanz nicht als bearbeitbares Bedienelement. Verwenden Sie für die gewünschte Eigenschaft den passenden Parameter-Node.
Einem Parameter einen unklaren Namen geben: Aussagekräftige Namen helfen dabei, bei mehreren Bedienelementen während der Bearbeitung den richtigen Wert zu finden.
Jeden Wert zum Parameter machen: Aktivieren Sie nur die Bedienelemente, die sich in den Instanzen ändern sollen. Werte, die fest bleiben, können normale Expressions bleiben.
Zu viele Kombinationen von Static Parameters erstellen: Statische Parameter werden zur Compile-Zeit und nicht während der Laufzeit angewendet. Viele unterschiedliche Kombinationen können die Zahl der zu kompilierenden Materialien erhöhen.
Die Auswirkungen einer Änderung am Hauptmaterial übersehen: Wenn Sie das Parent-Material einer Instanz ändern, können sich deren Aussehen und verfügbare Parameter ändern. Es ist nicht garantiert, dass das neue Hauptmaterial dieselben Parameter wie zuvor enthält.
Nächste Schritte
Richten Sie zunächst ein einfaches Hauptmaterial mit wenigen Parametern ein und erstellen Sie eine Material Instance, um zu überprüfen, wie Änderungen in der Vorschau aussehen. Wenn die Zahl der Bedienelemente wächst, gruppieren und sortieren Sie die Parameter. Wenn Werte während der Laufzeit der Szene geändert werden sollen, berücksichtigen Sie die unterschiedlichen Einsatzbereiche von Constant- und Dynamic-Instanzen. Die Einrichtung von Laufzeitinstanzen über Blueprint oder Code muss gesondert behandelt werden.
Quelle und Lizenz
Dieses Tutorial wurde anhand der Dokumentationen „Instanced Materials in Unreal Engine“ und „Creating and Using Material Instances in Unreal Engine“ von Epic Games ins Türkische übertragen. In den bereitgestellten Quellenangaben sind beide Seiten mit „lisans=serbest“ gekennzeichnet.
Quellen
2 QuellenQuelltexte werden nicht neu veröffentlicht; kurze Zitate sind gekennzeichnet, der Rest ist eigene Zusammenfassung und Einordnung.
Der Ansatz mit Material Instances bietet Architekturbüros und Visualisierungsteams in der Türkei eine praktische Möglichkeit, schnell Farb- und Rauheitsvarianten derselben Oberfläche bereitzustellen. Wird das Hauptmaterial einmal eingerichtet, muss der Node-Graph für wiederkehrende Varianten nicht erneut aufgebaut werden.
Der Nutzen hängt jedoch davon ab, dass das parametrisierte Hauptmaterial sorgfältig organisiert ist. Einheitliche Namen und Gruppen erleichtern es den Teams, Dateien zu übernehmen und weiterzubearbeiten. Da die Quellen keine Angaben zu Lizenzkosten oder Hardwareanforderungen enthalten, sollten diese gesondert geprüft werden. Auch die zunehmende Zahl an Kombinationen statischer Parameter und mögliche Änderungen am Erscheinungsbild der Instanzen nach einer Änderung des Hauptmaterials sollten berücksichtigt werden.
Häufige Fragen
Wie erstellt man in Unreal Engine eine Material Instance?
Richten Sie zunächst ein Hauptmaterial mit den gewünschten bearbeitbaren Eigenschaften als Parametern ein und speichern Sie es. Klicken Sie dann im Content Browser mit der rechten Maustaste auf das Hauptmaterial und wählen Sie Create Material Instance.
Welche Werte lassen sich in einer Material Instance ändern?
Im Material Instance Editor lassen sich Eigenschaften bearbeiten, die im Hauptmaterial als Parameter definiert sind. Scalar Parameter enthalten einen einzelnen Zahlenwert, Vector Parameter einen Wert mit vier Kanälen.
Worin unterscheiden sich Material Instance und Dynamic Material Instance?
Eine Material Instance Constant wird vor der Laufzeit berechnet und während des Spiels nicht geändert. Eine Material Instance Dynamic kann über Skripte oder Blueprints während der Laufzeit erstellt und bearbeitet werden.



