Naučite kako upravljati prikazom svoje igre pomoću radnji pomicanja, zumiranja i skaliranja.

Dobro osmišljen sustav kamera može pomoći da se igrači urone u svijet igre i daju bolji osjećaj lokacije. Kamera se ponaša kao oči igrača, omogućujući mu navigaciju i interakciju sa svijetom igre.

Stvaranje sustava kamera u Godotu jednostavno je, ali snažno. Možete jednostavno postaviti kameru da prati igrača uokolo, ograničiti njezino kretanje na područje igre, pa čak i dodati dinamičko zumiranje i skaliranje na temelju događaja u igrici.

Stvaranje jednostavne igre

Prije početka morate stvoriti 2D svijet igre i lik u svom Godot Game Engine koje kamera može pratiti.

Napravite novu 2D scenu i dodajte a CharacterBody2D čvor. Ovo će služiti kao naš lik igrača. Unutar CharacterBody2D dodajte a CollisionShape2D i postavite mu oblik na Pravokutnik2D osigurati fizičku prisutnost igrača u svijetu.

Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.

Također, unutar CharacterBody2D, dodajte a

instagram viewer
Sprite2D čvor i dodijelite mu sliku spritea vašeg igrača. Napravite novu skriptu priloženu čvoru CharacterBody2D i dodajte sljedeći kod:

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)

S ovim kodom, lik igrača sada se može kretati u sva četiri smjera i sudarat će se s platformama.

Implementacija sustava Follow Camera

Sljedeći korak je izrada kamere koja prati pokrete igrača. Dodati Kamera2D čvor kao vaše dijete CharacterBody2D čvor. Ovo osigurava da će kamera uvijek pratiti igrača. Kako bi pokret bio glatkiji, omogućite svojstvo izglađivanja položaja Kamera2D čvor.

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

Implementacija granica i ograničenja kamere

Često je važno ograničiti igračev pogled na područje igre. Međutim, ako s tim ne postupate ispravno, kamera može otkriti područja koja su izvan dosega igre. To može uključivati ​​razmake ili nepotpuna područja.

Godot pruža jednostavan način za postavljanje ograničenja kamere i ograničavanje njezinih kretanja unutar područja igre.

u Kamera2D svojstva čvora, postoje četiri varijable: granica_lijevo, limit_top, ograničenje_desno, i granično_dno. Oni određuju granice kamere. Ove vrijednosti možete postaviti prema veličini svijeta vaše igre.

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

Zamijeniti širina_područja_za_igru i visina_područja_za_igranje sa širinom i visinom vašeg svijeta igre. Ova skripta učinkovito ograničava kameru unutar željenog područja, pružajući čisto i fokusirano iskustvo igranja za igrača.

Rukovanje zumiranjem i skaliranjem kamere

Dinamičko zumiranje i skaliranje mogu biti ključni u stvaranju dojmljivih trenutaka u igri. Na primjer, možda biste željeli povećati lik igrača tijekom snažne radnje ili ga smanjiti kako biste otkrili velikog neprijatelja ili panoramski pogled na svijet igre.

Autor slike: Xbox Game Studios/orithegame.com

Godot olakšava zumiranje i skaliranje pomoću zum vlasništvo od Kamera2D čvor. Ovo svojstvo je Vector2, pri čemu je (1, 1) zadana razina zumiranja. Više vrijednosti će umanjiti prikaz, čineći da se gledani objekti čine manjim, dok će niže vrijednosti povećati prikaz, čineći objekte većim.

Za povećanje možete koristiti:

$Camera2D.zoom = Vector2(0.7, 0.7)

A za poništavanje zumiranja upotrijebite:

$Camera2D.zoom = Vector2(1, 1)

Vrijednosti koje proslijedite Vector2() određuju razinu zumiranja na X i Y osi. Vrijednost zumiranja (0,7, 0,7) znači da će kamera zumirati, dok bi vrijednost (1,5, 1,5) udaljila kameru.

Obično biste trebali zadržati istu vrijednost za obje osi kako biste održali omjer slike, ali možete eksperimentirati s različitim vrijednostima kako biste postigli jedinstvene učinke.

