Naučte sa vytvárať vlastné svetelné efekty, ktoré rozjasnia vaše hry.

Dynamické osvetlenie a tiene môžu zvýšiť vizuálnu kvalitu a herný zážitok z hier Godot. Pridávajú hĺbku, atmosféru a realizmus, vďaka čomu je váš herný svet pohlcujúci a pútavejší.

Vďaka výkonným funkciám Godot, ako sú CanvasModulate a PointLight2D, je vytváranie a prispôsobenie dynamického osvetlenia a tieňov jednoduchou úlohou.

Nastavenie hry Godot

Pred ponorením sa do dynamického osvetlenia si nastavte základnú 2D hru herný engine Godot. Vytvorte novú scénu a pridajte a CharacterBody2D pre hráča.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Vnútri CharacterBody2D, pridaj CollisionShape2D s obdĺžnikovým tvarom a a Sprite2D reprezentovať charakter hráča. Tiež vytvorte nejaké platformy pomocou StaticBody2D uzly.

Teraz implementujte pohyb hráča a kolíziu s okrajmi obrazovky pomocou GDScript:

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
var velocity = Vector2()

instagram viewer

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)

Pomocou tohto kódu sa hráč môže pohybovať doľava, doprava, nahor a nadol, pričom je obmedzený v rámci hraníc obrazovky.

Zatemnite zvyšok scény

Na dosiahnutie efektu dynamického osvetlenia je potrebné stmaviť zvyšok scény okrem oblastí osvetlených zdrojmi svetla. Môžete to urobiť pomocou Godot's CanvasModulate vlastnosť.

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)

Pripojte tento skript k novému Node2D pridané do koreňa scény. The CanvasModulate node použije polopriehľadné čierne prekrytie, ktoré stmaví celú scénu okrem oblastí osvetlených svetlami.

Vytvorte konštantnú premennú TEMNOTA, ktorý určuje intenzitu tmy aplikovanej na scénu. Úpravou hodnoty TEMNOTA, môžete ovládať, ako stmavne scéna, keď nie je osvetlená svetlami. Vyššia hodnota bude mať za následok tmavšiu scénu, zatiaľ čo nižšia hodnota spôsobí, že scéna bude menej tmavá.

Obsadenie Svetlého tieňa

Ak chcete vrhať tiene, musíte sa nastaviť LightOccluder2D uzly na prekážkach, ktoré by mali blokovať svetlo. Napríklad, ak máte steny, plošiny alebo iné objekty, ktoré by mali vrhať tiene, pridajte a LightOccluder2D každému jednému.

Vytvorte nový LightOccluder2D uzol a upravte jeho tvar tak, aby zodpovedal tvaru prekážky vo vašej hre. Môžete tiež upraviť vlastnosti okluzora, napr polygóny a segmentov na jemné doladenie vrhania tieňov.

Pridajte všesmerové svetlá

Teraz pridajte a PointLight2D uzol s textúrou, ktorá predstavuje váš svetelný zdroj. Bodové svetlá vyžarujú svetlo do všetkých smerov a vytvárajú realistický svetelný efekt.

extends PointLight2D

var light_color = Color(1, 1, 0.8)

func _ready():
energy = 2.5
color = light_color

Vlastnosti môžete prispôsobiť tak, aby ste ovládali rozsah a farbu svetla, ktoré vyžaruje PointLight2D.

Môžete tiež vytvoriť alebo importovať vlastnú svetelnú textúru na definovanie tvaru a vzhľadu vášho svetelného zdroja. Môže to byť jednoduchý kruh alebo zložitejší tvar, v závislosti od atmosféry, ktorú chcete vytvoriť.

Ak chcete použiť textúru na PointLight2D uzol, postupujte podľa týchto krokov:

  1. Vyberte PointLight2D uzol v strome scény.
  2. Na paneli Inšpektor nájdite vlastnosť Texture pod textúra oddiele.
  3. Kliknite na prázdne pole textúry a v prehliadači súborov vyberte požadovanú svetlú textúru.

Teraz bude váš svetelný zdroj vyžarovať svetlo s definovaným tvarom a farbou, čím dodá vášmu dynamickému osvetleniu a tieňom vizuálne príťažlivý nádych.

