Ismerje meg, hogyan készíthet saját fényeffektusait, hogy feldobja játékait.

A dinamikus világítás és árnyékok javíthatják Godot játékaid vizuális minőségét és játékélményét. Mélységet, atmoszférát és valósághűséget adnak, így a játék világa még magával ragadóbb és magával ragadóbb.

A Godot olyan hatékony funkcióival, mint a CanvasModulate és a PointLight2D, a dinamikus világítás és árnyékok létrehozása és testreszabása egyszerű feladat.

A Godot játék beállítása

Mielőtt belemerülne a dinamikus világításba, állítson be egy alapvető 2D-s játékot a Godot játékmotor. Hozzon létre egy új jelenetet, és adjon hozzá a CharacterBody2D a játékos számára.

A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.

Benne CharacterBody2D, add hozzá a CollisionShape2D téglalap alakú és a Sprite2D hogy képviselje a játékos karakterét. Ezenkívül hozzon létre néhány platformot a használatával StaticBody2D csomópontok.

Most hajtsa végre a játékos mozgását és ütközését a képernyő határaival a GDScript segítségével:

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)

Ezzel a kóddal a játékos balra, jobbra, fel és le mozoghat, miközben korlátozva van a képernyő határain belül.

Sötétítse el a jelenet többi részét

A dinamikus világítás hatásának eléréséhez elsötétíteni kell a jelenet többi részét, kivéve a fényforrások által megvilágított területeket. Ezt megteheti a Godot segítségével CanvasModulate funkció.

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)

Csatolja ezt a szkriptet egy újhoz Node2D tette hozzá a jelenet gyökeréhez. A CanvasModulate A csomópont félig áttetsző fekete fedőréteget alkalmaz, elsötétítve az egész jelenetet, kivéve a fényekkel megvilágított területeket.

Hozzon létre egy állandó változót SÖTÉTSÉG, amely meghatározza a jelenetre alkalmazott sötétség intenzitását. Az érték beállításával SÖTÉTSÉG, szabályozhatja, hogy milyen sötét legyen a jelenet, ha nem világítanak meg fények. A magasabb érték sötétebb jelenetet eredményez, míg az alacsonyabb érték kevésbé sötétíti a jelenetet.

Cast Light Shadow

Az árnyékoláshoz be kell állítani LightOccluder2D csomópontok az akadályokon, amelyeknek eltakarniuk kell a fényt. Például, ha falai, platformjai vagy más objektumai vannak, amelyeknek árnyékot kell vetniük, adjon hozzá a LightOccluder2D mindegyikhez.

Újat csinálni LightOccluder2D csomópontot, és állítsa be az alakját, hogy illeszkedjen a játékban lévő akadály alakjához. Beállíthatja az elzáró tulajdonságait is, mint pl sokszögek és szegmensek az árnyékvetítési viselkedés finomhangolásához.

Adjon hozzá Omnidirectional Lights

Most adjunk hozzá a PointLight2D csomópont textúrájával, amely a fényforrást reprezentálja. A pontfények minden irányba fényt bocsátanak ki, és valósághű megvilágítási hatást keltenek.

extends PointLight2D

var light_color = Color(1, 1, 0.8)

func _ready():
energy = 2.5
color = light_color

Testreszabhatja a tulajdonságokat, hogy szabályozza a kibocsátott fény tartományát és színét PointLight2D.

Egyéni világos textúrát is létrehozhat vagy importálhat a fényforrás alakjának és megjelenésének meghatározásához. Ez lehet egy egyszerű kör vagy egy összetettebb forma, attól függően, hogy milyen légkört szeretne létrehozni.

A textúra alkalmazásához a PointLight2D csomópont, kövesse az alábbi lépéseket:

  1. Válaszd ki a PointLight2D csomópont a jelenetfán.
  2. Az Inspector panelen keresse meg a Texture tulajdonságot a alatt Struktúra szakasz.
  3. Kattintson az üres textúra mezőre, és válassza ki a kívánt világos textúrát a fájlböngészőből.

Mostantól a fényforrás a meghatározott formájú és színű fényt bocsát ki, amely vizuálisan vonzó hatást kölcsönöz dinamikus világításának és árnyékainak.

Kiegészítő funkciókkal együtt