Uključujući dodatne značajke

Kada stvarate sustav kamere za svoju igru, postoje brojne dodatne značajke koje možete uključiti kako biste poboljšali iskustvo.

Drhtanje kamere

Čest učinak koji se koristi u mnogim igrama, posebno platformer igre, je podrhtavanje fotoaparata. To se obično koristi za prenošenje utjecaja ili intenziteta tijekom određenih trenutaka u igri, poput eksplozije ili snažnog napada lika.

Možete jednostavno dodati ovu funkciju u Godot stvaranjem tresti() funkcija. Možete odrediti trajanje i intenzitet efekta trešnje u skladu s određenim događajem u igri.

Zvukovi mogu uvelike poboljšati osjećaj mjesta i kretanja u igri. To može biti jednostavno poput sviranja swoosha zvučni efekt kada se kamera brzo pomiče ili pomiče, ili tako složena kao što je izmjena glasnoće ili visine zvukova iz okruženja ili glazbenih zapisa na temelju lokacije kamere ili razine zumiranja.

Na primjer, možda ćete htjeti stišati glasnoću pjesme dok se kamera smanjuje kako biste dobili osjećaj udaljenosti.

Dinamičko osvjetljenje

Također možete povezati dinamičke svjetlosne efekte s kamerom. Dok se vaša kamera kreće svijetom igre, možete promijeniti uvjete osvjetljenja kako bi odražavali nova okruženja ili kako biste istaknuli određena područja ili objekte.

To može uključivati ​​stvari poput postupnog zatamnjivanja scene dok kamera ulazi u špilju ili isticanja ključnog objekta reflektorom.

Efekti prijelaza kamere

Možete stvoriti različite efekte prijelaza prilikom prebacivanja između kamera. To bi mogao biti jednostavan rez gdje pogled trenutačno skače s jedne kamere na drugu ili blijeđenje gdje pogled postupno prelazi s jedne kamere na drugu.

Možete koristiti složenije prijelaze, poput brisanja, slajda ili irisa, uz dodatno kodiranje i animaciju.

Najbolji primjeri iz prakse za dodavanje sustava kamera

Kada svojoj igri dodajete sustav kamera, imajte na umu nekoliko najboljih praksi kako biste osigurali najbolje moguće iskustvo igranja.

Izbjegavajte nagle pokrete kamere

Iznenadni pomaci u perspektivi kamere mogu dezorijentirati igrače i poremetiti igru. Uvijek težite glatkim prijelazima kamere kako biste zadržali uranjanje.

Ograničite podrhtavanje kamere

Dok podrhtavanje kamere može dodatno utjecati na određene događaje, previše može učiniti igru ​​teškom za praćenje i neugodnom za igranje. Koristite ovaj učinak štedljivo i umjereno.

Testirajte različite razine zumiranja

Različite igre i različite situacije unutar igre mogu zahtijevati različite razine zumiranja. Temeljito testirajte kako biste pronašli najprikladniju razinu zumiranja za svaku situaciju.

Pažljivo razmotrite granice kamere

Granice kamere trebaju biti promišljeno postavljene kako bi odgovarale dizajnu vaših razina. Ne želite da igrač vidi izvan svijeta igre ili propusti važne elemente izvan ekrana.

Dajte prednost iskustvu igrača

Glavni cilj sustava kamera uvijek bi trebao biti poboljšanje iskustva igrača. Bilo da pruža najbolji pogled na akciju, naglašava ključne trenutke ili pomaže igraču da se snađe u okruženju, kamera bi uvijek trebala pridonijeti boljem iskustvu igranja.

Učinite Godot igre zanimljivijim uz sustav kamere

Dobro implementiran sustav kamera može poboljšati cjelokupno iskustvo igre. Može naglasiti radnju, pomoći u pripovijedanju i pružiti impresivnije iskustvo.

Kontroliranjem onoga što igrač vidi i kada to vidi, možete voditi njegovo putovanje kroz svijet igre i učiniti igranje dinamičnijim i zanimljivijim.