Научите како да направите сопствене светлосне ефекте да бисте улепшали своје игре.
Динамично осветљење и сенке могу да побољшају визуелни квалитет и искуство играња ваших Годот игара. Они додају дубину, атмосферу и реализам, чинећи ваш свет игре још интензивнијим и привлачнијим.
Уз моћне Годотове функције као што су ЦанвасМодулате и ПоинтЛигхт2Д, креирање и прилагођавање динамичког осветљења и сенки је лак задатак.
Подешавање игре Годо
Пре него што уђете у динамично осветљење, подесите основну 2Д игру мотор игре Годот. Направите нову сцену и додајте а ЦхарацтерБоди2Д за играча.
Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.
Унутар ЦхарацтерБоди2Д, додати а ЦоллисионСхапе2Д са правоугаоним обликом и а Сприте2Д да представља карактер играча. Такође, креирајте неке платформе користећи СтатицБоди2Д чворови.
Сада имплементирајте кретање играча и колизију са границама екрана користећи ГДСцрипт:
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)
Са овим кодом, играч може да се креће лево, десно, горе и доле док је ограничен унутар граница екрана.
Затамните остатак сцене
Да бисте постигли ефекат динамичног осветљења, потребно је затамнити остатак сцене осим области које осветљавају извори светлости. То можете учинити користећи Годот ЦанвасМодулате одлика.
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)
Приложите ову скрипту новом Ноде2Д додато у корен сцене. Тхе ЦанвасМодулате чвор ће применити полупровидни црни слој, затамњујући целу сцену осим области осветљених светлима.
Креирајте константну променљиву ДАРКНЕСС, који одређује интензитет мрака примењеног на сцену. Прилагођавањем вредности од ДАРКНЕСС, можете да контролишете колико тамна сцена постаје када није осветљена светлима. Већа вредност ће довести до тамније сцене, док ће нижа вредност учинити сцену мање тамном.
Баци светлу сенку
Да бисте бацили сенке, потребно је да поставите ЛигхтОццлудер2Д чворови на препрекама које треба да блокирају светлост. На пример, ако имате зидове, платформе или друге објекте који би требало да бацају сенке, додајте а ЛигхтОццлудер2Д сваком понаособ.
Створити нова ЛигхтОццлудер2Д чвор и прилагодите његов облик тако да одговара облику препреке у вашој игри. Такође можете подесити својства оклудера као што су полигони и сегментима за фино подешавање понашања бацања сенки.
Додајте омнидирекциона светла
Сада, додајте а ПоинтЛигхт2Д чвор са текстуром која представља ваш извор светлости. Тачкаста светла емитују светлост у свим правцима и стварају реалистичан ефекат осветљења.
extends PointLight2D
var light_color = Color(1, 1, 0.8)
func _ready():
energy = 2.5
color = light_color
Можете да прилагодите својства да контролишете опсег и боју светлости коју емитује ПоинтЛигхт2Д.
Такође можете да креирате или увезете прилагођену текстуру светлости да бисте дефинисали облик и изглед вашег извора светлости. То може бити једноставан круг или сложенији облик, у зависности од атмосфере коју желите да креирате.
Да бисте применили текстуру на ПоинтЛигхт2Д чвор, следите ове кораке:
- Изаберите ПоинтЛигхт2Д чвор у стаблу сцене.
- У панелу Инспецтор, пронађите својство Тектуре испод Текстура одељак.
- Кликните на празан оквир за текстуру и изаберите жељену текстуру светлости из претраживача датотека.
Сада ће ваш извор светлости емитовати светлост дефинисаног облика и боје, додајући визуелно привлачан додир вашем динамичном осветљењу и сенкама.
Укључујући додатне функције
Поред основног подешавања динамичког осветљења и сенки, можете увести разне додатне функције како бисте додатно подигли визуелну привлачност и искуство играња. Ево неколико идеја које треба размотрити:
Лигхт Аниматионс
Оживите своје изворе светлости додавањем анимација. На пример, можете креирати трепереће светла за бакље или свеће, симулирати кретање логорске ватре или чак додати пулсирајући ефекат магичним куглама.
Циклус дан-ноћ
Спроведите динамичан циклус дан-ноћ који постепено мења интензитет и боју светла како време у игри напредује. Ова функција може побољшати урањање и створити различита расположења у зависности од доба дана.
Лигхт Фадинг
Направите глатке прелазе за промене интензитета светлости да бисте избегли нагле промене које могу да прекину урањање. Постепеним гасењем светла можете постићи природнији и визуелно пријатнији ефекат.
Динамиц Схадовс
Уместо да користите статичне сенке, размислите о додавању динамичких сенки покретним објектима или ликовима. То можете учинити коришћењем додатних извора светлости који прате кретање ликова, дајући илузију ажурирања сенки у реалном времену.
Звучни ефекти без ауторских права
Звучни ефекти играју кључну улогу у томе да ваш свет игре буде жив и динамичан. Размислите о укључивању звучни ефекти без ауторских права да допуни ваше динамично осветљење и сенке.
Најбоље праксе за динамичко осветљење и сенке
Док динамично осветљење и сенке могу увелико побољшати вашу игру, неправилна примена може негативно утицати на перформансе и визуелни квалитет. Ево неколико најбољих пракси које треба имати на уму:
Оптимизујте изворе светлости
Ограничите број активних извора светлости на минимум неопходан за ваш жељени визуелни ефекат. Превише светла може значајно утицати на перформансе, посебно на уређајима ниже класе.
Користите лагано печење
За статичне сцене или објекте, размислите о печењу информација о осветљењу да бисте побољшали перформансе. Лагано печење унапред израчунава податке о осветљењу, смањујући потребу за прорачунима у реалном времену током игре.
Одлучите се за једноставне оклудере
Приликом постављања ЛигхтОццлудер2Д чворова, одлучите се за једноставне облике где год је то могуће. Сложени оклудери са много врхова могу довести до проблема са перформансама. Користите једноставне полигоне или сегменте линија за оклудере кад год је то изводљиво.
Одбијање и раслојавање
Искористите Годоов систем видљивости и слојева како бисте осигурали да се светлост и сенке израчунавају само за видљива подручја. Уклањање светла и сенки ван екрана може значајно побољшати перформансе.
Пратећи ове најбоље праксе и пажљиво примените додатне функције, можете да креирате запањујуће и задивљујуће динамично осветљење и сенке које подижу укупан квалитет ваша платформска игра.
Учините Годот игре привлачнијим помоћу динамичког осветљења и сенки
Динамично осветљење и сенке удахњују живот вашем свету игре. Они стварају импресивније и атмосферско окружење, увлачећи играче дубље у искуство играња. Међуигра светлости и сенке може изазвати емоције, поставити тон и побољшати визуелно приповедање ваше игре.
Било да је у питању мистериозна мрачна тамница или мирна ноћ обасјана месечином, динамично осветљење обогаћује игру и оставља трајни утисак на играче.