Proseduraalinen pelisisällön luominen
|
|
- Timo-Jaakko Kinnunen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Proseduraalinen pelisisällön luominen Jani Liikkanen Opinnäytetyö Lokakuu 2015 Tietojenkäsittely Ohjelmistotuotanto
2 TIIVISTELMÄ Tampereen ammattikorkeakoulu Tietojenkäsittely Ohjelmistotuotanto LIIKKANEN, JANI: Proseduraalinen pelisisällön luominen Opinnäytetyö 33 sivua Lokakuu 2015 Opinnäytetyön tavoitteena oli tutustua erilaisiin proseduraalisen sisällöntuotannon keinoihin ja hyödyntää niitä Iceflake Studiosille luotavassa sisällönluontityökalussa. Yritys tarvitsi työkalua helpottamaan ja nopeuttamaan työskentelyä Ice Lakes -pelinsä kanssa. Työkalulla on tarkoitus luoda pelin sisäisiä karttoja lähes valmiiksi, jonka jälkeen pelintekijä pystyy pienellä viimeistelyllä hiomaan ne pelattavaan kuntoon. Työ jakautui kahteen osaan: eri metodeihin tutustumiseen sekä niiden käyttämiseen käytännön toteutuksessa. Opinnäytetyö käsitteli useita proseduraalisia metodeja, joista valittiin käyttöön työhön parhaiten soveltuvat menetelmät. Kaikista tutkituista tavoista ei ollut käytännön työn kannalta hyötyä, vaan ne soveltuivat paremmin erilaisiin tarpeisiin. Opinnäytetyötä varten luotu karttageneraattori vastasi toimeksiantajan odotuksia. Sillä pystyy luomaan vaihtelevan näköisiä maastoja, jotka näyttävät luonnollisilta, ja niitä on mahdollista hioa persoonallisiksi. Generaattoria olisi mahdollista hioa vielä monipuolisemmaksi useammilla eri asetusvaihtoehdoilla. Asiasanat: proseduraalisuus, sisällönluonti
3 ABSTRACT Tampereen ammattikorkeakoulu Tampere University of Applied Sciences Degree Programme in Business Information Systems Software Development LIIKKANEN, JANI: Procedural Content Generation in Video Games Bachelor's thesis 33 pages October 2015 The aim of this thesis was to study different kinds of procedural content generation methods, and use the gained knowledge to build a map generation tool. The tool was built for a small game company Iceflake Studios. They needed the tool to speed up development of their upcoming ice fishing game Ice Lakes. The map generation tool automatically creates maps that resemble closely what the player will see in the finished game, and the developer can tweak and improve the results. Work was divided into studying the theory and methods of procedurality, and creating the map generator tool. This thesis covers a large amount of procedural content generation methods. Since different methods work for different types of goals, some of the procedural methods that were covered in the thesis were not used in the map generator. The outcome of the map generator satisfied the needs of the Iceflake Studios. It can create natural looking landscapes with a great deal of variation, and offers the possibility of manual polishing. The generator may still be improved by adding more settings for the user to tweak. Key words: procedurality, content generation
4 4 SISÄLLYS 1 JOHDANTO SISÄLLÖN LUOMINEN Modulaarisuus Proseduraalisuus PROSEDURAALISIA KEINOJA Rakentavat metodit Kohina Perlin kohina Worleyn kohina Binäärinen tilanjako Agenttipohjainen luominen Soluautomaatti Elämän peli Luolaston tai maaston luominen soluautomaatilla L-systeemi Muita tapoja proseduraaliseen generointiin Yhteenveto UNITY Unitystä lyhyesti Unityn terrain PROSEDURAALISEN MAASTON LUOMINEN Työkalun asetukset Maaston korkeudet Tekstuurien lisääminen Rakennelmat ja muut objektit Puut, kivet ja pensaat Lopputulos POHDINTA LÄHTEET... 33
5 5 LYHENTEET JA TERMIT Asset Kenttä Partikkeli Peliobjekti Pikseli Polygoni Tekstuuri Terrain Verteksi Unity-editorissa assetit ovat eräänlaisia malleja, joista luodaan peliobjekteja, tai käytetään niiden osana. Esimerkiksi 3D-mallit, äänet, tekstuurit tai kooditiedostot. Kentällä tarkoitan työssäni yhtä kartta-aluetta, missä pelaaja voi pelihahmollaan liikkua. Yleisin erilaisiin efekteihin, kuten esimerkiksi tuli, salama, kipinät, käytetty yksinkertainen kuva. Partikkelit ovat tietokoneelle mahdollisimman kevyesti toteutettu, jotta niitä pystytään näyttämään satoja tai tuhansia kerrallaan. Mikä tahansa pelin sisäinen, näkyvä tai näkymätön, yksilöllinen esine tai asia. Esimerkiksi pelihahmo, puu, pistemittari tai kamera. Tietokonegrafiikassa kuvat koostuvat pikseleistä. Yhdellä pikselillä on väri- ja läpinäkyvyysarvot. Polygonit ovat 3D-mallin näkyviä pintoja. Polygonit muodostuvat kolmesta tai useammasta verteksistä, jotka muodostavat pinnan kulmapisteet. Kuvatiedosto peligrafiikasta. Tekstuuri voi olla esimerkiksi selkeä kuva, jota käytetään sellaisenaan pelissä, tai se voi sisältää osia useista peliobjektien käyttämästä grafiikasta. Kolmiulotteisessa pelissä käytettävä yksinkertainen maastoobjekti. 3D-mallit koostuvat pisteistä kolmiulotteisessa tilassa. Näitä pisteitä sanotaan vertekseiksi, ja ne sisältävät tiedon omasta sijainnistaan.
6 6 1 JOHDANTO Pelinkehityksessä yksi suurimpia osa-alueita on pelin sisällön luominen. Sisällöllä tarkoitan kaikkia pelihahmoja, esineitä, grafiikoita, ääniä, peliympäristöjä ynnä muita pelissä näkyviä ja kuuluvia asioita. Kaikkien näiden tekeminen vaatii paljon aikaa, mikä on niin pienillä kuin isoillakin tiimeillä vähissä. Mikäli sisältöä pitää luoda paljon, tarvitaan siihen myös hyviä apuvälineitä. Opinnäytetyön toimeksiantaja Iceflake Studios on pieni Tamperelainen peliyritys. Heillä on monta julkaistua mobiilipeliä, mutta nyt he ovat siirtymässä muillekin alustoille. Yrityksen uusi peli, Ice Lakes, on kolmiulotteinen pilkkimispeli, joka olisi tarkoitus julkaista vuoden 2015 lopussa. Koska studio on pieni, tarvitsivat he apua luomaan peliin karttoja. Minulla oli hieman aiempaa kokemusta proseduraalisesta generoinnista, sekä mielenkiintoa tutkia sitä lisää, ehdotin että tutkisin aihetta, ja tekisin työkalun helpottamaan sisällön tuottamista. Työn tavoitteena on perehtyä erilaisiin sisällöntuottotapoihin, ja hyödyntää opittuja asioita, jotta toimeksiantajalle saadaan mahdollisimman toimiva ja monipuolinen apuväline työhönsä. Käsittelen raportissani proseduraalisen sisällönluonnin eri keinoja, jotta lukija voi saada pienen käsityksen siitä, kuinka monikäyttöisiä eri tekniikat voivat parhaimmillaan olla. Tarkoituksena on suunnitella ja toteuttaa algoritmeja, joiden avulla pystytään luomaan luonnollista, sekä pelillisesti toimivaa maastoa. Työni aiheesta ei ole juurikaan kirjallista tietoa, minkä vuoksi joudun turvautumaan esimerkiksi blogikirjoituksiin, tutoriaaleihin sekä tieteellisiin artikkeleihin. Itse työkalun toteutukseen tarvitsee paljon suunnittelua, sekä eri algoritmien kokeilua ja hiomista. Saan myös apua toimeksiantajalta sekä ohjelmointiin liittyvissä asioissa, että työkalun tuottaman lopputuloksen toimivuudessa pelin kannalta. Saan myös käyttööni peliin tulevat assetit, kuten 3D-mallit ja tekstuurit.
7 7 2 SISÄLLÖN LUOMINEN Videopeliin sisältö luodaan useimmiten suoraan muilla ohjelmilla. Esimerkiksi pelihahmot ja esineet tehdään 3D-mallinnus- tai kuvankäsittelyohjelmalla. Näin luodaan usein kokonaisia objekteja, joita käytetään sellaisena kuin ne ovat. Esimerkiksi kenttäsuunnittelija asettelee objektit käsin paikoilleen, ja rakentaa näin kenttiä peliin. Sisällön tuottamista pystytään kuitenkin automatisoimaan ja tehostamaan eri tavoin käyttötarkoituksesta riippuen. Tietenkin myös näitä tapoja hyödyntämällä hyvin usein käytetään paljon käsin tehtyjä assetteja, kuten 3D-objekteja ja tekstuureita. Käsittelen lyhyesti kahta eri tapaa, jotka auttavat pelinkehittäjää tuottamaan peliinsä sisältöä. Nämä ovat modulaarisuus ja proseduraalisuus, joista jälkimmäiseen syvennyn enemmän työssäni. 2.1 Modulaarisuus Modulaarisuus tarkoittaa eräänlaisten valmiiden palojen avulla rakennettua sisältöä. Nämä valmiit palat suunnitellaan niin, että ne sopivat toisiinsa sulavasti, ja niitä voi käyttää laajasti useissa paikoissa. Modulaarisessa suunnittelussa käytetään eräänlaisia rakennussarjoja, joidenka osista kasataan yhtenäinen kokonaisuus. Yksinkertaisena esimerkkinä Bethesda Game Studiosin pelissä Fallout 3 oli tehty neljästä putken palasta sarja. Nämä putket olivat erimuotoisia: t-putki, mutkaputki, suora putki sekä katkennut putki. Sarjan paloja käyttämällä pystyttiin nopeasti tekemään seinillä kulkevia putkistoja. (Burgess 2013.) 2D-pelien kenttäsuunnittelussa käytetään usein modulaarisia paloja. Pelin maailman rakentamiseen käytetään niin sanottua sprite sheet -tiedostoa (KUVA 1). Tässä yhdessä kuvatiedostossa on yhdistettynä monia pienempiä kuvia, tai kuvan osia, joita yhdistelemällä voidaan rakentaa selkeä pelialue (KUVA 2).
8 8 KUVA 1. Sprite sheet pelistä The Legend of Zelda (Jones, 2012) KUVA 2. Sprite sheet tekniikalla toteutettuja alueita pelistä The Legend of Zelda (Jones, 2012)
9 9 Nykyisin myös pelihahmon toteuttaminen modulaarisena on yleistä. Tällöin pelihahmo koostetaan irrallisista paloista, joita voivat olla esimerkiksi pää, kädet, jalat, torso ynnä muut. Esimerkiksi kuvassa 3 näkyy pelihahmon irralliset palat, joista pelihahmo kootaan. Kuvan oikeassa reunassa on kuvakaappaus Unity-editorista, jossa pelihahmon liikkeitä voi animoida liikuttamalla esimerkiksi käsiä tai jalkoja. Modulaarisen hahmon animointi on huomattavasti sujuvampaa kuin kuva kuvalta piirretyn hahmon, sillä paloja pystyy vapaasti liikuttamaan, pyörittämään tai venyttämään. Animaatiosta tulee myös sulavaliikkeisempi. Modulaaristen hahmojen animoinnissa on myös mahdollista helposti vaihtaa osa hahmosta toiseen ilman, että animaatiota täytyy tehdä uudestaan. Hahmolta voi vaihtaa esimerkiksi hatun tai aseen animaation pysyessä samana. (Fessler 2014.) KUVA 3. Modulaarisen hahmon sprite sheet, sekä animointi näkymä Unity Editorissa (Kokkonen, 2014) 2.2 Proseduraalisuus Modulaarinen sisällönluominen on siis täysin ihmisen toteuttamaa. Ensin tehdään palat, joista haluttua pelisisältöä voidaan koota, jonka jälkeen paloista luodaan pelimaailmoja, hahmoja tai mitä vaan. Vaikka modulaarisuus nopeuttaa sisällön luomista, halutaan joskus sisältöä niin paljon, että kaiken rakentaminen ei ole pelintekijöille ajan tai resurssien
10 10 puutteessa mahdollista. Toisaalta voidaan myös haluta, että peliin saadaan loputtomasti sisältöä, joka luodaan pelaajan koneella pelin aikana. Tällöin käytetään avuksi proseduraalista sisällönluomista. Proseduraalinen luominen tarkoittaa sitä, että tietokone luo peliin sisältöä erilaisien algoritmien ja menetelmien mukaisesti (Shaker, Togelius & Nelson 2015, 2). Shakerin ym. (2015, 3) mukaan proseduraalisuuden selkein hyöty tulee siitä, että se ei vaadi ihmisen osallistumista luomisprosessiin. Ihmiset ovat hitaita ja kalliita, joten on hyödyllisempää, kun nopea tietokone tekee työn. Tietokone pystyy sopivilla algoritmeilla luomaan käytännössä loputtoman määrän erilaista sisältöä, mikä lisää pelin uudelleenpeluuarvoa huomattavasti. Tarvittaessa ihminen voi asettaa generaattoriin alkuasetuksia, mikäli halutaan juuri tietynlaista lopputulosta. Proseduraalisessa sisällöntuottamisessa käytetään lähes aina apuna satunnaisuutta. Joskus sitä käytetään apuna pelin luomisvaiheessa, esimerkiksi, jos halutaan tuottaa puita muuten käsin tehdylle alueelle. Pelimaailma voidaan myös täysin arpoa joka käynnistyksen yhteydessä uudestaan. Mikäli halutaan, että sama arvottu sisältö voidaan saavuttaa uudelleen, käytetään proseduraalisessa generoinnissa niin sanottua siementä. Siemen on yleensä joko jokin numerosarja tai tekstinpätkä, josta luomistyö alkaa. Proseduraalisuudessa satunnaisuus ei varsinaisesti ole aina satunnaista, vaan tarvittaessa samalla siemenellä saadaan aina aikaan samanlainen lopputulos.
11 11 3 PROSEDURAALISIA KEINOJA Proseduraalisen luomisen voi jakaa karkeasti neljään eri pääkategoriaan. Nämä ovat rakentavat metodit, kieliopit, rajoituksiin pohjautuvat systeemit sekä etsintäpohjaisuus (Smith & Togelius 2015). Eri tavoissa on omat vahvuutensa ja heikkoutensa, joidenka vuoksi niitä usein yhdistetään toisiinsa, jolloin voidaan paikata joidenkin metodien heikkouksia. Tässä luvussa esittelen lyhyesti tapojen eroja, ja kerron niiden eroista. Käytän esimerkeissäni paljon tunneleita ja luolastoja, koska ne ovat helposti hahmotettava konsepti pelimaailman luomisesta. Peleissä erilaiset luolastot ovat myös tavanomaisia ympäristöjä, koska niihin on luontevaa sijoittaa esimerkiksi sokkeloita, hirviöitä tai muita haasteita pelaajalle. Myös monet ensimmäisistä tunnetuista proseduraalista generointia hyödyntäneistä peleistä, kuten Rogue (julkaistu vuonna 1980), sijoittuvat luolastoihin. Roguessa pelaaja laskeutui luolastoa alaspäin kerroksittain. Jokaisessa kerroksessa oli proseduraalisesti luotu huoneisto, josta piti etsiä tie seuraavaan kerrokseen. Pelin suosion takia syntyi uusi termi, roguelike, joka tarkoittaa peliä, jossa on proseduraalisesti luotua sisältöä (Johnson, 2015). 3.1 Rakentavat metodit Rakentavissa metodeissa nimensä mukaisesti rakennetaan sisältö. Niissä voidaan käyttää apuna esimerkiksi huoneiden pohjapiirustuksia tai eräänlaisia sapluunoita, joita yhdistelemällä voidaan rakentaa luolasto. Esimerkiksi peli Rogue Legacy (julkaistu vuonna 2013) käyttää luolaston generoinnissa valmiita huoneita, joiden sisällä vaihtelevat erilaiset viholliset, aarteet, ansat ja esteet (KUVA 4). Pelissä voi siis olla ulkomuodoltaan samanlaisia huoneita, mutta eri pelikerroilla niihin arvotaan erilainen sisältö. Yhdellä pelikerralla huoneessa voi olla muutama esine tai aarrearkku, toisella kerralla vihollisia ja ansoja. Rakentavissa metodeissa pyritään erilaisin algoritmein ohjaamaan tietokoneen luomaa sisältöä haluttuun suuntaan, esimerkiksi huoneiden kokoa ja määrää, aarteiden sijaintia tai maaston esteitä. Koska tätä metodia käytetään usein valmiiden objektipohjien kanssa, pitää algoritmien suunnittelussa ottaa huomioon, että tuotetusta pelisisällöstä tulee tarpeeksi vaihtelevaa ja ettei se ala kyllästyttää pelaajaa. Rakentavat metodit ovat suoritukseltaan nopeita, minkä vuoksi niitä on mahdollista hyödyntää pelin aikana. Tämä tarkoittaa käytännössä sitä, että samalla kun pelaaja jatkaa pelaamistaan, luo generaattori
12 tämän eteen uutta sisältöä. Jotkin proseduraalisen sisällönluomisen tavat voivat olla liian hitaita tämänlaiseen työhön. (Smith & Togelius 2015.) 12 KUVA 4. Kuvankaappaus Rogue Legacy pelistä (Cellar Door Games, 2013) 3.2 Kohina Kohina on hyvin monikäyttöistä proseduraalisessa sisällönluomisessa. Sillä voi tehdä esimerkiksi satunnaisia tekstuureita, maastoja tai partikkeliefektejä. Kohina on yksinkertaisimmillaan televisiostakin tuttua valkoista kohinaa, jossa jokainen pikseli on täysin satunnaisesti joko musta tai valkoinen. Tällainen kohina ei välttämättä ole kovin hyödyllistä paitsi erikoistapauksissa, koska lähes koskaan proseduraalisesti tuotettu sisältö ei ole täysin satunnaista. Erilaisia kohina-algoritmejä on kehitetty lukemattomia määriä. Tunnetuimpia proseduraalisia kohinatyyppejä ovat kehittäjiensä mukaan nimetyt Perlin kohina sekä Worleyn kohina Perlin kohina Tunnetuin kohinatyyppi on Ken Perlinin mukaan nimetty Perlinin kohina, jonka hän kehitti työskennellessään Tron-elokuvan parissa vuonna (Shaker ym. 2015, 61.) Tämä algoritmi tuottaa kohinaa, joka vaihtelee luonnollisesti ja toistuu ilman huomattavia terä-
13 13 viä muutoksia. Perlinin algoritmilla pystytään luomaan kohinaa niin monessa ulottuvuudessa kuin on tarvetta, mutta kohinan laskemiseen tarvittava aika kasvaa eksponentiaalisesti, minkä vuoksi yleisimmin käytetään yksi-, kaksi- tai kolmiulotteista kohinaa. Yksinkertaisimmillaan Perlinin kohinalla tuotetaan mustavalkoinen, epäsäännöllisesti vaihteleva tekstuuri. Kohinalla tuotettu kuva on yleensä helposti tunnistettavissa, mikäli siihen käytettyjä algoritmeja ei ole paljoa muokattu (KUVA 5). KUVA 5. Perinteisellä Perlinin kohinalla tuotettu tekstuuri Kaksiulotteista tekstuuria Perlinin kohinalla luodessa tehdään ensin ruudukko, jonka jokaiseen ruutuun arvotaan vektorit. Jokainen pikseli tekstuurissa sijaitsee neljän vektorin muodostaman neliön sisällä (KUVA 6). Kuvassa pisteelle P saadaan arvo laskemalla yhteen jokaisesta kulmasta pikselin etäisyyden suhteen interpoloitu arvo. Interpolointi tarkoittaa sitä, että kahden tiedetyn luvun väliltä määritellään lukuarvo tietylle pisteelle. Esimerkiksi auto, jonka sijainti tiedetään kahdella eri ajanhetkellä. Interpoloimalla näiden pisteiden välillä, saadaan selville auton sijainti haluttuna aikana.
14 14 KUVA 6. Ruudukko, joka on täytetty arvotuilla vektoreilla Arvo voidaan interpoloida lineaarisesti, eli kasvattamalla arvoa tasaisesti pisteen lähestyessä kulmaa. Käyttämällä funktiota, joka interpoloi etäisyyttä S-kirjaimen muotoisesti (KUVA 7), saadaan kuviosta pehmeämpi. Yksinkertainen funktio y = -2x 3 + 3x 2 on yleinen tähän tarkoitukseen, koska sillä saa arvon väliltä 0 1 kun x on välillä 0 1. KUVA 7. S-kirjaimen muotoinen funktio yhtälöllä f(x) = -2x 3 +3x 2
15 Worleyn kohina Steven Worleyn kehittämä, myös nimellä cell noise (solukohina) tunnettu, Worleyn kohina on algoritmi, joka luo solumaisia rakenteita. Tekstuuri toteutetaan jakamalla sille ensin satunnaisesti pisteitä, jonka jälkeen jokaiselle pikselille etsitään lähin piste. Tämän jälkeen lasketaan pikselille väriarvo riippuen tämän etäisyydestä lähimpään pisteeseensä. Näin saadaan aikaiseksi solumaisia rakenteita sisältävä tekstuuri. (Rosén, 2006) Kuvassa 8 näkyy Worleyn kohinalla toteutettu tekstuuri. Kuvaan on arvottu joukko pisteitä, jotka olen korostanut punaisella värillä. Kaikkia kuvan pikseleitä verrataan näihin pisteisiin. Pikseli saa väriarvonsa sen mukaan, millä etäisyydellä se on lähimmistä pisteistä. KUVA 8. Worleyn kohinalla tuotettu tekstuuri 3.3 Binäärinen tilanjako Nimensä mukaisesti binäärinen tilanjako ottaa tietyn tilan, ja jakaa sen kahteen osaan. Esimerkiksi luolasto tai kaupunki otetaan ensin kokonaisena käsittelyyn, ja jaetaan se aina kahteen pienempään, kunnes alkuperäinen tila on jaettu moneen sopivan kokoiseen alueeseen. Näitä alueita kutsutaan myös soluiksi (Shaker ym. 2015, 33). Aina tilaa jaettaessa, linkitetään uudet alueet jaettavana olevaan alueeseen. Näin saadaan puumainen rakenne, jonka avulla päästään käsiksi haluttuun soluun. Koska jokaista solua voidaan käsitellä erillisenä, on helppo määrittää kyseiseen soluun halutut ominaisuudet sen vaikuttamatta
16 muihin. Jos esimerkiksi käyttää binääristä tilanjakoa apuna kaupungin luomiseen, voi yhden solun määrittää keskusta-alueeksi ja toisen lähiöksi. 16 Usein binäärisen tilanjaon yksi selkeimmistä ominaisuuksista on se, että sillä tuotetut alueet ovat hyvin neliskulmaisia. Tämä on hyvä huomioida, kun miettii, minkälaista metodia tarvitsee omaan peliinsä. Esimerkiksi vankilaan sopii hyvin neliskulmainen pohjapiirustus, mutta se voi käyttötavasta riippuen näyttää liian kulmikkaalta luonnonmukaisissa ympäristöissä. Yksinkertaisimmillaan binäärinen tilanjakaja aloittaa yhdellä huoneella. Tämä huone jaetaan kahteen pienempään huoneeseen, ja ne yhdistetään käytävällä. Huoneiden jakamista pienemmäksi jatketaan, kunnes on saavutettu haluttu lopputulos. Kuvassa 9 nähdään alkutilanteessa yksi iso alue, joka jaetaan ensin kahteen pienempään. Nämä kaksi aluetta on yhdistetty käytävällä. Solujen jakamista jatketaan, kunnes on saatu monen pienemmän solun kokonaisuus. KUVA 9. Binäärinen tilanjako huoneilla ja käytävillä (Unity 5.1.1f1 2015, kuvankaappaus) 3.4 Agenttipohjainen luominen Binäärinen tilanjako voidaan ajatella käsittelevän luotua aluetta kokonaisuudessaan. Siitä melkein päinvastaista toiminnallisuutta löytyy ohjelmistoagenteissa. Nämä robottimaiset algoritmit seuraavat niille annettuja ohjeita luodessaan pelisisältöä. Agenttia voisikin ajatella eräänlaisena robottina, joka toteuttaa tälle annettuja käskyjä. Agentti voi esimerkiksi olla luolaa kaivava robotti, joka osaa tehdä tunneleita ja huoneita. Aina huoneen jälkeen
17 17 se tekee tunnelia satunnaiseen suuntaan, jonka jälkeen se luo taas uuden huoneen. Tällaisen agentin ongelmana voikin olla, että se saattaa kaivaa huoneita päällekkäin, tai vain yhteen nurkkaan luolastoa. Binääriseen tilanjakoon verrattuna, agenttipohjaisuudella saavutetaan yleensä luonnollisempia muotoja (Shaker ym. 2015, 39). Toisaalta agentit ovat juuri niin älykkäitä, kuinka älykkäiksi ne on ohjelmoitu. Jos agentti ohjelmoidaan välttämään päällekkäisiä tunneleita tai huoneita, ei se enää olekaan täysin sokea. Voi myös olla hyvä ajatus käyttää useita agentteja samanaikaisesti. Yksi voi toimia eräänlaisena johtajana, joka kaivaa päätunnelia. Tästä isommasta tunnelista johtaja lähettää useita pienempiä agentteja, jotka kaivavat yhden tunnelin, ja yhden huoneen. Näin saadaan rakennettua tunnelisto, jossa kaikki huoneet ovat yhteydessä toisiinsa, eikä suuria päällekkäisyyksiä pitäisi tapahtua. 3.5 Soluautomaatti Soluautomaatti on yksinkertainen malli yksinkertaisen maailman tai objektien mallintamiseen. Yleisimmät soluautomaatit sisältävät yksi- tai kaksiulotteisen taulukon soluja, mutta se voi olla moniulotteisempikin. Soluautomaatissa on myös sääntöjä siitä, miten solut vaikuttavat toisiinsa, sekä joitain tiloja, joissa solu voi olla. Soluautomaateilla on niin sanottuja sukupolvia. Nämä kuvaavat sen hetkistä tilaa, jossa automaatti on, ja jota käytetään seuraavan sukupolven luomiseen. Automaatti voi myös tarvittaessa käyttää useampia edellisiä sukupolvia seuraavan luomiseen. Vaikka soluautomaatti on pohjimmiltaan melko yksinkertainen työkalu, voi sitä käyttää äärimmäisen monipuolisesti. Sen avulla on mahdollista esimerkiksi luoda proseduraalisia tekstuureita, luolastoja ja karttoja, mutta sitä pystyy hyödyntämään myös moneen muuhunkin asiaan. Sen ei välttämättä tarvitse käyttää taulukkoa, vaan se voisi esimerkiksi tutkia soluja näiden sijainnin suhteen kolmiulotteisessa avaruudessa.
18 Elämän peli Tunnetuin soluautomaattia käyttävä sovellus on John Conwayn kehittämä, harhaanjohtavasti nimetty Game of Life (Elämän peli). Tässä epäpelissä on kaksiulotteinen taulukko, jossa solut voivat olla joko eläviä tai kuolleita. Peli aloitetaan täyttämällä halutut solut eläviksi, jonka jälkeen tarkistetaan solun naapurusto. Naapurustolla tarkoitetaan solun lähellä olevien solujen joukkoa, joka voidaan määritellä halutuin säännöin, esimerkiksi solu ja sen ympäröimät 8 solua, tai solun 4 ympäröivää solua. (Shaker ym. 2015, 42.) Seuraava sukupolvi soluja kuolee, elää tai syntyy riippuen naapuruston tilasta. Mikäli solu elää ja se koskettaa kahta tai kolmea elävää solua, se jää henkiin. Jos solu on kuollut ja se koskettaa täsmälleen kolmea elävää solu, syntyy se eloon. Näillä säännöillä tehdään kuvioista uusia sukupolvia ja katsotaan, miten ne elävät. Peliin on kehitetty monia erilaisia yhdistelmiä ikiliikkujista eteenpäin mateleviin olioihin tai sykkiviin kuvioihin. Peliä on myös helppo tehdä monipuolisemmaksi lisäämällä siihen eri sääntöjä ja tiloja soluille, tai siitä voi tehdä moniulotteisemman. Kuvassa 10 näkyy eräänlaisen ikiliikkujan viisi sukupolvea. Eliön ensimmäinen ja viides sukupovi ovat samoja, mutta hieman eri kohdissa ruudukkoa. Tämä tarkoittaa käytännössä sitä, että eliö liikkuu eteenpäin niin kauan, kunnes törmää johonkin. KUVA 10. Conwayn elämän pelin viisi sukupolvea Luolaston tai maaston luominen soluautomaatilla Yksinkertaisen luolaston rakentaminen soluautomaatin avulla on helppoudestaan huolimatta melko monipuolista. Solut voivat yksinkertaisimmillaan pelkkiä mustia tai valkoisia pikseleitä, mutta mikään ei estä, etteivätkö ne voisi olla muitakin objekteja. Mitä monipuolisempia solut ovat, sitä monipuolisempaa niiden käyttökin on. Tämä myös tarkoittaa sitä, että niiden käyttöön pitää miettiä tarkemmat algoritmit ja säännöt, jotta luotu
19 maailma on looginen kokonaisuus, jossa tiet eivät pääty järviin, eikä kaupungin keskelle ilmesty tulivuorta. 19 Vaihtelevan maaston luominen onnistuu esimerkiksi käyttämällä soluautomaattia, joka käyttää useampaa väriä. Esimerkiksi jo neljällä värillä saa paljon vaihtelua kuvioon (KUVA 11). Aluksi arvotaan kuvan jokainen pikseli yhdeksi neljästä väristä. Tämän jälkeen kuvaa käydään läpi haluttu määrä sukupolvia, kunnes lopputulos vastaa halutunlaista. On hyvin tavanomaista, että muutaman ensimmäisen sukupolven aikana tekstuuriin tapahtuvat muutokset ovat huomattavan suuria, kuten kuvan 11 ylärivistä voi nähdä. Soluautomaatin asetuksista riippuen, myöhempien sukupolvien muutokset voivat olla hyvin pieniä, tai niitä ei välttämättä tule enää ollenkaan. Kuvassa 11 lopullinen tekstuuri alkaa saamaan muotoaan selkeästi jo kolmannen tai neljännen sukupolven kohdalla, mutta alarivin sukupolvissa erot ovat hyvin pieniä. KUVA 11: Soluautomaatti, joka käyttää neljää väriä 3.6 L-systeemi Suosituimmat tavat kehittää realistisen oloista kasvustoa proseduraalisesti ovat erilaiset kieliopilliset systeemit. Yksi käytetyimmistä tavoista on L-systeemi, jolle yksinkertaisimmillaan annetaan pari sääntöä, esimerkiksi A:sta seuraa AB ja B:stä seuraa ba. Lähtöasetelma voi olla A, jolloin sarja kehittyy kuvassa 12 esiteltyjen sääntöjen mukaisesti.
20 20 KUVA 12. Esimerkki L-systeemistä L-systeemiä käyttämällä on helppo saada aikaiseksi luontoa niin, että puut ja pensaat ovat tunnistettavissa määrin saman näköisiä, mutta eivät kuitenkaan identtisiä kopioita toisistaan. Esimerkiksi SpeedTree -ohjelma on kehitetty luonnollisen näköisten puiden ja pensaiden luomiseen (KUVA 13). KUVA 13. SpeedTree ohjelman käyttöliittymä (SpeedTree 2015, kuvankaappaus)
21 Muita tapoja proseduraaliseen generointiin Rajoituksiin perustuvat systeemit Suhteellisen uusia tapoja, joita ei vielä ole tutkittu paljoa, ovat rajoituksiin ja sääntöihin perustuvat systeemit. Niiden idea on, että tietokoneelle annetaan korkean tason sääntöjä, joista työvälineelle kehitetyt algoritmit osaavat luoda pelialueita. Nämä säännöt voivat olla esimerkiksi: luo luolasto, jossa on kymmenen huonetta sekä aarrekammio. (Smith & Togelius 2015.) Etsintäpohjaisuus Toisella nimellä kutsuttu evoluutioalgoritmi eli etsintäpohjainen algoritmi on sitä, että halutusta sisällöstä tehdään useita erilaisia versioita. Näistä toisistaan hieman eroavista objekteista valitaan parhaat yksilöt tietyn pisteytyksen mukaan ja niiden ominaisuuksia yhdistellään uuteen sukupolveen. Tätä uutta sukupolvea jälleen arvioidaan ja valitaan parhaat yksilöt, joista jatketaan kehittämistä. Evoluutiokierroksia jatketaan, kunnes saavutetaan riittävän hyvä lopputulos. Etsintäpohjaisen systeemin ongelmia ovat sen hitaus ja epävarmuus: seuraava evoluution sykli ei välttämättä anna toimivaa tulosta. (Smith & Togelius 2015.) 3.8 Yhteenveto Erilaisia tapoja ja algoritmeja proseduraaliseen sisällönluomiseen on siis paljon, enkä tässä lyhyessä pintaraapaisussa ehtinyt kuin nopeasti tutustumaan tunnetuimpiin niistä. Eri tavoilla on omat heikkoutensa ja vahvuutensa, joita yhdistelemällä voidaan toteuttaa mitä monipuolisimpia työkaluja. Saavuttaakseen parhaimman mahdollisen lopputuloksen, pitää tietää, minkälaisen lopputuloksen haluaa ja millä metodeilla se on mahdollista saavuttaa. Esimerkiksi eri kohinametodeilla pystyy luomaan tekstuureja, joita pystytään hyödyntämään muun muassa 3D-malleissa ja maaston muodoissa. Näillä tekstuureilla on kuitenkin
22 22 vaikeaa, ellei mahdotonta, rakentaa vaikkapa taloja tai kasveja. Binäärisellä tilanjaolla on helppo määrittää alueita, esimerkiksi huoneita talossa tai kortteleita kaupungissa, ja tällä metodilla on helppo varmistaa, etteivät ne ole päällekkäin. Agenttien kanssa päällekkäisyys voi osoittautua ongelmaksi, mutta toisaalta nämä voivat olla huomattavasti monipuolisempia. Agentin voi ohjelmoida tekemään lähes mitä vain, se voi rakentaa kaupunkeja, taloja ja huoneita tai se voi tarvittaessa toimia vaikka pelihahmon tekoälynä. Hyvän agenttipohjaisen generaattorin tekeminen vaatii kuitenkin paljon työtä, sillä sen toimivuus pitää testata tarkkaan. Sen sijaan yksinkertaisempi tapa toteuttaa sisältöä, on käyttää rakentavia metodeja, jotka voivat toimia kuin lego-palikat. Rakentavat metodit käyttävät valmiita rakennuspaloja ja yhdistelevät niitä.
23 23 4 UNITY 4.1 Unitystä lyhyesti Unity on tietokoneohjelmisto, jota käytetään pääasiallisesti pelien tekemiseen. Kenties suurimpia valtteja Unityssä on sen helppokäyttöinen graafinen editori, sekä mahdollisuus kääntää pelit lähes mille tahansa modernille alustalle. Alun perin vuonna 2005 julkaistu Unity on viimeaikoina saanut suuren määrä huomiota ja se on nykyään yksi suosituimmista pelintekoon käytetyistä työkaluista. Unitystä on sekä ilmainen että maksullinen versio, minkä vuoksi se on kaikkien käytettävissä. Tämä on lisännyt sen suosiota huomattavasti esimerkiksi pienten pelistudioiden, pelialan opiskelijoiden sekä harrastelijoiden keskuudessa. Unity-editorin käyttäminen on tehty hyvin helpoksi. Käyttäjä pystyy raahaamaan eri elementtejä haluamilleen paikoille, ja ainakin teoriassa niiden pitäisi toimia ilman suurempia ponnisteluja. Näin käyttäjä pystyy muun muassa tuomaan editoriin uusia assetteja, kuten ääniä, tekstuureita tai 3D-malleja. Jokainen pelissä oleva komponentti on osana GameObject-objektia. Yksinkertaisimmillaan tällainen peliobjekti sisältää vain tiedot sijainnistaan, koostaan sekä rotaatiostaan. Nämä peliobjektit ovat kaikkien pelissä olevien asioiden ydin ja niitä käytetään kaikessa. Kaikki pelissä olevat hahmot, rakennukset, valot ja äänet ovat GameObjecteja, ja yhdessä tällaisessa objektissa voi olla useita eri komponentteja. Editorissa avoimena olevaan kenttään pystyy raahaamalla lisäämään näitä peliobjekteja, objekteihin tekstuureja tai materiaaleja tai muita komponentteja, ja näihin komponentteihin niiden käyttämät assetit. 4.2 Unityn terrain Terrainilla tarkoitetaan kolmiulotteisen maaston pinnanmuotoja, ja se voidaan esittää monella tavalla. Yleisin tapa terrainin esittämiseen on käyttää kaksiulotteista korkeuskarttaa, joka on kaksiulotteinen taulukko arvoja, jotka kuvastavat maaston korkeutta. Kuten kaikki muutkin kolmiulotteiset objektit, myös terrain koostuu vertekseistä sekä verteksien väleihin piirretyistä polygoneista. Terrainissa verteksit ovat tasaisin välimatkoin toisis-
24 24 taan muodostaen neliskulmaisen, taulukkomaisen levyn. Korkeuskarttaa käyttämällä jokaiselle verteksille katsotaan kartan taulukosta arvo, jonka perusteella määritellään, mille korkeudelle verteksi nostetaan. Tämänlaisessa korkeuskartassa huonona puolena on se, että yhdessä kohtaa karttaa voi olla vain yksi korkeusarvo, mikä tarkoittaa käytännössä sitä, että luolien tai luolamaisten muodostelmien tekeminen on mahdotonta. Helpoin tapa tallentaa korkeuskartta, on tehdä korkeusarvojen taulukosta mustavalkoinen kuva, josta jokaiselle verteksille katsotaan korkeusarvo tätä vastaavasta pikelistä. Unityn terrain tukee myös useita yhtäaikaisia tekstuureja, minkä avulla maastosta saa vaihtelevan näköisen. Käyttämällä useampia erilaisia tekstuureja maastossa, voi se vaihdella esimerkiksi nurmikentästä hiekkaan tai asfalttiin. Maastoon voi myös luoda helposti vaihtelua käyttämällä hieman erilaisia tekstuureja päällekkäin.
25 25 5 PROSEDURAALISEN MAASTON LUOMINEN Toimeksiantajan antama tehtävä oli luoda työkalu, joka luo kolmiulotteisen pelialueen. Pelialueella pitää olla maata sekä vesialueita, ja sen pitää vaikuttaa luonnonmukaiselta. Koska pelin ajankohta on talvi, ovat vesialueet aina jään peitossa, minkä vuoksi ne ovat helppo toteuttaa. Pääasiassa maa-alue olisi metsää, joten siellä täytyisi olla puita, pensaita ja kiviä. Alueelle tarvitaan myös rakennuksia, kuten taloja tai laavuja, sekä järvien rannoille veneitä ja laitureita. Generaattorini käyttää peliin jo tehtyjä 3D-malleja sekä tekstuureja. 5.1 Työkalun asetukset Tekemälläni työkalulla on helppo määritellä useita eri asetuksia, jotka vaikuttavat luodun maaston ulkoasuun. Kuvassa 14 näkyy eri asetukset, mitä maastogeneraattoriin voi määritellä. Työkaluun voi syöttää halutun siemenen (engl. seed). Samalla siemenellä saa aina saman lopputuloksen. Myös maaston koon määrittäminen metreissä onnistuu helposti, sekä sen, kuinka paljon pinta-alasta on maata ja kuinka paljon vettä. Tämä arvo on vain alkuasetus, ja se voi muuttua maaston pohjan saadessa lopullista muotoaan. Maastosta voi myös valita, haluaako siitä enemmän saaren mallisen, eli vesialueita luodaan enemmän kartan reunoilla, vai että järvi luodaan kartan keskelle. Asetusikkunassa voi syöttää tekstuurin sekä normaalikartan 1 (engl. normal map) lumelle, jäälle sekä vaikeakulkuiselle maastolle. Näiden lisäksi asetuksista voi määrittää, kuinka tiheään kartalle luodaan puita, kiviä sekä pusikkoja. Viimeisinä asetuksina voi määrittää, kuinka monta sukupolvea soluautomaatti käy läpi, sekä halutaanko maastotekstuuriin sumennusta (engl. blur). 1 Normaalikartta tarkoittaa tekstuuria, joka korostaa pinnan muotoja valon osuessa siihen
26 26 KUVA 14. Asetusikkuna luotavalle maastolle (Unity 5.1.1f1 2015, kuvankaappaus) 5.2 Maaston korkeudet Pelimaaston luominen on selkeintä aloittaa maaston korkeuksista. Tässä tehtävässä käytin apuna kahta eri työkalua: soluautomaattia sekä Perlinin kohinaa. Soluautomaatilla sain hyvin luotua tekstuurin, joka sisältää suuria luonnollisia muotoja järvialueen pohjaksi. Kohinalla pystyy tuottamaan vaihtelevia maastonmuotoja ilman, että niihin tulisi liian äkkinäisiä ja satunnaisia muutoksia. Soluautomaatilla loin karkean jaottelun maaston ja vesialueen välille luomalla mustavalkoisen tekstuurin, jossa mustat alueet olivat vettä ja valkoiset maata. Kartanluontityökalussani on myös mahdollisuus lisätä tekstuuriin sumennus, joka vähentää maaston ja ve-
27 27 sistön teräviä vaihteluja ja äkkijyrkkiä nousuja. Lisäämällä soluautomaatin luomien sukupolvien määrää, voi maastosta saada tasaisemman, mutta myös pienellä määrällä voi saada mielenkiintoisen, suota muistuttavan, lopputuloksen. Kuvassa 15 esiintyy soluautomaatin kymmenen sukupolven eroavaisuudet, sekä viimeisenä sumennettu karttapohja. Mitä pidemmälle sukupolvia jatketaan, sitä tasaisemmaksi alue muuttuu. Kartan yläosasta alaosaan jatkuva musta alue luo maastoon pelialueen halkaisevan joen. KUVA 15. Soluautomaatilla toteutettu kartan pohja. Mustat alueet ovat vesistöä. Seuraavaksi kuvan jokaiselle valkoiselle pikselille arvotaan korkeus. Aiemmin esitellyn Perlinin kohinan mukaisesti korkeusarvojen välillä interpoloidaan käyttämällä s-mutkan toteuttavaa funktiota f(x) = -2x^3 +3x^2 (KUVA 7), jolloin mäkien huipuille ei tule teräviä kulmia. Mikäli tekstuuria on sumennettu, saadaan maasto tasaisemmin laskeutumaan vesialueeksi. Jokaisesta tekstuurin pikselistä otetaan korkeuskertoimeksi arvo väliltä 0 1 pikselin värin mukaan. Valkoinen pikseli on arvoltaan 1, musta 0 ja harmaan sävyt jotain siltä väliltä. Maa-alueen ja veden välille sumentuu harmaa pikseli, jonka arvo voi olla esimerkiksi 0,5. Kun tällä korkeuskertoimella kerrotaan maaston korkeusarvo, saadaan selville lopullinen maaston korkeus kyseisellä kohdalla. Lopullinen korkeus on sitä lähempänä nollaa, mitä tummempi pikseli on. Vesistöalue on tasainen, sillä sen korkeus on aina 0. Pelin kartassa pitää olla tasainen alue, josta peli alkaa. Aloitusalueen koko arvotaan haluttujen rajojen välille, se ei esimerkiksi voi ikinä olla alle kymmenen metrin levyinen, eikä yli neljääkymmentä metriä pitkä. Tämä alue on aina halutulla korkeudella ja sen koordinaatit tallennetaan muistiin myöhempää käyttöä varten, kun sinne tullaan luomaan objekteja. Näiden tietojen pohjalta voidaan asettaa terrainin korkeudet (KUVA 16).
28 28 KUVA 16. Aikaisemman tekstuurin pohjalta luotu maastopohja (Unity 5.1.1f1 2015, kuvankaappaus) 5.3 Tekstuurien lisääminen Kun terrainin korkeuskartta on saatu toteutettua, siirrytään lisäämään maastoon tekstuurit. Oletuksena maastogeneraattorini käyttää kolmea tekstuuria: lumi, jää sekä vaikeakulkuinen alue. Terrainiin on helppo tarvittaessa lisätä myös muita tekstuureita, kuten yksityiskohtia lumeen ja jäähän, sekä poluille omansa. Samassa kohtaa maastoa voi näyttää useaa tekstuuria päällekkäin esimerkiksi niin, että toinen näkyy selkeämmin ja toinen vain tuo vaihtelua ja yksityiskohtia. Myös normaalikarttojen lisääminen onnistuu helposti ja generaattori osaa lisätä ne terrainiin automaattisesti. Helpointa on määritellä, mihin kohtiin maastoa piirretään jäätekstuuri katsomalla maaston korkeus: mikäli se on lähellä nollaa, siinä on jäätä. Lumisen maaston ja vaikeakulkuisen alueen kohdalla katsotaan maaston jyrkkyyttä, jonka perusteella arvioidaan, missä suhteessa näitä kahta tekstuuria sekoitetaan. Jyrkän maaston kohdalla painotetaan enemmän vaikeakulkuista tekstuuria, kun taas tasaisella maalla käytetään vain lumitekstuuria. Vaikeakulkuista tekstuuria voi lisätä myös muuallekin, esimerkiksi kivikkoihin.
29 Rakennelmat ja muut objektit Maaston muotojen ja tekstuurien luomisen jälkeen lisätään kentälle erilaisia rakennuksia. Eri objektien päällekkäisyyksien välttäminen on tässä vaiheessa suurin ongelma. Uusia esineitä luodessa pitää tietää, missä muut esineet sijaitsevat, jotta puita ei luoda kivien tai talojen sisään. Yksi vaihtoehto on ottaa satunnaisesti piste ja tarkistaa, onko kyseisellä paikalla esteitä. Tämä kuitenkin tuo liikaa satunnaisuutta kentän luomiseen esimerkiksi, jos kaikki arvotut pisteet painottuvat kartan yhteen nurkkaan ja muu kartta jää autioksi. Käyttämällä binääristä tilanjakajaa pystytään varmistamaan, että objekteja ei luoda päällekkäin. Objektia luodessa tilanjakajalta pyydetään halutun kokoinen vapaa alue, joka ei ole vielä varattu. Tälle alueelle luodaan objekti, jonka jälkeen se merkitään varatuksi, jottei sinne myöhemmin luoda uusia objekteja (KUVA 17). Binäärisen tilanjakajan puumaisen rakenteen vuoksi on helppo varmistaa, että objektit saadaan levittymään tasaisesti ympäri karttaa. Puurakenteessa jokainen solu haarautuu kahdeksi pienemmäksi soluksi, joten esimerkiksi ensimmäinen haara määrittää, käsitelläänkö kartan oikeaa vai vasenta puolta. Säännöllisellä polkujen vaihtelulla objektit levittyvät tasaisesti ympäri karttaa. KUVA 17. Binäärisen tilanjakajan varatut alueet merkitään punaisilla laatikoilla (Unity 5.1.1f1 2015, kuvankaappaus) Kenttägeneraattori aloittaa objektien lisäämisen aloitusalueelle. Sinne lisätään nuotio sekä sen ympärille muutama penkki. Mikäli alue on pieni, voi sinne asettaa esimerkiksi
30 30 talon. Suuremmalle alueelle voidaan luoda useampia taloja sekä mahdollisesti leikkimökki tai vaja. Tämän jälkeen järvien rannoille on hyvä luoda laitureita sekä soutuveneitä. Rantaviivan etsiminen onnistuu ottamalla kaksi satunnaista pistettä, toinen maalta ja toinen vedestä. Näiden pisteiden välistä haetaan kohta, jossa maaston korkeus muuttuu nollasta isommaksi. Tälle paikalle voidaan asettaa haluttu objekti, ja jälleen tilanjakajalle ilmoitetaan varatusta alueesta päällekkäisyyksien välttämiseksi. Metsäalueelle voidaan myös lisätä laavuja sekä niiden yhteyteen kuuluvia objekteja kuten nuotiopaikkoja ja halkopinoja. 5.5 Puut, kivet ja pensaat Jotta metsä näyttäisi metsältä, pitää se täyttää luonnonmukaisilla objekteilla. Työssäni minulla on käytössä toimeksiantajani 3D-malleja erilaisista puu- ja pensastyypeistä, sekä erimuotoisia ja -kokoisia kiviä. Generaattorissa ei ole muita säätömahdollisuuksia kuin säätää puiden, pensaiden ja kivien esiintymistiheyttä. Tarpeen mukaan maastosta on mahdollista tehdä esimerkiksi todella tiheä metsä täyttämällä se puilla tai avoin kivikko. Myös metsän objektit hyödyntävät samaa binääristä tilanjakajaa etsiessään itselleen vapaata paikkaa terrainilta. Näin voidaan välttyä objektien päällekkäin luomiselta. Metsän täyttämiseen olisi mahdollista myös lisätä paljon muita asioita, mitä luonnosta voisi löytyä, kuten kukkia, kantoja tai kaatuneiden puiden runkoja, mutta työn tekemisen hetkellä niitä ei ollut käytettävissä. Generaattoriin voisi myös lisätä useita eri säätömahdollisuuksia, jotka muokkaisivat metsän ulkoasua kuten, onko se lehti- tai kuusimetsää, onko siellä tiheikköjä, mitä puulajeja metsässä esiintyy ja niin edelleen. 5.6 Lopputulos Generaattorin eri vaiheet ovat siis maaston pohjan luominen, tekstuurien lisääminen, aloitus-alueen muodostaminen sekä viimeisenä objektien lisääminen maastoon. Kuvassa 18 näkyy selkeästi jokainen eri vaihe. Kun generaattori on tehnyt tehtävänsä, voi pelintekijä vielä tarkistaa, että kenttä on tarpeeksi mielenkiintoinen ja eheä kokonaisuus pelattavaksi. Karttaan pystyy tässä vaiheessa tekemään halutessaan muutoksia. Maastoa voi tasoittaa Unityn omilla terrain työkaluilla, ja tekstuureita voi parannella.
31 31 Myös kaikkien objektien lisääminen, siirtäminen tai poistaminen onnistuu vaivattomasti Unity-editorissa. Maastoon voi esimerkiksi suoraan assettikansiosta raahata mitä vain objekteja. Koska generaattorin ei ollut tarkoituskaan luoda lopullista karttaa, ei sen tuottaman lopputuloksen tarvitse olla täydellinen. Kartan tekijällä on aina mahdollisuus tehdä lopulliset hienosäädöt. KUVA 18. Kartanluontityökalun eri vaiheet (Unity 5.1.1f1 2015, kuvankaappaus)
32 32 6 POHDINTA Toimeksiantajan tehtävä osoittautui luultua vaikeammaksi, mutta siitä huolimatta, tai kenties siitä syystä, pystyin oppimaan valtavan määrän uutta proseduraalisesta sisällönkehityksestä. Lopputulos onnistui hyvin, ja toimeksiantaja sai siitä hyvän työkalun useiden karttojen luomiseen Ice Lakes -peliinsä. Pelisisällön luominen nopeutuu, kun pelisuunnittelijan ei tarvitse tehdä karttoja aivan alusta asti itse. Luomaani generaattoria olisi vielä voinut jatkaa pidemmällekin, mahdollisesti jopa niin, että se loisi jokaiselle pelikerralle uuden pelialueen. Tämä kuitenkin olisi vaatinut valtavan määrän lisää suunnittelua sekä testaamista, jotta voitaisiin varmistaa, että kartoista tulisi hyvän näköisiä ja toimivia. Nyt kun pelisuunnittelija viimeistelee pelialueet, ne voidaan hioa juuri halutun laisiksi, sekä niihin voidaan lisätä omia, persoonallisia yksityiskohtia. Opinnäytetyötä varten tutkittujen erilaisten proseduraalisten menetelmien monipuolisuus ja monikäyttöisyys yllätti. Ennen projektia minulla oli jonkinlainen käsitys siitä, mitä proseduraalisuus käytännössä tarkoittaa, mutta lopussa huomasin, että näitä työkaluja voi käyttää apuna lähes missä vain. Näiden työkalujen kehittäminen on kuitenkin todella työlästä ja hankalaa. Aluksi ajattelin, että tehtävä olisi paljon helpompi kuin minkälaiseksi se lopulta paljastui. Kuvittelin esimerkiksi, että maaston muodot pystyttäisiin melko vaivattomasti arpomaan sopiviksi, mutta niin tehty maasto näytti täysin epärealistiselta ja kulmikkaalta. Myös pelialueen objektien, kuten talojen ja puiden, asettelu tuotti aluksi ongelmia. Objektit ilmestyivät usein päällekkäin tai paikkoihin, joissa niiden ei kuulunut olla. Opin, että hyvän proseduraalisen sisältögeneraattorin toteuttaminen vaatii halutun laisen lopputuloksen täydellistä tuntemista. Jotta pystyy ohjelmoimaan työkalun, joka rakentaa asioita, pitää sille osata asettaa täsmälliset säännöt, minkä perusteella objektien rakentaminen suoritetaan. Mikäli ei osaa rakentaa tarpeeksi selviä algoritmeja, ei voi olla varma lopputuloksen laadusta.
33 33 LÄHTEET Burgess, J Skyrim s Modular Approach to Level Design. Luettu Fessler, D Thoughts on modular animation. Luettu Johnson, M Before Spelunky and FTL, There was Only ASCII. Luettu Jones, B More GPU Tile map demos (Zelda). Luettu Kokkonen, V-P. 2D Best Practices In Unity. Luento. Youtube Katsottu Rosén, C Cell Noise and Processing. Linköping University. Tutkielma. Shaker, N., Togelius, J. & Nelson, M Procedural Content Generation in Games: A Textbook and an Overview of Current Research. Springer. Smith, G. & Togelius, J The Power and Peril of PCG. SpeedTree. Kuvakaappaus ohjelmiston käyttöliittymästä Unity 5.1.1f Unity Technologies.
KODU. Lumijoen peruskoulu
KODU Lumijoen peruskoulu Sisällysluettelo 1. Aloitus... 2 1.1 Pelin tallennuspaikka... 2 1.2 Kodu Game lab... 3 2 Maan luominen... 4 2.1. Seinän tekeminen... 5 2.2. Vesialueen tekeminen peliin... 6 2.3.
Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:
Tasohyppelypeli 1 Pelissä ohjaat liikkuvaa ja hyppivää hahmoa vaihtelevanmuotoisessa maastossa tavoitteenasi päästä maaliin. Mallipelinä Yhden levelin tasohyppely, tekijänä Antonbury Piirrä grafiikat Pelaajan
Venekilpailu! Esteiden väistely ja hahmon ohjaaminen
Venekilpailu! Esteiden väistely ja hahmon ohjaaminen 1 Vaihe 1 Valmistelu Lataa Boat Race eli Venekisa -niminen projekti seuraavasta linkistä ja avaa Scratchissa (Online- tai Offline-versiossa): http://jumpto.cc/boat-get
Harjoitus Bones ja Skin
LIITE 3 1(6) Harjoitus Bones ja Skin Harjoituksessa käsiteltävät asiat: Yksinkertaisen jalan luominen sylinteristä Luurangon luominen ja sen tekeminen toimivaksi raajaksi Luurangon yhdistäminen jalka-objektiin
Sukelluskeräily, Pelihahmon liikuttaminen. Tee uusi hahmo: Pelihahmo. Nimeä se. Testaa ikuisesti -silmukassa peräkkäisinä testeinä (jos) onko jokin
Versio 1.0 1 Sukelluskeräily Tässä pelissä keräilet erilaisia aarteita ja väistelet vihollista. Tämän lisäksi pelaajan pitää käydä välillä pinnalla hengittelemässä. Peliin lisätään myös häiriötekijäksi
Videon tallentaminen Virtual Mapista
Videon tallentaminen Virtual Mapista Kamera-ajon tekeminen Karkean kamera ajon teko onnistuu nopeammin Katseluohjelmassa (Navigointi > Näkymät > Tallenna polku). Liikeradan ja nopeuden tarkka hallinta
Jypelin käyttöohjeet» Ruutukentän luominen
Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen
Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat
2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat 2D-piirto 2-ulotteisen grafiikan piirto perustuu yleensä valmiiden kuvien kopioimiseen näyttömuistiin (blitting)
Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO
Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO Opinnäytetyö KESKI-POHJANMAAN AMMATTIKORKEAKOULU Puutekniikan koulutusohjelma Toukokuu 2009 TIIVISTELMÄ OPINNÄYTETYÖSTÄ Yksikkö Aika Ylivieska
Algoritmit 2. Luento 6 To Timo Männikkö
Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100
Mainoksen taittaminen Wordilla
Mainoksen taittaminen Wordilla Word soveltuu parhaiten standardimittaisten (A4 jne) word-tiedostojen (.docx) tai pdf-tiedostojen taittoon, mutta sillä pystyy tallentamaan pienellä kikkailulla myös kuvaformaattiin
Datatähti 2019 loppu
Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio
metsämatikkaa Sata käpyä Lukuja metsästä Laskutarina Mittaaminen punaisella narulla Päin mäntyä (metsän yleisin puu)
metsämatikkaa Sata käpyä Lukuja metsästä Laskutarina Mittaaminen punaisella narulla Päin mäntyä (metsän yleisin puu) Vinkki! MAPPAsta www.mappa.fi löytyy haulla matematiikkaa ulkona valmiita tuntisuunnitelmia
Tarvikkeet: A5-kokoisia papereita, valmiiksi piirrettyjä yksinkertaisia kuvioita, kyniä
LUMATE-tiedekerhokerta, suunnitelma AIHE: OHJELMOINTI 1. Alkupohdinta: Mitä ohjelmointi on? Keskustellaan siitä, mitä ohjelmointi on (käskyjen antamista tietokoneelle). Miten käskyjen antaminen tietokoneelle
Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana
Muilla kielillä: English Suomi Pong-peli, vaihe 2 Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Laitetaan pallo liikkeelle Tehdään kentälle reunat Vaihdetaan kentän taustaväri Zoomataan
Luento 6: Geometrinen mallinnus
Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Geometrinen mallinnus Lauri Savioja, Janne Kontkanen 11/2007 Geometrinen mallinnus / 1 Sisältö Mitä on geometrinen mallinnus tietokonegrafiikassa
Ampumahiihto. Hiihto. Pelihahmon piirtäminen. Jos tahdot animoida hiihtämisen, Peli muodostuu kahdesta erilaisesta osasta: ensin
Ampumahiihto 1 Peli muodostuu kahdesta erilaisesta osasta: ensin hiihdetään ammuntapaikalle rämpyttämällä nuolinäppäimiä ja sen jälkeen yritetään ampua maalitaulut mahdollisimman nopeasti aikasakot välttäen.
Toinen harjoitustyö. ASCII-grafiikkaa
Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita
Kenguru 2011 Benjamin (6. ja 7. luokka)
sivu 1 / 6 NIMI LUOKKA/RYHMÄ Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Jätä ruutu tyhjäksi, jos et halua
18 Komponentit, ulkoasu ja visuaalisuus. Materiaalit CC-BY 4.0 Mikko Lampi
18 Komponentit, ulkoasu ja visuaalisuus Materiaalit CC-BY 4.0 Mikko Lampi Sisältö Alustus 1. Pelikomponentit 2. Ulkoasu ja visuaalisuus 3. Esimerkkejä Työskentelyä Pelikomponenttien suunnittelu Visuaalisuuden
Labyrintti. Pelihahmon toiminta. Piirrä pelihahmo (älä piirrä esim. sivusta, ettei hahmon tarvitse
Labyrintti 1 Kerää aarteita labyrintista samalla kuin siellä liikkuu haamu. Seiniksi käyvät mm. vaaralliset laserit ja lava, mutta pienellä lisävaivalla niistä voi tehdä myös kiinteät ja vaarattomat Mallipeli
Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä
Luku 7 Verkkoalgoritmit Verkot soveltuvat monenlaisten ohjelmointiongelmien mallintamiseen. Tyypillinen esimerkki verkosta on tieverkosto, jonka rakenne muistuttaa luonnostaan verkkoa. Joskus taas verkko
PÄIVITÄ TIETOSI OPTIMASTA! KOOSTE
PÄIVITÄ TIETOSI OPTIMASTA! KOOSTE IT-palvelut / Hannele Rajaniemi optima-support@jyu.fi www.jyu.fi/itp/optima-ohjeet 2 Sisältö Mikä on koosteen idea? Miten saan kooste-työkalun käyttööni? Miten luon koosteen?
ATLAS-kartan esittely - Peli palveluiden yhteiskehittämisen menetelmistä Päivi Pöyry-Lassila, Aalto-yliopisto
ATLAS-kartan esittely - Peli palveluiden yhteiskehittämisen menetelmistä Päivi Pöyry-Lassila, Aalto-yliopisto Serve Research Brunch 24.10.2013 Esityksen sisältö ATLAS-hanke lyhyesti ATLAS-kartan kehittäminen:
Kenguru Benjamin (6. ja 7. luokka) ratkaisut sivu 1 / 6
Kenguru Benjamin (6. ja 7. luokka) ratkaisut sivu 1 / 6 3 pisteen tehtävät 1) Mikä on pienin? A) 2 + 0 + 0 + 8 B) 200 : 8 C) 2 0 0 8 D) 200 8 E) 8 + 0 + 0 2 2) Millä voidaan korvata, jotta seuraava yhtälö
Posterin teko MS Publisherilla
Posterin teko MS Publisherilla Ensimmäisenä avaa MS Publisher 2010. Löydät sen Windows valikosta - All programs - Microsoft Office. Publisheriin avautuu allaolevan kuvan mukainen näkymä. Mikäli et näe
Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.
Pikaopas Microsoft Excel 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Komentojen lisääminen pikatyökaluriville Pidä
Selainpelien pelimoottorit
Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta
Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto
Condess ratamestariohjelman käyttö Aloitus ja alkumäärittelyt Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Kun kysytään kilpailun nimeä, syötä kuvaava nimi. Samaa nimeä käytetään oletuksena
Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia?
Muilla kielillä: English Suomi Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia? Kun kaksi fysiikkaoliota törmää toisiinsa, syntyy törmäystapahtuma. Nämä tapahtumat voidaan ottaa kiinni
Asiakas ja tavoite. Tekninen toteutus
Asiakas ja tavoite Heikieli on vuonna 2015 perustettu yhden hengen asiantuntijayritys, joka tarjoaa käännös- ja oikolukupalveluita englannista ja saksasta suomeksi. Freelance-kääntäjiä on Suomessa paljon,
Harjoitussuunnitelma viikko 14 Potkaiseminen II
Harjoitussuunnitelma viikko 14 Potkaiseminen II = Pelikenttä = Keiloilla rajattu alue = Pelaaja = Maalivahti = Valmentaja = Pallo = Liike pallon kanssa = Liike ilman palloa = Syöttö tai potku Harjoituskerralla
Algoritmit 2. Luento 6 Ke Timo Männikkö
Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu
Siltaaminen: Piaget Matematiikka Inductive Reasoning OPS Liikennemerkit, Eläinten luokittelu
Harjoite 2 Tavoiteltava toiminta: Materiaalit: Eteneminen: TUTUSTUTAAN OMINAISUUS- JA Toiminnan tavoite ja kuvaus: SUHDETEHTÄVIEN TUNNISTAMISEEN Kognitiivinen taso: IR: Toiminnallinen taso: Sosiaalinen
Purot.net Wiki. Tutkielma. Paavo Räisänen. Centria Ammattikorkeakoulu 24.10.2012
Purot.net Wiki Tutkielma Paavo Räisänen Centria Ammattikorkeakoulu 24.10.2012 Sisällysluettelo 1: Esittely 2: Perustaminen 3: Uuden sivun luonti 4: Kuvien lisääminen 5: Linkin lisääminen 6: Lopuksi 1:
Harjoitussuunnitelma viikko 15 Sisäsyrjäpotku I
Harjoitussuunnitelma viikko 15 Sisäsyrjäpotku I = Pelikenttä = Keiloilla rajattu alue = Pelaaja = Maalivahti = Valmentaja = Pallo = Liike pallon kanssa = Liike ilman palloa = Syöttö tai potku = Keila Harjoituskerran
Sukelluskeräily. Pelihahmon liikuttaminen. Aarre ja pisteet
Sukelluskeräily 1 Tässä pelissä keräilet erilaisia aarteita ja väistelet vihollista. Tämän lisäksi pelaajan pitää käydä välillä pinnalla hengittelemässä. Peliin lisätään myös häiriötekijäksi esim. parvi
Scratch ohjeita. Perusteet
Perusteet Scratch ohjeita Scratch on graafinen ohjelmointiympäristö koodauksen opetteluun. Se soveltuu hyvin alakouluista yläkouluunkin asti, sillä Scratchin käyttömahdollisuudet ovat monipuoliset. Scratch
Trafficars - Ruuhkaara
760104 Trafficars - Ruuhkaara 2 5 pelaajaa Ikäsuositus 5+, 8+ Peliaika 10 15 minuuttia Pelipaketin sisältö 50 autokorttia 12 erikoiskorttia ohjevihko Pelissä: Opitaan liikkumaan lukualueella 0 50. Harjoitellaan
Kenguru Benjamin (6. ja 7. luokka) sivu 1 / 5
Kenguru Benjamin (6. ja 7. luokka) sivu 1 / 5 3 pisteen tehtävät 1) Mikä on pienin? A) 2 + 0 + 0 + 8 B) 200 : 8 C) 2 0 0 8 D) 200 8 E) 8 + 0 + 0 2 2) Millä voidaan korvata, jotta seuraava yhtälö olisi
COMBINE. Combine 3. linjoja ja pehmeitä kaaria. Näyttävää materiaalien ja muotojen tasapainoa. Voit luoda oman pöytäsi. Täydellisen yhdistelmäsi.
COMBINE 2 Combine Combine 3 COMBINE Yhdistele. Ja valitse vapaasti. Etsi kaikkein sopivin sohvapöytä. Tilaan. Tehtävään. Ja tunnelmaan. Sijoittelu sohvan, jakkaran tai nojatuolin kanssa. Ryhmälle tai yksittäiselle
OMAN KUVAN JA/TAI TEKSTIN SUUNNITTELU, VINYYLILEIKKURILLA LEIKKAAMINEN JA SIIRTÄMINEN T-PAITAAN
OMAN KUVAN JA/TAI TEKSTIN SUUNNITTELU, VINYYLILEIKKURILLA LEIKKAAMINEN JA SIIRTÄMINEN T-PAITAAN - Tässä ohjeessa suunnittelu on tehty Silhouette Studio -ohjelmalla ja vinyylileikkurina Silhouette Came
Kenguru 2013 Cadet (8. ja 9. luokka)
sivu 1 / 12 3 pistettä 1. Annalla on neliöistä koostuva ruutupaperiarkki. Hän leikkaa paperista ruutujen viivoja pitkin mahdollisimman monta oikeanpuoleisessa kuvassa näkyvää kuviota. Kuinka monta ruutua
BOKNÄS SCANDIC. Boknäs Scandic. Moduuleista koottu Boknäs Scandic -kaluste muuntuu ja kasvaa tarpeiden mukaan ylöspäin ja sivuille.
Boknäs Scandic Moduuleista koottu Boknäs Scandic -kaluste muuntuu ja kasvaa tarpeiden mukaan ylöspäin ja sivuille. VIIMEISTELE YLÄSOKKELILLA Yläsokkelin värin voi valita 7 eri vaihtoehdosta. Jos laitat
Pikaopas. Valintanauhan näyttäminen tai piilottaminen Avaa valintanauha napsauttamalla välilehteä, tai kiinnitä se pysyvästi näkyviin.
Pikaopas Microsoft Visio 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Päivitetyt mallit Mallien avulla voit nopeasti
Harjoitus Morphing. Ilmeiden luonti
LIITE 1 1(5) Harjoitus Morphing Harjoituksessa käsiteltävät asiat: Objektien kopioiminen Editoitavan polygonin muokkaaminen Morph-modifier käyttö ilmeiden luomiseen Lyhyen animaation luonti set key- toimintoa
Graafinen ohjeisto 1
Graafinen ohjeisto 1 Sisältö Tunnuksista yleisesti... 3 Tunnuksen versiot ja rakenne.... 4 Merkin värit.... 5 Tunnuksen värivaihtoehtoja... 7 Tunnuksen suoja-alue.... 8 Tunnuksen sijoittelu.... 9 Pienen
Pelisuunnittelua tulevaisuudessa. Karoliina Korppoo / Colossal Order
Pelisuunnittelua tulevaisuudessa Karoliina Korppoo / Colossal Order Puhuja Karoliina Korppoo Game Designer Lead designer projektissa Cities: Skylines Medianomi, Tampereen Ammattikorkeakoulu Filosofian
Hyvästä kuvasta hyvään kollaasiin. Siilinjärvi 17.5. ja 21.5.2010 Hannu Räisänen
Hyvästä kuvasta hyvään kollaasiin Siilinjärvi 17.5. ja 21.5.2010 Hannu Räisänen Copyright Hannu Räisänen 2010 1 Kuvankäsittely Copyright Hannu Räisänen 2010 2 Kuvankäsittelyn työskentelyjärjestys Kopioi
KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA
KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA SISÄLLYS 1. KUVAN TUOMINEN PAINTIIN...1 1.1. TALLENNETUN KUVAN HAKEMINEN...1 1.2. KUVAN KOPIOIMINEN JA LIITTÄMINEN...1 1.1. PRINT
Ohjelmointi 1. Kumppanit
Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5
Panoraamakuvat ja -video koulutuksessa. Diakonia-ammattikorkeakoulu, Kimmo Turtiainen, www.diak.fi www.panoraama.fi
360 Panoraamakuvat ja -video koulutuksessa 360 panoraamakuvat ja video 360 panoraamatyypit 360 panoraamakuvat valmiit panoraamat tuotetut panoraamat käyttö koulutuksessa - soveltaminen - esimerkkejä 360
ARVO - verkkomateriaalien arviointiin
ARVO - verkkomateriaalien arviointiin Arvioitava kohde: Jenni Rikala: Aloittavan yrityksen suunnittelu, Arvioija: Heli Viinikainen, Arviointipäivämäärä: 12.3.2010 Osa-alue 5/8: Mediaelementit Edellinen
KOKO PERHEEN HAUSKA STRATEGIAPELI OHJEET
KOKO PERHEEN HAUSKA STRATEGIAPELI OHJEET ROBOGEM_Ohjevihko_148x210mm.indd 1 PELIN TAVOITE Robotit laskeutuvat kaukaiselle planeetalle etsimään timantteja, joista saavat lisää virtaa aluksiinsa. Ohjelmoi
perustelu Noudatetaan sääntöjä. Opetuskortit (tehtävät 16 28), palikoita, supermarketin pohjapiirustus, nuppineuloja, tangram-palat
Harjoitus 12: INDUKTIIVISEN PÄÄTTELYN KERTAUS Tavoiteltava toiminta: Kognitiivinen taso: Ominaisuuksien ja suhteiden kertaus Toiminnan tavoite ja kuvaus: Oppilaat ratkaisevat paperi- ja palikkatehtäviä
Harjoitussuunnitelma viikko 17 Kärkipotku I
Harjoitussuunnitelma viikko 17 Kärkipotku I = Pelikenttä = Keiloilla rajattu alue = Pelaaja = Maalivahti = Valmentaja = Pallo = Liike pallon kanssa = Liike ilman palloa = Syöttö tai potku = Keila Harjoituskerran
Kuvien lisääminen ja käsittely
Kuvien lisääminen ja käsittely KUVIEN LISÄÄMINEN JA KÄSITTELY Tämä on ote VIS Online Mediahallinta ohjeesta. Kuvia lisätään autojen tietoihin VIS Online kuvankäsittelyohjelmalla. Ohjelma käynnistyy klikkaamalla
Digikuvan peruskäsittelyn. sittelyn työnkulku. Soukan Kamerat 22.1.2007. Soukan Kamerat/SV
Digikuvan peruskäsittelyn sittelyn työnkulku Soukan Kamerat 22.1.2007 Sisält ltö Digikuvan siirtäminen kamerasta tietokoneelle Skannaus Kuvan kääntäminen Värien säätö Sävyjen säätö Kuvan koko ja resoluutio
Mitä on konvoluutio? Tutustu kuvankäsittelyyn
Mitä on konvoluutio? Tutustu kuvankäsittelyyn Tieteenpäivät 2015, Työohje Sami Varjo Johdanto Digitaalinen signaalienkäsittely on tullut osaksi arkipäiväämme niin, ettemme yleensä edes huomaa sen olemassa
Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.
Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita
Luento 3: 3D katselu. Sisältö
Tietokonegrafiikan perusteet T-.43 3 op Luento 3: 3D katselu Lauri Savioja Janne Kontkanen /27 3D katselu / Sisältö Kertaus: koordinaattimuunnokset ja homogeeniset koordinaatit Näkymänmuodostus Kameran
Kenguru 2013 Benjamin sivu 1 / 7 (6. ja 7. luokka) yhteistyössä Pakilan ala-asteen kanssa
Kenguru 2013 Benjamin sivu 1 / 7 Nimi Ryhmä Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Väärästä vastauksesta
Muumion kirous. Pelisuunnitteludokumentti. Veikkauksen pelisuunnittelukilpailua (Peliskaba2015) varten
Pelisuunnitteludokumentti Muumion kirous Veikkauksen pelisuunnittelukilpailua (Peliskaba2015) varten Tekijä: Esko Vankka Osoite: Yliopistonkatu 39 E 51, 33500 Tampere Puh: 0400 832 907 Email: esko.pj.vankka@gmail.com
Selaimen kautta käytettävällä PaikkaOpin kartta-alustalla PaikkaOppi Mobiililla
19.1.2017 Sisällys Slide 3. Mikä on PaikkaOppi Mobiili? Slide 4. Kaavio PaikkaOppi Mobiilin käytön aloituksesta. Slidet 5-7. Tunnusten ja kurssin luominen ennen sovelluksen käyttöä. Slide 8. Hae sovellus
Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.
Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta. Vastauksia kysymyksiin Miten hahmon saa hyppäämään? Yksinkertaisen hypyn
2020 Fusion. What s New in Version 6? What s New in Version 6? 1 of Fusion
2020 Fusion What s New in Version 6? What s New in Version 6? 1 of 17 2020 Fusion Uusi 2020 Fusion 6 nopeuttaa ja helpottaa työskentelyäsi: Täysin uudistettu renderöinti Useiden tuotteiden muokkaus samalla
JUJUPRIX 2015. Kalle Tuominen & Timo Mäkeläinen Markkinointiviestinnän suunnittelutoimisto Mainio Oy. kalle@mainiota.fi timo.makelainen@mainiota.
JUJUPRIX 2015 Kalle Tuominen & Timo Mäkeläinen Markkinointiviestinnän suunnittelutoimisto Mainio Oy kalle@mainiota.fi timo.makelainen@mainiota.fi Tampere matkailukohteena. Tampere on Pohjoismaiden suurin
Skype for Business ohjelman asennus- ja käyttöohje Sisällys
Skype for Business ohjelman asennus- ja käyttöohje Sisällys Kirjautuminen Office 365 -palveluun... 2 Skype for Business ohjelman asentaminen... 3 Yhteyshenkilöiden lisääminen Skype for Business ohjelmassa...
Teini-taulusto Kuvat lausetasoinen
Teini-taulusto Kuvat lausetasoinen Teini-taulusto on suunniteltu nuorten ja nuorten aikuisten sekä joissain tapauksissa myös aikuisten sähköiseksi kommunikoinnin apuvälineeksi. Taulusto toimii ChatAble
NETTISIVUOHJE. MUITA OHJEITA käyttäjän lisääminen, mediakirjasto, sähköpostien lisääminen
NETTISIVUOHJE SISÄLTÖ 2 JULKAISUJÄRJESTELMÄ tietoa WordPress julkaisujärjestelmästä perustoiminnot (kirjautuminen, asetukset) 6 MUITA OHJEITA käyttäjän lisääminen, mediakirjasto, sähköpostien lisääminen
Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014
Tietokanta Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia ja linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat
Arvokas. Graafinen ohjeistus
Graafinen ohjeistus Sinä olet arvokas! -ohjelma rakentaa yhdenvertaisempaa Suomea, jossa jokaisella lähtökohdista ja elämäntilanteesta riippumatta on mahdollisuus kokea olevansa merkityksellinen osa yhteisöä
4. Funktion arvioimisesta eli approksimoimisesta
4. Funktion arvioimisesta eli approksimoimisesta Vaikka nykyaikaiset laskimet osaavatkin melkein kaiken muun välttämättömän paitsi kahvinkeiton, niin joskus, milloin mistäkin syystä, löytää itsensä tilanteessa,
Julkaisun laji Opinnäytetyö. Sivumäärä 43
OPINNÄYTETYÖN KUVAILULEHTI Tekijä(t) SUKUNIMI, Etunimi ISOVIITA, Ilari LEHTONEN, Joni PELTOKANGAS, Johanna Työn nimi Julkaisun laji Opinnäytetyö Sivumäärä 43 Luottamuksellisuus ( ) saakka Päivämäärä 12.08.2010
Kuva 1. GIMP:in uuden kuvan luominen. Voit säätää leveyttä ja korkeutta ja kokeilla muitakin vaihtoehtoja. Napsauta sitten "OK".
Gimp alkeet III 8 luokan ATK-työt/HaJa Sivu 1 / 6 Uuden kuvan luominen GIMP:illä yleisinfoa ----> LUE! Sen lisäksi, että GIMP on loistava valokuvankäsittelyohjelma, sillä saa piirrettyä myös omia kuvia
S09 04 Kohteiden tunnistaminen 3D datasta
AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen
Pinta-ala- ja tilavuuskäsitteiden oppimispeli
Pinta-ala- ja tilavuuskäsitteiden oppimispeli Kari Mikkola, FM, OSAO, Kaukovainion yksikkö, tekniikka Geometriaa on perinteisesti osattu heikoiten matematiikan osa-alueista peruskoulun päättyessä [1],
Harjoitussuunnitelma viikko 18 Kärkipotku II
Harjoitussuunnitelma viikko 18 Kärkipotku II = Pelikenttä = Keiloilla rajattu alue = Pelaaja = Maalivahti = Valmentaja = Pallo = Liike pallon kanssa = Liike ilman palloa = Syöttö tai potku = Keila Harjoituskerralla
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa
Kahoot - kyselytyökalu
Kahoot - kyselytyökalu Kahoot on pelimäinen työkalu kyselyiden, keskusteluiden ja tiedon kartoitukseen. Se on täysin ilmainen ja sitä voivat käyttää niin opettajat kuin opiskelijatkin. Kyselyitä on tarkoitus
Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager
Missio: 1. Asentaminen 2. Valokuvien tarkastelu, tallennus/formaatit, koko, tarkkuus, korjaukset/suotimet, rajaus 3. Kuvan luonti/työkalut (grafiikka kuvat) 4. Tekstin/grafiikan lisääminen kuviin, kuvien/grafiikan
idvd 5 ELOKUVAKASVATUS SODANKYLÄSSÄ Vasantie 11 99600 Sodankylä +358 (0)40 73 511 63 tommi.nevala@sodankyla.fi
ELOKUVAKASVATUS SODANKYLÄSSÄ Vasantie 11 99600 Sodankylä +358 (0)40 73 511 63 tommi.nevala@sodankyla.fi Elokuvakasvatus Sodankylässä -projekti Opettajien täydennyskoulutus Oppimateriaali 10/2005 idvd 5
LUENTO 10 ESITYSGRAFIIKKA
LUENTO 10 ESITYSGRAFIIKKA TIEY4 TIETOTEKNIIKKATAIDOT SYKSY 2017 JUHANI LINNA ANTTI SAND 14.11.2017 LUENTO 10 14.11.2017 Tällä luennolla 1. Yleistä kurssiasiaa 2. Taustaa harjoitukseen 5b 3. Harjoituksen
Pintamallintaminen ja maastomallinnus
1 / 25 Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto Pintamallintaminen ja maastomallinnus Muistilista uuden ohjelman opetteluun 2 / 25 1. Aloita käyttöliittymään tutustumisesta: Mitä hiiren näppäintä
Eye Pal Solo. Käyttöohje
Eye Pal Solo Käyttöohje 1 Eye Pal Solon käyttöönotto Eye Pal Solon pakkauksessa tulee kolme osaa: 1. Peruslaite, joka toimii varsinaisena lukijana ja jonka etureunassa on laitteen ohjainpainikkeet. 2.
Kuule - luonnollisesti
Kuule - luonnollisesti Täydellisen tasapainoinen ääni Kuvittele, millaista olisi pystyä seuraamaan keskusteluja. Kuulla kaikki ympäristön äänet. Siirtyä mukavasti hiljaisesta paikasta meluisaan. Kuulla
Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö
Matopeli C#:lla Aram Abdulla Hassan Ammattiopisto Tavastia Opinnäytetyö Syksy 2014 1 Sisällysluettelo 1. Johdanto... 3 2. Projektin aihe: Matopeli C#:lla... 3 3. Projektissa käytetyt menetelmät ja työkalut
Kenguru 2017 Student lukio
sivu 1 / 9 NIMI LUOKKA Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Oikeasta vastauksesta saa 3, 4 tai 5 pistettä.
Stora Enso Effex an Eye for Wood
EnsoEffex Stora g tu p l Stora Enso Effex an Eye for Wood Stora Enso Effex an Eye for Wood Lähtökohtana luonnonmukaisuus Effex toistaa luonnon muotokieltä. Effex on: Aitoa puuta Luonnon inspiroima Luonnollinen
Google-dokumentit. Opetusteknologiakeskus Mediamylly
Google-dokumentit 1 2 3 Yleistä 1.1 Tilin luominen 4 1.2 Docs-päävalikkoon siirtyminen 7 Dokumentit-päävalikko 2.1 Kirjaudu Dokumentteihin 9 2.2 Lähetä tiedosto Google-dokumentteihin 11 2.3 Uuden asiakirjan
2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys
.. Kohteiden konstruktiivinen avaruusgeometrinen esitys Avaruusgeometrinen esitys on käyttäjäriippuvainen ja vaati erikoismenetelmiä tai lopuksi konversion monikulmiomalliksi. Se on korkean tason esitys
Hyvä ja paha pelillistäminen
Hyvä ja paha pelillistäminen Kalle Huhtala, kehitysjohtaja @Kalle_Huhtala #pelillistäminen #gamification #vvop2014 A NORDIC MORNING COMPANY Hyvässä hypessä Big Data Sosiaalinen media työelämässä Gamification/
Kanta ja Kannan-vaihto
ja Kannan-vaihto 1 Olkoon L vektoriavaruus. Äärellinen joukko L:n vektoreita V = { v 1, v 2,..., v n } on kanta, jos (1) Jokainen L:n vektori voidaan lausua v-vektoreiden lineaarikombinaationa. (Ts. Span(V
Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon
Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon KA1-kurssi on ehkä mahdollista läpäistä, vaikkei osaisikaan piirtää suoraa yhtälön perusteella. Mutta muut kansiksen kurssit, no
PIKSELIT JA RESOLUUTIO
PIKSELIT JA RESOLUUTIO 22.2.2015 ATK Seniorit Mukanetti ry / Tuula P 2 Pikselit ja resoluutio Outoja sanoja Outoja käsitteitä Mikä resoluutio? Mikä pikseli? Mitä tarkoittavat? Miksi niitä on? Milloin tarvitaan?
Mainosankkuri.fi-palvelun käyttöohjeita
Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...
INDUKTIIVISEN PÄÄTTELYN HARJOITUSPAKETTI TOISELLE LUOKALLE
INDUKTIIVISEN PÄÄTTELYN HARJOITUSPAKETTI TOISELLE LUOKALLE Induktiivisen päättelyn tehtävät Tehtävät 1 5 Suhteet: Vastaavuus eli analogia Mikä kuvio sopii tyhjään ruutuun? 1. VASTAAVUUSTAULUKKO? 2. VASTAAVUUSTAULUKKO?
3 TOISEN ASTEEN POLYNOMIFUNKTIO
3 TOISEN ASTEEN POLYNOMIFUNKTIO POHDITTAVAA 1. Kuvasta voidaan arvioida, että frisbeegolfkiekko käy noin 9 metrin korkeudella ja se lentää noin 40 metrin päähän. Vastaus: Frisbeegolfkiekko käy n. 9 m:n
Harjoitussuunnitelma viikko 1 Sisäsyrjäpotku I
Harjoitussuunnitelma viikko 1 Sisäsyrjäpotku I = Pelikenttä = Keiloilla rajattu alue = Pelaaja = Maalivahti = Valmentaja = Pallo = Liike pallon kanssa = Liike ilman palloa Harjoituskerran tavoitteena on