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
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)
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:
- Odaberite PointLight2D čvor u stablu scene.
- Na ploči Inspector pronađite svojstvo Texture ispod Tekstura odjeljak.
- 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.