• Ei tuloksia

Audion synkronointi Unity-pelimoottorissa

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Audion synkronointi Unity-pelimoottorissa"

Copied!
39
0
0

Kokoteksti

(1)

AUDION SYNKRONOINTI UNITY- PELIMOOTTORISSA

LAB-AMMATTIKORKEAKOULU Insinööri (AMK)

Tieto- ja viestintätekniikka Syksy 2021

Pekka Perkiö

(2)

Tiivistelmä

Tekijä(t) Perkiö, Pekka

Julkaisun laji

Opinnäytetyö, AMK

Valmistumisaika Syksy 2021 Sivumäärä

31 Työn nimi

Audion synkrononinti Unity-pelimoottorissa

Tutkinto

Insinööri (AMK) Tiivistelmä

Opinnäytetyössä tutustuttiin rytmipelien historiaan, sekä projektissa käytettäviin au- diokomponentteihin. Päätavoitteena oli kehittää Unity-pelimoottorilla rytmiin pohjau- tuva mobiililaitteilla toimiva tasohyppelypeli 3D-ympäristössä. Audion synkronointiin kehitettiin oma menetelmä suhteessa pelin kulkuun. Työ tehtiin mahdollisesti perus- tettavan uuden yrityksen tarpeisiin.

Peliin kehitettiin kaksi tasoa ja musiikit tehtiin FL Studio -ohjelmistolla. Pelissä tapah- tuu esteiden liikkumista ja värien vaihtoja synkronoituna musiikin tahdissa. Esteitä on sijoitettuna niin, että niiden yli voidaan hypätä musiikin iskujen mukaisesti. Päätyöka- luna synkronoinnissa käytettiin Unityn Timeline-komponenttia ja siihen kehitettiin kus- tomoidut animaatiot, joilla liikkeet suoritettiin. Timelinelle merkattiin myös tahdit mar- kereina kustomoidun editoriskriptin avulla, joiden avulla pystyttiin siirtämään animaa- tiot oikeille paikoilleen. Projektissa käytettiin myös normaaleita animaatioita, joiden nopeuskertoimia laskettiin Toolstudio-sivuston ja kaavojen avulla. Apuna käytettiin myös SimpleSpectrum-assettia, jonka avulla voitiin vastaanottaa audiospektridataa ja käyttää sitä efektien luomiseen.

Aikaiseksi saatiin toimiva, jatkokehitettävä pilottiversio, joka sisältää erilaisia alueita musiikkikappaleen eri osioihin siirtyessä, erikoisobjekteja ja harjoitusmoodin, jonka avulla voi harjoitella kappaleiden eri osuuksia ennen suoritusta.

Asiasanat

Unity, Audio, Rytmipelit

(3)

Abstract

Author(s) Perkiö, Pekka

Type of publication Bachelor’s thesis

Published Autumn 2021 Number of pages

31 Title of publication

Synchronizing audio in Unity-engine

Name of Degree Engineer Abstract

The thesis includes history of rhythm games and knowledge about audio components used in the project. Main goal was to develop a rhythm-based platformer-game with Unity game engine in 3D environment. A custom method was developed to synchro- nize audio with the game. The work was done to meet the needs of a potential new company.

Game includes two levels and music was made with FL Studio -program. There is ob- ject movement and color blinking in sync with the music in the game. Obstacles are placed so that player can jump over them in sync with music beat. Unity Timeline was used as a main tool with custom made animations. There are also markers in Time- line to mark bars to help snapping animations in correct place. Markers were made with a custom editor-script. Also normal animations were used, which speed multipli- ers were calculated with Toolstudio-website and different formulas. SimpleSpectrum- asset was used to receive audiospectrum-data and create effects with it.

A working pilot-version was made, which includes different zones when moving in dif- ferent sections of the song, special objects and a practice mode, which can be used to practice different song parts before performing.

Keywords

Unity, Audio, Rhythm games

(4)

SISÄLLYS

1 JOHDANTO ... 1

2 RYTMIPELIEN HISTORIA ... 2

2.1 Taustaa ... 2

2.2 Ensimmäiset rytmipelit ... 2

2.3 Suosion nousu uudelleen... 6

2.4 Rytmipelit nykyisin ...10

3 UNITY AUDIO ...14

3.1 Äänitiedostot ...14

3.2 Audio Clip ...14

3.3 Audio Source ...15

3.4 Audio Listener ...16

3.5 Timeline ...16

3.6 Audio Mixer...17

4 KEHITYS ...19

4.1 Tausta ...19

4.2 Audio ...19

4.2.1 FL Studio 20 ...19

4.2.2 Syntetisaattorit ja efektit ...19

4.3 Kehitys Unityssä ...20

4.4 Aika-arvot ...21

4.4.1 Toolstudio ...22

4.4.2 Kaavat ...22

4.5 Objektien liike ...23

4.5.1 Aikajanan markerit ...24

4.5.2 Kustomoidut animaatiot ...24

4.6 Audiospektri ...25

5 PELIN ESITTELY ...27

5.1 Alkumenu ...27

5.2 Alueet ...27

5.3 Erikoisobjektit ...28

5.4 Harjoitusmoodi ...29

5.5 Ensimmäinen taso ...29

5.6 Toinen taso ...29

(5)

6 YHTEENVETO ...31 LÄHTEET ...32

(6)

1 JOHDANTO

Musiikin tahdissa liikkuminen on aina kuulunut ihmisten perinteisiin. Jo pienet lapset osaa- vat liikehtiä musiikin mukana. Digitalisoitumisen myötä tämä on voitu nykyään yhdistää myös pelaamiseen. Hekin, jotka eivät muuten musiikkia tai soittamista harrasta, voivat päästä itse osallistumaan toimintaan näiden pelien muodossa. Erilaiset pelimoottorit, ku- ten Unity ja Unreal Engine ovat mahdollistaneet kehityksen eri alustoille niin indie-kehittä- jille, kuin isoillekin yrityksille. Luonnollisesti samalla on syntynyt myös valtavasti erilaisia genrejä, joista yksi on rytmipelit.

Tässä opinnäytetyössä kehitetään 3D-ympäristössä mobiililaitteilla toimiva rytmipelin pi- lotti-versio Unity-pelimoottorilla mahdollisesti perustettavan uuden yrityksen tarpeisiin. Pe- laaja ohjaa kiekkoa sivuttaissuuntaisesti ruudun vasenta laitaa käyttäen ja hyppää ruudun oikeaa laitaa näpäyttämällä. Eteenpäin liikkuminen on määritelty automaattiseksi. Erilaiset esteet ja rotkot on sijoitettu peliin niin, että pelaaja voi reagoida niihin musiikin rytmin mu- kaisesti. Myös kentässä olevat esteet liikkuvat ja värit vaihtuvat toisinaan tahdin mukaan.

Kameran kuvakulma ja pelaajan liikkumisnopeus vaihtelevat musiikkikappaleen eri osioi- hin siirtyessä. Peliin tulee 2 eri tasoa, joissa on eri musiikit. Se sisältää myös harjoitus- moodin, jossa pelaaja voi harjoitella kenttien eri osuuksia yksitellen.

Koko kentän sekä muiden objektien rakentamiseen käytetään Blender-mallinnusohjelmaa.

Materiaalien tekstuureina käytetään yksinkertaisia staattisia värejä, sekä GIMP-kuvankä- sittelyohjelmalla luotuja gradientteja. Musiikki ja äänet kehitetään FL Studio-ohjelmistolla hyödyntäen erilaisia virtuaali-syntetisaattoreita. Olennaisena työkaluna Unityssä toimii Ti- meline-komponentti, johon sijoitetaan sekä musiikki, että kentässä tapahtuvat animaatiot.

Työssä tutkitaan rytmipelien historiaa ja niiden merkitystä nykypäivänä, sekä projektissa käytettäviä Unityn komponentteja yleisesti ja tutkitaan, kuinka kehitetään oma audion synkronointimenetelmä suhteessa pelin kulkuun.

(7)

2 RYTMIPELIEN HISTORIA 2.1 Taustaa

Rytmipelillä tarkoitetaan peligenreä, jossa haastetaan pelaajan rytmitajua. Monesti näissä tanssitaan käyttämällä avuksi tanssimattoa, taikka käytetään jotain napillista instrumenttia, joita painetaan ruudulta tulevan informaation mukaisesti. Monissa rytmipeleissä on myös moninpeli-mahdollisuus ja pelaajat voivat joko kilpailla toisiaan vastaan tai tehdä yhteis- työtä toistensa kanssa. Esimerkkejä rytmipeleistä ovat alun perin NES:ille julkaistu Dance Dance Revolution, GameCubelle julkaistu Donkey Konga ja Guitar Hero, joka kehitettiin monelle eri alustalle. (Rollings & Adams 2014, 309.) Genreen sisältyy myös laulamiseen tarkoitetut pelit, kuten SingStar joka tunnistaa rytmin lisäksi lauletun sävelkorkeuden (Greeley 2019). Vaikkakin jotkut kappaleet voi pystyä suorittamaan suoraan ensimmäi- sellä kerralla, niin yleensä pelaaja joutuu harjoittelemaan vaikeampia kappaleita, ennen kuin voi suorittaa ne alusta loppuun.

