Sužinokite, kaip patys sukurti apšvietimo efektus, kad paryškintumėte žaidimus.

Dinaminis apšvietimas ir šešėliai gali pagerinti jūsų Godot žaidimų vaizdo kokybę ir žaidimo patirtį. Jie prideda gylio, atmosferos ir tikroviškumo, todėl jūsų žaidimų pasaulis tampa patrauklesnis ir patrauklesnis.

Naudojant tokias galingas Godot funkcijas kaip „CanvasModulate“ ir „PointLight2D“, sukurti ir pritaikyti dinaminį apšvietimą ir šešėlius yra paprasta.

„Godot“ žaidimo nustatymas

Prieš pasinerdami į dinaminį apšvietimą, nustatykite pagrindinį 2D žaidimą Godot žaidimo variklis. Sukurkite naują sceną ir pridėkite a CharacterBody2D žaidėjui.

Šiame straipsnyje naudojamas kodas pateikiamas čia GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.

Viduje CharacterBody2D, Pridėti CollisionShape2D su stačiakampio formos ir a Sprite2D vaizduoti žaidėjo charakterį. Taip pat sukurkite kai kurias platformas naudodami StaticBody2D mazgai.

Dabar įgyvendinkite žaidėjo judėjimą ir susidūrimą su ekrano ribomis naudodami 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)

Naudodamas šį kodą, žaidėjas gali judėti kairėn, dešinėn, aukštyn ir žemyn, būdamas suvaržytas ekrano ribose.

Užtemdykite likusią scenos dalį

Norint pasiekti dinamiško apšvietimo efektą, reikia tamsinti likusią scenos dalį, išskyrus sritis, apšviestas šviesos šaltinių. Tai galite padaryti naudodami Godot's CanvasModulate funkcija.

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)

Pridėkite šį scenarijų prie naujo Node2D pridūrė scenos pradžioje. The CanvasModulate mazgas pritaikys pusiau permatomą juodą perdangą, tamsinant visą sceną, išskyrus sritis, apšviestas šviesomis.

Sukurkite pastovų kintamąjį TAMSUMAS, kuris lemia tamsos intensyvumą, taikomą scenai. Reguliuojant vertę TAMSUMAS, galite valdyti, kaip tamsu tampa scena, kai neapšviečiama šviesų. Dėl didesnės vertės vaizdas bus tamsesnis, o esant mažesnei vertei, vaizdas bus mažiau tamsus.

Mesti šviesų šešėlį

Norėdami mesti šešėlius, turite nustatyti LightOccluder2D mazgai ant kliūčių, kurios turėtų blokuoti šviesą. Pavyzdžiui, jei turite sienų, platformų ar kitų objektų, kurie turėtų mesti šešėlį, pridėkite a LightOccluder2D kiekvienam.

Sukurti naują LightOccluder2D mazgas ir pakoreguokite jo formą, kad ji atitiktų žaidimo kliūties formą. Taip pat galite koreguoti okliuzerio savybes, pvz daugiakampiai ir segmentai Norėdami tiksliai sureguliuoti šešėlių metimo elgesį.

Pridėkite įvairiakrypčius žibintus

Dabar pridėkite a PointLight2D mazgas su tekstūra, atspindinčia jūsų šviesos šaltinį. Taškiniai žibintai skleidžia šviesą visomis kryptimis ir sukuria tikrovišką apšvietimo efektą.

extends PointLight2D

var light_color = Color(1, 1, 0.8)

func _ready():
energy = 2.5
color = light_color

Galite tinkinti ypatybes, kad galėtumėte valdyti skleidžiamos šviesos diapazoną ir spalvą PointLight2D.

Taip pat galite sukurti arba importuoti pasirinktinę šviesos tekstūrą, kad apibrėžtumėte šviesos šaltinio formą ir išvaizdą. Tai gali būti paprastas apskritimas arba sudėtingesnė forma, priklausomai nuo atmosferos, kurią norite sukurti.

Norėdami pritaikyti tekstūrą PointLight2D mazgas, atlikite šiuos veiksmus:

  1. Pasirinkite PointLight2D mazgas scenos medyje.
  2. Skydelyje Inspektorius raskite ypatybę Tekstūra po Tekstūra skyrius.
  3. Spustelėkite tuščią tekstūros laukelį ir failų naršyklėje pasirinkite norimą šviesią tekstūrą.

Dabar jūsų šviesos šaltinis skleis nustatytos formos ir spalvos šviesą, suteikdamas vizualiai patrauklų jūsų dinamišką apšvietimą ir šešėlius.

Įskaitant papildomas funkcijas

