2D Licht und Schatten in Unity

von Claudia Wendt

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


LichttypenPipeline 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 beleichten 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. Auch hier lassen sich 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.



Lesen Sie den ganzen Artikel

Claudia Wendt

Hagenow

Zur Person

Claudia Wendt

Weitere Profile

Claudia Wendt