Uzziniet, kā izveidot savus gaismas efektus, lai padarītu spēles spilgtāku.

Dinamiskais apgaismojums un ēnas var uzlabot jūsu Godot spēļu vizuālo kvalitāti un spēles pieredzi. Tie piešķir dziļumu, atmosfēru un reālismu, padarot jūsu spēles pasauli aizraujošāku un saistošāku.

Izmantojot Godot jaudīgās funkcijas, piemēram, CanvasModulate un PointLight2D, dinamiska apgaismojuma un ēnu izveide un pielāgošana ir vienkāršs uzdevums.

Godota spēles iestatīšana

Pirms ienirt dinamiskā apgaismojumā, iestatiet pamata 2D spēli Godot spēļu dzinējs. Izveidojiet jaunu ainu un pievienojiet a CharacterBody2D spēlētājam.

Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

Iekšpusē CharacterBody2D, pievienojiet a CollisionShape2D ar taisnstūra formu un a Sprite2D lai attēlotu spēlētāja raksturu. Izveidojiet arī dažas platformas, izmantojot StaticBody2D mezgli.

Tagad ieviesiet spēlētāja kustību un sadursmi ar ekrāna robežām, izmantojot GDScript:

instagram viewer
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)

Izmantojot šo kodu, atskaņotājs var pārvietoties pa kreisi, pa labi, uz augšu un uz leju, vienlaikus esot ierobežots ekrāna robežās.

Aptumšojiet pārējo ainu

Lai panāktu dinamiska apgaismojuma efektu, pārējā aina ir jāpadara tumšāka, izņemot apgabalus, ko apgaismo gaismas avoti. To var izdarīt, izmantojot Godo CanvasModulate funkciju.

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)

Pievienojiet šo skriptu jaunam Node2D pievienots ainas saknē. The CanvasModulate mezgls izmantos daļēji caurspīdīgu melnu pārklājumu, padarot visu ainu tumšāku, izņemot apgabalus, ko apgaismo gaismas.

Izveidojiet nemainīgu mainīgo TUMŠA, kas nosaka ainai piemērotās tumsas intensitāti. Pielāgojot vērtību TUMŠA, varat kontrolēt, cik tumša aina kļūst, ja to neizgaismo gaisma. Augstāka vērtība radīs tumšāku sižetu, savukārt mazāka vērtība padarīs sižetu mazāk tumšu.

Metiet gaišu ēnu

Lai radītu ēnas, jums ir jāiestata LightOccluder2D mezgli uz šķēršļiem, kuriem vajadzētu bloķēt gaismu. Piemēram, ja jums ir sienas, platformas vai citi objekti, kuriem vajadzētu radīt ēnas, pievienojiet a LightOccluder2D katram.

Izveidojiet jaunu LightOccluder2D mezglu un pielāgojiet tā formu, lai tā atbilstu šķēršļa formai jūsu spēlē. Varat arī pielāgot oklūzera īpašības, piemēram daudzstūri un segmentiem lai precīzi noregulētu ēnu metināšanas uzvedību.

Pievienojiet daudzvirzienu gaismas

Tagad pievienojiet a PointLight2D mezgls ar tekstūru, kas attēlo jūsu gaismas avotu. Punkta gaismas izstaro gaismu visos virzienos un rada reālistisku apgaismojuma efektu.

extends PointLight2D

var light_color = Color(1, 1, 0.8)

func _ready():
energy = 2.5
color = light_color

Varat pielāgot rekvizītus, lai kontrolētu izstarotās gaismas diapazonu un krāsu PointLight2D.

Varat arī izveidot vai importēt pielāgotu gaismas tekstūru, lai noteiktu gaismas avota formu un izskatu. Tas var būt vienkāršs aplis vai sarežģītāka forma atkarībā no atmosfēras, kuru vēlaties izveidot.

Lai uzklātu tekstūru uz PointLight2D mezglu, veiciet šīs darbības:

  1. Izvēlieties PointLight2D mezgls ainas kokā.
  2. Panelī Inspektors atrodiet rekvizītu Tekstūra zem Tekstūra sadaļā.
  3. Noklikšķiniet uz tukšā tekstūras lodziņa un failu pārlūkprogrammā atlasiet vēlamo gaišo tekstūru.

Tagad jūsu gaismas avots izstaros gaismu ar noteiktu formu un krāsu, piešķirot jūsu dinamiskajam apgaismojumam un ēnām vizuāli pievilcīgu pieskārienu.

Ieskaitot papildu funkcijas