Rytmipelien pelattavuus on pysynyt laajalti hyvin samanlaisena 1996-vuodesta asti. Tämä ei kuitenkaan tarkoita, etteikö vuosien kuluessa olisi syntynyt uusia ja innovatiivisia kek- sintöjä. Genre on uniikki videopelien taidemuodoille, sillä se yhdistää visuaalisuuden, ää- nen ja fyysisyyden täysin ainutlaatuisella tavalla. Hyvä rytmipeli erottuu muista musiikin, visuaalisuuden ja vuorovaikutuksen avulla. (Greeley 2019.)

2.2 Ensimmäiset rytmipelit

Rytmipelien juuret sijoittuvat jo 1970-luvun alkuun, jolloin Japanissa Kasco (Kansei Seiki Seisakusho) kehitti rytmiin pohjautuvan elektronisen kolikkopelin (Shmuplations 2001).

Toinen rytmiin pohjautuva elektroninen peli oli 1978 Ralph Baerin ja Howard Morrisonin kehittämä käsikonsolille suunniteltu muistitaitopeli Simon (Kuva 1). Simonissa konsoli luo sarjan ääniä ja valoja ja vaatii käyttäjän toistamaan jakson. Jaksojen sekvensseistä tulee jatkuvasti monimutkaisempia. Simon oli menestys ja siitä tuli pop-kulttuurin symboli 1970- ja 1980-luvuilla. (National Museum of American History 2021.)

(8)

Kuva 1. Simon-muistitaitopeli (National Museum of American History 2021)

Dance Aerobics julkaistiin Nintendolle vuonna 1987. Siinä käytettiin Power Pad-nimistä mattoa, jonka painikkeiden päälle astuttiin jaloilla. Power Padia myytiin myös nimellä Fam- ily Fun Fitness ja Family Trainer. Dance Aerobicsissa oli tarkoitus seurata ohjaajan liik- keitä astumalla oikeille napeille musiikin soidessa (Kuva 2). Joissakin edistyneemmissä tasoissa pelaajan tuli käyttää myös käsiään. Tämä oli ensimmäinen peli, joka perustui ajoitukseen. Toiminnaltaan ja musiikiltaan se oli yksinkertainen, mutta se oli pohjana gen- ren nousulle 10 vuoden kuluttua. (Greeley 2019.)

Kuva 2. Dance Aerobicsin pelinäkymä (Pinterest 2021)

(9)

1996-luvulla rytmipelit nousivat suureen suosioon, kun Beatmania julkaistiin pelihalleihin ja itsenäisesti tuotettu PaRappa the Rapper julkaistiin konsoleille. Se oli parannettu versio Dance Aerobicsista, jossa kuunneltiin osa kappaleesta, katsottiin vaadittavat painallukset ja matkittiin niitä. PaRappa oli pelin päähenkilö ja sen tuli suorittaa tasot räppäämällä. Peli oli valtava menestys ympäri maailman ja myöskin monet kriitikot ylistivät sitä. (Greeley 2019.)

Beatmania oli rytmipelien pioneerin, Konamin valmistama ja se toi genrelle täysin uuden- laisen konseptin. Sen pelattavuus oli reaaliaikaista ja siinä käytettiin DJ-pöytää (Kuva 3) sekä alkuperäisiä kappaleita eri genreistä aina hip-hopista teknoon. Beatmania julkaistiin myös kotikonsoleille ja kannettaville laitteille myyden miljoona kappaletta. Sitä ei koskaan kehitetty tietokoneille, mutta siitä on epävirallisia kopioita, joissa on mahdollista pelata näppäimistöllä. (Greeley 2019.)

Kuva 3. Beatmania IIDX -pelin DJ-pöytä (Wikimedia 2021)

Vuonna 1998 julkaistiin Dance Dance Revolutionista (DDR) ensimmäinen versio kolikko- pelikonsoleille. Tämä käytännössä aloitti tanssipeligenren. Pelissä tulee nuolia ylöspäin ruudun alalaidasta musiikin tahtiin. Ruudun ylälaidassa on staattiset nuolet ja liikkuvien nuolten kohdatessa tulee pelaajan painaa vastaavaa nuolipainiketta jalallaan

(10)

tanssimatolla. Yksinpeli-moodissa pelaaja käyttää neljää nuolipaneelia. Kaksinpelissä mo- lemmilla on neljä nuolipaneelia käytössään (Kuva 4) ja Double-moodissa yksi pelaaja käyttää kahta mattoa ja kahdeksaa nuolta. Peli antaa jatkuvaa palautetta osumatarkkuu- desta teksteillä ”Perfect”, ”Great”, ”boo”, ”O.K” tai ”miss”. Loppua kohden saa enemmän pisteitä ja lopuksi pelaaja saa arvosanan suorituksestaan. DDR:stä on julkaistu myös lu- kuisia konsoliversioita ja suosituin klooni tietokoneelle on ilmainen Stepmania. (Dance Dance Revolution Fandom 2021.)

Kuva 4. Dance Dance Revolution A pelihallissa (Polygon 2017)

Ennen Guitar Herojen tulemista markkinoille julkaistiin myös muitakin tuotoksia, kuten esi- merkiksi Donkey Konga, jossa tarkoituksena on rummuttaa ohjaimella, SingStar, jossa lauletaan mikrofoniin musiikin soidessa taustalla ja Amplitude, jossa pelaaja kontrolloi Beat Blaster-nimistä laivaa. Kappaleissa on raitoja eri instrumenteille ja musiikin soidessa instrumentit vaihtuvat ja pelaaja suorittaa osuuksia esimerkiksi syntetisaattorille, bassolle ja rummuille. (Greeley 2019.)

Dance Dance Revolutionista luotiin lukuisia kopioita sekä jatko-osia ja tämä sai rytmipeli- genren pysähtymään joksikin aikaa. Genre kuitenkin lähti jälleen uuteen nousuun, kun uu- sia innovaatioita tuotiin markkinoille. (Navarro 2009.)

(11)

2.3 Suosion nousu uudelleen

Vaikka pelit kuten FreQuency ja Amplitude keräsivät arvostusta kriitikoiden keskuudessa, sekä voittivat myös muutamia kilpailuja, niin ne eivät kuitenkaan myyneet kovinkaan pal- joa. Kuitenkin ne nostivat niiden kehittäjää, Harmonixia esille niin, että Konami halusi ke- hittää Karaoke Revolutionin heidän kanssaan. Karaoke Revolution on saman tyyppinen SingStarin kanssa. Erona on se, että kappaleet ovat kovereita suosituista lauletuista pop- hiteistä karaokebaareissa, kun taas SingStarissa kappaleet ovat alkuperäisiä. Yhteistyö Konamin kanssa oli Harmonixille merkittävää ja mahdollisti potentiaalin maailmanlaajui- seen suosioon. (Greeley 2019.)

Vuonna 2004 RedOctane aloitti yhteistyön Harmonixin kanssa, jolla oli jo vuosien koke- mus rytmipelien kehittämisestä. RedOctane suunnitteli kitaran muotoisen kontrollerin, jossa oli viisi eriväristä nappia otelaudassa ja yksi rungossa. Yhteistyössä Harmonixin pe- lillisyyden asiantuntemuksen kanssa he loivat Guitar Heron, joka julkaistiin ensimmäisen kerran vuonna 2005. (Greeley 2019.)

Guitar Herossa soitetaan kitarakontrollerilla soolo- ja rytmikitaraa sekä bassoa lukuisissa eri kappaleissa. Otelaudalla olevia nappeja painetaan ruudulta tulevien nuottien mukai- sesti (Kuva 5) ja samalla kompataan rungossa olevalla napilla, jonka paikalla käytettäisiin plektraa oikealla kitaralla. Joissakin osuuksissa riittää kuitenkin pelkkä otelaudan näppäily aivan kuten oikeallakin kitaralla ja kontrollerissa on myös vibrakampi, jolla voi venyttää nuotteja ja tehdä vibrato-efektejä. Tarkoituksena on pitää yleisö innostuneena ja kerätä mahdollisimman paljon pisteitä. Jos kappaletta soittaa huonosti, yleisö alkaa buuata ja on mahdollista, että soitto keskeytyy ja epäonnistuu. Toisin kuitenkin kuin monissa muissa rytmipeleissä, kuten DDR:ssä, osumatarkkuutta ei tarkasteta, vaan pelaaja saa saman pistemäärän osuessaan nuottiin. (Guitar Hero Fandom 2021.)

(12)

Kuva 5. Guitar Heron pelinäkymä (Game Informer 2015)

Alun perin Guitar Herossa käytettiin koveri-versioita kappaleista, mutta myöhemmin kap- paleiden alkuperäisiä versioita. Peliä pystyy pelaamaan yksin, vastakkain ja yhteistyössä toisen pelaajan kanssa. Kappaleet ovat pääosin rock-tyylisiä ja useat niistä ovat laajalle yleisölle tuttuja, kuten esimerkiksi ”Ace of Spades ja ”Smoke on the Water. (Guitar Hero Fandom 2021.)