A dinamikus világítás és árnyékok alapbeállítása mellett különféle további funkciókat is bevezethet, amelyek tovább emelik a látványt és a játékélményt. Íme néhány megfontolandó ötlet:

Könnyű animációk

Keltse életre fényforrásait animációk hozzáadásával. Létrehozhat például villogó fényeket fáklyákhoz vagy gyertyákhoz, szimulálhatja a tábortűz mozgását, vagy akár pulzáló hatást is adhat a mágikus gömbökhöz.

Nappali-éjszaka ciklus

Valósítson meg egy dinamikus nappali-éjszaka ciklust, amely fokozatosan változtatja a fények intenzitását és színét a játékon belüli idő előrehaladtával. Ez a funkció fokozhatja az elmélyülést, és a napszaktól függően különböző hangulatokat teremthet.

Fény fading

Hozzon létre sima átmeneteket a fényintenzitás változtatásához, hogy elkerülje a hirtelen eltolódásokat, amelyek megszakíthatják a merülést. A fények fokozatos elhalványításával természetesebb és látványosabb hatást érhet el.

Dinamikus árnyékok

Statikus árnyékok használata helyett fontolja meg dinamikus árnyékok hozzáadását a mozgó objektumokhoz vagy karakterekhez. Ezt további fényforrások használatával teheti meg, amelyek követik a karakterek mozgását, és a valós idejű árnyékfrissítés illúzióját keltik.

Szerzői jog-mentes hangeffektusok

A hangeffektusok kulcsfontosságú szerepet játszanak abban, hogy a játék világát élőnek és dinamikusnak érezze. Fontolja meg a beépítést szerzői jog mentes hangeffektusok hogy kiegészítse dinamikus megvilágítását és árnyékait.

A dinamikus világítás és árnyékok bevált gyakorlatai

Míg a dinamikus megvilágítás és árnyékok nagymértékben javíthatják a játékot, a nem megfelelő megvalósítás negatívan befolyásolhatja a teljesítményt és a vizuális minőséget. Íme néhány bevált gyakorlat, amelyet szem előtt kell tartani:

Optimalizálja a fényforrásokat

Korlátozza az aktív fényforrások számát a kívánt vizuális hatás eléréséhez szükséges minimumra. A túlzott fények jelentősen befolyásolhatják a teljesítményt, különösen az alacsonyabb kategóriás eszközökön.

Használjon könnyű sütést

Statikus jelenetek vagy tárgyak esetén a teljesítmény javítása érdekében fontolja meg a világítási információk sütését. A Light Baking előre kiszámítja a világítási adatokat, csökkentve a valós idejű számítások szükségességét a játék során.

Válaszd az egyszerű elzárókat

A beállításkor LightOccluder2D csomópontok, válassza az egyszerű formákat, ahol csak lehetséges. A sok csúcsot tartalmazó összetett elzárók teljesítményproblémákhoz vezethetnek. Használjon egyszerű sokszögeket vagy vonalszakaszokat az elzárókhoz, amikor csak lehetséges.

Selejtezés és rétegezés

Használja a Godot láthatósági és rétegezési rendszerét annak biztosítására, hogy a fényeket és az árnyékokat csak a látható területekre számítsa ki. A képernyőn kívüli fények és árnyékok megszüntetése jelentősen javíthatja a teljesítményt.

Ha követi ezeket a bevált módszereket és gondosan alkalmazza a további funkciókat, lenyűgöző és lenyűgöző dinamikus világítást és árnyékokat hozhat létre, amelyek javítják az általános minőséget. a platformer játékod.

A Godot-játékok vonzóbbá tétele dinamikus világítással és árnyékokkal

A dinamikus világítás és árnyékok életet lehelnek játékvilágodba. Magával ragadóbb és hangulatosabb környezetet teremtenek, mélyebben bevonva a játékosokat a játékélménybe. A fény és az árnyék kölcsönhatása érzelmeket válthat ki, megadhatja a hangot, és fokozhatja a játék vizuális történetmesélését.

Legyen szó titokzatos, sötét börtönről vagy nyugodt, holdfényes éjszakáról, a dinamikus világítás gazdagítja a játékmenetet, és maradandó benyomást hagy a játékosokban.