Uzziniet, kā kontrolēt savas spēles skata logu, izmantojot panoramēšanas, tālummaiņas un mērogošanas darbības.

Labi izstrādāta kameru sistēma var palīdzēt iegremdēt spēlētājus spēļu pasaulē un sniegt labāku atrašanās vietas sajūtu. Kamera darbojas kā spēlētāja acis, ļaujot viņam orientēties un mijiedarboties ar spēļu pasauli.

Kameras sistēmas izveide pakalpojumā Godot ir vienkārša, taču jaudīga. Varat viegli iestatīt kameru, lai tā sekotu spēlētājam apkārt, ierobežotu tā kustības spēles zonā un pat pievienotu dinamisku tālummaiņu un mērogošanu, pamatojoties uz spēles notikumiem.

Vienkāršas spēles izveide

Pirms sākat, jums ir jāizveido 2D spēļu pasaule un personāžs savā Godot spēļu dzinējs kam kamera var sekot.

Izveidojiet jaunu 2D ainu un pievienojiet a CharacterBody2D mezgls. Tas kalpos kā mūsu spēlētāja varonis. CharacterBody2D iekšpusē pievienojiet a CollisionShape2D un iestatiet tā formu Taisnstūra forma2D nodrošināt spēlētāja fizisko klātbūtni pasaulē.

Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

Tāpat CharacterBody2D iekšpusē pievienojiet a Sprite2D mezglu un piešķiriet tam savu atskaņotāja sprite attēlu. Izveidojiet jaunu skriptu, kas pievienots CharacterBody2D mezglam, un pievienojiet šādu kodu:

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)

Izmantojot šo kodu, spēlētāja varonis tagad var pārvietoties visos četros virzienos un sadursies ar platformām.

Sekošanas kameru sistēmas ieviešana

Nākamais solis ir izveidot kameru, kas seko spēlētāja kustībām. Pievienojiet a Kamera2D mezgls kā jūsu bērns CharacterBody2D mezgls. Tas nodrošina, ka kamera vienmēr sekos atskaņotājam. Lai padarītu kustību vienmērīgāku, iespējojiet pozīcijas izlīdzināšanas īpašību Kamera2D mezgls.

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

Kameras ierobežojumu un ierobežojumu ieviešana

Bieži vien ir svarīgi ierobežot spēlētāja skatu uz spēles laukumu. Tomēr, ja jūs ar to nerīkosieties pareizi, kamera var atklāt apgabalus, kas neietilpst spēles darbības jomā. Tie var ietvert atstarpes vai nepilnīgas zonas.

Godot nodrošina vienkāršu veidu, kā iestatīt kameras ierobežojumus un ierobežot tās kustības spēles zonā.

Iekš Kamera2D mezgla īpašības, ir četri mainīgie: limits_left, limit_top, limit_right, un limit_bottom. Tie nosaka kameras robežas. Šīs vērtības varat iestatīt atbilstoši jūsu spēļu pasaules lielumam.

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

Aizvietot jūsu_spēles_apgabala_platums un jūsu_spēles_apgabala_augstums ar jūsu spēļu pasaules platumu un augstumu. Šis skripts efektīvi ierobežo kameru vēlamajā apgabalā, nodrošinot spēlētājam tīru un koncentrētu spēles pieredzi.

Kameras tālummaiņas un mērogošanas apstrāde

Dinamiskā tālummaiņa un mērogošana var būt noderīga, lai radītu ietekmīgus spēles mirkļus. Piemēram, jaudīgas darbības laikā, iespējams, vēlēsities tuvināt spēlētāja tēlu vai tālināt, lai atklātu lielu ienaidnieku vai spēles pasaules panorāmas skatu.

Attēla kredīts: Xbox Game Studios/orithegame.com

Godot atvieglo tālummaiņu un mērogošanu, izmantojot tālummaiņa īpašums Kamera2D mezgls. Šis rekvizīts ir Vector2, un (1, 1) ir noklusējuma tālummaiņas līmenis. Augstākas vērtības tiks tālinātas, padarot skatītos objektus mazākus, bet zemākas vērtības tuvinās, padarot objektus lielākus.

Lai tuvinātu, varat izmantot:

$Camera2D.zoom = Vector2(0.7, 0.7)

Un, lai atiestatītu tālummaiņu, izmantojiet:

$Camera2D.zoom = Vector2(1, 1)

Vērtības, ko nododat Vector2() nosaka tālummaiņas līmeni uz X un Y asīm. Tālummaiņas vērtība (0,7, 0,7) nozīmē, ka kamera tuvinās, bet vērtība (1,5, 1,5) tālinātu kameru.