Guitar Herosta julkaistiin toinen versio PlayStation 2:lle vuonna 2006 ja se oli joulukuussa konsolin toiseksi myydyin peli. Peli sai arvostusta kriitikoilta ja sen keskiarvo Metacritic- arviosivustolla oli 92%. Myöhemmin Guitar Herosta on julkaistu lukuisia eri versioita. Vii- meisin versio on vuonna 2015 julkaistu Guitar Hero Live. Pelisarjan suosio on kuitenkin hiipunut, eikä se ole enää saavuttanut samanlaista käyttäjäkuntaa mitä alussa. (Guitar Hero Fandom 2021.) Taulukossa 1 on esitetty Guitar Hero -sarjan pelit.

Titteli Julkaisuvuosi

Pääsarja

Guitar Hero 2005

Guitar Hero II 2006

Guitar Hero III: Legends of Rock 2007

Guitar Hero World Tour 2008

Guitar Hero 5 2009

Guitar Hero: Warriors of Rock 2010

Guitar Hero Live 2015

Spin-offit

(13)

Guitar Hero Encore: Rocks the 80s 2007

Guitar Hero: Smash Hits 2009

Band Hero 2009

Bändeihin liittyvät spin-offit

Guitar Hero: Aerosmith 2008

Guitar Hero: Metallica 2009

Guitar Hero: Van Halen 2009

On Tour-sarjat

Guitar Hero: On Tour 2008

Guitar Hero On Tour: Decades 2008 Guitar Hero On Tour: Modern Hits 2009 Laitteet

Guitar Hero Air Guitar Rocker 2008

Guitar Hero Carabiner 2008

Guitar Hero 2nd Edition Carabiner 2009

Guitar Hero Arcade 2009

Mobiiliipelit

Guitar Hero Mobile 2008

Guitar Hero III Backstage Pass 2009 Guitar Hero World Tour Mobile 2010

Guitar Hero (iOS) 2010

Guitar Hero 5 (Android) 2010

Guitar Hero 6 (Android) 2010

Guitar Hero Live (iOS) 2015

Kokoelmat

Guitar Hero & Guitar Hero II Dual Pack 2007 Guitar Hero II & Guitar Hero: Aerosmith

Dual Pack

2008 Guitar Hero: On Tour & Guitar Hero On

Tour: Decades Box Set

2008 Guitar Hero III: Legends of Rock & Guitar

Hero: Aerosmith Dual Pack

2008 Peruutetut

Guitar Hero 7 2011

Taulukko 1. Guitar Hero -sarja (Guitar Hero Fandom 2021)

(14)

Guitar Heron menestyksen myötä MTV Games ja Activision ostivat Harmonixin ja RedOc- tanen. Guitar Herolle kehitettiin seuraaja, Rock Band vuonna 2007, joka myöskin tuotti yli miljardi dollaria. Pelissä kasataan kokonainen bändi, johon voi kuulua laulaja, soolokita- risti, basisti ja rumpali. Instrumenteille on kehitetty niitä vastaavat kontrollerit ja samoin kuin Guitar Herossa, pelaajat seuraavat ruudulta tulevia nuotteja ja soittavat kontrollerilla niiden mukaisesti. (Greeley 2019.)

Rock Bandissa on lukuisia eri moodeja ja sitä voi pelata moninpelinä sekä lokaalisti (Kuva 6), että verkon välityksellä. Enintään neljä henkilöä voi pelata yhtä aikaa. Myöhemmin ke- hitetyssä kolmosversiossa voi kuitenkin olla jopa 7 henkilöä mukana, lisänä kosketinsoit- taja ja kaksi taustalaulajaa. Kuten SingStarsissakin, laulusta saa pisteitä sitä enemmän, mitä paremmin pysyy alkuperäisessä sävelkorkeudessa. Yhteistyössä bändi saa yhteisen pistemäärän. Pelissä on myös ”Overdrive”-mekaniikka, jonka pelaajat voivat aktivoida strategisesti sopivassa kohtaa saaden enemmän pisteitä. Mikäli jäsen ei soita tarpeeksi hyvin, niin hän saattaa tippua pois ja instrumentti mykistetään kappaleesta. Overdrive-me- kaniikan avulla toinen bändin jäsen voi kuitenkin ”pelastaa” tippuneen jäsenen takaisin mukaan soittoon. On kuitenkin mahdollista että koko bändin soitto epäonnistuu ja yhden- kin soittajan tippuminen vaikeuttaa koko kappaleen suoritusta. (Rock Band Fandom 2021.)

Kuva 6. Rock Band, jossa rummut ja kaksi kitaraa (Houle Games 2021)

(15)

Kuten Guitar Herokillakin, Rock Bandilla on ollut suuri vaikutus kulttuuriin. Harmonixin pe- rustajat Alex Rigopulos ja Eran Egozy listattiin Time Magazinen 100:n eniten vaikutusval- taisimman ihmisen joukkoon vuonna 2008 Rock Bandin luomisen myötä. Molemmat pelit sopivat hyvin niin satunnaisille kuin ahkerillekin pelaajille. Kehittäjät ymmärsivät myös tun- nettujen kappaleiden sisällyttämisen tärkeyden, sillä se helpotti niitä jotka eivät pelaamista paljon harrastaneet. (Van Zandt 2008.)

Valtavasta menestyksestä huolimatta nämä rytmipelit eivät kuitenkaan jääneet pinnalle.

Vuonna 2010 lukuisten spin-offien ja jatko-osien jälkeen molemmat jäivät tauolle. Kaikki uudet osat 2005-vuodesta asti olivat vain variaatioita edellisistä versioista eikä mitään uu- sia innovaatioita tuotu esille. Ei voi kuitenkaan sanoa että pelit olisivat kokonaan hävin- neet, mutta niiden myynti tippui enemmän normaaleihin lukuihin. Mobiilirytmipelit sekä liik- keentunnistukseen perustuvat pelit alkoivat nousta enemmän pinnalle ja niistä tulikin ryt- mipelien uusi tulevaisuus. (Greeley 2019.)

2.4 Rytmipelit nykyisin

2010-luvulta lähtien rytmipeleissä on nähty paljon uusia teknologioita etenkin indie-pelien suuren nousun myötä. Varsinkin mobiilipelejä on noussut paljon esille, kuten esimerkiksi Cytus, Tap Tap Revenge, sekä Groove Coaster. Liikkeentunnistukseen perustuvista ryt- mipeleistä Just Dance on etenkin ollut pinnalla. Asiantuntijoiden mielestä tanssipelit tule- vat pysymään suosiossa, vaikka lisälaitteisiin perustuvat pelit ovatkin hiipuneet. (Greeley 2019.)

Geometry Dash on ruotsalaisen kehittäjän Robert Topalan (tunnetaan myös nimellä RobTop) vuonna 2013 luoma rytmiin pohjautuva tasohyppelypeli. Se on alun perin kehi- tetty mobiililaitteille (iOS, Android), mutta julkaistu myös joulukuussa 2014 PC:lle ja Ma- cille. (Geometry Dash Fandom 2021.) Peli on sivusta päin kuvattu ja siinä neliön muotoi- nen hahmo kulkee erilaisten tasojen läpi, joissa on erilaisia geometristen kuvioiden muo- toisia esteitä (Kuva 7). Liikkuminen on automaattista ja pelissä käytetään vain yhtä nap- pia, jolla hypätään. Kosketusnäytöllisissä mobiililaitteissa tämä tarkoittaa ruudun näpäyttä- mistä.

Geometry Dashin rytmiin pohjautuminen tulee siitä, että hyppyjen paikat on sijoitettu niin, että pelaaja voi painaa hyppyä taustalla soivan musiikin rytmin mukaisesti. Myöskin toisi- naan esteet nousevat ja värit vaihtuvat tai vilkkuvat musiikin tahdissa. Eri osioihin siirty- essä liikkuminen voi muuttaa muotoaan esimerkiksi toiseen suuntaan, ylösalaisin tai lentä- väksi. Ellei pelaaja pelaa harjoitusmoodissa, joutuu tason aloittamaan aina alusta, mikäli

(16)

kerran epäonnistuu. Tämän takia tasoja täytyy yleensä harjoitella etukäteen ja vaatii monta yritystä ennen kuin tason läpäisy onnistuu.

Kuva 7. Geometry Dashin pelinäkymä

Yousician on suomalainen musiikkiapplikaatio, jonka avulla voi opetella soittamaan kita- raa, pianoa, ukulelea, bassoa tai opettelemaan laulua. Yousician-yrityksen perustivat Chris Thür ja Mikko Kaipainen vuonna 2010. He halusivat saada soitonopetuksen kaikkien ulottuville. (Melvin 2021.) Sovelluksessa tulee monien muiden rytmipelien tapaan ruudulta informaatiota, jonka mukaan tulee soittaa. Siinä kuitenkin käytetään oikeita instrumentteja ja samalla käyttäjä oppii soittamaan tai laulamaan.

