SuomiGameHUB

Maailma tarvitsee pelejä

UE4 kontrollien määrittely

Vaikka aluksi projektissa on vapaakameralla liikkuminen, tarvitaan todellisen pelaajahahmon luomiseen ja ohjaamiseen enemmän. Esimerkkinä voidaan käyttää top-down shooter -tyyppistä peliä. Tätä varten Unrealissa luodaan uusi kansio, esimerkiksi ‘blueprints’, joka sisältää skriptitiedostoja. Tarvitsemme kolme skriptiä.

Uuden pelaajahahmon luomiseksi klikataan hiiren oikealla painikkeella, valitaan ‘blueprint class’ ja sitten ‘pawn’. Pawn on toimija, joka voi vastaanottaa syötteitä ohjaimista (pelaajan tai tietokoneen). Lisäksi Unrealissa on ‘character’ luokka, joka mahdollistaa hahmon liikkumisen. Valinta riippuu pelin tyypistä; esimerkiksi top-down pelissä hahmon liikkumistavalla ei ole suurta merkitystä, kun taas kolmannen persoonan pelissä realistinen liikkuminen voi olla tärkeää. Nimeämme luomamme pawnin ‘BP_Pelaaja’.

Seuraava askel on luoda pelaajalle ohjain, jota kutsutaan ‘player controlleriksi’. Tämä luodaan valitsemalla ‘blueprint class’ ja sitten ‘player controller’, jonka nimeksi voidaan antaa ‘PC_Pelaajakontrolleri’. Tämän lisäksi peliin tarvitaan uusi pelimoodi (‘game mode’), joka määrittää pelin säännöt ja asetukset. Uuden pelimoodin voi luoda valitsemalla ‘blueprint class’ ja sitten ‘game mode base’, jonka nimi voi olla vaikka ‘GM_Pelimoodi’.

Kun pelimoodi on luotu, se täytyy asettaa käyttöön projektin asetuksista. Tämä tehdään menemällä kohtaan ‘settings’ ja valitsemalla ‘project settings’. Täältä etsitään ‘game mode’ ja asetetaan oletuspelimoodiksi aiemmin luotu pelimoodi ‘GM_Pelimoodi’.

Pelimoodin asetuksissa voidaan määrittää oletusarvoja, kuten oletuspelaajakontrolleri ja oletuspawn. Tämän jälkeen muutokset tallennetaan ja käännetään. Seuraavaksi pelaajakontrolleri täytyy yhdistää pelaajahahmoon. Tämä tehdään avaamalla pelaajakontrolleri ja asettamalla ‘auto receive input’ arvoksi ‘player 0’, joka on vakiopelaaja. Tämän jälkeen tallennetaan ja käännetään muutokset.

Sitten luodaan itse pelaajahahmo. Esimerkiksi top-down pelissä pelaajahahmoksi voidaan lisätä sylinteri, jonka sijoitetaan hieman maaston yläpuolelle. Pelin kameralle lisätään ‘spring arm’ -komponentti, johon kiinnitetään kamera. Spring arm -komponentti mahdollistaa kameran seuraavan pelaajaa. Kameran asetuksia, kuten rotaatiota ja pituutta, voidaan muuttaa tarpeen mukaan.

Kun kaikki asetukset on tehty, voimme testata peliä painamalla ‘play’. Tällöin peli käynnistyy ‘player start’ -pisteestä automaattisesti luodulla pelaajahahmolla.

Input-järjestelmä

Unreal Enginen input-järjestelmä koostuu kahdesta pääkomponentista: action mappings ja axis mappings.

Action mappings liittyvät erityisesti napinpainalluksiin, jotka aiheuttavat tietyn toiminnon, kuten hyppäämisen tai ampumisen. Toisin sanoen, kun pelaaja painaa määritettyä nappia, määritelty toiminto tapahtuu. Toisaalta axis mappings liittyvät suoraan liikkumiseen. Esimerkiksi käveleminen vasemmalle, oikealle tai eteenpäin on määritelty axis mappingsin kautta.

Project Settings -valikosta löytyy input-osio, jossa voimme määritellä eri toiminnot ja liikkeet. Lisäämme axis mappings -kohtaan uusia liikkeitä käyttämällä plussa-ikonia. Esimerkiksi, voimme määritellä ‘liiku eteenpäin’ -toiminnon ja liittää siihen näppäimen, kuten ‘W’. Samalla tavalla voimme lisätä toimintoja kuten ‘liiku vasemmalle’, johon voimme liittää ‘A’ näppäimen.

Mielenkiintoinen seikka axis mappingsissa on mahdollisuus määrittää liike myös negatiiviseksi. Esimerkiksi, asettamalla skaalaksi miinus yksi, voimme luoda toiminnon, joka liikuttaa hahmoa taaksepäin (näppäin ‘S’) tai oikealle (näppäin ‘D’).

Kun olemme määritelleet haluamamme liikkumiskontrollit, siirrymme BP_Pelaajaan ja sen event-graafiin. Täällä voimme alkaa toteuttaa liikkumislogiikkaa. Jos esimerkiksi haluamme, että hahmomme liikkuu neljään eri suuntaan ilman tarvetta huomioida maaston muotoja, voimme käyttää yksinkertaista lähestymistapaa. Käytämme ‘set actor location’ -toimintoa ja määritämme uuden sijainnin ‘get actor location’ -toiminnon avulla. Tämä mahdollistaa hahmon sijainnin päivittämisen reaaliajassa pelissä.

Liikkeen suunnan määrittely tapahtuu vektoreilla ja niiden komponenteilla. Kun haluamme liikuttaa hahmoa x-akselilla, meidän tulee muokata x-arvoa sopivasti. Tämä saadaan aikaan yhdistämällä axis valueta vanhaan x-arvoon, jolloin hahmo liikkuu haluttuun suuntaan. Samanlainen logiikka pätee y-akselin liikkeisiin, jolloin käytämme ‘liiku vasemmalle’ -arvoa.

Kun nämä perusasetukset on tehty, voimme kokeilla liikkumista pelissä. Liikkuminen voi olla aluksi hidasta, mutta nopeutta voidaan säätää kertomalla liikkeen nopeus tietyllä arvolla. Tämä mahdollistaa hahmon liikkumisnopeuden hienosäätämisen.

Edellinen osa: Modelit Unrealiin

Keskustelu

Aloita uusi keskustelu