Be pagrindinės dinaminio apšvietimo ir šešėlių sąrankos, galite įdiegti įvairių papildomų funkcijų, kurios dar labiau padidins vizualinį patrauklumą ir žaidimo patirtį. Štai keletas idėjų, kurias reikia apsvarstyti:

Lengvos animacijos

Pagyvinkite savo šviesos šaltinius pridėdami prie jų animacijų. Pavyzdžiui, galite sukurti mirgančias lemputes fakelams ar žvakėms, imituoti laužo judėjimą ar net pridėti stebuklingų rutulių pulsavimo efektą.

Diena-naktis ciklas

Įdiekite dinamišką dienos ir nakties ciklą, kuris palaipsniui keičia šviesų intensyvumą ir spalvą žaidimo metu. Ši funkcija gali sustiprinti panardinimą ir sukurti skirtingas nuotaikas, priklausomai nuo paros laiko.

Šviesos išblukimas

Sukurkite sklandžius šviesos intensyvumo pokyčius, kad išvengtumėte staigių poslinkių, kurie gali nutraukti panardinimą. Palaipsniui įjungdami ir išjungdami šviesas, galite pasiekti natūralesnį ir vizualiai malonesnį efektą.

Dinaminiai šešėliai

Užuot naudoję statinius šešėlius, apsvarstykite galimybę pridėti dinaminių šešėlių prie judančių objektų ar simbolių. Tai galite padaryti naudodami papildomus šviesos šaltinius, kurie seka veikėjų judėjimą ir sukuria šešėlių atnaujinimų realiuoju laiku iliuziją.

Garso efektai be autorių teisių

Garso efektai atlieka labai svarbų vaidmenį, kad jūsų žaidimų pasaulis jaustųsi gyvas ir dinamiškas. Apsvarstykite galimybę įtraukti Garso efektai be autorių teisių kad papildytų jūsų dinamišką apšvietimą ir šešėlius.

Geriausia dinaminio apšvietimo ir šešėlių praktika

Nors dinaminis apšvietimas ir šešėliai gali labai pagerinti jūsų žaidimą, netinkamas įgyvendinimas gali neigiamai paveikti našumą ir vaizdo kokybę. Štai keletas geriausių praktikų, kurių reikia nepamiršti:

Optimizuokite šviesos šaltinius

Apribokite aktyvių šviesos šaltinių skaičių iki minimumo, reikalingo norimam vaizdo efektui pasiekti. Pernelyg didelis apšvietimas gali labai paveikti našumą, ypač žemesnės klasės įrenginiuose.

Naudokite lengvą kepimą

Statiškose scenose ar objektuose apsvarstykite galimybę įjungti apšvietimo informaciją, kad pagerintumėte našumą. Lengvas kepimas iš anksto apskaičiuoja apšvietimo duomenis, todėl žaidimo metu nereikia atlikti skaičiavimų realiuoju laiku.

Pasirinkite paprastus okliuzerius

Nustatant LightOccluder2D mazgų, kur tik įmanoma, rinkitės paprastas formas. Sudėtingi okliuderiai, turintys daug viršūnių, gali sukelti našumo problemų. Kai tik įmanoma, naudokite paprastus daugiakampius arba linijų segmentus užsegimams.

Skerdimas ir sluoksniavimas

Pasinaudokite Godot matomumo ir sluoksniavimo sistema, kad užtikrintumėte, jog šviesos ir šešėliai būtų skaičiuojami tik matomoms vietoms. Pašalinus ne ekrano šviesas ir šešėlius, galima žymiai pagerinti našumą.

Laikydamiesi šios geriausios praktikos ir atidžiai įdiegdami papildomas funkcijas, galite sukurti stulbinantį ir žavingą dinamišką apšvietimą ir šešėlius, kurie pagerina bendrą vaizdo kokybę. jūsų platformingo žaidimas.

Padarykite Godot žaidimus patrauklesnius dinamišku apšvietimu ir šešėliais

Dinamiškas apšvietimas ir šešėliai įkvepia gyvybės jūsų žaidimų pasauliui. Jie sukuria patrauklesnę ir atmosferiškesnę aplinką, įtraukdami žaidėjus giliau į žaidimo patirtį. Šviesos ir šešėlių sąveika gali sukelti emocijas, nustatyti toną ir pagerinti vaizdinį žaidimo pasakojimą.

Nesvarbu, ar tai paslaptingas tamsus požemis, ar rami mėnulio naktis, dinamiškas apšvietimas praturtina žaidimą ir palieka žaidėjams ilgalaikį įspūdį.