Yousicianin äänisignaalin käsittelyteknologia opastaa käyttäjää musiikki-instrumenttien soitossa. Käyttäen mikrofonia apuna, sovellus antaa palautetta soiton tarkkuudesta ja ajoi- tuksesta. Kuvassa 8 on kitaraopetus-näkymä, jossa on sekä sointuja, että yksittäisiä nuot- teja. Liikkuva valkoinen pallo osoittaa, missä kohdassa edistytään. Käyttäjä saa myös pis- temäärän suorituksestaan ja voi verrata sitä muiden käyttäjien suorituksiin tulostaulussa.

Sovelluksessa on myös harjoitusmoodi, jonka avulla käyttäjä voi harjoitella tiettyjä osuuk- sia kappaleesta ja sen avulla voi myös hidastaa kappaletta. Yousicianissa on jokaiselle instrumentille omat tuntisuunnitelmat, jotka koostuvat ohjauksesta, harjoituksista, vide- oista ja minipeleistä. (Yousician 2021.)

(17)

Kuva 8. Yousicianin kitaraopetus-näkymä

Beat Saber on tsekkiläisen Beat Games-yrityksen kehittämä virtuaalitodellisuudessa pe- lattava rytmipeli. Peli julkaistiin Windowsille ja PlayStation 4:lle 21. Toukokuuta 2019 ja se on kehitetty Unity-pelimoottorilla. (Beat Saber Fandom 2021.)

Pelissä käytetään VR liikkeenohjaimia, joiden avulla pidetään kahta hohtavaa sapelia kä- sissä. Sapelit ovat oletuksena punaisen ja sinisen värisiä. Kappaleissa tulee virtana pelaa- jaa kohti tulevia laatikoita synkroonissa kappaleen tahdin kanssa (Kuva 9). Laatikot voivat olla 12 eri paikassa 4x3-kokoisessa ruudukossa. Joissakin kappeleissa on myös vaihtoeh- tona, että laatikot tulevat kohti pelaajaa joka puolelta. Laatikot ovat eri värisiä ja niihin pi- tää iskeä väriä vastaavalla sapelilla. Laatikoissa on myös nuolia, jotka osoittavat, mihin suuntaan pelaajan tulee sapelilla iskeä. Joissakin laatikoissa kuitenkaan ei ole nuolta, jol- loin pelaaja saa iskeä haluamaansa suuntaan. Kun laatikko on tuhottu, saa siitä pisteet heilautuksen pituuden, kulman ja tarkkuuden perusteella. Lisäksi tasoissa on pommeja, joihin tulee välttää osumasta ja seiniä, joihon pelaajan pää ei saisi osua. (Beat Saber Fan- dom 2021.)

(18)

Kuva 9. Beat Saberin pelinäkymä (Steam 2021)

Rytmipelejä käytetään myös edistämään terveyttä. Tutkimukset ovat osoittaneet, että tanssipelit lisäävät merkittävästi energiankulutusta perinteisiin videopeleihin nähden ja että ne voivat polttaa kaloreita enemmän kuin juoksumatolla käveleminen. Tiedemiehet ovat ehdottaneet, että lapset voisivat käyttää enemmän aikaa fyysistä aktiviteettia vaativiin videopeleihin estäen lihomista. (Graf ym. 2009.) Guitar Heroja on käytetty muun muassa fysioterapiassa auttaen toipumaan aivohalvauspotilaita, sillä niissä tarvitaan monen raajan koordinaatiota (Campbell 2009). Guitar Hero ja Rock Band ovat saaneet ihmiset myös in- spiroitumaan kitaransoitosta. Youth Musicin tutkimuksen mukaan 2.5 miljoonaa 12 miljoo- nasta lapsesta Isossa Britanniassa alkoi opetella oikeiden instrumenttien soittamista pelat- tuaan Guitar Heroa. (Independent 2008.)

(19)

3 UNITY AUDIO 3.1 Äänitiedostot

Unity tukee suurinta osaa standardeista äänitiedostoformaateista ja mahdollistaa miksaa- misen ja masteroinnin reaaliajassa. Sitä voi käyttää myös 3D-tilaefektien luomiseen, kuten kaikuun ja liikkuvaan objektiin (esimerkiksi nopeasti liikkuvan auton ääneen). Äänitiedostot tuodaan Unityyn Audio Clip-tyyppisinä. (Unity Technologies 2020a.)

Tuetut tiedostomuodot ovat AIFF, WAV, MP3, sekä Ogg. Mono, stereo, sekä moni-kana- vainen audio ovat tuettuja aina kahdeksaan kanavaan asti. Myös live-audion nauhoittami- nen on mahdollista pelin aikana tietokoneeseen kytketyn mikrofonin avulla. Tiedostot voi- daan tallentaa erilaisilla näytteenottotaajuus-asetuksilla. Matalin asetus on 11025Hz, mutta 22050Hz tai 48000Hz ovat yleensä parempia vaihtoehtoja. Suuremmat näytteenot- totaajuudet suurentavat tiedoston kokoa. (Unity Technologies 2020a.)

3.2 Audio Clip

Audio Clipit, eli äänileikkeet sisältävät audiodatan, joka toistetaan Audio Sourcen tai Time- linen, eli aikajanan avulla. Äänileikkeen asetuksista voidaan esimerkiksi pakottaa ääni mo- nofoniseksi tai ambisoniseksi ja säätää tiedoston kompressointia. Monofoninen tarkoittaa yksikanavaista ääntä ja ambisoninen tarkoittaa ympäröivää ääntä. Alhaalla näkyy myös äänen aaltomuoto ja sitä voidaan toistaa valitusta kohdasta. (Unity Technologies 2020b.) Unity osaa lukea valtaosaa äänitiedostomuodoista ja transkoodata sen hetkiselle alustalle.

Kompressointiasetuksista voidaan valita eri muotoja. Yleisesti PCM ja Vorbis/MP3 ovat suotavia, kun halutaan pitää ääni lähellä alkuperäistä. PCM on erittäin kevyt suorittimen vaatimuksiin nähden, sillä ääni on kompressoimatonta ja se luetaan muistista. Vorbis/MP3 mahdollistaa äänen laadun huonontamisen tarvittaessa. ADPCM-asetus käyttää vähän enemmän suorittimen muistia kuin PCM, mutta huomattavasti vähemmän kuin Vor- bis/MP3. (Unity Technologies 2020b.)

Voidaan valita, ladataanko äänileike taustalla silloin kun scene avautuu, vai ladataanko se etukäteen. Myöskin voidaan valita tapa, jolla äänileike ladataan. Jos valitaan ”Decomp- ress On Load”, äänileike puretaan heti kun se on ladattu. Tämä sopii hyvin pienempiin tie- dostoihin välttäen suorituskyvyn kuormittumista. Kuitenkin täytyy muistaa, että Vorbis-ää- nen purkaminen etukäteen vie 10 kertaa enemmän muistia, joten isommissa äänitiedos- toissa tätä asetusta ei kannata käyttää. Valitessa ”Compressed In Memory” pidetään ääni kompressoituna ja puretaan se toistettaessa. Tämä sopii hyvin isompiin tiedostoihin, sillä

(20)

kompressoimattomana se veisi huomattavan osan muistia. ”Streaming”-vaihtoehdolla pu- retaan ääni lennossa.

Kompressoinnin liukusäätimellä voidaan säätää pakkaamisen voimakkuutta ja yleisesti olisi hyvä säätää sitä alemmas, kunnes äänenlaadun heikkeneminen alkaa kuulua. Sitten taas vähitellen lisätä arvoa, kunnes havaittu laadun heikkeneminen katoaa. (Unity Tech- nologies 2020b.)

3.3 Audio Source

Audio Source eli äänilähde on komponentti, jonne äänileikkeet voidaan sijoittaa. Audio Sourcen voi toistaa joko Audio Listenerin tai Audio Mixerin läpi ja se voi toistaa kaiken tyyppisiä Audio Clippejä. Clipit voidaan toistaa 2D:nä, 3D:nä, taikka näiden yhdistelmänä (SpatialBlend). Näitä voidaan kontrolloida komponentin sisäisten käyrä-asetusten avulla.

(Unity Technologies 2020c.)

Komponentissa on parametreja, joiden avulla säädetään kuinka ja miten ääni halutaan toistaa (Kuva 10). Kehittäjä voi päättää, soitetaanko leike ”Awake”-funktiossa silloin kun scene ladataan, vai kutsutaanko sitä erillisessä funktiossa skriptin avulla. ”Loop”-asetuk- sella komponentti toistaa äänilähdettä uudestaan niin kauan, kunnes toiminta lakkaa.

Tämä on käytännöllistä esimerkiksi askelten äänissä, sillä ne jatkuvat niin kauan, kunnes toiminto keskeytetään. ”Priority”-asetuksella tarkoitetaan äänen tärkeysluokitusta ja sillä varmistetaan, ettei ääni katkea missään vaiheessa. Korkea ”Priority”-asetus kannattaa asettaa esimerkiksi taustamusiikille. Matalampi arvo tarkoittaa korkeampaa tärkeysluoki- tusta. Komponentissa on myös parametreja esimerkiksi äänenvoimakkuuteen, sävelkor- keuteen, sekä panorointiin ja kaikkia näitä voidaan säätää myös pelin kulun aikana skrip- tin tai animaation avulla. (Unity Technologies 2020c.)

