Leer hoe u uw eigen lichteffecten kunt maken om uw games op te fleuren.

Dynamische verlichting en schaduwen kunnen de visuele kwaliteit en gameplay-ervaring van je Godot-spellen verbeteren. Ze voegen diepte, sfeer en realisme toe, waardoor je gamewereld meeslepender en boeiender wordt.

Met de krachtige functies van Godot, zoals CanvasModulate en PointLight2D, is het creëren en aanpassen van dynamische verlichting en schaduwen een gemakkelijke taak.

Het Godot-spel opzetten

Voordat je in dynamische verlichting duikt, moet je eerst een basisspel in 2D opzetten de Godot-game-engine. Maak een nieuwe scène en voeg een KarakterBody2D voor de speler.

De code die in dit artikel wordt gebruikt, is hierin beschikbaar GitHub-opslagplaats en is gratis voor u om te gebruiken onder de MIT-licentie.

Binnen in de KarakterBody2D, Voeg een... toe BotsingVorm2D met een rechthoekige vorm en een Sprite2D om het karakter van de speler weer te geven. Maak ook een aantal platforms met behulp van StatischBody2D knooppunten.

Implementeer nu de spelerbeweging en botsing met de schermgrenzen met behulp van GDScript:

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
var velocity = Vector2()

if Input.is_action_pressed('ui_right'):
velocity.x += 1

if Input.is_action_pressed('ui_left'):
velocity.x -= 1

if Input.is_action_pressed('ui_down'):
velocity.y += 1

if Input.is_action_pressed('ui_up'):
velocity.y -= 1

velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)

Met deze code kan de speler naar links, rechts, omhoog en omlaag bewegen terwijl hij binnen de schermgrenzen wordt gehouden.

Maak de rest van de scène donkerder

Om het effect van dynamische verlichting te bereiken, moet u de rest van de scène verduisteren, behalve de gebieden die door de lichtbronnen worden verlicht. U kunt dit doen met behulp van Godot's Canvas Moduleren functie.

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)

Voeg dit script toe aan een nieuw Knooppunt2D toegevoegd aan de basis van de scène. De Canvas Moduleren node past een semi-transparante zwarte overlay toe, waardoor de hele scène donkerder wordt, behalve de door licht verlichte gebieden.

Maak een constante variabele DUISTERNIS, die de intensiteit van de duisternis bepaalt die op de scène wordt toegepast. Door de waarde van aan te passen DUISTERNIS, kunt u bepalen hoe donker de scène wordt wanneer deze niet door licht wordt verlicht. Een hogere waarde resulteert in een donkere scène, terwijl een lagere waarde de scène minder donker maakt.

Lichte schaduw werpen

Om schaduwen te werpen, moet je instellen LightOccluder2D knooppunten op obstakels die licht zouden moeten blokkeren. Als je bijvoorbeeld muren, platforms of andere objecten hebt die schaduw moeten werpen, voeg dan een toe LightOccluder2D aan elk.

Maak een nieuwe aan LightOccluder2D node, en pas de vorm ervan aan de vorm van het obstakel in je game aan. U kunt ook de eigenschappen van de occluder aanpassen, zoals veelhoeken En segmenten om het schaduwwerpende gedrag te verfijnen.

Voeg omnidirectionele lichten toe

Voeg nu een toe PointLight2D knooppunt met een textuur om uw lichtbron weer te geven. Puntlampen stralen licht uit in alle richtingen en creëren een realistisch verlichtingseffect.

extends PointLight2D

var light_color = Color(1, 1, 0.8)

func _ready():
energy = 2.5
color = light_color

U kunt de eigenschappen aanpassen om het bereik en de kleur van het door de PointLight2D.

U kunt ook een aangepaste lichtstructuur maken of importeren om de vorm en het uiterlijk van uw lichtbron te definiëren. Het kan een simpele cirkel zijn of een complexere vorm, afhankelijk van de sfeer die je wilt creëren.

Om de textuur aan te brengen op de PointLight2D knooppunt, volg deze stappen:

  1. Selecteer de PointLight2D knooppunt in de scèneboom.
  2. Zoek in het deelvenster Inspecteur de eigenschap Textuur onder de Textuur sectie.
  3. Klik op het lege textuurvak en selecteer de gewenste lichte textuur in de bestandsbrowser.

