Du kannst für dein 2D-Spiel Lichteffekte einbauen. Dieser Beitrag beschäftigt sich deshalb mit 2D Licht und Schatten in Unity.
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. Für 2D Licht und Schatten, benötigst du das korrekte Rendering und die passenden Lichttypen.
Du kannst zwischen verschiedenen 2D-Lichttypen wählen. Die Lichtarten im Paket sind:
Freeform
Sprite
Parametric
Point
Global
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 bei 2D Licht und Schatten in Unity
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
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.
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.
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
Dann wird dein Bildschirm schwarz:
Aktualisierung vom Projekt
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.
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.
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.
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.
Weitere Light-Formen
Sprite Lights erlauben es, Sprites hinzuzfügen, die eine Szene erleuchten. Sprite Cookies eignen sich beispielsweise dazu. Das Sprite beleuchtet dabei 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 dabei 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 zudem 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 außerdem 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.
Der Fehler „2D-Renderer-Daten müssen zugewiesen werden“ in Unity
Mit der Veröffentlichung von Unity 2019.3 haben wir Entwickler den 2D-Renderer im Universal Render Pipeline (URP) kennengelernt, der einen robusten Rahmen für die Darstellung von 2D-Grafiken mit erweiterten Funktionen und Möglichkeiten bietet. Doch wie bei jeder neuen Technologie können wir während der Einrichtung und Implementierung auf Herausforderungen stoßen. Eine solche Herausforderung ist die Fehlermeldung „2D-Renderer-Daten müssen deinem Universal Render Pipeline-Asset oder deiner Kamera zugewiesen werden“, die auftreten kann, wenn die 2D-Rendererdaten nicht ordnungsgemäß konfiguriert sind. Die englische Version der Fehlermeldung lautet: 2D renderer data must be assigned to your universal render pipeline asset or camera.
Was ist der 2D-Renderer?
Der 2D-Renderer ist ein Bestandteil des Universal Render Pipeline, der speziell für die Darstellung von 2D-Grafiken entwickelt wurde. Er bietet eine Reihe von Funktionen, darunter:
- 2D-Lichter: Beleuchte deine 2D-Szenen mit dynamischen Lichteffekten.
- Sprite-Masternode im Shader Graph: Erstelle deine eigenen Shader für beleuchtete und unbeleuchtete Sprites mit Shader Graph.
- Pixelgenaue Kamera-Komponente: Sorge für eine pixelgenaue Darstellung, damit deine Visuals klar und gestochen scharf sind.
- Normal Map-Unterstützung: Unterstütze Normal Maps im Tilemap Renderer, Sprite Shape Renderer und deformierten Sprite Renderern.
- Experimentelle Shadow Caster-Komponente: Aktiviere experimentelles Schattenerzeugen für eine verbesserte visuelle Tiefe.
- Post-Processing-Unterstützung: Wende Post-Processing-Effekte an, um das Gesamtbild deiner 2D-Szenen zu verbessern.
Erste Schritte mit Universal RP und dem 2D-Renderer
Um den 2D-Renderer in Unity zu nutzen, befolge diese Schritte:
- Installation von Universal RP: Lade dir die neueste Version von Unity 2019.3 herunter und erwerbe den Universal Render Pipeline in der Version 7.2.1 oder neuer aus dem Paketmanager innerhalb von Unity.
- Konfiguration des 2D-Renderers:
- Erstelle ein neues Pipeline-Asset und einen 2D-Renderer, indem du im Asset-Browser des Projektfensters die entsprechenden Optionen unter „Erstellen > Rendering > Universal Render Pipeline“ auswählst.
- Weise den erstellten 2D-Renderer den Renderer-Daten im Pipeline-Asset zu.
- Lege die Einstellungen der Scriptable Render Pipeline im Grafikbereich so fest, dass das erstellte Pipeline-Asset verwendet wird.
Verständnis der Fehlermeldung
Die Fehlermeldung „2D-Renderer-Daten müssen zugewiesen werden“ tritt auf, wenn Unity feststellt, dass die erforderlichen Renderer-Daten für den 2D-Renderer im Universal Render Pipeline nicht ordnungsgemäß konfiguriert sind. Dies geschieht typischerweise, wenn der 2D-Renderer nicht dem Universal Render Pipeline-Asset oder der Kamera in der Szene zugewiesen wurde.
Behebung des Fehlers
Um den Fehler zu beheben und die ordnungsgemäße Funktionalität des 2D-Renderers sicherzustellen, sollten wir:
- Die Zuweisung des 2D-Renderers zum Universal Render Pipeline-Asset oder zur Kamera in der Szene überprüfen.
- Überprüfen, ob das Pipeline-Asset und die Renderer-Daten gemäß den bereitgestellten Richtlinien korrekt konfiguriert sind.
- Sicherstellen, dass die Einstellungen der Scriptable Render Pipeline im Grafikbereich so festgelegt sind, dass das erstellte Pipeline-Asset verwendet wird.
Durch das Befolgen dieser Schritte und die Gewährleistung einer ordnungsgemäßen Konfiguration des Universal Render Pipeline und des 2D-Renderers können wir die erweiterten Funktionen und Möglichkeiten des 2D-Rendering-Frameworks von Unity effektiv nutzen.
Weiter geht es zur Spieleprogrammierung in Unity: Eine Übersicht
Effiziente Lichteffekte mit dem 2D-Renderer und 2D-Lichtern
Bisher war es üblich, für Lichteffekte in Unity ein separates Sprite zu verwenden und diesem dann ein entsprechendes Licht zuzuweisen. Diese Methode erforderte zusätzlichen Aufwand bei der Synchronisierung von Sprite und Licht, insbesondere bei Animationen oder Änderungen in der Szene. Mit der Einführung des 2D-Renderers im Universal Render Pipeline wird dieser Prozess deutlich vereinfacht. Nun können wir direkt dem Sprite ein 2D-Licht hinzufügen, wodurch das Licht effizienter mit dem Sprite verbunden ist und die Synchronisierung automatisch erfolgt.
Das gelingt allerdings nur, mit der vorherigen korrekten Konfiguration.
Dies erleichtert nicht nur die Gestaltung von Lichteffekten in 2D-Szenen, sondern ermöglicht auch eine schnellere und flexiblere Entwicklung. Die Voraussetzung dafür ist jedoch die richtige Konfiguration des 2D-Renderers in der URP, wie im vorherigen Abschnitt beschrieben. Durch die korrekte Einrichtung des 2D-Renderers können Entwickler das volle Potenzial dieser neuen Funktion nutzen und die Effizienz ihrer Arbeitsabläufe steigern.
Hier geht es zur Webseite von Unity
Originally posted 2020-02-20 13:58:58.