(21)

Kuva 10. Audio Source ja sen säädettävät parametrit

3.4 Audio Listener

Oikeassa elämässä äänilähteet tuottavat värähtelyjä ympäristössä. Kuulija vastaanottaa nämä värähtelyt ja pystyy kertomaan tämän perusteella, mistä suunnasta ääni tulee ja kuinka voimakas se on. Audio Listener mallintaa tätä kuulijaa ja se on oletuksena asetet- tuna pääkameraan. Kehittäjä voi myös halutessaan laittaa kuuntelijan toiseen peliobjek- tiin, kuten esimerkiksi pelaajaa edustavaan objektiin, jolloin toistettu audio perustuu pelaa- jan sijaintiin kameran sijaan. Yhdessä scenessä voi olla vain yksi Audio Listener ja siinä ei ole säädettäviä parametreja. (Unity Technologies 2020d.)

3.5 Timeline

Unity Timeline (aikajana) on komponentti, joka on lisätty peliobjektiin. Tätä voidaan edi- toida aikajanan ikkunassa ja sen avulla kontrolloidaan animaatioita, sekä objektien elin- kaaria. Aikajanan avulla voi luoda elokuvamaista sisältöä, pelin sekvenssejä, sekä komp- lekseja partikkeli-efektejä. Sen voi asentaa projektiin Unity Packages-valikosta. Aikaja- naan voi nauhoittaa tai piirtää animaatioita Animation-komponenttia hyödyksi käyttäen ja myös funktioiden kutsuminen skripteistä on mahdollista sen avulla. Myös audion voi sijoit- taa aikajanalle soimaan sen kulun mukaisesti. Kustomoitujen animaatioiden luominen skriptin avulla ja niiden sijoittaminen aikajanalle on myös mahdollista. (Unity Technologies 2019.)

(22)

Objektit sijoitetaan aikajanalle raitoina, joihin toistettava osuus sijoitetaan leikkeinä. Käy- täntö on samantyyppinen kuin monissa audiosekvensseri-ohjelmistoissa. Leikkeiden pi- tuutta voidaan säätää hiirellä vetämällä. Asetuksista voi säätää myös esimerkiksi raidan nopeuskertoimen ja ”Loop”-asetuksen. Raitoja voidaan organisoida luomalla niille ryhmiä.

Myöskin raitoja voidaan häivyttää (fade) sekä yhdistää toisiin raitoihin (blend). Editoimisen avuksi aikajanaan voidaan luoda markereita esimerkiksi merkkaamaan eri osuuksia tai soivan musiikin tahteja. (Unity Technologies 2019.) Kuvassa 11 on aikajana, jossa on luotu musiikin iskuille markerit ja animaatiot on jaettu omiin ryhmiinsä.

Kuva 11. Timeline-ikkuna

3.6 Audio Mixer

Mikserin avulla voidaan luoda monimutkaisempia reitityksiä Audio Sourceille ja miksata ääntä. Mikserissä voi käyttää myös efektejä ja masteroida ääntä. Efektejä ovat esimerkiksi kompressori, särö, kaiku ja flanger. Kuten tavallisessakin mikserissä, kanavien äänenvoi- makkuutta voidaan säätää fader-säätimen avulla ja niitä voidaan laittaa soimaan yksin (solo), mykistää (mute) tai kaikki efektit voidaan ohittaa (bypass). (Unity Technologies 2020e.)

Mikseri ja reititys mahdollistavat äänien kategorisoinnin pelissä. Tietyt äänet voidaan oh- jata saman kanavan läpi ja näin muokata niitä ryhmänä. Esimerkiksi taustaääniä voi vai- mentaa yhtäaikaisesti tai äänille voi asettaa alipäästösuodattimen (low pass filter) kun

(23)

ollaan veden alla. Taustamusiikin voi myös ohjata oman kanavan läpi ja näin sitä voidaan esimerkiksi vaimentaa dialogin aikana. Mikseriä voidaan käyttää tehokkaasti luomaan tun- nelmia peliin. (Unity Technologies 2020e.) Kuvassa 12 on luotu musiikille ja efekteille omat kanavat ja kaikki äänet ohjataan master-kanavan läpi.

Kuva 12. Audio Mixerin näkymä

Mikserin asetuksista voidaan tallentaa myös tilannekuvia (snapshot). Näin voidaan tehdä erilaisia asetuksia eri tilanteita varten ja vaihtaa niitä nopeasti valitsemalla toinen tilanne- kuva. Myös kahden tilannekuvan välinen interpolointi on mahdollista, jossa asetus vaihde- taan häivyttämällä. (Unity Technologies 2020e.)

(24)

4 KEHITYS 4.1 Tausta

Projektin idea syntyi Geometry Dash-pelin pohjalta ja tarpeesta mahdolliselle uudelle yri- tykselle, jossa audion synkronointia voitaisiin käyttää hyväksi. Pelissä objektit liikkuvat ja värit vaihtuvat musiikin rytmin mukaisesti ja myös esteitä on sijoitettu siten, että hyppyjä voidaan suorittaa musiikin iskujen mukaisesti. Peli toimii 3D-ympäristössä ja siinä on myös sivuttaisliike mukana, jota ohjataan ruudun vasemmalla laidalla ja hyppy suoritetaan painamalla ruudun oikeaa laitaa. Hypätessä kiekko tekee myös voltin, josta pelille on an- nettu nimitys Disk Flip.

4.2 Audio

Projektin äänet ja musiikki on kehitetty käyttäen FL Studio 20-audiosekvensseriohjelmis- toa ja sen sisäisiä efektejä ja syntetisaattoreita. Musiikit on tehty etukäteen ja sen jälkeen rakennettu niille tasot Unityssä. Äänitiedostot on viety WAV-formaattiin ja niissä käytetään Vorbis-kompressointia. Kappaleiden pituus yhdessä tasossa on noin minuutti ja kolme- kymmentä sekuntia.

4.2.1 FL Studio 20

FL Studio 20 on belgialaisen Image-Linen kehittämä digitaalinen musiikinteko-ohjelma. Se tunnettiin aiemmin nimellä Fruity Loops, mutta sen nimi muutettiin vuonna 2001 ja muutos on ollut kannattava, sillä ihmiset lähestyivät ohjelmaa helpommin studiona. Ohjelma on muuttunut paljon alkuajoistaan ja useat tunnetut artistit ovat kertoneet käyttävänsä sitä musiikin tuottamiseen. Projektissa on käytössä FL Studio All Plugins Bundle, jossa on mu- kana sen kaikki sisäiset lisäosat.

4.2.2 Syntetisaattorit ja efektit

Kappaleissa käytetään enimmäkseen Sytrus- ja Harmor-syntetisaattoreita, mutta myös FLEX’iä- ja Toxic Biohazard-syntetisaattoria. Jotkut instrumentit on rakennettu yhdistäen monta äänilähdettä käyttäen Patcheria. Kuvassa 13 on yhdistetty kaksi syntetisaattoria ja niitä automatisoidaan X-Y-kontrollerin avulla. Toisen tason musiikissa on käytössä myös kitarasta itse äänitetty äänilähde, jota voidaan toistaa DirectWave-samplerin avulla. Ää- niefektit on muokattu äänikirjastojen tiedostoista tai käytetty apuna Sytrus-syntetisaattoria.

Instrumenttien sisäisinä efekteinä käytetään yleisesti taajuuskorjainta ja kompressoria.

Myöskin viivettä käytetään etenkin lead-äänissä ja stereo enhanceria pad-äänissä.

(25)

Rummuissa käytetään äänikirjastojen rumpu-sampleja ja niitä toistetaan FPC-samplerin avulla. Instrumenteissa käytetään myös automaatiota muokaten niiden sointia kappaleen kuluessa. Master-raita on kompressoitu ja limitoitu Maximus-efektin avulla.

Kuva 13. Patcherissa yhdistetyt syntetisaattorit

4.3 Kehitys Unityssä

Audion synkronointi on toteutettu aikajanan avulla sijoittamalla siihen musiikkiraita ja ob- jektien liikkeet sekä värin vaihdot animaatioina. Pelaaja liikkuu tasaisella nopeudella 20 metriä Unityn ruudukossa yhden tahdin aikana toistuvan animaation avulla. Nopeus voi kuitenkin vaihtua kappaleen kuluessa kaksinkertaiseksi, jolloin pelaaja liikkuu 40 metriä yhden tahdin aikana. Kameralle on asetettu erilaisia kuvakulmia käyttäen Cinemachine- komponenttia sijoittamalla ne aikajanalle ja vaihtamalla niitä häivyttämällä kappaleen eri osioihin siirtyessä. Aikajanaan on sijoitettu myös loppuefekti, joka toistuu silloin kun pe- laaja läpäisee tason. Siinä räjähtää kolme ilotulitusta ja tulee tekstit sekä napit ruudulle musiikin tahdissa. Ensimmäiseen tasoon on myös sijoitettu kaiutinta muistuttavia objek- teja, joiden koko vaihtuu sulavasti musiikin aaltomuodon mukaan käyttämällä avuksi Uni- tyn audiospektridataa.

