Научите како да контролишете област приказа своје игре помоћу радњи померања, зумирања и скалирања.

Добро дизајниран систем камера може помоћи да се играчи уроне у свет игре и да им пружи бољи осећај локације. Камера делује као очи играча, омогућавајући му да се креће и комуницира са светом игре.

Креирање система камера у Годоту је једноставно, али моћно. Можете лако да подесите камеру да прати играча унаоколо, ограничи његове покрете на област игре, па чак и да додате динамичко зумирање и скалирање на основу догађаја у игри.

Креирање једноставне игре

Пре него што почнете, морате да креирате 2Д свет игре и лик у свом Годот Гаме Енгине које камера може да прати.

Направите нову 2Д сцену и додајте а ЦхарацтерБоди2Д чвор. Ово ће послужити као наш играч. Унутар ЦхарацтерБоди2Д додајте а ЦоллисионСхапе2Д и постави свој облик на РецтанглеСхапе2Д да обезбеди физичко присуство играча у свету.

Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.

instagram viewer

Такође, унутар ЦхарацтерБоди2Д, додајте а Сприте2Д чвор и доделите му своју слику спритеа играча. Направите нову скрипту прикачену за ЦхарацтерБоди2Д чвор и додајте следећи код:

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)

Са овим кодом, лик играча сада може да се креће у сва четири смера и судараће се са платформама.

Имплементација система праћења камера

Следећи корак је креирање камере која прати кретање играча. Додајте а Цамера2Д чвор као дете вашег ЦхарацтерБоди2Д чвор. Ово осигурава да ће камера увек пратити играча. Да бисте кретање учинили глаткијим, омогућите својство изравнавања положаја Цамера2Д чвор.

$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true

Примена ограничења и ограничења камере

Често је важно ограничити поглед играча на подручје игре. Међутим, ако ово не поступите како треба, камера може открити подручја која су изван оквира игре. То може укључивати просторе или непотпуне области.

Годот пружа једноставан начин за постављање ограничења камере и ограничавање њеног кретања унутар области игре.

У Цамера2Д својства чвора, постоје четири променљиве: лимит_лефт, лимит_топ, лимит_ригхт, и лимит_боттом. Они одређују границе камере. Ове вредности можете подесити према величини света игре.

$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height

Заменити иоур_гаме_ареа_видтх и иоур_гаме_ареа_хеигхт са ширином и висином вашег света игре. Ова скрипта ефикасно ограничава камеру унутар жељеног подручја, пружајући играчу чисто и фокусирано искуство играња.

Руковање зумирањем и скалирањем камере

Динамичко зумирање и скалирање могу бити од кључног значаја за стварање утицајних тренутака у игри. На пример, можда бисте желели да увећате лик играча током снажне акције или да умањите да бисте открили великог непријатеља или панорамски поглед на свет игре.

Заслуге за слике: Ксбок Гаме Студиос/оритхегаме.цом

Годот олакшава зумирање и скалирање са зум власништво тхе Цамера2Д чвор. Ово својство је Вецтор2, при чему је (1, 1) подразумевани ниво зумирања. Веће вредности ће умањити, чинећи да се посматрани објекти чине мањим, док ће ниже вредности зумирати, чинећи објекте већим.

Да бисте увећали, можете користити:

$Camera2D.zoom = Vector2(0.7, 0.7)

И да ресетујете зум, користите:

$Camera2D.zoom = Vector2(1, 1)

Вредности које проследите Вецтор2() одређују ниво зумирања на Кс и И оси. Вредност зума (0,7, 0,7) значи да ће камера зумирати, док би вредност (1,5, 1,5) умањила камеру.

Обично би требало да задржите исту вредност за обе осе да бисте одржали однос ширине и висине, али можете експериментисати са различитим вредностима да бисте постигли јединствене ефекте.

Укључујући додатне функције

Када креирате систем камера за своју игру, постоје бројне додатне функције које можете да уградите да бисте побољшали искуство.

Цамера Схакинг

Уобичајен ефекат који се користи у многим играма, посебно платформер игре, је подрхтавање камере. Ово се обично користи за преношење утицаја или интензитета током одређених тренутака у игри, попут експлозије или снажног напада лика.

Ову функцију можете лако додати у Годот креирањем а мућкати() функција. Можете одредити трајање и интензитет ефекта потресања у складу са специфичним догађајем у игри.

Звукови могу у великој мери побољшати осећај места и кретања у игри. Ово може бити једноставно као играње своосх-а звучни ефекат када се камера брзо помера или помера, или тако сложена као што је промена јачине или висине амбијенталних звукова или музичких нумера на основу локације камере или нивоа зума.

На пример, можда ћете желети да смањите јачину звука песме док камера умањује да бисте дали осећај удаљености.

Динамично осветљење

Такође можете да повежете динамичке светлосне ефекте са камером. Док се ваша камера креће по свету игре, можете да промените услове осветљења како бисте одражавали нова окружења или да бисте истакли одређена подручја или објекте.

Ово може укључивати ствари као што је постепено затамњивање сцене док камера улази у пећину или истицање кључног објекта помоћу рефлектора.

Ефекти прелаза камере

Можете креирати различите ефекте прелаза приликом пребацивања између камера. Ово би могао бити једноставан рез где поглед тренутно скаче са једне камере на другу или бледи када поглед постепено прелази са једне камере на другу.

Можете користити сложеније прелазе, као што су брисање, слајд или ирис, уз додатно кодирање и анимацију.

Најбоље праксе за додавање система камера

Када додајете систем камера у игру, постоји неколико најбољих пракси које треба имати на уму како бисте осигурали најбоље могуће искуство играња.

Избегавајте нагле покрете камере

Изненадне промене у перспективи камере могу дезоријентисати играче и пореметити игру. Увек тежите глатким прелазима камере да бисте одржали урањање.

Ограничите подрхтавање камере

Док подрхтавање камере може да утиче на одређене догађаје, превише тога може да учини игру тешком за праћење и непријатном за играње. Користите овај ефекат штедљиво и умерено.

Тестирајте различите нивое зумирања

Различите игре и различите ситуације у игри могу захтевати различите нивое зумирања. Тестирајте темељно да бисте пронашли најприкладнији ниво зумирања за сваку ситуацију.

Пажљиво размотрите границе камере

Границе камере треба пажљиво поставити тако да одговарају дизајну ваших нивоа. Не желите да играч види ван света игре или да пропусти важне елементе ван екрана.

Дајте предност искуству играча

Главни циљ система камера увек треба да буде побољшање искуства играча. Било да пружа најбољи поглед на акцију, наглашава кључне тренутке или помаже играчу да се креће кроз окружење, камера увек треба да допринесе бољем искуству играња.

Учините Годот игре привлачнијим са системом камере

Добро примењен систем камера може побољшати целокупно искуство игре. Може да нагласи радњу, да помогне у приповедању и пружи упечатљивије искуство.

Контролисањем онога што играч види и када то види, можете водити његово путовање кроз свет игре и учинити игру динамичнијом и занимљивијом.