2D Licht und Schatten in Unity

Du kannst für dein 2D-Spiel Lichteffekte einbauen.

Einführung in 2D-Lichteffekte in Unity

Bei Verwendung der Universal Render Pipeline (URP) mit ausgewähltem 2D-Renderer bietet die Light 2D-Komponente eine Möglichkeit, Sprites mit 2D-optimierter Beleuchtung zu versehen.

Du kannst zwischen verschiedenen 2D-Lichttypen wählen. Die Lichtarten im Paket sind:

Freeform

Sprite

Parametric

Point

Global

Lichttypen

Das Paket enthält das 2D-Renderer Datenasset, dass die Parameter für die verschiedenen Beleuchtungsstile enthält. Es erlaubt die bis zu vier benutzerdefinierten Lichtoptionen für dein Projekt zu verwenden.

Hinweis: Wenn du den experimentellen 2D-Renderer aktiviert hast (Menü: Grafikeinstellungen> Hinzufügen des 2D-Renderer-Assets unter Scriptable Render Pipeline-Einstellungen), haben einige der Optionen für das 3D-Rendering im URP-Asset keine Auswirkungen auf die endgültige App oder das Spiel.

Anforderungen und Einrichtung

Du benötigst Unity 2019.2.0b1 oder später

und die Universal Render Pipeline version 6.7 oder höher.

Wie du den 2D Renderer konfigurierst:

1. Erstelle ein neues Pipeline-Asset, indem du im Menü Assets die Option Create> Rendern> Universelle Render-Pipeline> Pipeline-Asset auswählen

Lichttypen Pipeline Asset

2. Wähle als nächstes: Create–>Rendering–>Universal Render Pipeline–>2D-Renderer (Experimental)

Füge in das neue Asset in die Renderer-Liste ein.

Asset

Wähle Edit–>Project Settings und gehe in die Graphikkategorie.

Setze die Render Pipeline-Einstellungen auf den neuen Renderer.

Ziehe unter die Grafikeinstellungen der Projekteinstellungen die Lichteffekte.

Lichteffekte

Um die Sprites für die Beleuchtung vorzubereiten und sie mit 2D-Lichtern zu beleuchten wird der Sprite-Renderer-Komponente des Sprites ein Material mit einem Shader zugewiesen, der auf 2D-Lichter reagiert.

Ziehst du neue Sprites in die Szene, wird automatisch das Material auf “Sprite-Lit-Default” zugewiesen, sodass sie interagieren und von 2D-Lichtern beleuchtet erscheinen können.

Alternativ kannst du mit dem Shader Graph-Paket einen benutzerdefinierten Shader erstellen, der auf Lichter reagiert. Das Shader Graph-Paket kann über den Paket-Manager heruntergeladen werden.

Upgrade auf einen kompatiblen Shader

Gegebenenfalls musst du deine Materialien auf einen beleuchtungskompatiblen Shader aktualisieren. Die folgenden Funktionen aktualisieren eine Szene oder ein Projekt automatisch in einem Prozess. Aktualisierte Szenen oder Projekte können nicht auf den vorherigen Status zurückgesetzt werden.

Aktualisieren einer Szene

Um die aktuell geöffnete Szene zu aktualisieren, gehe auf zu Edit> Renderpipelinen> Universal Render Pipeine–>2D-Renderer> Szene auf 2D-Renderer upgraden

Material Upgraden

Dann wird dein Bildschirm schwarz:

Szene geupgradet

 

Alternativ kannst du das Projekt aktualisieren

Um alle Prefabs und Materialien in Ihrem Projekt zu aktualisieren, gehe zu Bearbeiten> Pipeline rendern> UniversalRP–> 2D-Renderer> Projekt auf 2D-Renderer aktualisieren

Jetzt musst du Licht in deine Szene einfügen.

Klicke mit rechts ins Hierarchiefenster und wähle Light–>2D–>Das Licht, dass du einbauen möchtest.

Licht hinzufügen

Jetzt wird Licht in der Szene benötigt.

Im Hierarchiefenster klicke einmal rechts und wähle Light–>2D und die Lichtquelle, die du haben möchtest, z. B. Point Light. Die Lichtquelle erscheint in der Szene. Sie ist nicht sehr groß und kann mit dem Halbkreis am gelben Rand vergrößert werden. Der Hintergrund ist noch immer komplett schwarz.

Lichteffekte0

Die Sorting Layers auf die das Licht sich beziehen soll, müssen eingestellt werden.

Wähle unter Target Sorting Layers im Inspectorfenster “All” aus. Dann bezieht sich das Licht auf den Vorder- und Hintergrund. Der äußere und der innere Radius der Lichtquelle kann eingestellt werden.

Die Falloff Intensity gibt die Lichtintensität an. Im Bereich Color kannst du die Farbe des Lichtes einstellen. Alles was nicht beleuchtet wird, ist komplett schwarz.

Lights

Das Global Light beleuchtet alle ausgewählten Objekte. Auch hier können All Sorting Layers ausgewählt werden. Hier lassen sich auch Intentsität und Farbe einstellen. Wenn du das Licht zum Beispiel zu einem Gegenstand einer bestimmten Farbe bewegst und die Lichtfarbe anpasst und dies bei einem anderen Gegenstand ebenfalls macht, dann hat jedes Objekt seine eigene Farbe. Mit den Pfeilen bei der Lichtquelle kannst du außerdem den Winkel des Lichteinfalls anpassen. Auch hier gibt es einen inneren und einen äußeren Winkel.

Sprite Lights erlauben es, Sprites hinzuzfügen, die eine Szene erleuchten. Sprite Cookies eignen sich beispielsweise dazu. Das Sprite beleuchtet alle eingestellten Layers.

Ein Freeform Light kann nach Bedarf gemalt werden. Du definierst die Form des Lichtes selber. Mit Hilfe der angezeigten Punkte stellst du die Form des Lichts ein. Du kannst so viele Punkte wie du möchtest hinzufügen oder löschen. Auch bei diesem definierst du die beleuchteten Layers.

Das Parametric Light: Erlaubt Licht in bestimmten Formen zu erschaffen: Dreieck, Viereck, Fünfeck u.a. Die Anzahl der Seiten lässt sich unter Sides im Inspectorfenster einstellen. Mit Angle Offset kann der Winkel eingestellt werden.

Der Hintergrund kann unter Background–>Sprite Editor–>Secondary Texture gewählt werden.

Diese wird als _NormalMap bezeichnet.

Normal Maps erzeugen den Eindruck einer plastischen Oberfläche und wirft keine Schatten. Außerdem verdeckt sie keine Oberflächen.

Der Hintergrund, welcher als Normal Map agieren soll, wird in den Bereich Texture hineingezogen. Bestätige mit Apply.

Markiere die Lichter, die von der Normal Map beeinflusst werden sollen. Im Inspectorfenster wähle die Option Use as Normal Map. Die Verwendung einer Normal Map lässt 2D-Gegenstände 3-Dimensional wirken.

Übrigens: Wer das Partikelsystem nutzen will, kann nicht zeitgleich die 2D-Lichteffekte einsetzen. Momentan schließt sich beides aus.

Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.