Aflați cum să vă creați propriile efecte de lumină pentru a vă lumina jocurile.
Iluminarea și umbrele dinamice pot crește calitatea vizuală și experiența de joc a jocurilor tale Godot. Ele adaugă profunzime, atmosferă și realism, făcând lumea jocului mai captivantă și mai captivantă.
Cu funcțiile puternice ale Godot, cum ar fi CanvasModulate și PointLight2D, crearea și personalizarea luminii și umbrelor dinamice este o sarcină ușoară.
Configurarea jocului Godot
Înainte de a vă scufunda în iluminarea dinamică, configurați un joc 2D de bază motorul de joc Godot. Creați o scenă nouă și adăugați un CharacterBody2D pentru jucător.
Codul folosit în acest articol este disponibil în acest articol Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.
În interiorul CharacterBody2D, adauga o CollisionShape2D cu formă dreptunghiulară și a Sprite2D pentru a reprezenta caracterul jucătorului. De asemenea, creați niște platforme folosind StaticBody2D noduri.
Acum, implementați mișcarea și coliziunea jucătorului cu limitele ecranului folosind 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)
Cu acest cod, jucătorul se poate deplasa la stânga, la dreapta, în sus și în jos în timp ce este constrâns în limitele ecranului.
Întunecă restul scenei
Pentru a obține efectul de iluminare dinamică, trebuie să întunecați restul scenei, cu excepția zonelor iluminate de sursele de lumină. Puteți face acest lucru folosind Godot’s CanvasModulate caracteristică.
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)
Atașați acest script la un nou Node2D adăugat la rădăcina scenei. The CanvasModulate nodul va aplica o suprapunere neagră semi-transparentă, întunecând întreaga scenă, cu excepția zonelor iluminate de lumini.
Creați o variabilă constantă ÎNTUNERIC, care determină intensitatea întunericului aplicată scenei. Prin ajustarea valorii lui ÎNTUNERIC, puteți controla cât de întunecată devine scena când nu este iluminată de lumini. O valoare mai mare va duce la o scenă mai întunecată, în timp ce o valoare mai mică va face scena mai puțin întunecată.
Aruncă Umbra Lumină
Pentru a arunca umbre, trebuie să configurați LightOccluder2D noduri pe obstacole care ar trebui să blocheze lumina. De exemplu, dacă aveți pereți, platforme sau alte obiecte care ar trebui să arunce umbre, adăugați a LightOccluder2D la fiecare.
Creaza un nou LightOccluder2D nodul și ajustați-i forma pentru a se potrivi cu forma obstacolului din jocul dvs. De asemenea, puteți ajusta proprietățile ocluderului, cum ar fi poligoane și segmente pentru a regla fin comportamentul de aruncare a umbrei.
Adăugați lumini omnidirecționale
Acum, adaugă o PointLight2D nod cu o textură care să reprezinte sursa de lumină. Luminile punctiforme emit lumină în toate direcțiile și creează un efect de iluminare realist.
extends PointLight2D
var light_color = Color(1, 1, 0.8)
func _ready():
energy = 2.5
color = light_color
Puteți personaliza proprietățile pentru a controla gama și culoarea luminii emise de PointLight2D.
De asemenea, puteți crea sau importa o textură luminoasă personalizată pentru a defini forma și aspectul sursei dvs. de lumină. Ar putea fi un cerc simplu sau o formă mai complexă, în funcție de atmosfera pe care doriți să o creați.
Pentru a aplica textura pe PointLight2D nod, urmați acești pași:
- Selectează PointLight2D nod în arborele scenei.
- În panoul Inspector, localizați proprietatea Texture sub Textură secțiune.
- Faceți clic pe caseta de textura goală și selectați textura ușoară dorită din browserul de fișiere.
Acum, sursa ta de lumină va emite lumină cu forma și culoarea definite, adăugând o notă atrăgătoare din punct de vedere vizual luminii și umbrelor tale dinamice.
Inclusiv caracteristici suplimentare
Pe lângă configurația de bază a luminii și umbrelor dinamice, puteți introduce diverse funcții suplimentare pentru a crește atractivitatea vizuală și experiența de joc. Iată câteva idei de luat în considerare:
Animații ușoare
Dă viață surselor tale de lumină adăugându-le animații. De exemplu, puteți crea lumini pâlpâitoare pentru torțe sau lumânări, puteți simula mișcarea unui foc de tabără sau chiar puteți adăuga un efect de pulsație orburilor magice.
Ciclul zi-noapte
Implementați un ciclu dinamic zi-noapte care schimbă treptat intensitatea și culoarea luminilor pe măsură ce trece timpul în joc. Această caracteristică poate îmbunătăți imersiunea și poate crea stări diferite în funcție de momentul zilei.
Decolorarea luminii
Creați tranziții netede pentru schimbările de intensitate a luminii pentru a evita schimbările bruște care pot întrerupe imersiunea. Prin estomparea treptat a luminilor, puteți obține un efect mai natural și mai plăcut din punct de vedere vizual.
Umbre dinamice
În loc să utilizați umbre statice, luați în considerare adăugarea de umbre dinamice obiectelor sau personajelor în mișcare. Puteți face acest lucru folosind surse de lumină suplimentare care urmăresc mișcarea personajelor, dând iluzia actualizărilor de umbre în timp real.
Efecte sonore fără drepturi de autor
Efectele sonore joacă un rol crucial în a face lumea jocului să se simtă vie și dinamică. Luați în considerare încorporarea efecte sonore fără drepturi de autor pentru a vă completa iluminarea și umbrele dinamice.
Cele mai bune practici pentru iluminare și umbre dinamice
În timp ce iluminarea și umbrele dinamice vă pot îmbunătăți foarte mult jocul, implementarea necorespunzătoare poate afecta negativ performanța și calitatea vizuală. Iată câteva dintre cele mai bune practici de reținut:
Optimizați sursele de lumină
Limitați numărul de surse de lumină active la minimul necesar pentru efectul vizual dorit. Luminile excesive pot avea un impact semnificativ asupra performanței, în special pe dispozitivele de ultimă generație.
Utilizați coacere ușoară
Pentru scene sau obiecte statice, luați în considerare coacerea informațiilor de iluminare pentru a îmbunătăți performanța. Coacerea cu lumină precalculează datele de iluminare, reducând nevoia de calcule în timp real în timpul jocului.
Optează pentru Simple Occluders
La configurare LightOccluder2D noduri, optați pentru forme simple ori de câte ori este posibil. Ocluderii complexe cu multe vârfuri pot duce la probleme de performanță. Folosiți poligoane simple sau segmente de linie pentru ocluzi ori de câte ori este posibil.
Taiere și stratificare
Utilizați sistemul de vizibilitate și stratificare Godot pentru a vă asigura că luminile și umbrele sunt calculate numai pentru zonele vizibile. Eliminarea luminilor și umbrelor de pe ecran poate îmbunătăți performanța semnificativ.
Urmând aceste bune practici și implementând cu atenție funcții suplimentare, puteți crea lumini și umbre dinamice uimitoare și captivante care ridică calitatea generală a jocul tău platformer.
Faceți jocurile Godot mai captivante cu iluminare și umbre dinamice
Iluminarea și umbrele dinamice dau viață lumii tale de joc. Ele creează un mediu mai captivant și mai atmosferic, atragând jucătorii mai adânc în experiența de joc. Interacțiunea dintre lumini și umbre poate invoca emoții, poate da tonul și poate îmbunătăți povestirea vizuală a jocului tău.
Fie că este vorba de o temniță întunecată misterioasă sau de o noapte senină cu lună, iluminarea dinamică îmbogățește jocul și lasă o impresie de durată jucătorilor.