Aikajanaan on merkattu tahdit ja iskut markereina editori-skriptin avulla. Yhden markerin valitsemalla näkee kyseisen tahdin ja iskun, esimerkiksi neljännen tahdin kolmas isku on merkattu numerolla 4.3. Samassa ikkunassa näkee myös aikajanan ajan ja

(26)

ruudunpäivityksen arvon kyseisen markerin kohdalla. Animaatiot sijoittuvat siirtämällä markereiden kohdalle, joka mahdollistaa liikkeiden toteutumisen tahtien mukaisesti. Ani- maatiot on organisoitu ryhmittäin yleisiin, värien vaihtoon, objektien liikkeisiin ja loppuefek- tiin.

Tasoissa on myös informaatiokylttejä, joiden sisällön väri vilkkuu musiikin tahdissa. Nämä eivät ole sidoksissa aikajanaan, vaan niiden nopeus määritetään niihin sijoitetun skriptin avulla ja värin vaihto tapahtuu Animator-komponentin avulla, johon on sijoitettu animaatio värin vilkkumiseen. Skriptiin sijoitettu nopeuden asetus säädetään Animator-komponentin nopeudeksi silloin kun scene ladataan ja skriptissä on myös vaihtoehtoinen ”Delay”-ase- tus, jonka avulla voidaan viivästyttää animaation alkamista.

Objektit on rakennettu Blender-mallinnusohjelmalla. Suurimmalle osalle esteistä ja kentän reunoilla oleville objekteille on reunuksille erilliset materiaalit, jolloin voidaan vaihtaa mo- lempien väriä näin halutessa. Skybox, lattian väri ja objektien pääväri sekä reunusten väri on laitettu omiin ryhmiinsä erillisen skriptin avulla (Kuva 14). Tämän skriptin avulla vaihde- taan aikajanassa ryhmien väriä, mutta myös yksittäisten objektien väriä vaihdetaan sijoit- tamalla objektit yksittäisinä aikajanalle. Yksittäiset objektit vaihtavat myös sijaintia, kokoa, sekä rotaatiota kappaleen kuluessa. Esimerkiksi esteet voivat nousta lattiasta yhden iskun aikana.

Kuva 14. Objektien muunneltavat väriryhmät

Kenttien X-akselin maksimileveys on 12 metriä ja pelaajan liikkuminen sivusuunnassa on rajoitettu kyseiseen leveyteen. Y-akselin maksimikorkeus on 10.5 metriä, jolloin pelaaja ei voi lentää ruudun ulkopuolelle. Kenttien alle on sijoitettu laaja näkymätön trigger, jolloin pudotessa alas kentästä osumalla siihen suoritus epäonnistuu ja pelaaja palaa kentän al- kuun. Sama tapahtuu myös pelaajan osuessa esteeseen, jotka voivat olla piikkejä tai sei- niä.

4.4 Aika-arvot

Pelaajan liikkumiseen on luotu sekunnin kestävä animaatio, jonka aikana pelaaja liikkuu 20 metriä. Animaation nopeutta on muutettu ”Speed Multiplier”-valinnalla suhteuttaen liik- kumisen nopeus soivan kappaleen tempoon. Animaatiota toistetaan jatkuvana koko tason

(27)

ajan ja kun pelaajan nopeus kaksinkertaistuu, kerrotaan ”Speed Multiplier”-osio kahdella.

Kuvassa 15 on aikajanalle sijoitettu toistuva animaatio pelaajan liikkumiseen, jossa no- peuskerroin on pyöristettynä 1.17.

Kuva 15. Aikajanalle sijoitettu animaatio

4.4.1 Toolstudio

Animaatioiden aika-arvojen laskemiseen käytetään apuna toolstud.io-sivuston BPM-las- kinta, johon sijoitetaan kappaleen tempo ja tahtilaji, jolloin se laskee sille arvoja, joita käy- tetään animaatioiden nopeuksien säätämiseen ja tahteja merkitsevien markereiden lisää- miseen. Kuvassa 16 on toisen tason musiikin 140 tempolle ja 4/4 tahtilajille lasketut tulok- set. Näistä esimerkiksi yhden iskun pituus, eli 429 millisekuntia asetetaan markereiden vä- lietäisyydeksi aikajanalla. Alemmista hertsilukemista voidaan asettaa nopeuskerroin pe- laajan liikkumisen animaatiolle.

Kuva 16. Toolstudion tulokset

4.4.2 Kaavat

Animaatioiden aika-arvot voidaan laskea myös yksinkertaisilla kaavoilla. Näin saadaan tarkemmat tulokset tarvittaessa, sillä Toolstudion arvot ovat pyöristettyjä. Kaavalla 1 las- ketaan yhden tahdin pituus millisekunteina.

(28)

𝐵𝑃𝐵

𝐵𝑃𝑀∗ 60 𝐵𝑃𝐵 = 𝐵𝑒𝑎𝑡𝑠 𝑝𝑒𝑟 𝑏𝑎𝑟 𝐵𝑃𝑀 = 𝐵𝑒𝑎𝑡𝑠 𝑝𝑒𝑟 𝑚𝑖𝑛𝑢𝑡𝑒 (Kaava 1)

Jos tällä kaavalla halutaan laskea edellisen 140 tempoisen kappaleen yhden iskun pituus sekunneissa, saadaan se laskemalla:

1

140∗ 60 = 0,42857 …

Kaavalla 2 lasketaan taajuus, eli hertsilukema.

𝑓 =1

𝑇 𝑓 = 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 𝑇 = 𝑇𝑖𝑚𝑒 (Kaava 2)

Tällä esimerkiksi yhden iskun taajuus saadaan laskemalla:

1

0,42857= 2,3333 …

Projektissa pelaajan nopeuskerroin laskettiin kaavalla tarkemman tuloksen saamiseksi, sillä pyöristetty arvo ei tuonut tarpeeksi tarkkaa liikettä tasoon.

4.5 Objektien liike

Objektien liikkeet ja värien vaihdot toteutettiin aluksi Unityn normaaleilla animaatioilla, mutta todettiin, että se ei ollut kaikkein tehokkain tapa tehdä asiaa. Tässä ongelmaksi muodostui se, että jokaiselle erilaiselle liikkeelle tai värinvaihdolle täytyi luoda oma ani- maatiotiedostonsa, eikä lähtöarvoa ja loppuarvoa voitu dynaamisesti määrittää, vaan ne olivat ”kovakoodattuina” animaatioon. Myöskin aikajanalle nauhoittamista koitettiin ”Re- cord”-toiminnon avulla, mutta siinä animaatioiden muokkaaminen tuntui tehottomalta. Li- säksi käyrien pisteet eivät sijoittuneet markereiden kohdalle.

Lopulta päädyttiin kehittämään kustomoidut animaatiot Playable-rajapinnan avulla. Liik- keille tehtiin skripti, jolla voidaan asettaa alku- ja loppuarvot suoraan inspectorissa silloin kun animaatio valitaan aikajanalla. Arvoja voi asettaa xyz-koordinaatteina positiolle, rotaa- tiolle ja skaalaukselle (Kuva 17). Tähän tehtiin myös ”disable meshes”, sekä ”disable meshes inverted”-valinnat, joilla voidaan asettaa objekti näkymättömäksi silloin kun ani- maatio alkaa, tai kun se loppuu. Tätä käytetään esimerkiksi liikkuvissa seinissä, jolloin esi- merkiksi lattiasta nousevat seinät eivät näy lattian alapuolella, ennen kuin animaatio al- kaa. Värien vaihdoille tehtiin valinta alkuvärille, sekä loppuvärille, sekä myöskin valinta ha- lutaanko vaikuttaa yhden objektin väriin, vai kaikkiin saman ryhmän väreihin yhtäaikai- sesti.

(29)

Kuva 17. Kustomoidulle liikeanimaatiolle inspectorissa avautuvat asetukset

4.5.1 Aikajanan markerit

Aikajanaan on mahdollista luoda merkkejä, eli markereita asettamaan muistiinpanoja esi- merkiksi eri osuuksille. Projektissa käytetään kustomoitua editori-skriptiä luomaan marke- rit jokaiselle tahdin iskulle. Editori-skripti asettaa napit ”Spawn markers” ja ”Delete mar- kers” markereiden luontiin erikoistuneelle skriptille. Näitä voidaan painaa suoraan edi- tointi-tilassa inspectorissa. ”Spawn markers”-nappi luo syötetyn aika-arvon välein markerit aikajanalle ja ”Delete markers”-nappi poistaa ne.

4.5.2 Kustomoidut animaatiot

Unityn Playable-rajapinta mahdollistaa kustomoitujen animaatioiden luonnin. Apuna käy- tettiin Unity blogista löytyvää artikkelia, jossa näitä opetettiin esimerkkien avulla. Yhden toiminnallisuuden luontiin tarvittiin kolme erillistä skriptiä. Koska peliin tarvittiin sekä liikkei- siin, että värien vaihtoon toiminnallisuudet, tarvittiin yhteensä kuusi skriptiä.