Vrátane ďalších funkcií

Okrem základného nastavenia dynamického osvetlenia a tieňov môžete zaviesť rôzne ďalšie funkcie, ktoré ešte viac pozdvihnú vizuálnu príťažlivosť a herný zážitok. Tu je niekoľko nápadov na zváženie:

Svetelné animácie

Oživte svoje svetelné zdroje pridaním animácií. Môžete napríklad vytvoriť blikajúce svetlá pre fakle alebo sviečky, simulovať pohyb táborového ohňa alebo dokonca pridať pulzujúci efekt k magickým guľám.

Cyklus deň-noc

Implementujte dynamický cyklus deň-noc, ktorý postupne mení intenzitu a farbu svetiel s postupom času v hre. Táto funkcia môže zlepšiť ponorenie a vytvoriť rôzne nálady v závislosti od dennej doby.

Miznutie svetla

Vytvorte plynulé prechody pre zmeny intenzity svetla, aby ste sa vyhli náhlym posunom, ktoré môžu prerušiť ponorenie. Postupným zoslabovaním a zoslabovaním svetiel môžete dosiahnuť prirodzenejší a na pohľad príjemnejší efekt.

Dynamické tiene

Namiesto použitia statických tieňov zvážte pridanie dynamických tieňov k pohybujúcim sa objektom alebo postavám. Môžete to urobiť pomocou dodatočných svetelných zdrojov, ktoré sledujú pohyb postáv a vytvárajú ilúziu aktualizácií tieňov v reálnom čase.

Zvukové efekty bez autorských práv

Zvukové efekty zohrávajú kľúčovú úlohu pri vytváraní živého a dynamického herného sveta. Zvážte začlenenie zvukové efekty bez autorských práv na doplnenie vášho dynamického osvetlenia a tieňov.

Osvedčené postupy pre dynamické osvetlenie a tiene

Zatiaľ čo dynamické osvetlenie a tiene môžu výrazne zlepšiť vašu hru, nesprávna implementácia môže negatívne ovplyvniť výkon a vizuálnu kvalitu. Tu je niekoľko osvedčených postupov, ktoré treba mať na pamäti:

Optimalizujte svetelné zdroje

Obmedzte počet aktívnych svetelných zdrojov na minimum potrebné pre požadovaný vizuálny efekt. Nadmerné svetlá môžu výrazne ovplyvniť výkon, najmä na zariadeniach nižšej kategórie.

Použite ľahké pečenie

Pri statických scénach alebo objektoch zvážte pečenie informácií o osvetlení, aby ste zlepšili výkon. Pečenie svetla vopred vypočítava údaje o osvetlení, čím sa znižuje potreba výpočtov v reálnom čase počas hry.

Rozhodnite sa pre jednoduché okluzory

Pri nastavovaní LightOccluder2D uzly, rozhodnite sa pre jednoduché tvary všade, kde je to možné. Komplexné oklúdery s mnohými vrcholmi môžu viesť k problémom s výkonom. Vždy, keď je to možné, použite na okluzory jednoduché polygóny alebo úsečky.

Vytrhávanie a vrstvenie

Využite Godotovu viditeľnosť a systém vrstvenia, aby ste zabezpečili, že svetlá a tiene budú vypočítané len pre viditeľné oblasti. Odstránenie svetiel a tieňov mimo obrazovky môže výrazne zlepšiť výkon.

Dodržiavaním týchto osvedčených postupov a starostlivým implementovaním ďalších funkcií môžete vytvoriť úžasné a podmanivé dynamické osvetlenie a tiene, ktoré zvýšia celkovú kvalitu vaša plošinovka.

Vďaka dynamickému osvetleniu a tieňom budú hry Godot pútavejšie

Dynamické osvetlenie a tiene vdýchnu život vášmu hernému svetu. Vytvárajú pohlcujúcejšie a atmosférickejšie prostredie a vťahujú hráčov hlbšie do herného zážitku. Súhra svetla a tieňa môže vyvolať emócie, nastaviť tón a zlepšiť vizuálne rozprávanie vašej hry.

Či už ide o tajomnú temnú kobku alebo pokojnú mesačnú noc, dynamické osvetlenie obohacuje hru a zanecháva na hráčoch trvalý dojem.