Parasti abām asīm jāsaglabā viena un tā pati vērtība, lai saglabātu malu attiecību, taču varat eksperimentēt ar dažādām vērtībām, lai iegūtu unikālus efektus.

Ieskaitot papildu funkcijas

Veidojot kameras sistēmu savai spēlei, ir pieejamas daudzas papildu funkcijas, kuras varat iekļaut, lai uzlabotu pieredzi.

Kameras drebēšana

Bieži sastopams efekts, ko izmanto daudzās spēlēs, jo īpaši platformera spēles, ir kameras drebēšana. To parasti izmanto, lai izteiktu ietekmi vai intensitāti noteiktos spēles brīžos, piemēram, sprādzienā vai varoņa spēcīgajā uzbrukumā.

Jūs varat viegli pievienot šo funkciju Godot, izveidojot a krata () funkciju. Varat norādīt kratīšanas efekta ilgumu un intensitāti atbilstoši konkrētajam spēles notikumam.

Skaņas var ievērojami uzlabot vietas un kustības sajūtu spēlē. Tas var būt tikpat vienkārši kā swoosh spēlēšana skaņas efekts kad kamera ātri pārvietojas vai panorāmas, vai tik sarežģīti kā apkārtējo skaņu vai mūzikas ierakstu skaļuma vai augstuma modificēšana, pamatojoties uz kameras atrašanās vietu vai tālummaiņas līmeni.

Piemēram, iespējams, vēlēsities samazināt dziesmas skaļumu, kad kamera tiek tālināta, lai radītu attāluma sajūtu.

Dinamiskais apgaismojums

Varat arī piesaistīt kamerai dinamiskus apgaismojuma efektus. Kamerai pārvietojoties pa spēļu pasauli, varat mainīt apgaismojuma apstākļus, lai atspoguļotu jauno vidi vai izceltu noteiktas zonas vai objektus.

Tas varētu ietvert tādas lietas kā ainas pakāpeniska aptumšošana, kamerai iedziļinoties alā, vai galvenā objekta izcelšana ar prožektoru.

Kameras pārejas efekti

Pārslēdzoties starp kamerām, varat izveidot dažādus pārejas efektus. Tas varētu būt vienkāršs griezums, kurā skats uzreiz pāriet no vienas kameras uz otru, vai izbalēšana, kurā skats pakāpeniski pāriet no vienas kameras uz otru.

Varat izmantot sarežģītākas pārejas, piemēram, slaucīšanu, slaidu vai īrisu, izmantojot papildu kodēšanu un animāciju.

Paraugprakse kameras sistēmas pievienošanai

Pievienojot spēlei kameru sistēmu, ir jāņem vērā vairākas paraugprakses, lai nodrošinātu vislabāko iespējamo spēļu pieredzi.

Izvairieties no pēkšņām kameras kustībām

Pēkšņas kameras perspektīvas izmaiņas var dezorientēt spēlētājus un izjaukt spēli. Vienmēr centieties panākt vienmērīgas kameras pārejas, lai saglabātu iegremdēšanu.

Ierobežojiet kameras vibrāciju

Lai gan kameras vibrācija var ietekmēt noteiktus notikumus, pārāk daudz var padarīt spēli grūti izsekojamu un neērti spēlēt. Izmantojiet šo efektu taupīgi un ar mēru.

Pārbaudiet dažādus tālummaiņas līmeņus

Dažādām spēlēm un dažādām spēles situācijām var būt nepieciešami dažādi tālummaiņas līmeņi. Rūpīgi pārbaudiet, lai atrastu katrai situācijai vispiemērotāko tālummaiņas līmeni.

Rūpīgi apsveriet kameras robežas

Kameras robežas ir rūpīgi jānosaka, lai tās atbilstu jūsu līmeņu dizainam. Jūs nevēlaties, lai spēlētājs redzētu ārpus spēles pasaules vai nepalaistu garām svarīgus elementus ārpus ekrāna.

Dodiet priekšroku spēlētāja pieredzei

Kameras sistēmas galvenajam mērķim vienmēr jābūt spēlētāja pieredzes uzlabošanai. Neatkarīgi no tā, vai tas nodrošina vislabāko skatu uz darbību, uzsver galvenos mirkļus vai palīdz spēlētājam orientēties vidē, kamerai vienmēr ir jāveicina labāka spēles pieredze.

Padarot Godot spēles saistošākas ar kameru sistēmu

Labi ieviesta kameru sistēma var uzlabot kopējo spēles pieredzi. Tas var uzsvērt darbību, palīdzēt stāstu stāstīšanā un sniegt ieskaujošāku pieredzi.

Kontrolējot to, ko spēlētājs redz un kad viņš to redz, jūs varat vadīt viņu ceļojumu pa spēļu pasauli un padarīt spēli dinamiskāku un saistošāku.