Naučite kako napraviti vlastite svjetlosne efekte da uljepšate svoje igre.

Dinamično osvjetljenje i sjene mogu poboljšati vizualnu kvalitetu i iskustvo igranja vaših Godot igara. Dodaju dubinu, atmosferu i realističnost, čineći vaš svijet igre sveobuhvatnijim i privlačnijim.

Uz Godotove moćne značajke kao što su CanvasModulate i PointLight2D, stvaranje i prilagođavanje dinamičkog osvjetljenja i sjena jednostavan je zadatak.

Postavljanje igre Godot

Prije nego što zaronite u dinamično osvjetljenje, postavite osnovnu 2D igru Godot game engine. Napravite novu scenu i dodajte a CharacterBody2D za igrača.

Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.

Unutar CharacterBody2D, dodati CollisionShape2D s pravokutnim oblikom i a Sprite2D predstavljati karakter igrača. Također, stvorite neke platforme pomoću StaticBody2D čvorovi.

Sada implementirajte kretanje igrača i sudar s granicama zaslona koristeći GDScript:

extends CharacterBody2D

var speed = 200

instagram viewer

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)

Pomoću ovog koda igrač se može kretati lijevo, desno, gore i dolje dok je ograničen granicama zaslona.

Zamračite ostatak scene

Da biste postigli efekt dinamičnog osvjetljenja, morate zamračiti ostatak scene osim područja osvijetljenih izvorima svjetlosti. To možete učiniti pomoću Godota CanvasModulate značajka.

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)

Priložite ovu skriptu novoj Čvor 2D dodano u korijenu scene. The CanvasModulate čvor će primijeniti poluprozirni crni sloj, potamnjujući cijelu scenu osim područja osvijetljenih svjetlima.

Stvorite konstantnu varijablu TAMA, koji određuje intenzitet tame primijenjene na scenu. Podešavanjem vrijednosti TAMA, možete kontrolirati koliko scena postaje tamna kada nije osvijetljena svjetlima. Veća vrijednost rezultirat će tamnijom scenom, dok će niža vrijednost učiniti scenu manje tamnom.

Baci svjetlosnu sjenu

Da biste bacili sjene, morate se postaviti LightOccluder2D čvorovi na preprekama koje bi trebale blokirati svjetlost. Na primjer, ako imate zidove, platforme ili druge objekte koji bi trebali bacati sjene, dodajte a LightOccluder2D svakom pojedinom.

Stvorite novi LightOccluder2D čvor i prilagodite njegov oblik kako bi odgovarao obliku prepreke u vašoj igri. Također možete prilagoditi svojstva okludera kao što su poligoni i segmentima za fino podešavanje ponašanja bacanja sjene.

Dodajte svesmjerna svjetla

Sada dodajte a PointLight2D čvor s teksturom koja predstavlja vaš izvor svjetlosti. Točkasta svjetla emitiraju svjetlost u svim smjerovima i stvaraju realističan učinak osvjetljenja.

extends PointLight2D

var light_color = Color(1, 1, 0.8)

func _ready():
energy = 2.5
color = light_color

Možete prilagoditi svojstva za kontrolu raspona i boje svjetla koje emitira PointLight2D.

Također možete stvoriti ili uvesti prilagođenu svjetlosnu teksturu kako biste definirali oblik i izgled svog izvora svjetlosti. To može biti jednostavan krug ili složeniji oblik, ovisno o atmosferi koju želite stvoriti.

Za primjenu teksture na PointLight2D čvor, slijedite ove korake:

  1. Odaberite PointLight2D čvor u stablu scene.
  2. Na ploči Inspector pronađite svojstvo Texture ispod Tekstura odjeljak.
  3. Kliknite prazan okvir s teksturom i odaberite željenu svijetlu teksturu iz preglednika datoteka.

Sada će vaš izvor svjetla emitirati svjetlost definiranog oblika i boje, dodajući vizualno privlačan dodir vašem dinamičnom osvjetljenju i sjenama.

Uključujući dodatne značajke

