Oppitunti 16 - 2D pelin luominen

Tämän kurssin aikana teemme kaksiulotteisen roolipelin eli RPG-pelin (Role Playing Game). Tähän mennessä olemme tutustuneet kolmeulotteisen pelin tekoon ja kaksiulotteisen pelin tekeminen eroaa aiemmin opitusta jonkin verran. Roolipeli tulee olemaan niin sanottu roguelike peli. Sana roguelike viittaa vuonna 1980 ilmestyneeseen Rogue peliin ja saman pelityypin pelejä kutsutaan roguelike-peleiksi. Roguelike pelit ovat vaikuttaneet  moniin myöhempiin tietokoneroolipeleihin ja esimerkiksi vuoropohjaiset taistelut peleissä voivat olla roguelike pelien vaikutusta.

 

Tämä kurssi pohjautuu Unityn viralliseen tutorialiin.

Tehtävä 1 - Uuden projektin luominen

 

 

1. Avaa Unity Hub ja valitse Templatesta 2D

2. Anna projektin nimeksi RPG ja valitse Create

3. Valitse yläpalkista Window -> Layouts -> Default

4. Valitse yläpalkista Window -> Asset Store

5. Kirjoita hakukenttään Roguelike

6. Valitse 2D Roguelike ja paina Import

7. Paina uudelleen Import

8. Valitse Install / Upgrade

9. Valitse jälleen Import

10. Poistu Asset Storesta valitsemalla ylhäältä Scene välilehti

Tehtävä 2 - Päähahmon luonti

 

Peliin tulee kolme hahmoa eli pelaaja ja kaksi vastustajaa. Hahmot oletkin jo nähnyt Asset Storen kuvassa eli peliin tulee partasuinen seikkailija ja kaksi inhottavaa zombieta. Asset Storesta lataamamme paketti sisälsi grafiikat ja peliin tarvittavat tagit, joten meidän tehtävämme on nyt rakentaa saatavilla olevista elementeistä toimiva peli.

 

Project ikkunaan on tullut seuraava kansiorakenne, josta tällä hetkellä tärkein on Sprites kansio:

Kansio sisältää niin sanotun Spritesheetin eli png-muotoisen kuvatiedoston, johon on koottu pelin grafiikka.

1. Klikkaa Scavencer... tekstin viereisestä nuolesta spritesheet auki

2. Valitse GameObject -> Create Empty

3. Anna objektille nimeksi Player

4. Luo Project ikkunassa Assets kansion alle Animation kansio ja sen alle kansiot Animation ja Animation Controller. Kansio luodaan painamalla pääkansion päällä hiiren oikeaa nappia ja valitsemalla Create -> Folder. Katso esimerkki alta.

5. Valitse kuusi seisovan pelihahmon spriteä pitämällä shift-näppäintä pohjassa

6. Raahaa pelihahmot Player peliobjektiin ja tallenna uusi animaatio nimellä PlayerIdle luomaasi Animation kansioon. Jos animaatio ei syystä tai toisesta ole mennyt Animation kansioon, niin kannattaa katsoa onko hahmo Sprites kansiossa ja raahata animaatio Unityssä sieltä Animation kansioon.

7. Klikkaa Player peliobjektia ja katso Inspector ikkunaa huomataksesi, että Unity on lisännyt Animator kohdan Sprite rendererin alle. Keskitä objekti valitsemalla Transform kohdan hammasrattaasta Reset.

8. Klikkaa peli käyntiin Unityn yläreunassa olevasta Play nuolinapista

9. Jos kaikki on tehty niin kuin pitää, niin ruudulla pitäisi hytkyä partasuinen ukkeli

Tehtävä 3 - Animaatio

 