Ensimmäinen näistä on behaviour-skripti, jossa määritetään itse toiminnallisuus. Esimer- kiksi liikkeisiin perustuvassa skriptissä määritettiin Unityn Vector3.Lerp-funktion avulla vektoreiden alku- ja loppupisteet, joihin animaation aikana liikutaan. Tässä oli määritettynä myös objektien näkymättömyyden säätäminen animaation alussa tai lopussa.

Toinen on clipille, eli leikkeelle tarkoitettu skripti, jonka avulla luodaan animaatioleikkeet aikajanalle. Tässä voidaan määrittää myös halutaanko käyttää ekstrapolointiasetusta ani- maatiossa. Tämä tarkoittaa sitä, että voidaan päättää, jätetäänkö animaatio ”hold”-tilaan

(30)

ennen kuin se alkaa ja sen jälkeen kun se päättyy. Projektin animaatioissa käytetään ekstrapolointiasetusta.

Kolmas on aikajanan trackille, eli raidalle tarkoitettu skripti, jonka tarkoitus on toiminnalli- suuteen tarkoitetun raidan luominen. Tälle raidalle voidaan sijoittaa sitä vastaavia leik- keitä.

Behaviour-skriptiin asetettiin myös inspectorissa näkyvä animaatiokäyrä, jonka avulla voi- daan erilaisten aaltomuotojen avulla piirtää, miten animaatio kulkee pisteestä toiseen (Kuva 18). Halutessa voidaan myös esimerkiksi asettaa animaatio palaamaan takaisin lähtöpisteeseen lopuksi. Esimerkiksi valon välkkyminen voidaan asettaa toimimaan sini- tai saha-aaltoina. Käyriä voidaan myös tallentaa muistiin ja ladata ne sieltä, jolloin niitä ei tarvitse aina erikseen piirtää uudelleen.

Kuva 18. Animaatioille tarkoitettu käyrä ja muistiin tallennetut erilaiset muodot

4.6 Audiospektri

Unityssä on mahdollista vastaanottaa audiospektridataa soivasta äänilähteestä ja tehdä sen avulla esimerkiksi visuaalisia efektejä. Projektissa käytetään tähän perustuvaa il- maista SimpleSpectrum-assettia, jonka avulla muokataan kentän laidalla olevia kaiuttimen tyylisiä objekteja niin, että niiden koko suurenee etenkin bassorummun iskusta ja piene- nee sitten vähitellen. Peliin on tarkoitus lisätä myöhemmin enemmän visuaalisia efektejä tätä tekniikkaa käyttäen, esimerkiksi laittamalla kokonainen audiospektri näkyviin jossakin kyltissä. Kuvassa 19 on SimpleSpectrum-assetilla luotu ympyrän muotoinen audiospektri, jossa eri taajuudet näkyvät piikkeinä.

(31)

Kuva 19. SimpleSpectrumilla luotu audiospektri (Asset Store 2018)

(32)

5 PELIN ESITTELY 5.1 Alkumenu

Pelissä on kolme eri sceneä: alkumenu ja kaksi eri tasoa. Alkumenussa on kolme eri va- lintaa: ”Play”, ”Options” ja ”Stats” (Kuva 20). ”Play”-valinnasta pääsee valitsemaan tason.

”Options”-valikossa on pelkästään liikkumisen herkkyyteen vaikuttava liukusäädin ja

”Stats”-valikossa näkyy ”death count”, eli kuolemien lukumäärä. Näihin on kuitenkin tarkoi- tuksena lisätä sisältöä projektin seuraavaan versioon.

Kuva 20. Pelin alkumenu

5.2 Alueet

Tasoissa on erilaisia alueita (zone), joihin siirrytään portaalin kautta. Portaaleissa on info- kyltti, joka ilmoittaa minkä tyyppinen alue on kyseessä (Kuva 21). Alueet voivat vaihtua kappaleen eri osioihin siirtyessä, esimerkiksi siirtyessä alkuintrosta säkeistöön tai säkeis- töstä kertosäkeeseen. Tasoissa on seuraavat alueet:

• Ground Zone: maa-alue, eli normaali alue, jossa pelaaja pysyy maassa ja hyppää painamalla hyppynappia.

• Speed Up Zone: nopeusalue, jossa liikkumisen nopeus kaksinkertaistuu.

• Flit Zone: liitoalue, jossa pelaaja liitää ilmassa ja pystyy nostamaan korkeuttaan painamalla hyppynappia pohjassa. Tässä voi olla myös liitopalloja, joihin pelaajan tulee osua välttääkseen putoamista.

(33)

• Fly Zone: lentoalue, joka on saman tyyppinen liitoalueen kanssa, mutta sisältää erilaiset fysiikat, jossa korkeuden säätäminen hyppynapin avulla on nopeampaa.

• Sidefloor Zone: sivuseinäalue, jossa seinät on sijoitettu kentän sivuille ja paino- voima muuttuu sivuttaiseksi. Painamalla hyppynappia pelaaja vaihtaa painovoiman toisen sivuseinän mukaiseksi.

Kuva 21. Alueiden infokyltit

5.3 Erikoisobjektit

Tasoihin on sijoitettu erikoisobjekteja, joihin osumalla on tietynlainen toiminnallisuus (Kuva 22). Nämä ovat yleensä sijoitettuna soivan kappaleen mukaisesti niin, että pelaaja osuu niihin tahdin iskulla. Tasoissa on seuraavia erikoisobjekteja:

• Jump Circle: hyppy-ympyrä, johon osumalla pelaaja hyppää korkealle.

• Flit Sphere: liitoalueeseen sijoitettuja palloja, joihin pelaajan on osuttava pysyäk- seen ilmassa.

• Jump Sphere: hyppypallo, johon osumalla pelaaja pystyy hyppäämään kerran il- massa.

• Puzzle Piece: kerättävä palanen, joita on neljä sijoitettuna jokaiseen kenttään. Ke- räämällä jokaisen, pelaaja avaa uuden kuvion, jonka voi asettaa kiekkoon. Näitä ei olla välttämättä sijoitettu rytmin mukaisesti, vaan muutoin haastaviin paikkoihin.

Kuva 22. Erikoisobjektit

(34)

5.4 Harjoitusmoodi

Pelissä on mahdollista harjoitella kappaleiden eri osuuksia harjoitusmoodissa (Practice Mode). Harjoitusmoodin voi valita joko tasoa valitessa, tai tasossa olevasta valikosta. Pe- laaja valitsee halutun osuuden (esimerkiksi intro, chorus tai verse) ja haluaako harjoitella toistamismoodissa (repeat), vai jatkuuko kappale automaattisesti eteenpäin seuraavaan osuuteen siirtyessä (continue).

5.5 Ensimmäinen taso

Ensimmäinen taso on nimeltään Sky Rider, sillä siinä on taustalla taivas, sekä liikkuvat pil- vet (Kuva 23). Pelaaja kulkee kentän pilvien yläpuolella. Taso on kahdesta tasosta vä- hemmän haastava, vaikkei kumpikaan ole vasta-alkajalle helppo. Tasossa mennään muu- toin normaalilla alueella, mutta keskivaiheella on liitoalue, jossa on sijoitettu pallot jokai- selle iskulle musiikin tahdissa ja pelaajan tulee osua jokaiseen tai hän putoaa. Soivan mu- siikin tempo tasossa on 155.

Kuva 23. Ensimmäinen taso (Sky Rider)

5.6 Toinen taso

Toinen taso on nimeltään Wavespect ja siinä on yleisesti tummempi teema kuin ensim- mäisessä tasossa (Kuva 24). Taso on näistä kahdesta haastavampi ja se sisältää enem- män liikkuvia objekteja ja värien välkkymistä. Tasossa on normaaleja alueita, sivuseinä- alue, sekä lentoalue. Soivan musiikin tempo tasossa on 140.

(35)

Kuva 24. Toinen taso (Wavespect)

(36)

6 YHTEENVETO

Projektin tavoitteena oli kehittää audion synkronointimenetelmä suhteessa pelin kulkuun ja kehittää sen pohjalta oma rytmipeli Unity-pelimoottorilla. Projektissa tutkittiin myös ryt- mipelien historiaa ja merkitystä, sekä projektissa käytettäviä Unityn audio-komponentteja.

Audion synkronoinnissa päädyttiin käyttämään aikajanaa ja kustomoituja animaatioita tä- hän tarkoitukseen.

Aikaiseksi saatiin 3D-ympäristössä toimiva pilottiversio rytmipelistä mobiililaitteille, jossa on kaksi tasoa. Tasoille kehitettiin myös musiikit FL Studio 20-audiosekvensseriohjelmis- tolla. Peli sisältää erilaisia esteitä, jotka liikkuvat musiikin tahdissa. Myöskin värit vaihtuvat musiikin tahdissa ja pelaaja voi suorittaa hyppyjä musiikin iskujen mukaisesti. Projekti loi hyvän pohjan mahdolliselle uudelle yritykselle ja samaa menetelmää voidaan käyttää jat- kossa luomaan myös esimerkiksi musiikin opettamissovellusta, jossa ruudulta tulee infor- maatiota kappaleen soinnin mukaisesti.

