Erfahren Sie, wie Sie Ihre eigenen Lichteffekte erstellen, um Ihre Spiele aufzuhellen.
Dynamische Beleuchtung und Schatten können die visuelle Qualität und das Spielerlebnis Ihrer Godot-Spiele verbessern. Sie sorgen für Tiefe, Atmosphäre und Realismus und machen Ihre Spielwelt immersiver und ansprechender.
Mit den leistungsstarken Funktionen von Godot wie CanvasModulate und PointLight2D ist das Erstellen und Anpassen dynamischer Beleuchtung und Schatten eine einfache Aufgabe.
Einrichten des Godot-Spiels
Bevor Sie in die dynamische Beleuchtung eintauchen, richten Sie ein einfaches 2D-Spiel ein die Godot-Spiel-Engine. Erstellen Sie eine neue Szene und fügen Sie eine hinzu CharacterBody2D für den Spieler.
Der in diesem Artikel verwendete Code ist hier verfügbar GitHub-Repository Die Nutzung steht Ihnen unter der MIT-Lizenz kostenlos zur Verfügung.
Im Inneren CharacterBody2D, füge hinzu ein CollisionShape2D mit rechteckiger Form und a Sprite2D um den Charakter des Spielers darzustellen. Erstellen Sie außerdem einige Plattformen mit StaticBody2D Knoten.
Implementieren Sie nun die Spielerbewegung und die Kollision mit den Bildschirmgrenzen mithilfe von GDScript:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()if Input.is_action_pressed('ui_right'):
velocity.x += 1if Input.is_action_pressed('ui_left'):
velocity.x -= 1if Input.is_action_pressed('ui_down'):
velocity.y += 1if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
Mit diesem Code kann sich der Spieler innerhalb der Bildschirmgrenzen nach links, rechts, oben und unten bewegen.
Verdunkeln Sie den Rest der Szene
Um den Effekt einer dynamischen Beleuchtung zu erzielen, müssen Sie den Rest der Szene mit Ausnahme der von den Lichtquellen beleuchteten Bereiche abdunkeln. Sie können dies mit Godots tun CanvasModulate Besonderheit.
extends Node2D
const DARKNESS = 0.7
func _ready():
var canvas_modulate = CanvasModulate.new()
canvas_modulate.color = Color(0, 0, 0, DARKNESS)
add_child(canvas_modulate)
Hängen Sie dieses Skript an ein neues an Node2D am Anfang der Szene hinzugefügt. Der CanvasModulate Der Knoten wendet eine halbtransparente schwarze Überlagerung an, die die gesamte Szene mit Ausnahme der von Lichtern beleuchteten Bereiche verdunkelt.
Erstellen Sie eine konstante Variable DUNKELHEIT, der die Intensität der auf die Szene angewendeten Dunkelheit bestimmt. Durch Anpassen des Werts von DUNKELHEITkönnen Sie steuern, wie dunkel die Szene wird, wenn sie nicht von Lichtern beleuchtet wird. Ein höherer Wert führt zu einer dunkleren Szene, während ein niedrigerer Wert die Szene weniger dunkel macht.
Lichtschatten werfen
Um Schatten zu werfen, müssen Sie etwas einrichten LightOccluder2D Knoten auf Hindernissen, die das Licht blockieren sollen. Wenn Sie beispielsweise Wände, Plattformen oder andere Objekte haben, die Schatten werfen sollen, fügen Sie a hinzu LightOccluder2D zu jedem.
Erstelle eine neue LightOccluder2D Knoten und passen Sie seine Form an die Form des Hindernisses in Ihrem Spiel an. Sie können auch die Eigenschaften des Okkluders anpassen, z Polygone Und Segmente zur Feinabstimmung des Schattenwurfverhaltens.
Fügen Sie omnidirektionale Lichter hinzu
Fügen Sie nun a hinzu PointLight2D Knoten mit einer Textur, die Ihre Lichtquelle darstellt. Punktlichter geben Licht in alle Richtungen ab und erzeugen einen realistischen Beleuchtungseffekt.
extends PointLight2D
var light_color = Color(1, 1, 0.8)
func _ready():
energy = 2.5
color = light_color
Sie können die Eigenschaften anpassen, um den Bereich und die Farbe des vom emittierten Lichts zu steuern PointLight2D.
Sie können auch eine benutzerdefinierte Lichttextur erstellen oder importieren, um die Form und das Erscheinungsbild Ihrer Lichtquelle zu definieren. Je nachdem, welche Atmosphäre Sie erzeugen möchten, kann es sich um einen einfachen Kreis oder eine komplexere Form handeln.
Um die Textur auf das anzuwenden PointLight2D Führen Sie zum Erstellen eines Knotens die folgenden Schritte aus:
- Wähle aus PointLight2D Knoten im Szenenbaum.
- Suchen Sie im Inspektorfenster die Texture-Eigenschaft unter Textur Abschnitt.
- Klicken Sie auf das leere Texturfeld und wählen Sie im Dateibrowser die gewünschte Lichttextur aus.
Jetzt strahlt Ihre Lichtquelle Licht mit der definierten Form und Farbe aus und verleiht Ihrer dynamischen Beleuchtung und Ihren Schatten eine optisch ansprechende Note.
Inklusive zusätzlicher Funktionen
Zusätzlich zur Grundeinstellung dynamischer Beleuchtung und Schatten können Sie verschiedene zusätzliche Funktionen einführen, um die visuelle Attraktivität und das Spielerlebnis weiter zu steigern. Hier sind einige Ideen, die Sie berücksichtigen sollten:
Leichte Animationen
Erwecken Sie Ihre Lichtquellen zum Leben, indem Sie ihnen Animationen hinzufügen. Sie können beispielsweise flackernde Lichter für Fackeln oder Kerzen erzeugen, die Bewegung eines Lagerfeuers simulieren oder sogar magischen Kugeln einen pulsierenden Effekt verleihen.
Tag-Nacht-Zyklus
Implementieren Sie einen dynamischen Tag-Nacht-Zyklus, der die Intensität und Farbe der Lichter im Laufe der Spielzeit schrittweise ändert. Diese Funktion kann das Eintauchen verstärken und je nach Tageszeit unterschiedliche Stimmungen erzeugen.
Leichtes Verblassen
Erstellen Sie sanfte Übergänge für Änderungen der Lichtintensität, um abrupte Verschiebungen zu vermeiden, die das Eintauchen unterbrechen könnten. Durch schrittweises Ein- und Ausblenden der Lichter können Sie einen natürlicheren und optisch ansprechenderen Effekt erzielen.
Dynamische Schatten
Anstatt statische Schatten zu verwenden, sollten Sie in Betracht ziehen, sich bewegenden Objekten oder Charakteren dynamische Schatten hinzuzufügen. Sie können dies erreichen, indem Sie zusätzliche Lichtquellen verwenden, die der Bewegung der Charaktere folgen und so die Illusion von Schattenaktualisierungen in Echtzeit erzeugen.
Urheberrechtsfreie Soundeffekte
Soundeffekte spielen eine entscheidende Rolle dabei, dass Ihre Spielwelt lebendig und dynamisch wirkt. Erwägen Sie die Integration Urheberrechtsfreie Soundeffekte zur Ergänzung Ihrer dynamischen Beleuchtung und Schatten.
Best Practices für dynamische Beleuchtung und Schatten
Während dynamische Beleuchtung und Schatten Ihr Spiel erheblich verbessern können, kann sich eine unsachgemäße Implementierung negativ auf die Leistung und die visuelle Qualität auswirken. Hier sind einige Best Practices, die Sie beachten sollten:
Lichtquellen optimieren
Beschränken Sie die Anzahl der aktiven Lichtquellen auf das für Ihren gewünschten visuellen Effekt notwendige Minimum. Zu viel Licht kann die Leistung erheblich beeinträchtigen, insbesondere bei Geräten der unteren Preisklasse.
Verwenden Sie leichtes Backen
Erwägen Sie bei statischen Szenen oder Objekten das Backen der Beleuchtungsinformationen, um die Leistung zu verbessern. Light Baking berechnet die Beleuchtungsdaten vorab und reduziert so den Bedarf an Echtzeitberechnungen während des Spiels.
Entscheiden Sie sich für einfache Okkluder
Beim Einrichten LightOccluder2D Wenn Sie Knoten haben, entscheiden Sie sich nach Möglichkeit für einfache Formen. Komplexe Okkluder mit vielen Eckpunkten können zu Leistungsproblemen führen. Verwenden Sie nach Möglichkeit einfache Polygone oder Liniensegmente als Okkluder.
Ausmerzen und Schichten
Nutzen Sie das Sichtbarkeits- und Ebenensystem von Godot, um sicherzustellen, dass Lichter und Schatten nur für sichtbare Bereiche berechnet werden. Das Ausblenden von Lichtern und Schatten außerhalb des Bildschirms kann die Leistung erheblich verbessern.
Indem Sie diese Best Practices befolgen und zusätzliche Funktionen sorgfältig implementieren, können Sie atemberaubende und fesselnde dynamische Beleuchtung und Schatten erzeugen, die die Gesamtqualität verbessern Dein Plattformspiel.
Machen Sie Godot-Spiele mit dynamischer Beleuchtung und Schatten ansprechender
Dynamische Beleuchtung und Schatten hauchen Ihrer Spielwelt Leben ein. Sie schaffen eine immersivere und atmosphärischere Umgebung und ziehen die Spieler tiefer in das Spielerlebnis ein. Das Zusammenspiel von Licht und Schatten kann Emotionen hervorrufen, den Ton angeben und das visuelle Storytelling Ihres Spiels verbessern.
Ob es sich um einen geheimnisvollen dunklen Dungeon oder eine ruhige Mondnacht handelt, dynamische Beleuchtung bereichert das Gameplay und hinterlässt einen bleibenden Eindruck bei den Spielern.