1. Avaa Animation kansio ja huomaat, että kansiossa on nyt kaksi tiedostoa, josta toinen on Player.controller ja toinen PlayerIdle.anim. Näistä tiedostoista PlayerIdle on se animaatio, joka juuri nähtiin eli paikallaan hytkyvä ukkeli. Player.controller taas sisältää tiedon siitä, koska mitäkin animaatiota pyöritetään. Animaatio voidaan laittaa vaihtumaan toiseksi esimerkiksi silloin, kun hahmo taistelee pahansisuisia zombeja vastaan. Animation kuvakkeiden ulkomuoto voi vaihdella riippuen Unityn versiosta.

2. Raahaa Player.controller tiedosto (siis se jossa lukee kuvassa Player) Animation controller kansioon

3. Avaa Animator klikkaamalla Player.controlleria eli sitä kuvaketta, jossa lukee Player

4. Klikkaa Animatorista PlayerIdleä. Katso kuva alta.

5. Oikealle puolelle ruutua ilmestyy Inspector ikkuna, jossa voi määrittää hahmon animaation nopeutta (speed). Kirjoita nopeudeksi 1:n sijaan 0.5.

6. Paina Play ja huomaa kuinka hahmo hytkyy nyt hitaammin.

Tehtävä 3 - Animaatioiden lisääminen

 

Tällä hetkellä hahmolla on vain paikallaan olemiseen tarvittava animaatio, joten lisäämme hahmolle toiminnallisuuksia animaatioina.

 

1. Mene Sprites kansioon ja valitse sieltä kaksi hakkua käyttävää päähahmoa käyttäen shift näppäintä

2. Raahaa spritet Player peliobjektiin.

3. Anna animaatiolle nimeksi PlayerChop ja tallenna animaation Animation kansioon

4. Huomaa, että Unity ei tehnyt animaatiolle uutta animation controlleria, vaan sisällytti animaation jo olemassaolevaan animation controlleriin

5. Mene Sprites kansioon ja valitse sieltä kaksi iskuja vastaanottavaa spriteä

6. Raahaa spritet Player peliobjektiin

7. Anna animaatiolle nimeksi PlayerHit ja tallenna animaation Animation kansioon

 

Tehtävä 4 - Pelihahmon ominaisuudet

 

1. Valitse Player peliobjekti ja mene Inspector ikkunaan

2. Valitse tagiksi Player

3. Valitse Inspector ikkunasta tagin vierestä Layer ja valikosta Blocking Layer

4. Huomaa, että Blocking layer hoitaa törmäykset pelissä

5. Valitse Sorting layeriksi Units. Sorting layerit ovat erilaisia tasoja, joilla peliobjektit ovat. Esimerkiksi player hahmo tunnistetaan nyt pelihahmoksi, eikä esimerkiksi kerättäväksi objektiksi.

6. Valitse Inspector ikkunasta Add component

7. Valitse Physics 2D -> Box Collider 2D tai kirjoita Box Collider 2D hakukenttään

8. Valitse Inspector ikkunasta Add component

9. Valitse Physics 2D -> Rigidbody 2D tai kirjoita Rigidbody 2D hakukenttään

10. Valitse Rigidbody 2D:n Body typeksi Kinematic, koska emme halua hahmon liikkuvan ympäri ruutua miten sattuu, vaan liikkuvan pelissä hiukan lautapelinappuloiden tyyliin

11. Laita vielä Box Collider 2D:n koko (size) arvoiksi X 0.9 ja Y 0.9

Box Collider 2D hoitaa törmäilyn 2D-maailmassa ja Rigidbody 2D:n kanssa pystytään liikuttamaan hahmoa.

 

Tehtävä 5 - Prefab

 

1. Luo Assets kansioon Prefabs-kansio

2. Raahaa Player peliobjekti Prefabs kansioon

3. Valitse File -> Save

4. Valitse File -> Save Project

 

Tällä oppitunnilla olemme luoneet pelihahmon ja animoineet sen. Seuraavalla oppitunnilla teemme peliin kaksi vastustajaa.

Suomen Tiedekoulu Oy