Peli on haastava ja tasoja joutuu todennäköisesti harjoittelemaan etukäteen, ennen kuin ne pystyy läpäisemään kokonaan. Siihen voisi kehittää myös helpompia tasoja, jotka voi- sivat olla aikaisemmassa vaiheessa peliä. Tulevaisuudessa siinä voisi olla myös mahdolli- suus automaattisesti generoituviin tasoihin tai loputtomaan tasoon, jossa olisi tarkoituk- sena päästä niin pitkälle kuin mahdollista. Peli vaatii myös enemmän optimointia etenkin valaistuksen suhteen, mutta koska pääkohteena ovat mobiililaitteet, esimerkiksi dynaa- misten välkkyvien valojen käyttäminen voi olla mobiililaitteiden suorituskyvyn kannalta vai- keaa.

Projekti osoittautui haastavaksi, mutta mielenkiintoiseksi ja omalaatuiseksi työksi. Luomi- nen ja ideointi etenkin oli eniten aikaa vievää ja myös animaatioiden kehitys ja niiden si- joittaminen yksitellen aikajanalla. Kuitenkin tämä käsin kehittäminen automaattisen gene- raattorin sijaan oli tehokkaampaa saada tasot kulkemaan linjassa musiikin tunnelman kanssa ja tavallaan tasojen luonti oli omanlaistansa säveltämistä.

(37)

LÄHTEET

Asset Store. 2018. SimpleSpectrum. Viitattu 23.10.2021. Saatavissa: https://as-

setstore.unity.com/packages/tools/audio/simplespectrum-free-audio-spectrum-generator- webgl-85294

Beat Saber Fandom. 2021. Beat Saber. Viitattu 15.10.2021. Saatavissa: https://beatsa- ber.fandom.com/wiki/Beat_Saber_Wiki

Campbell, P. 2009. Guitar Heroes: APL Riff on Video Game Helps Prosthetic Patients. Vii- tattu 15.10.2021. Saatavissa: https://pages.jh.edu/gazette/2009/23feb09/23guitar.html Dance Dance Revolution Fandom. 2021. Dance Dance Revolution (1998). Viitattu

30.9.2021. Saatavissa: https://dancedancerevolution.fandom.com/wiki/Dance_Dance_Re- volution_(1998)

Game Informer. 2015. Reunion Tour: The Best And Worst Of Guitar Hero. Viitattu 11.10.2021. Saatavissa: https://www.gameinformer.com/b/features/ar-

chive/2015/06/10/reunion-tour-the-best-and-worst-of-guitar-hero.aspx

Geometry Dash Fandom. 2021. Geometry Dash. Viitattu 15.10.2021. Saatavissa:

https://geometry-dash.fandom.com/wiki/Geometry_Dash_Wiki

Graf, D., Pratt, L., Hester, C. & Short, K. 2009. Playing Active Video Games Increases En- ergy Expenditure in Children. Viitattu 15.10.2021. Saatavissa: https://publicati-

ons.aap.org/pediatrics/article-abstract/124/2/534/72412/Playing-Active-Video-Games- Increases-Energy?redirectedFrom=fulltext

Greeley, S. 2019. The fantastic history of rhythm games. Viitattu 13.9.2021. Saatavissa:

https://splice.com/blog/history-rhythm-games/

Guitar Hero Fandom. 2021. Guitar Hero (series). Viitattu 5.10.2021. Saatavissa:

https://guitarhero.fandom.com/wiki/Guitar_Hero_(series)

Houle Games. 2021. Rock Band. Viitattu 11.10.2021. Saatavissa: https://www.houlega- mes.com/product/rock-band/

Independent. 2008. Can gaming save the record industry? Viitattu 15.10.2021. Saata- vissa: https://www.independent.co.uk/life-style/gadgets-and-tech/gaming/can-gaming- save-the-record-industry-1192251.html

(38)

National Museum of American History. 2021. Simon Electronic Game, 1978. Viitattu 22.9.2021. Saatavissa: https://americanhistory.si.edu/collections/search/ob-

ject/nmah_1302005

Navarro, A. 2009. Guitar Hero (Playstation 2). Viitattu 1.10.2021. Saatavissa:

https://web.archive.org/web/20121010161003/http://uk.gamespot.com/featu- res/6142896/p-10.html

Melvin, J. 2021. Interview With Chris Thur, Co-Founder and CEO of Yousician. Viitattu 15.10.2021. Saatavissa: https://techround.co.uk/interviews/interview-with-chris-thur-co- founder-and-ceo-of-yousician/

Pinterest. 2021. Dance Aerobics – Nintendo NES. Viitattu 22.9.2021. Saatavissa:

https://fi.pinterest.com/pin/858287641458098728/

Polygon. 2017. The rise, fall and return of Dance Dance Revolution in America. Viitattu 1.10.2021. Saatavissa: https://www.polygon.com/features/2017/12/11/16290772/the-rise- fall-and-return-of-dance-dance-revolution-in-america

Rock Band Fandom. 2021. Rock Band. Viitattu 5.10.2021. Saatavissa: https://rock- band.fandom.com/wiki/Rock_Band

Rollings, A.& Adams, E. 2014. Fundamentals of Game Design (Third Edition). Prentice Hall

Shmuplations. 2001. Kasco and the Electro-Mechanical Golden Age. Viitattu 30.9.2021.

Saatavissa: http://shmuplations.com/kasco

Steam. 2021. Beat Saber - Aero Chord - "Boundless". Saatavissa: https://store.steampo- wered.com/app/1048870/Beat_Saber__Aero_Chord__Boundless/

Unity Technologies. 2019. Timeline. Viitattu 20.10.2021. Saatavissa:

https://docs.unity3d.com/Packages/com.unity.timeline@1.7/manual/index.html

Unity Technologies. 2020a. Working with Audio Components. Viitattu 20.10.2021. Saata- vissa: https://learn.unity.com/tutorial/working-with-audio-components-2019-3#

Unity Technologies. 2020b. Audio Clip. Viitattu 20.10.2021. Saatavissa:

https://docs.unity3d.com/Manual/class-AudioClip.html

Unity Technologies. 2020c. Audio Source. Viitattu 20.10.2021. Saatavissa:

https://docs.unity3d.com/Manual/class-AudioSource.html

(39)

Unity Technologies. 2020d. Audio Listener. Viitattu 20.10.2021. Saatavissa:

https://docs.unity3d.com/Manual/class-AudioListener.html

Unity Technologies. 2020e. Audio Mixer. Viitattu 20.10.2021. Saatavissa:

https://docs.unity3d.com/Manual/AudioMixer.html

Van Zandt, S. 2008. Alex Rigopulos & Eran Egozy. Viitattu 10.10.2021. Saatavissa:

http://content.time.com/time/specials/2007/arti- cle/0,28804,1733748_1733752_1735901,00.html

Wikimedia. 2021. Beatmania IIDX arcade controllers. Viitattu 30.9.2021. Saatavissa:

https://commons.wikimedia.org/wiki/File:Beatmania_IIDX_arcade_controlers.jpg

Yousician. 2021. Viitattu 15.10.2021. Saatavissa: https://yousician.com/

Viittaukset

LIITTYVÄT TIEDOSTOT

Kirjassa on neljä pääjaksoa, jotka on otsikoitu ”Musiikin sanomises- ta hyväksi tai huonoksi”, ”Eräitä musiikin käyttötarkoituksia”, ”Musiikin ja

Myös musiikkiopistossa musiikin hahmotusaineita tulisi lähestyä enemmän käytännön musisoimisen kautta sekä soveltaa musiikin teorian oppeja myös

Myös äänenvärin muutoksen kohdalla musiikillisen toiminnan määrä oli yhteydessä amplitudien negatiivisuuteen siten, että enemmän musiikin kanssa puuhastelevien

Musiikin juustokakku-efekti toimii niin ol- len siten, että se aktivoi kieleen, kuulema-ana- lyysiin ja emootioihin liittyviä prosesseja, joi- den kehittyminen on

Jukka Sarjalan mainiot artikkelit musiikin- historiasta sekä musiikin kulttuurihistoriasta viehättivät siksi, että hänen metodinsa eivät nouse niinkään musiikin,

Kuunnellun ja soitetun musiikin yhteys on osa lajin rakastamista: voidaan ajatella, että mikäli musiikin kuunteleminen ja soittaminen antavat amatöörille samankal- taisia

Siitä oli myös seurauksena, että musiikin historiaa ryhdyttiin jäsentämään pikemminkin sarjaksi yksittäisiä ja yksilöllisiä teoksia kuin kokoelmaksi musiikin

Musiikin opetustilojen suunnittelu on sidoksissa varustukseen. Varustuksen suun- nittelussa määritellään soittimien ja laitteiden määrät ja niiden sijoittaminen. Va- rustukseen