Papildus dinamiskā apgaismojuma un ēnu pamata iestatījumiem varat ieviest dažādas papildu funkcijas, lai vēl vairāk uzlabotu vizuālo pievilcību un spēles pieredzi. Šeit ir dažas idejas, kas jāņem vērā:

Gaismas animācijas

Atdzīviniet savus gaismas avotus, pievienojot tiem animācijas. Piemēram, jūs varat izveidot mirgojošas gaismas lāpām vai svecēm, simulēt ugunskura kustību vai pat pievienot maģiskām lodēm pulsējošu efektu.

Dienas-nakts cikls

Ieviesiet dinamisku dienas-nakts ciklu, kas spēles laika gaitā pakāpeniski maina gaismas intensitāti un krāsu. Šī funkcija var uzlabot iegremdēšanu un radīt dažādas noskaņas atkarībā no diennakts laika.

Gaismas izbalēšana

Izveidojiet vienmērīgas pārejas gaismas intensitātes izmaiņām, lai izvairītos no pēkšņām pārbīdēm, kas var pārtraukt iegremdēšanu. Pakāpeniski izgaismojot un izslēdzot gaismas, jūs varat iegūt dabiskāku un vizuāli patīkamāku efektu.

Dinamiskās ēnas

Tā vietā, lai izmantotu statiskas ēnas, apsveriet iespēju pievienot kustīgiem objektiem vai rakstzīmēm dinamiskas ēnas. To var izdarīt, izmantojot papildu gaismas avotus, kas seko varoņu kustībai, radot ilūziju par reāllaika ēnu atjauninājumiem.

Skaņas efekti, uz kuriem neattiecas autortiesības

Skaņas efektiem ir izšķiroša nozīme, lai jūsu spēļu pasaule justos dzīva un dinamiska. Apsveriet iespēju iekļaut autortiesībām brīvi skaņas efekti lai papildinātu jūsu dinamisko apgaismojumu un ēnas.

Dinamiskā apgaismojuma un ēnu paraugprakse

Lai gan dinamisks apgaismojums un ēnas var ievērojami uzlabot jūsu spēli, nepareiza ieviešana var negatīvi ietekmēt veiktspēju un vizuālo kvalitāti. Tālāk ir minētas dažas paraugprakses, kas jāpatur prātā.

Optimizējiet gaismas avotus

Ierobežojiet aktīvo gaismas avotu skaitu līdz minimumam, kas nepieciešams vēlamajam vizuālajam efektam. Pārmērīgs apgaismojums var būtiski ietekmēt veiktspēju, īpaši zemākas klases ierīcēs.

Izmantojiet vieglu cepšanu

Statiskām ainām vai objektiem apsveriet iespēju izmantot apgaismojuma informāciju, lai uzlabotu veiktspēju. Viegla cepšana iepriekš aprēķina apgaismojuma datus, samazinot vajadzību pēc reāllaika aprēķiniem spēles laikā.

Izvēlieties vienkāršus aizsprostojumus

Uzstādot LightOccluder2D mezgliem, kur vien iespējams, izvēlieties vienkāršas formas. Sarežģīti oklūderi ar daudzām virsotnēm var izraisīt veiktspējas problēmas. Izmantojiet vienkāršus daudzstūrus vai līniju segmentus aizsprostojumiem, kad vien iespējams.

Izkaušana un slāņošana

Izmantojiet Godo redzamības un slāņu sistēmu, lai nodrošinātu, ka gaismas un ēnas tiek aprēķinātas tikai redzamajām zonām. Izslēdzot ārpus ekrāna esošās gaismas un ēnas, var ievērojami uzlabot veiktspēju.

Ievērojot šo paraugpraksi un rūpīgi ieviešot papildu funkcijas, varat izveidot satriecošu un valdzinošu dinamisku apgaismojumu un ēnas, kas paaugstina attēla kopējo kvalitāti. jūsu platformera spēle.

Padariet Godot spēles saistošākas ar dinamisku apgaismojumu un ēnām

Dinamiskais apgaismojums un ēnas piešķir dzīvību jūsu spēļu pasaulei. Tie rada ieskaujošāku un atmosfēriskāku vidi, ievelkot spēlētājus dziļāk spēles pieredzē. Gaismas un ēnu mijiedarbība var izraisīt emocijas, noteikt toni un uzlabot spēles vizuālo stāstījumu.

Neatkarīgi no tā, vai tas ir noslēpumains tumšs cietums vai rāma mēness apspīdēta nakts, dinamiskais apgaismojums bagātina spēli un atstāj paliekošu iespaidu uz spēlētājiem.