Nu straalt uw lichtbron licht uit met de gedefinieerde vorm en kleur, wat een visueel aantrekkelijk tintje toevoegt aan uw dynamische verlichting en schaduwen.

Inclusief extra functies

Naast de basisconfiguratie van dynamische verlichting en schaduwen, kun je verschillende extra functies introduceren om de visuele aantrekkingskracht en gameplay-ervaring verder te verbeteren. Hier zijn enkele ideeën om te overwegen:

Lichte animaties

Breng je lichtbronnen tot leven door er animaties aan toe te voegen. U kunt bijvoorbeeld flikkerende lichten maken voor fakkels of kaarsen, de beweging van een kampvuur simuleren of zelfs een pulserend effect toevoegen aan magische bollen.

Dag-nacht cyclus

Implementeer een dynamische dag-nachtcyclus die geleidelijk de intensiteit en kleur van lichten verandert naarmate de in-game tijd vordert. Deze functie kan de onderdompeling verbeteren en verschillende stemmingen creëren, afhankelijk van het tijdstip van de dag.

Licht vervagen

Creëer vloeiende overgangen voor veranderingen in de lichtintensiteit om abrupte verschuivingen te voorkomen die de onderdompeling kunnen onderbreken. Door licht geleidelijk in en uit te doven, kunt u een natuurlijker en visueel aantrekkelijker effect bereiken.

Dynamische schaduwen

In plaats van statische schaduwen te gebruiken, kunt u overwegen dynamische schaduwen toe te voegen aan bewegende objecten of tekens. Je kunt dit doen door extra lichtbronnen te gebruiken die de beweging van de personages volgen, waardoor de illusie ontstaat van real-time schaduwupdates.

Auteursrechtvrije geluidseffecten

Geluidseffecten spelen een cruciale rol om uw gamewereld levendig en dynamisch te laten aanvoelen. Overweeg om te integreren auteursrechtvrije geluidseffecten als aanvulling op uw dynamische verlichting en schaduwen.

Best practices voor dynamische verlichting en schaduwen

Hoewel dynamische verlichting en schaduwen je game enorm kunnen verbeteren, kan onjuiste implementatie een negatieve invloed hebben op de prestaties en visuele kwaliteit. Hier zijn enkele praktische tips om in gedachten te houden:

Optimaliseer lichtbronnen

Beperk het aantal actieve lichtbronnen tot het minimum dat nodig is voor het gewenste visuele effect. Overmatige verlichting kan de prestaties aanzienlijk beïnvloeden, vooral op apparaten uit het lagere segment.

Gebruik licht bakken

Overweeg voor statische scènes of objecten om de verlichtingsinformatie te bakken om de prestaties te verbeteren. Light baking berekent de verlichtingsgegevens vooraf, waardoor er tijdens het spelen minder real-time berekeningen nodig zijn.

Kies voor eenvoudige occluders

Bij het opzetten LightOccluder2D kies waar mogelijk voor eenvoudige vormen. Complexe occluders met veel hoekpunten kunnen leiden tot prestatieproblemen. Gebruik waar mogelijk eenvoudige polygonen of lijnsegmenten voor occluders.

Ruimen en gelaagdheid

Gebruik het zichtbaarheids- en gelaagdheidssysteem van Godot om ervoor te zorgen dat lichten en schaduwen alleen worden berekend voor zichtbare gebieden. Door lichten en schaduwen buiten het scherm weg te halen, kunnen de prestaties aanzienlijk worden verbeterd.

Door deze best practices te volgen en zorgvuldig aanvullende functies te implementeren, kunt u verbluffende en boeiende dynamische verlichting en schaduwen creëren die de algehele kwaliteit van uw jouw platformgame.

Godot-spellen aantrekkelijker maken met dynamische verlichting en schaduwen

Dynamische verlichting en schaduwen blazen leven in je gamewereld. Ze creëren een meer meeslepende en sfeervolle omgeving, waardoor spelers dieper in de gameplay-ervaring worden getrokken. Het samenspel van licht en schaduw kan emoties oproepen, de toon zetten en het visuele verhaal van je game verbeteren.

Of het nu een mysterieuze donkere kerker is of een serene maanverlichte nacht, dynamische verlichting verrijkt de gameplay en laat een blijvende indruk achter op spelers.