Uz osnovno postavljanje dinamičkog osvjetljenja i sjena, možete uvesti razne dodatne značajke kako biste dodatno podigli vizualnu privlačnost i iskustvo igranja. Evo nekoliko ideja za razmatranje:

Svjetlosne animacije

Oživite svoje izvore svjetlosti dodavanjem animacija. Na primjer, možete stvoriti treperava svjetla za baklje ili svijeće, simulirati kretanje logorske vatre ili čak dodati efekt pulsiranja čarobnim kuglama.

Ciklus dan-noć

Implementirajte dinamičan dan-noć ciklus koji postupno mijenja intenzitet i boju svjetla kako vrijeme u igri napreduje. Ova značajka može poboljšati uranjanje i stvoriti različita raspoloženja ovisno o dobu dana.

Blijeđenje svjetlosti

Stvorite glatke prijelaze za promjene intenziteta svjetla kako biste izbjegli nagle pomake koji mogu prekinuti uranjanje. Postupnim smanjivanjem svjetla možete postići prirodniji i vizualno ugodniji učinak.

Dinamičke sjene

Umjesto korištenja statičnih sjena, razmislite o dodavanju dinamičkih sjena pokretnim objektima ili likovima. To možete učiniti korištenjem dodatnih izvora svjetla koji prate kretanje likova, dajući iluziju ažuriranja sjena u stvarnom vremenu.

Zvučni efekti bez autorskih prava

Zvučni efekti igraju ključnu ulogu u tome da vaš svijet igre bude živ i dinamičan. Razmislite o uključivanju zvučni efekti bez autorskih prava da nadopuni vaše dinamično osvjetljenje i sjene.

Najbolji primjeri iz prakse za dinamičko osvjetljenje i sjene

Dok dinamičko osvjetljenje i sjene mogu uvelike poboljšati vašu igru, nepravilna implementacija može negativno utjecati na performanse i vizualnu kvalitetu. Evo nekoliko najboljih praksi koje treba imati na umu:

Optimizirajte izvore svjetlosti

Ograničite broj aktivnih izvora svjetla na minimum potreban za željeni vizualni učinak. Pretjerana svjetla mogu značajno utjecati na performanse, posebno na uređajima niže klase.

Koristite lagano pečenje

Za statične scene ili objekte razmislite o pečenju informacija o rasvjeti kako biste poboljšali izvedbu. Light baking unaprijed izračunava podatke o osvjetljenju, smanjujući potrebu za izračunima u stvarnom vremenu tijekom igranja.

Odlučite se za jednostavne okludere

Prilikom postavljanja LightOccluder2D čvorove, odlučite se za jednostavne oblike gdje god je to moguće. Složeni okluderi s mnogo vrhova mogu dovesti do problema s izvedbom. Koristite jednostavne poligone ili segmente linija za okludere kad god je to moguće.

Odbijanje i raslojavanje

Iskoristite Godotov sustav vidljivosti i slojevitosti kako biste osigurali da se svjetla i sjene izračunavaju samo za vidljiva područja. Uklanjanje svjetla i sjena izvan zaslona može značajno poboljšati izvedbu.

Slijedeći ove najbolje prakse i pažljivo implementirajući dodatne značajke, možete stvoriti zapanjujuće i zadivljujuće dinamičko osvjetljenje i sjene koje podižu ukupnu kvalitetu vaša platformska igra.

Učinite igre Godot zanimljivijima uz dinamičko osvjetljenje i sjene

Dinamično osvjetljenje i sjene udahnjuju život vašem svijetu igre. Oni stvaraju impresivnije i atmosferičnije okruženje, uvlačeći igrače dublje u iskustvo igranja. Međuigra svjetla i sjene može izazvati emocije, postaviti ton i poboljšati vizualno pripovijedanje vaše igre.

Bilo da se radi o misterioznoj mračnoj tamnici ili mirnoj noći obasjanoj mjesečinom, dinamično osvjetljenje obogaćuje igranje i ostavlja trajan dojam na igrače.