• Ei tuloksia

Animaatioprosessi pelimoottorilla

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Animaatioprosessi pelimoottorilla"

Copied!
46
0
0

Kokoteksti

(1)

Animaatioprosessi pelimoottorilla

LAB-ammattikorkeakoulu

Insinööri (AMK), Tieto- ja viestintätekniikka 2021

Silja Myllylä

(2)

Tiivistelmä

Tekijä(t) Myllylä, Silja

Julkaisun laji

Opinnäytetyö, AMK

Valmistumisaika 2021

Sivumäärä 41

Työn nimi

Animaatioprosessi pelimoottorilla

Tutkinto ja koulutusala

Insinööri (AMK), Tieto- ja viestintätekniikka

Toimeksiantajan nimi, titteli ja organisaatio (jos opinnäytetyöllä on toimeksiantaja) Henri Koskinen, Toimitusjohtaja & mediatuottaja, Pixtell Oy

Tiivistelmä

Työn tavoitteena oli tutkia pelimoottorien tarjoaman reaaliaikaisen renderöinnin hyötyjä sekä vaikutusta nykyiseen animaatioprosessiin. Työssä keskityttiin 3D- tietokoneanimaation tekniikoiden kehittymiseen, yleisen 3D-animaatioprosessin vaiheisiin, renderöinnin tekniikoihin sekä pelimoottorin hyödyntämisen

mahdollisuuksiin. Työssä tutkittiin, mitä pelimoottorin tarjoamia työkaluja ja

teknologioita voidaan hyödyntää animaation valmistuksessa tuottamalla 3D-animaatio pelimoottorissa.

Toimeksiantajana toimi Pixtell Oy, jonka kehitteillä olevasta pelistä Legend of Seppo – Last Drop oli tarkoitus tuottaa animaatio hyödyntäen Unreal Engine -pelimoottoria.

Animaatio voidaan julkaista esimerkiksi pelin sosiaalisiin medioihin, jossa sen tarkoitus on herättää huomiota peliä kohtaan sekä esitellä pelimaailmaa.

Pelimoottorin työkalut mahdollistivat animaation tuottamisen yhden tietokoneohjelman sisällä. Animaation välivaiheet voitiin toteuttaa sen tarpeita mukailevassa

järjestyksessä ja reaaliaikainen renderöinti mahdollisti parhaimman version

ideoimisen kesken animaation tuotannon. Reaaliaikaista renderöintiä hyödyntämällä mahdolliset virheet voitiin huomata ja korjata heti.

Animaation tuotanto koettiin nopeammaksi sekä miellyttävämmäksi reaaliaikaisen renderöinnin johdosta. Pelimoottorien nykyisten sekä tulevien teknologioiden hyödyntäminen tulee kehittämään tulevaisuudessa tapaa tuottaa animaatioita, ja se mahdollistaa täysin uudenlaisia lopputuloksia.

Asiasanat

Animaatio, animaatioprosessi, reaaliaikainen renderöinti, pelimoottori, Unreal Engine

(3)

Abstract

Author(s) Myllylä, Silja

Type of Publication Thesis, UAS

Published 2021 Number of Pages

41 Title of Publication

Animation process with a game engine

Degree and field of study

Bachelor of Engineering, Information and Communications Technology

Name, title and organisation of the client (if the thesis work is commissioned by another party)

Henri Koskinen, CEO & Media Producer, Pixtell Oy Abstract

The purpose of the thesis was to study the benefits of real-time rendering provided by game engines and its impact on the current animation process. The work focused on the development of 3D computer animation techniques, general steps of 3D anima- tion process, rendering techniques and the possibilities of utilizing the game engine in 3D animation process. The main goal was to study what tools and technologies pro- vided by a game engine can be utilized in the production of 3D animation by produc- ing animation in the game engine.

The client was Pixtell Oy, and the purpose of the thesis was to create a teaser trailer for their game Legend of Seppo – Last Drop with the Unreal Engine game engine.

The game is still under development, so the purpose of the animation is to draw atten- tion and introduce the game world to public.

The tools of the game engine made it possible to produce animation within a single computer program. The steps of the process could be produced in the order that suited its needs. Real-time rendering allowed the best version to be iterated during the production state of the animation and the possible flaws could be detected and corrected immediately.

The production of animation was perceived to be faster and more enjoyable due to the real-time rendering. Utilizing the current and future technologies of a game engine will develop the way to produce animations in the future and it will enable completely new kinds of results in animations.

Keywords

Animation, animation process, real-time rendering, game engine, Unreal Engine

(4)

1 Johdanto ... 1

2 Animointi ... 2

2.1 Animaatio ... 2

2.1.1 Animaatiotekniikoita ... 3

2.1.2 3D-tietokoneanimaatio ... 5

2.2 3D-animaatioprosessi ... 6

2.2.1 Esituotanto ... 7

2.2.2 Tuotanto ... 9

2.2.3 Jälkituotanto ... 13

3 Reaaliaikainen renderöinti ... 14

3.1 Renderöinti ... 14

3.2 Renderöintiputki ... 15

3.2.1 Menetelmät ... 17

3.2.2 Laitteistot ... 19

4 Pelimoottori ... 21

4.1 Ohjelmistot ... 21

4.2 Käyttökohteita ... 23

4.3 Pelimoottorin animaatioprosessi ... 24

5 CASE: Animointi pelimoottorilla ... 28

5.1 Toimeksianto ja tavoite ... 28

5.2 Suunnitelma ... 28

5.3 Toteutus ... 29

6 Yhteenveto ja pohdinta ... 38

Lähteet ... 39

(5)

Assetti Videopeliin tai animaatioon kuuluva osa, kuten hahmo, staattinen objekti tai ääni- ja visuaalitehoste

Buildata Prosessi, jossa pelimoottoriin annettu data muunnetaan ajettavaan muotoon

Editori Ojelman sisäinen käyttöliittymä, jonka tehtävänä on mahdollistaa erilaisten työkalujen visuaalinen esittäminen

Objekti Esine, kappale

Parent-objekti Esinehierarkiassa ylemmän tason objekti, joka hallitsee sille määrättyjä child-objekteja

Polygoni monikulmion kaltainen primitiivi

Primitiivi 3D-ohjelmassa käytettävä kolmiulotteinen geometrinen muoto

Splini käyrä

Verteksi piste

(6)

1 Johdanto

Animaation nykyinen tuotanto perustuu vuosien mittaan kehittyneeseen standardisoituneeseen kolmen päävaiheen animaatioprosessiin. Päävaiheet koostuvat erilaisista alavaiheista, jotka muotoutuvat tuotannossa olevien animaatioiden tarpeiden mukaisiksi. Tekniikan kehittyessä yhä realistisemmat animaatiot ovat tulleet mahdollisiksi, mutta parhaimman mahdollisen lopputuloksen saavuttaminen voi vaatia animaatioprosessin vaiheiden toistamista useaan otteeseen, sillä animointiin tarkoitettujen tietokoneohjelmien etukäteisen renderöinnin johdosta lopputulosta ei voida nähdä heti.

Pelituotannossa käytettävät pelimoottorit tarjoavat tänä päivänä reaaliaikaisen renderöinnin lisäksi animaatiotuotantoa hyödyttäviä työkaluja, ja niiden hyödyntämisen yleistymisen uskotaan vaikuttavan tulevaisuudessa koko animaatiotuotannon alaan.

Työn tavoitteena on tutkia pelimoottorien tarjoaman reaaliaikaisen renderöinnin hyötyjä, ja niiden vaikutusta nykyiseen lineaariseen animaatioprosessiin sekä toteuttaa 3D-animaatio pelimoottorissa. Teoriaosuudessa käsitellään 3D-tietokoneanimaation tekniikoiden kehittymistä, yleisen 3D-animaatioprosessin vaiheita, renderöinnin tekniikoita sekä pelimoottorin hyödyntämisen mahdollisuuksia. Työssä ei käsitellä muissa tietokoneohjelmissa toteutettavaa assettien valmistusta. Renderöinnin tekniikoissa otetaan huomioon etukäteisen sekä reaaliaikaisen renderöinnin eroja sekä menetelmiä, joilla reaaliaikaisen renderöinnin katselukokemusta voidaan maksimoida. Pelimoottorin hyödyntämistä tutkiessa tarkastellaan pelimoottorin tarjoamia etuja sekä pohditaan sen vaikutusta alan tulevaisuuteen.

Opinnäytetyön toimeksiantaja on Pixtell Oy, jonka kehitteillä olevasta pelistä on tarkoitus tuottaa teaseri, eli esittelyfilmi hyödyntäen Unreal Engine -pelimoottoria. Teaseri voidaan julkaista myöhemmin esimerkiksi pelin sosiaalisiin medioihin herättämään huomiota peliä kohtaan. Työn toteutusosuudessa käsitellään teaserin animaatioprosessia pelimoottorissa sekä työkaluja, joita hyödynnettiin. Toteutusosuudessa ei käsitellä hahmojen tai 3D- objektien valmistusprosessia animaatiotarkoitukseen, vaan animaatiossa käytetään jo olemassa olevia malleja.

(7)

2 Animointi 2.1 Animaatio

Animaatioksi kutsutaan taiteen muotoa, jossa tarina kerrotaan käyttäen hyödyksi ääntä ja illuusiolla luotua liikkuvaa kuvaa (Selby 2013, 6). Liike simuloidaan esittämällä kuvia tietty määrä sekunnissa, ja kun kuvien sekuntinopeus (frames per second, FPS) saavutetaan tarpeeksi suureksi, ihmissilmä analysoi kohteen liikkuvaksi (Read & Meyer 2000, 24).

Näytettävien kuvien nopeus vaihtelee sen perusteella, millaista projektia ollaan luomassa.

Esimerkiksi standardi määrä elokuvien kuvataajuudella on ollut 24 kuvaa sekunnissa, kun taas televisioon tai internettiin tuotetuissa videoissa ja animaatioissa 30. (White 2006, 154.) Pienin toimiva kuvataajuus sulavan liikkeen luomiseksi on 24 FPS (Unity).

Animaation käyttötarkoituksia on useita, joista suurimpana sekä vanhimpana on viihdeteollisuus. Esimerkiksi nykyajan teknologia on mullistanut tietokoneanimaatioiden tuotannon, ja monien elokuvien tuotantovaiheessa hyödynnetään animointia. Muita suosiossa olevia käyttökohteita ovat koulutus, mainosala, tieteellinen visualisointi, taide, peliteollisuus sekä simulaatiot. Näissä käyttökohteissa animaatioiden tarkoituksena on yleensä herättää huomiota sekä auttaa tarinankerrontaa visuaalisesti. (Hive Studio 2017.) Ihmiset ovat luoneet elävää kuvaa satoja vuosia jo ennen kameran keksimistä. 1600-luvulla kehitetyllä Magic Lantern -nimisellä projektorilla (Kuva 1) heijastettiin lasilevyyn piirrettyjä kuvia peräkkäin seinälle kynttilän valon ja peilin avulla, jolloin saatiin luotua illuusio liikkeestä. 1800-luvulla keksittiin fenakistiskooppi ja zoetrooppi, joiden tarkoituksena oli saada animaatiolle sujuvampi liike esittämällä kuvia nopeammalla tahdilla. Näiden ideana oli esittää lyhyt toistuva animaatio pienellä määrällä kuvia. (MasterClass 2021.)

Kuva 1. Magic Lantern -projektori (Kircher 1671, 768-769, Wikipedia 2021 mukaan)

(8)

Tekniikan kehittyessä animoinnin apuna alettiin käyttää kameroita ja myöhemmin tietokoneita, mikä mahdollisti myös pidempien animaatioiden tuotannon. Ensimmäinen kokonaispitkä animaatioelokuva oli Walt Disney Studion vuonna 1937 tuottama Lumikki ja seitsemän kääpiötä. (MasterClass 2021.)

2.1.1 Animaatiotekniikoita

Vanhin animaatiotekniikka on käsin tehty kaksiulotteinen piirrosanimaatio. Liike simuloitiin piirtämällä kaikki kuvat käsin, yksi kerrallaan, muokaten aina uutta kuvaa hieman edelliseen nähden. Tietokoneiden yleistyessä kaksiulotteisia animaatioita alettiin toteuttamaan myös esimerkiksi vektorigrafiikalla. Päätekniikka kaksiulotteisen animaation tuotannossa on avainkehykset (keyframes), joiden avulla suunnitellaan liikkeen pääkohdat. Jotta liikkeestä saadaan vielä sulavampaa, avainkehysten väliin lisätään välikehyksiä (inbetweeners).

(Chang.) Kuvassa 2 esitetään suunnitelma pallon liikkeestä animaatiossa. Punaisella on esitetty koko animaation avainkehykset ja sinisellä ensimmäisen ja toisen avainkehyksen väliin tulevat välikehykset. Käsin piirtäessä kuvat piirretään esimerkiksi läpinäkyvälle paperille, jotta edellisen kehyksen liikkeen jatkaminen helpottuu (Selby 2013, 84).

Pomppivan pallon liikkeiden periaatetta on hyödynnetty animoinnin alkeissa pitkään, sillä sen avulla voidaan selkeästi ilmaista muun muassa painon, kaarien, hidastamisen, painovoiman sekä ajastuksen vaikutusta lopulliseen animaatioon (White 2009, 34).

Kuva 2. The Bouncing Ball (mukailtu White 2009, 35-49)

(9)

Stop motion -animaatiossa käytetään apuna mitä vain staattisia oikean elämän esineitä, joita liikutetaan ja valokuvataan (Kuva 3). Jotta liikkeestä saadaan sulavaa, täytyy kappaleita liikuttaa vain vähän edelliseen kehykseen nähden ja tämän seurauksena stop motionin sanotaan olevan yksi aikaavievimmistä animaatiotekniikoista. Stop motion - animaation kuvataajuus voi olla välillä 12-70 FPS. (Chang.)

Kuva 3. Stop motion -animaation hahmojen liikuttaminen (Aardman)

Tunnetuimmissa stop motion -animaatioissa animoidaan yleensä savella tai nukeilla.

Esimerkiksi saven käytön hyöty on se, että sitä voidaan manipuloida tuoden objekteille enemmän liikettä. Kaksiulotteinen stop motion -animaatio voidaan luoda esimerkiksi paperinukeilla. (Selby 2013, 135-142.) Toisin kuin kaksiulotteisessa animaatiossa, stop motionia toteutettaessa joudutaan ottamaan huomioon myös kohtausten kulissit. Kuvatessa kolmiulotteisia objekteja, täytyy tuntea valokuvauksen perusteet sekä oikeanlainen valaistus, jotta voidaan maksimoida kehysten laatu. Yleinen tapa on käyttää esimerkiksi kolmen pisteen valaistusta, jonka tavoitteena on korostaa kehyksen pääkohdetta ja poistaa turhia varjoja. (Selby 2013, 143-145.)

(10)

Muita tunnettuja tapoja animoida on esimerkiksi rotoskooppaus, jossa käsin piirrettyjen hahmojen liikkeistä saadaan elävämmän näköisiä kopioimalla ne videokuvatulta todelliselta hahmolta. Video käydään läpi kuva kuvalta, ja animoitu hahmo piirretään sen päälle.

Tekniikkaa on hyödynnetty jo esimerkiksi Lumikki ja seitsemän kääpiötä -elokuvassa.

(Selby 2013, 133.) Liikkeenkaappaus (motion capture) käyttää samaa ideaa, mutta todellisen hahmon liike tallennetaan tietokoneella siihen kehitettyjen pukujen avulla ja käytetään 3D-animaation liikkeiden luonnissa (White 2006, 454).

2.1.2 3D-tietokoneanimaatio

Tietokoneella tuotetussa kolmiulotteisessa animaatiossa käytetään samoja perusteita kuin stop motionissa sekä perinteisessä kaksiulotteisessa animaatiossa. 3D-mallit kuvataan kehys kerrallaan virtuaalisella kameralla 3D-ympäristössä, ja ne laitetaan liikkumaan avainkehysten avulla. Erona on vain se, että 3D-animaation jokainen osa on tuotettu tietokoneella. Tämä avaa ovia uusille mahdollisuuksille luoda kokoajan realistisempia lopputuloksia, ja on siksi kehittynyt animoinnin hallitsevaksi tekniikaksi. (Chang.)

Kolmiulotteisessa animaatiossa prosessiin kuuluu enemmän välivaiheita kuin kaksiulotteisen tai stop motionin, ja näin ollen sen tuotanto on myös kalliimpaa. Jokainen animaatiossa näkyvä hahmo, lavaste sekä kulissi luodaan erikseen 3D-grafiikkaohjelmalla, ja jokaiselle 3D-mallille luodaan ja asetetaan omat materiaalit, valaistukset sekä avainkehykset. Tietokone luo automaattisesti välikehykset tehden lopputuloksen liikkeestä sulavan. (Chang.)

Animaattorin täytyy osata elokuvan tuotannon tekniikoiden lisäksi myös käyttää jokaista tietokoneohjelmaa jota tarvitaan 3D-animaation valmistuksessa. Näihin kuuluvat muun muassa 3D-mallinnusohjelmat, mahdolliset renderöintiohjelmat, kuvankäsittelyohjelmat sekä jälkituotantoon erikoistuneet ohjelmat. (Selby 2013, 148.) Renderöintimoottorit sisältyvät useimpiin 3D-grafiikkaohjelmiin, jolloin erillisiä ohjelmia ei ole tarve käyttää (Unity).

3D-mallinnusohjelmien toiminta perustuu matematiikkaan. 3D-mallit rakennetaan ohjelman sisäiseen avaruuteen ja mallinnetaan suorakulmaisen koordinaatiston avulla. (White 2006, 424.) Kuvassa 4 visualisoidaan Blender-nimisen 3D-grafiikkaohjelman tapaa esittää koordinaatisto. Ohjelmaan on mallinnettu taso, jonka sijainti esitetään X-, Y- ja Z-akseleilla.

Näkymästä voidaan myös havainnoida, että jokaiselle akselille on annettu oma värinsä mallinnusprosessin selkeyttämiseksi.

(11)

Kuva 4. Suorakulmainen koordinaatisto Blenderissä

Tietotaitoa täytyy olla myös kerrontatekniikoista, valokuvauksen perusteista sekä valojen hyödyntämisestä halutun lopputuloksen saamiseksi. Tähän voi kuulua esimerkiksi studiovalokuvauksen perusteet. (Selby 2013, 148.) Valot ovat tärkeänä osana esimerkiksi kohtausten syvyyttä rakennettaessa, sillä niiden avulla saadaan helposti erotettua etu-, keski- sekä taka-alat toisistaan ja kiinnitettyä katsojan huomio haluttuun kehyksen osaan (Chetty 2021). Anatomian perusteiden avulla 3D-malleille voidaan luoda niin sanotut luurangot (rigging), jotta staattisia objekteja voidaan muovailla (Selby 2013, 148).

Anatomiaa hyödynnetään myös liikkeen realistisen lopputuloksen saavuttamiseksi (White 2006, 286).

2.2 3D-animaatioprosessi

Animaatioprosessiksi (Animation production pipeline) kutsutaan tapahtumien sarjaa, jossa animaatio suunnitellaan ja toteutetaan vaihe vaiheelta (White 2009, 219). Prosessissa ihmiset, laitteistot sekä ohjelmat suorittavat tehtäviä peräkkäisessä järjestyksessä annetun aikataulun mukaisesti, ja sen läpikäynti on tärkeä osa animaatiotuotantoa (Cortes 2020).

Vaiheet ovat muotoutuneet standardeiksi askeleiksi, joita noudattavat alan ammattilaiset joka puolella maailmaa (White 2006, 184).

Animaation kehitys jakautuu kolmeen standardiin päävaiheeseen. Nämä ovat esituotanto, tuotanto ja jälkituotanto, ja niiden avulla toteutetaan animaatiotuotannon vaiheet ideasta lopulliseen julkaisuun. Esituotanto kattaa kaikki suunnitelmalliset osat, tuotannossa tuotetaan kaikki materiaali, ja jälkituotanto keskittyy lopulliseen editointiin. (Selby 2013, 13- 17.) Vaiheissa käytettävät metodit vaihtelevat riippuen animaatiotekniikoista (Cortes 2020).

(12)

Usein animaation tuotanto toteutetaan tiimityöskentelynä. Jokaiselle vaiheelle on nimetty omat vastuuhenkilönsä, joiden tehtävänä on pitää huoli oman vaiheensa toteutumisesta.

Projektipäällikkö pitää huolen koko projektin laajuudesta, budjetista sekä tiimin hankinnasta. (Cortes 2020.)

2.2.1 Esituotanto

Animaatioprosessi alkaa ideasta. Esituotantovaiheen tarkoitus on purkaa idea mahdollisimman pieniin palasiin projektin onnistumisen takaamiseksi. Huolella suunniteltu esituotanto helpottaa niin tuotannon kuin jälkituotannonkin työvaiheita sekä selkeyttää esimerkiksi aikataulutusta, työmäärää ja budjettia. (White 2006, 2.)

Ensimmäisessä vaiheessa prosessia ideaa aletaan käsittelemään tarinaksi ja siitä edelleen käsikirjoitukseksi. Tarinan kehittämisen aikana täytyy ottaa huomioon mahdolliset ongelmat esimerkiksi tekijänoikeuksien kanssa. (White 2006, 2-3.) Käsikirjoituksen tarkoitus on esittää tarinan kulku kohtaus kohtaukselta sisältäen toiminnan ja tapahtumat mahdollisimman yksityiskohtaisesti sekä vuoropuhelut (Kuiper 2009). Selby (2013, 66) painottaa kirjassaan myös tutkimustyön tärkeydestä jo animaatioprosessin alkuvaiheessa.

Tutkimuksessa olisi hyvä ottaa huomioon tarinan yksityiskohtien todenperäisyydet, kohdeyleisön mieltymykset sekä animaation teknisten osien toteuttamisen haasteet.

Animaatiossa kuvan lisäksi ääni on ainoa tapa aktivoida katsojan aisteja, ja on siksi elintärkeä osa tuotettua animaatiota (Selby 2013, 108). Audiot jakautuvat kolmeen pääosaan, joihin kuuluu dialogi ja kerronta, musiikki sekä erikoistehosteet. Puhetta käytetään sitomaan tarinaa yhtenäiseksi kokonaisuudeksi, sillä sen avulla voidaan avata selkeämmin toiminnan ja reaktioiden syitä, joko hahmojen tai kertojan muodossa. (Selby 2013, 112-114.) Musiikin avulla voidaan korostaa tunteisiin vetoavia kohtauksia sekä vahvistaa tarinaa, ja ääniefekteillä voidaan antaa ääni kohtauksen staattisille objekteille.

Nämä tehosteet voidaan jakaa kahteen luokkaan; niin sanottuihin koviin efekteihin (hard effects), joihin kuuluvat kaikki kohtauksessa näkyvien objektien tuottamat äänet sekä pehmeisiin efekteihin (soft effects), joita käytetään esittämään näkymän ulkopuolisia tapahtumia. (Selby 2013, 119-122.) Äänellä on vaikutus jokaiseen animaatioprosessin vaiheeseen, ja sen vuoksi tarvittavien äänien valinnat sekä äänitykset tehdään ensimmäisenä käsikirjoituksen jälkeen (Selby 2013, 8).

Hahmosuunnittelu kattaa hahmojen ulkonäön, luonteenpiirteiden sekä muiden yksityiskohtien pohtimisen. Tämä vaihe on tärkeä toteuttaa harkiten, sillä hahmoilla voidaan vaikuttaa suuresti lopullisen animaation onnistumiseen. (White 2006, 30.) Suunnittelu toteutetaan usein tuottamalla mallilomake (model sheet), josta käy ilmi hahmon visuaalinen

(13)

ilme useammasta suunnasta sekä esimerkkejä hahmolle ominaisista eleistä, ilmeistä ja yksityiskohdista (Kuva 5). Tämä vaatii usein taidon piirtää omaperäisiä hahmoja ilman minkäänlaista mallia, mutta taidon puuttuminen ei kuitenkaan ole este hyvän hahmon tuottamiseen. (White 2009, 235-247.)

Kuva 5. Hahmon mallilomake (Patten 2019)

Myös staattisten 3D-objektien ulkonäöt sekä käyttötarkoitukset suunnitellaan käyttäen apuna mallilomakkeita (White 2009, 247). Näihin kuuluu jokainen animaatiossa esiintyvä kappale, esimerkiksi yksittäisistä kivistä kokonaiseen 3D-malliin maastosta (Chang).

Suunnitelmassa on tärkeää ottaa huomioon 3D-mallien sekä tarvittavien materiaalien hankita. Ne voidaan tuottaa itse käyttäen apuna esimerkiksi 3D-mallinnusohjelmia sekä kuvankäsittelyohjelmia, tai hankkia valmiina kyseisiä tuotteita tarjoavilta nettisivuilta.

(Chetty 2021.)

Hahmon mallintamisprosessia selkeyttääkseen on myös hyvä suunnitella metodit, joilla hahmojen liikkeet halutaan tuottaa. Kolmiulotteisessa animaatiossa hahmoanimaation metodeita ovat avainkehykset, liikkeenkaappaus, proseduraalinen animaatio sekä näiden yhdistelmät. (Chetty 2021.) Staattisten objektien animointi toteutetaan yleensä avainkehyksillä, mutta tarvittaessa lisänä voidaan hyödyntää esimerkiksi ohjelmia, jotka

(14)

tarjoavat fysiikkamoottorin. Kyseisen ohjelmiston avulla animaatioon voidaan luoda fyysisiä ilmiöitä, kuten objektin putoaminen painovoiman johdosta. (Chang.)

Tuotanto- sekä jälkituotantovaihetta helpottaakseen jokainen pienikin tarvittava tekninen tieto täytyy suunnitella valmiiksi. Riippuen siitä, mihin käyttötarkoitukseen video on tulossa, täytyy päättää lopullisen animaation tiedostomuoto, kuvasuhde, resoluutio sekä kuvataajuus. (White 2009, 407-410.) Projektin kohtauksien pituuden arviointi helpottuu huomattavasti jo siinä vaiheessa, kun tiedetään äänitehosteiden kestot, ja tämä edesauttaa animaatiovaiheen työskentelyä (White 2009, 219). 3D-mallintaja tarvitsee myös esimerkiksi suuntaa antavat tiedot siitä, kuinka suuria 3D-mallien tiedostot voivat maksimissaan olla.

Tämä selkeyttää hahmojen sekä muiden objektien mallintamiseen tarvittavaa aikaa ja vaivaa. (White 2006, 427.)

Animaation visuaalinen rakenne suunnitellaan kuvakäsikirjoitukseen. Se voidaan suunnitella esimerkiksi sarjakuvan tavoin, tuoden esille kohtausten sekä kameran pääliikkeet. (Selby 2013, 75.) Kuvakäsikirjoitukseen voidaan merkitä myös karkea sommitelma 3D-ympäristön rakenteesta, ja jokaisen kuvan alle on hyvä purkaa kaikki niissä tarvittavat assetit. Sommitelmia voidaan rakentaa myös esimerkiksi ohjelmalla, jota myöhemmin käytetään tuottamaan itse animaatio. Tällöin voidaan hyödyntää esimerkiksi kyseisen ohjelman tarjoamia valmiita kolmiulotteisia geometrian muotoja, primitiivejä.

Asettamalla virtuaalinen kamera, voidaan rakentaa kohtauksen kulissien sommitelma, jossa 3D-mallien tilalla on vain paikkamerkkejä (placeholder). (Chetty 2021.) Ohjelmaa hyödyntämällä myös virtuaaliset kamerat voidaan asettaa jo valmiiksi oikeisiin asentoihin.

Näitä voivat olla esimerkiksi kameran kolme perusasentoa, lähikuva, puolikuva ja laajakuva.

(White 2006, 94.) 2.2.2 Tuotanto

Kun on varmaa, että projekti on suunniteltu tarpeeksi hyvin, voidaan siirtyä tuottamaan tarvittava materiaali. Tuotanto tapahtuu erilaisilla 3D-grafiikkaohjelmilla sekä kuvankäsittelyohjelmilla, ja se jakautuu kolmeen osaan: mallinnus, animointi ja renderöinti.

(Chang.)

Ensimmäisessä vaiheessa jokaisesta hahmosta, ympäristöstä ja muista objekteista tuotetaan 3D-mallit. 3D-mallinnuksella tarkoitetaan prosessia, jossa objekti rakennetaan 3D-ohjelman suorakulmaiseen koordinaatistoon eri muotoisten polygonien, verteksien ja splinien avulla. (White 2006, 426.) Tyypillisin tapa rakentaa malleja on kasvattaa ja muovailla kyseisiä ohjelman tarjoamia primitiivejä (Chang).

(15)

Valmiin mallin polygonien pintaan asetetaan kaksiulotteisia kuvia, eli tekstuurikarttoja, tuomaan väriä, kuvioita sekä tekstuureita, ja niitä voidaan luoda esimerkiksi kuvankäsittelyohjelmilla tai valokuvaamalla. Kuvan asettamista mallin pintaan kutsutaan nimellä kartoitus (mapping), ja sitä hyödyntämällä malleista on mahdollista saada realistisen näköisiä. (Chang.) Mallista riippuen täytyy ottaa huomioon millainen tekstuuri lopputulokseen halutaan. Tekstuurikartan parametreja manipuloimalla sekä erilaisia karttoja lisäämällä lopputulokseen voidaan lisätä esimerkiksi läpinäkyvyyttä, heijastavuutta sekä käyttäytymistä valon kanssa. (White 2006, 436.) Yleisimpiin tekstuurikarttoihin kuuluu diffuusi-, spekulaari- ja siirtymäkartat (displacement), ambient occlusion sekä normaalikartta. Näiden avulla 3D-mallin pintaan voidaan saada myös esimerkiksi syvyyttä ja epätasaisuutta, kuten kuvan 6 esimerkin puun pinta. Useissa tapauksissa teksturointia käytetään hyödyksi, kun pintaan halutaan tuoda aidon näköistä kuviota ilman ylimääräisiä polygoneja. (Stefanov.)

Kuva 6. Yleisimmät tekstuurikartat (mukailtu Stefanov)

Jotta kolmiulotteista mallia voidaan muovailla, täytyy sille asettaa luuranko. Tätä prosessia kutsutaan nimellä rigging. Rigin jokaiseen kohtaan, joka halutaan saada liikkumaan itsenäisesti, lisätään nivel. Esimerkiksi ihmishahmoa mallinnettaessa näitä kohtia voivat olla niska, kyynärpäät, lantio, polvet sekä nilkat. Mitä realistisempaa liikettä halutaan tuottaa, sitä yksityiskohtaisemmin rigin nivelet täytyy asettaa. Jos animaation hahmo halutaan saada puhumaan, täytyy pään rigissä olla leualle tarkoitettu oma rigi. (White 2006, 432- 433.) Painotus-vaiheessa (weighting) nivelien liikkuvuutta rajoitetaan luonnollisen

(16)

liikkuvuuden takaamiseksi. Hyvänä esimerkkinä on rajoittaa polven taipuminen luonnottomaan suuntaan. (White 2006, 436.)

Animointivaihe alkaa mallien tuomisella ohjelmaan. Virtuaalinen kamera asetetaan haluttuun kohtaan ja lavasteen rakenne toteutetaan esimerkiksi Chettyn (2021) ohjeiden mukaan rakentamalla vain ne osat, jotka kamera näkee. 3D-mallit asetetaan niihin kohtiin, joissa ne tulevat sijaitsemaan animaatiokohtauksen alkaessa. (Selby 2013, 151.)

Animoinnissa käytettävästä ohjelmasta löytyvä aikajana määrittelee kohtauksen keston kehyksinä. Animointi perustuu 3D-mallin sekä sen luurangon osien koordinaatistosijainnin tallentamiseen aikajanalle avainkehyksinä. (Blender 2021.) Kuvassa 7 visualisoidaan esimerkki 3D-grafiikkaohjelma Blenderin aikajanasta. Kuvasta voidaan havainnoida, että kohtauksen kesto on 250 kehystä ja avainkehyksiä on 4. Avainkehykset voidaan tallentaa manuaalisesti yksi kerrallaan tai käyttämällä automaattista avainkehysten tallennusta (Chetty 2021).

Kuva 7. Aikajana (Blender 2021)

Avainkehyksillä animointi tapahtuu neljässä erillisessä vaiheessa. Luonnosteluvaiheessa (blocking out) tallennetaan 3D-mallin sijainnit kohtauksen ensimmäisessä ja viimeisessä kehyksessä, jonka jälkeen halutut välisijainnit tallennetaan niiden välille. Tämän vaiheen tarkoituksena on saada objektin liikkeen nopeus halutunlaiseksi. Sen jälkeen hahmon luurangon osia liikuttamalla luodaan sille sen keskeiset asennot (key poses). Esimerkiksi kävelyanimaation jalkojen nosto ja lasku, sekä käsien liikkuminen edestakaisin. Jos animaatio näyttää katkonaiselta tai luonnottomalta, voidaan siihen lisätä itse välikehyksiä (inbetweens) ohjelman automaattisesti luomien kehysten lisäksi. Viimeisessä vaiheessa tehdään lopullinen hienosäätö. Tähän kuuluu jokaisen pienen eleen lisääminen, joita hahmo tuottaa animaation aikana, kuten pään heiluminen kävelyn tahtiin ja rintakehän liikkuminen hengityksen mukaan. (White 2006, 444-447.) Animointi koostuu liikkeen jäljittelemisestä ja on siksi hyvin aikaavievä osa tuotantovaihetta. Liikkeen luonnollisuutta testataan prosessin aikana toistamalla kohtausta jatkuvasti ja päivittämällä avainkehysten arvoja sen perustella, näyttääkö lopullinen liike halutulta. (White 2006, 451.)

(17)

Esituotantovaiheessa äänitetyt puheraidat opastavat hahmon puheen animointia, ja sen johdosta useimpiin 3D-grafiikkaohjelmiin on mahdollista lisätä myös audioita (White 2009, 287). Ohjelma esittää audion ääniaaltoina, joka helpottaa suun liikkeiden nopeuden animointia. Ennen kasvojen animoinnin aloittamista on myös hyvä esimerkiksi tutkia, millaisen liikkeen suun halutaan tuottavan erilaisia kirjaimia lausuttaessa (Kuva 8). (White 2009, 325-326.)

Kuva 8. Suun yhdeksän perusmuotoa (Selby 2013, 99)

3D-grafiikkaohjelmat tarjoavat erilaisia virtuaalisia valoja, joiden tarkoituksena on tuoda lopullinen realistinen ulkoasu animaation kohtauksille. Kuten valokuvauksessa apuna käytettävillä valoilla, myös virtuaalisilla valoilla on tarkoitus korostaa animaation keskeisiä objekteja. Erona oikeaan valokuvaukseen verrattuna, virtuaalisilla valoilla ei ole fyysistä muotoa rajoittamassa valojen sijoittelua, vaan ne voidaan asettaa mihin tahansa kohtaan lavasteissa. (Selby 2013, 151.) Valojen asettamista voidaan alkaa suorittamaan jo lavasteiden ja kameran asentamisen aikana, jos tietyn tyylisen lopputuloksen saavuttaminen on kriittistä animaation oikeanlaisen tunnelman luomiselle (Cortes 2020).

(18)

Valot ovat myös keskeisessä osassa 3D-mallien teksturointia, sillä esimerkiksi spekulaarikartan ja ambient occlusionin toiminta perustuu siihen, kuinka valo käyttäytyy niihin osuessa (White 2006, 436).

Tuotantovaiheen viimeinen osa on kohtausten renderöinti. Tietokone käy animaation läpi kehys kerrallaan ottaen huomioon ohjelmaan syötetyn datan ja parametrit, luoden jokaisesta kehyksestä kaksiulotteisen kuvan. Kuvat muunnetaan elokuvatiedostoksi, jota voidaan toistaa. (White 2009, 407.)

2.2.3 Jälkituotanto

Jälkituotantovaiheeseen siirrytään, kun animaatioon tarvittavien materiaalien valmistus on saatu päätökseen. Vaiheen tarkoituksena on lisätä materiaaleihin visuaaliset tehosteet sekä kasata lopullinen tuotos yksittäisistä kohtauksista prosessille tarkoitetussa editointiohjelmassa. Vaihe on lyhyin tuotannon osista, mutta sen läpikäyntiin voi kulua todella paljon aikaa riippuen animaation luonteesta. (Selby 2013, 160.)

Lopullisen animaation perusteella voidaan laskea tarvittavien ääniefektien määrä. Efektit voidaan tuottaa itse tai hankkia valmiina niitä tarjoavilta nettisivuilta. (White 2009, 417.) Itse tuotetut efektit ja puheraidat täytyy esimerkiksi puhdistaa ylimääräisestä taustamelusta, jonka jälkeen voidaan kasata lopullinen ääniraita, joka on synkronoitu itse animaation liikkeiden kanssa (White 2009, 419).

Erikoistehosteilla tuodaan animaatioon rakenteellisia ja tunnelmallisia ominaisuuksia, joita ei voitu tuottaa tuotantovaiheessa (Selby 2013, 151). 3D-animoinnissa tähän kuuluu esimerkiksi värien korjaus, jonka avulla halutaan yhdistää erilaisissa ympäristöissä kuvattuja kohtauksia. Yleisimpiä värejä muokkaavia parametreja on esimerkiksi värisävy, kylläisyys ja kirkkaus. (Selby 2013, 165-166.) Muita erikoistehosteita voivat olla esimerkiksi sade, ukkonen tai kynttilän hehku (Selby 2013, 151).

Viimeiseksi animaatioon lisätään otsikot, krediitit ja muut informatiiviset tekstit ja lopullinen tuotos renderöidään yhdeksi kokonaiseksi animaatioksi (White 2009, 399).

Animaatioprosessin viimeiseen osaan kuuluu valmiin videon jakelu, mainostaminen ja mahdollisesti myös trailerin tuottaminen (Maio 2019).

(19)

3 Reaaliaikainen renderöinti 3.1 Renderöinti

3D-renderöinniksi kutsutaan tapahtumien ketjua, jonka tuloksena on tietokoneella tuotettu kaksiulotteinen kuva kolmiulotteisesta tapahtumasta (Unity). 3D-grafiikkaohjelmalla luotuun kohtaukseen asetetaan kolmiulotteisia objekteja, materiaaleja ja valoja, joista manipuloidaan kuva virtuaalisen kameran avulla (Kuva 9) (Akenine-Möller ym. 2018, 11).

Unityn mukaan prosessin koko luovaa osaa voitaisiin verrata virtuaaliseen valokuvaukseen tai elokuvaukseen.

Kuva 9. Kolmiulotteinen tapahtuma ja siitä renderöity kuva

Renderöinti voidaan toteuttaa etukäteen tai reaaliaikaisesti, ja näiden tapojen erona on se, kuinka nopeasti renderöidyt kuvat tuotetaan. Renderöitymisnopeutta ilmaistaan kuvataajuuksina (FPS) ja virkistystaajuuksina eli hertseinä (Hz). Kuvataajuuksilla ilmaistessa puhutaan joko yksittäisten kuvien nopeudesta renderöityä tai ohjelman keskimääräisestä suorituskyvystä käytön aikana. Hertseillä ilmaistaan laitteiston, tässä tapauksessa tietokoneen näytön, kykyä esittää tietty määrä kuvia per sekunti. (Akenine- Möller ym. 2018, 13.)

Reaaliaikaista renderöintiä käytetään videopelien ja muiden interaktiivisten grafiikoiden, kuten virtuaalitodellisuuden toteutuksessa, kun kuvaa halutaan saada tuotettua mahdollisimman nopeasti (Techopedia 2019). Kuva esitetään näytöllä ja katsojan antama reaktio vaikuttaa seuraavaan renderöityyn kuvaan. Tästä syntyy dynaaminen prosessi, jossa kuvia esitetään jatkuvasti niin nopealla syötteellä, että katsoja ei enää erota yksittäisiä

(20)

kuvia vaan katsoo reaaliaikaisesti tuotettua animaatiota. Kuvataajuudeksi pyritään saavuttamaan 30, 60, 72 tai korkeampi FPS nopeus. Tällöin liikkeen nopeus on todella sulavaa ja lopputuloksesta saadaan realistinen. (Akenine-Möller ym. 2018, 1.) Reaaliaikaisesta renderöinnistä esimerkiksi Unreal Engine -pelimoottorissa vastaa grafiikkamoottori (Lee ym. 2016).

Etukäteen renderöidessä halutaan tuottaa mahdollisimman hyvälaatuisia yksittäisiä kuvia (Techopedia 2019). Tällöin renderöitymisnopeudella ei ole kiire ja kuvien renderöityminen voikin kestää sekunneista jopa päiviin (Techopedia 2019; Unity). Kuvia voidaan esittää renderöinnin jälkeen peräkkäin esimerkiksi 30 FPS nopeudella, jolloin saadaan aikaan video (White 2006, 155).

3.2 Renderöintiputki

3D-renderöinnin prosessia kutsutaan nimellä renderöintiputki (Graphics rendering pipeline).

Siihen sisältyy kaikki laskennalliset vaiheet, joiden tarkoituksena on muuttaa kolmiulotteinen data kaksiulotteiseksi kuvaksi. Prosessi on jaettu karkeasti neljään osaan (Kuva 10), jotka suoritetaan rinnakkain liukuhihnamaisesti parhaimman tuloksen mahdollistamiseksi. Vaiheisiin sisältyy niiden omia alavaiheita, jotka suoritetaan renderöintiputken tavoin rinnakkain. (Akenine-Möller ym. 2018, 11-13.)

Kuva 10. Renderöintiputken neljä vaihetta (mukailtu Akenine-Möller ym. 2018, 12)

Prosessin sovellusvaihe toteutetaan tietokoneen prosessorin toimesta keräämällä kaikki tarvittava data käytettävästä ohjelmasta ja lähettämällä se seuraavaan vaiheeseen. Näitä ovat esimerkiksi käyttäjän antama syötte sekä kaikki kohtauksen geometriset primitiivit.

Niiden lähettäminen eteenpäin on vaiheen tärkein tehtävä. Koska sovellusvaihe toteutetaan tietokoneen prosessorilla, on kehittäjällä täysi valta muokata dataa renderöinnin suorituskyvyn parantamiseksi. (Akenine-Möller ym. 2018, 13-14.)

(21)

Data lähetetään geometrian käsittelyvaiheeseen, joka suoritetaan tietokoneen grafiikkaprosessorin toimesta. Vaihe on jaettu neljään osaan, joista ensimmäisen, eli pistevarjostuksen (vertex shading) tarkoituksena on laskea 3D-mallien pisteprimitiivien sijainnit ohjelman koordinaatistossa kameraan ja valoon nähden, ja muokata niiden väritystä sen perusteella. (Akenine-Möller ym. 2018, 15.) Vaiheen aikana suoritetaan muun muassa kaikki reaaliaikaisesti tuotettu liike, valotus, varjostus, materiaalien käsittely sekä jälkituotannon efektit (de Jong 2018).

Käsittelyvaiheen toisessa osassa, projektiovaiheessa, keskitytään siihen, mitkä kohtauksen 3D-objekteista kuuluvat kameran katselutilavuuteen (view volume) sekä menetelmiin, joilla kappaleet esitetään kaksiulotteisessa kuvassa. Katselutilavuudella tarkoitetaan perspektiiviprojektiossa kameran näkymästä leikattua frustum-kartiota, joka voi esiintyä myös suorakaiteen muotoisena laatikkona, jos kohtaus esitetään ortografisella projektiolla (Kuva 11). (Akenine-Möller ym. 2018, 15-17.)

Kuva 11. Suorakaiteen sekä frustum-kartion muotoiset katselutilavuudet (mukailtu Akenine- Möller ym. 2018, 11-17)

Perspektiiviprojektiossa kaksiulotteista kuvaa varten katselutilavuus muunnetaan kuutioksi (projection transform), jolloin frustum-kartiossa lähempänä kartion pohjaa olevat primitiivit skaalautuvat lähemmäksi toisiaan, saaden aikaan vaikutelman ihmissilmän tavasta nähdä maailmaa (Kuva 12). Ortografisessa projektiossa tilavuus on valmiiksi suorakulmainen, jolloin kappaleiden linjat kulkevat yhdensuuntaisina sekä oikeassa suhteessa toisiaan kohtaan. Menetelmä tuo lopulliselle kohtaukselle litteän vaikutelman. (Akenine-Möller ym.

2018, 17.)

(22)

Kuva 12. Ortografisen (vasen) sekä perspektiiviprojektion (oikea) vaikutus 3D-malliin (Akenine-Möller ym. 2018, 17)

Leikkausvaiheen tarkoituksena on katkaista kaikki katselutilavuuden reunat ylittävät objektit ja lähettää vain tilan sisäiset primitiivit rasteroitavaksi. Viimeisessä geometriaa käsittelevässä vaiheessa kohtauksen kolmiulotteisena esitetyt koordinaatit kartoitetaan (screen mapping) ja muutetaan näyttökoordinaateiksi. (Akenine-Möller ym. 2018, 19-20.) Rasterointiin siirryttäessä objektien kaikki primitiivit käydään läpi ja muunnetaan pikseleiksi geometrian käsittelyvaiheessa muunnellun datan pohjalta. Primitiivejä voidaan käsitellä polygoneina, käyrinä tai pisteinä ja niiden koordinaatit määräävät sen, mihin pikseliin ne yhdistetään. Sen jälkeen pikselit prosessoidaan eri värisiksi perustuen pistevarjostuksen laskentojen tuloksiin ja niiden data varastoidaan väripuskuriin (color buffer). Syvyyspuskuri (depth buffer) käy läpi jokaisen pikselin ja varastoi niiden syvyysarvon (Z-akseli) koordinaatistossa, jotta renderöityyn tuotokseen voidaan jättää vain kamerasta lähimpänä Z-arvolla oleva pikseli. Pikselien prosessoinnin jälkeen ne yhdistetään ja valmis kuva esitetään näytöllä. (Akenine-Möller ym. 2018, 21-26.)

3.2.1 Menetelmät

Renderöintiputki on perustana niin etukäteiselle kuin reaaliaikaisellekin renderöinnille, mutta alavaiheiden kokonaisuudet voivat vaihdella riippuen ohjelmasta tai tavasta renderöidä. Esimerkiksi reaaliaikaisesti renderöidessä voidaan käyttää yleisenä tapana suoraa (forward) tai viivästettyä (deferred) renderöintiä, joiden erona on suorituskyky ja nopeus. Tällöin renderöintiputken alavaiheita muutetaan sen pohjalta, mihin sen toivotaan keskittyvän. Viivästettyä renderöintiä käytetään esimerkiksi oletuksena Unreal Engine -

(23)

pelimoottorissa, sillä se tukee useimpia renderöinnin ominaisuuksia. Suoraa renderöintitapaa käytetään, kun laitteisto on rajoitettu esimerkiksi virtuaalitodellisuudessa käytettyihin laseihin. Tällöin renderöintiputkelta kaivataan nopeampaa suorituskykyä. (de Jong 2018.)

Renderöinnin menetelmät voidaan jakaa kolmeen tärkeimpään osaan. Scanline- renderöintiä on käytetty yleisesti renderöintiputken rasterointivaiheessa. (BluEntCAD 2019.) Se vähentää renderöintiin kulutettua aikaa ja siksi sitä käytetään usein esimerkiksi reaaliaikaisen grafiikan tuottamisessa. Rasteroinnin aikana pikseleiksi muutettavia primitiivejä käsitellään polygoneina, joiden kärkipisteisiin data on kerätty. Polygonien sisällä sijaitsevien pikselien värit määräytyvät polygonien kärkipisteisiin yhdistettyjen pikselien värien mukaan. Scanline-renderöinti käyttää muun muassa syvyyspuskurialgoritmia renderöinnin apuna (Emiliano 2019.)

Säteensuuntaus (ray casting) on vaihtoehtoinen menetelmä rasteroinnille ja sen käyttämälle syvyyspuskurille (Emiliano 2019). Sitä käytetään yleisimmin, kun tuotetaan renderöityä kuvaa, jonka ei tarvitse olla mahdollisimman yksityiskohtaista. (BluEntCAD 2019). Säteensuuntaus perustuu siihen, että kameran näkymään lähetetään säteitä, jotka käyvät näkymän läpi pikseli kerrallaan. 3D-objekteista otetaan huomioon vain ne primitiivit, joihin säteet osuvat ja säteen matkan pituudella lasketaan, kuinka kaukana kamerasta primitiivi on. (Emiliano 2019.)

Säteenseurannan (ray tracing) toimivuutta voitaisiin verrata säteensuuntaukseen, mutta sen suorituskyky valon kuvaamiseen on paljon edistyneempää. Säteenseurannan avulla 3D-malleille sekä niiden materiaaleille saadaan tuotettua realistisempaa käyttäytymistä valon kanssa, kuten esimerkiksi heijastuksia sekä varjoja (Kuva 13). Heijastavasta pinnasta saadaan lähetettyä eteenpäin toissijaisia säteitä, jotka edelleen osuvat seuraaviin pintoihin ja reagoivat niiden kanssa. (Emiliano 2019.) Säteenseurantaa vielä edistyneempi muoto on globaali valaistusmalli (global illumination), joka mahdollistaa vielä monipuolisempaa sekä tarkemmin fysiikan mukaan toimivaa käyttäytymistä (Rupard 2003).

(24)

Kuva 13. Säteenseuranta (Haines 2018)

3.2.2 Laitteistot

Reaaliaikaisen renderöinnin nopeuden sekä hyvälaatuisten kuvien mahdollistamiseksi laitteiston täytyy olla tarpeeksi tehokas. Tärkeimmät tietokoneen komponentit, joita renderöidessä käytetään ovat prosessori ja näytönohjain. (Akenine-Möller ym. 2018, 1.) Yksinkertaisimmillaan 3D-grafiikkaohjelmaan asetetut 3D-mallit, parametrit ja muu data kootaan prosessorin (CPU) toimesta ja välitetään näytönohjaimelle, joka manipuloi siitä kaksiulotteisen kuvan. (Akenine-Möller ym. 2018, 13.)

3D-animaation prosessissa esimerkiksi 3D-maailmoja, malleja sekä ohjelmia säilytetään tietokoneen kovalevyllä tai SSD-levyllä. Niiden tarkoituksena on varastoida kaikki tietokoneeseen tallennettu data ja mahdollistaa se, että jokainen tarvittava ohjelma voidaan ladata tietokoneelle. Kun mikä tahansa ohjelma käynnistetään, tietokoneen prosessori siirtää tarvittavan datan RAM-välimuistiin, josta se on nopeammin saatavilla. Tietokoneen muistin määrä vaikuttaa ratkaisevasti datan varastointiin sekä esimerkiksi useampien ja suurempien ohjelmien käyttöön yhtäaikaisesti. (Strydom 2021.)

Näytönohjain käsittelee prosessorin keräämän datan ja renderöi sen laitteen näytölle sen sisäisen grafiikkasuorittimen (GPU) avulla (Strydom 2021). Reaaliaikainen renderöinti on tietokoneelle laskennallisesti raskasta ja sen johdosta GPU on suunniteltu suorittamaan kaikki siihen tarvittavat laskennalliset operaatiot prosessorin puolesta (Techopedia 2019;

Strydom 2021). Tietokoneen prosessori käsittelee yleisesti vain renderöintiputken sovellusvaiheen ja lähettää sen jälkeen tiedon grafiikkasuorittimelle (de Jong 2018). GPU:n

(25)

nopeus perustuu siihen, että mahdollisimman moni rinnastettava tehtävä suoritetaan samanaikaisesti (Akenine-Möller ym. 2018, 29).

Koska etukäteen renderöidessä kuvien valmistumisnopeudella ei ole kiire, siihen voidaan käyttää GPU:n sijasta tietokoneen moniytimistä keskusprosessoria (CPU) (Techopedia 2019). Renderöitymiseen käytettävä aika vaihtelee riippuen laskelmien monimutkaisuudesta (Akenine-Möller ym. 2018, 13). Työskennellessä renderöinnin parissa täytyy osata tiedostaa esimerkiksi se, mikä osa renderöintiputkesta aiheuttaa suorittamisen hitauden. Esimerkiksi Unreal Engine -pelimoottorissa voidaan tarkastella erikseen grafiikkasuorittimen sekä prosessorin suorituskykyä kehysaikoina (frame time). Molempien kehysaika täytyy olla yhtä suuri, jotta suorituskyky voidaan maksimoida, ja toisen arvon ollessa matalampi, tiedetään onko hitauden syynä esimerkiksi liian monta 3D-mallia vai liian monimutkainen valotus. (de Jong 2018.)

(26)

4 Pelimoottori 4.1 Ohjelmistot

Pelimoottori on ohjelmisto, jonka avulla voidaan luoda pelejä. Pelien toiminta perustuu useiden eri komponenttien yhteistyöhön ja niiden toimintojen luomiseen voi kulua pitkiäkin aikoja. Ohjelmiston tarkoituksena on antaa valmis pohja pelinkehitykselle, jossa komponenttien vuorovaikutus keskenään on luotu jo valmiiksi, ja pelinkehittäjät voivat säästää aikaa soveltamalla valmista pohjaa oman pelin tarpeita ajatellen. Pelituotanto perustuu 3D-animaation tuotannon tavoin esituotantoon, tuotantoon sekä jälkituotantoon, mutta koska idean jälkeen pelituotanto koostuu suurimmaksi osin prototyypeistä sekä testaamisesta, on luotu ohjelmisto, jonka avulla niitä voidaan toteuttaa. (Lee ym. 2016.) Yksi tunnetuimmista pelimoottoreista on Epic Gamesin kehittämä Unreal Engine. Vuodesta 1998 lähtien siitä on julkaistu neljä eri versiota, joista jokainen on tuonut mukanaan laajasti pelinkehitystä edistäviä toimintoja sekä komponentteja. Näihin kuuluvat muun muassa ääni- , fysiikka- sekä grafiikkamoottorit, ja kaikki muut komponentit pelin toimimisen edistämisestä ja hallitsemisesta tekoälyyn sekä käyttäjän syötteiden toimimisen mahdollistamiseen. (Lee ym. 2016.) Vuonna 2021 julkaistiin Unreal Engine 5 ennakkojulkaisu, jonka on tarkoitus esitellä viidennen version uusia ominaisuuksia. Koko versio on tarkoitus julkaista vuonna 2022. (Epic Games 2021.) Muita tunnettuja pelimoottoreita ovat esimerkiksi Unity, Game Maker sekä Godot Engine.

Unreal Engine tarjoaa käynnistysvalikossaan erilaisia mukautettavia pohjia, tasoja sekä esimerkkejä erilaisiin projekteihin. Peliprojekteihin löytyy pohjia esimerkiksi ensimmäisessä ja kolmannessa persoonassa pelattaviin peleihin sekä ajoneuvo- ja pulmapeleihin.

Käynnistysvalikossa päätetään myös alustat, joille projekti on tarkoitus tuottaa sekä haluttu kuvien laatu. Unreal Enginessä hahmojen sekä objektien käyttäytyminen sekä vuorovaikutukset luodaan ja muokataan ohjelmoimalla. Käynnistysvalikossa valitaan myös, halutaanko ohjelmointi toteuttaa pääsääntöisesti C++ -ohjelmointikielellä vai neljännen version mukana julkaistulla visuaalisella Blueprint-ohjelmointijärjestelmällä. Kuvassa 14 havainnollistetaan esimerkki peliin rakennetun hissin toiminnasta Blueprintissä. Blueprint koostuu erilaisista laatikoista, joita yhdistetään toisiinsa saaden aikaan erilaisia käskyjä ja toimintoja tasoille sekä asseteille. Blueprint-järjestelmä helpottaa pelien kehittämistä, sillä se avaa ovia pelituotannon maailmaan myös sellaisille henkilöille, jotka eivät osaa ohjelmoida. (Lee ym. 2016.)

(27)

Kuva 14. Esimerkki hissin toiminnan mahdollistavasta Blueprintistä

Projektin käynnistyessä käyttäjän eteen avautuu Unreal Editori, joka koostuu lukuisista alajärjestelmistä. Niiden avulla käyttäjän on mahdollista hallita, luoda, muokata sekä tuoda assetteja ohjelmaan. Alajärjestelmiin kuuluu Blueprint-järjestelmän lisäksi muun muassa materiaalieditori, äänieditori sekä Sequencer-editori, jonka avustuksella voidaan luoda esimerkiksi pelikohtauksia. Muita tärkeitä järjestelmiä ovat pelimaailman rakentamista helpottava Landscape-järjestelmä, animaatioeditori, sekä Cascade-niminen järjestelmä, jonka avulla voidaan tuottaa erilaisia erikoistehosteita, kuten savua tai tulta. (Lee ym. 2016.) Reaaliaikainen renderöinti on keskeisessä osassa pelituotantoa ja esimerkiksi Unreal Enginen neljännen version renderöintijärjestelmä käyttää DirectX 11 renderöintiputkea. Sen menetelmiin kuuluu viivästetyn renderöinnin lisäksi globaali valaistusmalli, valaistu läpikuultavuus (lit translucency) sekä jälkikäsittely. Pelit tuottavat todella paljon dataa renderöintiä ajatellen ja tekniikan kehittyessä vuosien aikana pelimoottoreiden yhtenä tärkeimpänä päämääränä on ollut tuottaa koko ajan uusia ja erilaisia ratkaisuja mahdollisimman hyvälaatuisten kuvien tuottamiseen nopealla vauhdilla. (Lee ym. 2016.) Esimerkiksi Unreal Enginen viidennen version tarkoituksena on mahdollistaa todella yksityiskohtaisten maailmojen luonti uudenlaisella mikropolygoneja hyödyntävällä Nanite- geometriajärjestelmällä, ja tuottaa realistisesti toimivia valaistuksia Lumen-nimisen dynaamisen globaalin valaistusmallin avulla. (Epic Games 2021.)

(28)

4.2 Käyttökohteita

Pelimoottorien kehittyessä niiden työkaluja on alettu hyödyntämään myös muilla aloilla.

Tästä on esimerkkinä Unreal Engine, jonka version 4.26.2 käynnistysvalikosta voidaan havainnoida, että mukautettavien pelipohjien lisäksi myös muun muassa elokuvateollisuuden (Film), arkkitehtuurin (Architecture) sekä tuotesuunnittelun (Product Design) projekteille tarjotaan vaihtoehtoisia mukautettavia pohjia (Kuva 15).

Kuva 15. Unreal Engine 4.26.2 käynnistysvalikko

Elokuva- ja animaatioteollisuus hyötyvät reaaliaikaisesta renderöinnistä, sillä pelien tavoin niiden tavoite on päästä tuottamaan mahdollisimman realistista kuvaa mahdollisimman pienellä vaivalla (Akenine-Möller ym. 2018, 1042). Vaikka jokaisen animaation sekä pelin tuotantoprosesseilla on omat tarpeensa, ne kuitenkin mukailevat toisiaan. Tästä syystä reaaliaikaisen renderöinnin hyödyntäminen on helposti lähestyttävissä useilla erilaisilla menetelmillä ja suurin osa animointiin tarvittavista työkaluista löytyy jo pelimoottoreista (The Pulse 2021; Chetty 2021.) Unreal Engine 5 mukana ohjelmistoon tulee myös lisää animointia mahdollistavia työkaluja, joiden tarkoituksena on vähentää ohjelmasta toiseen siirtymistä animoinnin aikana. Näitä työkaluja ovat esimerkiksi hahmon rigien luominen suoraan ohjelmistokehyksen sisällä sekä hahmojen liikkeen luonti sulavammalla tavalla.

(Epic Games 2021.)

Reaaliaikaisen renderöinnin sekä Unreal Enginen muita teknologioita on hyödynnetty jo esimerkiksi Disneyn TV-sarjassa The Mandalorian, jossa green screen -menetelmän sijaan kohtaukset kuvattiin LED-taulujen edessä. Tauluissa esitettäviin kohtauksiin tarvittavia taustoja sekä niissä esiintyviä maailmoja voitiin editoida reaaliaikaisesti jälkikäsittelyn

(29)

ammattilaisten toimesta jopa kesken kuvausten. Yhtenä suurimpana hyötynä teknologiasta kerrottiin olevan valaistus, sillä LED-taulut tuottivat tarvittavat värit sekä heijastukset jo elokuvan tuotantovaiheessa. Green screeniä käyttämällä pintoihin voi heijastua vihreää väriä, joka joudutaan editoimaan pois jälkituotannon aikana. LED-taulujen avulla haluttu heijastus saadaan pintaan reaaliaikaisesti (Kuva 16). Taulujen sekä valaistusten avulla myös jälkikäsittelyn erikoistehosteet voidaan toteuttaa jo tuotantovaiheessa. Tämä helpottaa tuottajien työnkuvaa, sillä heillä on mahdollisuus nähdä kohtauksien lopulliset versiot reaaliaikaisesti kesken kuvausten eikä esimerkiksi kuukausien päästä, kun jälkituotanto on saatu päätökseen. (Insider 2020.)

Kuva 16. Green screenin sekä LED-taulun heijastusten ero kiiltävässä pinnassa (mukailtu Insider 2020)

Arkkitehtuurin sekä tuotesuunnittelun projekteja voidaan myös toteuttaa pelimoottoreilla.

Reaaliaikainen renderöinti avaa uusia mahdollisuuksia alalle esimerkiksi mahdollistamalla suunnitelmien esittämisen asiakkaalle piirrosten sijaan realistisen näköisessä virtuaalisessa maailmassa, jota voidaan tutkia ohjaamalla kameraa esimerkiksi ohjaimella tai VR-laseilla.

(Easy Render.) Easy Render pohtii myös artikkelissaan reaaliaikaisen renderöinnin olevan mainitsemisen arvoinen ponnahduslauta suunnitteluprosessien parantamisessa. Useimmat alojen ammattilaiset kuitenkin pitävät pelimoottorien hyödyntämistä vielä liian vaikeana sekä kalliina tapana visualisoida tuotteita ja ovat sen johdosta pysyneet vielä nykyisissä menetelmissään.

4.3 Pelimoottorin animaatioprosessi

3D-animaatiota tuotettaessa renderöinti toteutetaan vasta tuotantovaiheen viimeisessä osassa. Tämä on vaikeuttanut animaatioprosessin putkea, sillä tuotettaessa animaatiota ohjelmalle annetaan vain dataa ja parametrejä siitä, miltä lopullisen tuotoksen toivotaan

(30)

näyttävän, ja lopullinen kuva voidaan tarkistaa vasta renderöinnin jälkeen. 3D- grafiikkaohjelmilla renderöinti voi kestää tunneista jopa päiviin. Kun mahdolliset virheet nousevat esiin, koko renderöinti on suoritettava uudestaan niin monta kertaa, että lopputulokseen ollaan tyytyväisiä. (The Pulse 2021.)

Joidenkin 3D-grafiikkaohjelmien katselunäkymiä voidaan muuttaa väliaikaisesti reaaliaikaisesti renderöitäviksi. Tämä kuitenkin usein kuluttaa tietokoneen suorituskykyä niin paljon, että esimerkiksi tuotetun animaation katsominen sujuvalla nopeudella kesken animoinnin ei onnistu. Kuvassa 17 havainnollistetaan Blender 3D-mallinnusohjelman kahta katselunäkymää kohtauksista, joille on annettu täysin samat parametrit ja tiedot. Vasen kehys on asetettu Solid-nimiseen näkymään ja oikea Rendering-näkymään. Näkymää liikutettaessa pienikin muutos aiheuttaa Rendering-näkymän uudelleen renderöitymisen ja lopullisen kuvan latautumisessa voi kestää useita minuutteja. Odottaessa näkymässä esiintyy vain kohinaa (image noise). Tämän vuoksi oletuksena Blender on asetettu Solid- näkymään. Muita esimerkkejä on esimerkiksi 3ds Max -mallinnusohjelman ActiveShade- renderöinti, jolla on kuitenkin myös omat rajoitteensa. Sen käyttäminen reaaliaikaiseen renderöintiin ei hyödytä, jos animaation laadun halutaan näyttävän realistiselta jo tuotannossa. (Autodesk Help 2018.)

Kuva 17. Blender-ohjelman Solid ja Rendering -katselunäkymät

3D-grafiikkaohjelmia ei suoranaisesti ole tarkoitettu reaaliaikaisen renderöinnin katseluun ja sen vuoksi pelimoottoreilla animointi on noussut pinnalle viimeisten vuosien aikana (Chetty 2021). The Pulsen (2021) panelistit keskustelevat pelimoottorianimoinnin yleistymisen olevan samanlainen siirtymä kuin tekniikan kehittyessä siirryttiin 2D- piirtoanimaatioista 3D-tietokoneanimaatioihin. Uusien tekniikoiden hyödyntäminen tulee

(31)

tulevaisuudessa vaikuttamaan prosesseihin positiivisesti, sillä se avaa ovia täysin uudenlaisille mahdollisuuksille sekä projekteille. Tekniikan kehittymisen myötä ala tulee myös saamaan uusia termejä sekä lähestymistapoja, ja uusien alojen ammattilaisia sekä artisteja.

Reaaliaikaisen renderöinnin hyödyntäminen tulee tulevaisuudessa muuttamaan tunnettua lineaarista animaatioprosessia (The Pulse). Muutoksia voi olla esimerkiksi koko tuotannon toteuttaminen omavalintaisessa järjestyksessä, riippuen vain animaation tarpeista, joita voi olla esimerkiksi jälkituotannon efektien näkeminen jo sommitteluvaiheessa. Pelimoottorin ansiosta samaa kohtausta ei tarvitse renderöidä erikseen useita kertoja uudelleen, jotta syötetyn datan vaikutuksia voitaisiin tarkastella. Animoidessa pelimoottorille annetun datan tulos näkyy heti käyttäjälle, ja lopuksi tuotos vain muunnetaan videotiedostoksi. (Chetty 2021.)

Animaatioelokuvien tuottamisen uskotaan muuttuvan nykyisestä itsenäisestä työskentelystä enemmän yhteistyössä paikanpäällä tapahtuvaan elokuvantekoon. Samaan ohjelmaan tuodut esituotantoa, tuotantoa sekä jälkituotantoa tukevat työkalut mahdollistavat myös animaattorien moniosaamisen eri tuotannon vaiheissa, jolloin työskentelytiimit voivat olla nykyistä paljon pienempiä. Tästä hyödytään myös animaatioiden lopputuloksia ajatellen, sillä iteroimalla parhaimpia tuloksia yhdessä tiimin kanssa, animaatioiden kohtauksia voidaan toteuttaa täysin uusilla tavoilla. (The Pulse 2021.)

Prescott mainitsee The Pulsen (2021) keskustelussa, että uusi teknologia voi mahdollistaa helpon lähestymistavan animaatioiden maailmaan myös tulevaisuuden animaattoreille.

Reaaliaikaista renderöintiä hyödyntämällä animointiin tarvittaviin työkaluihin on paljon helpompi tutustua kuin muissa 3D-grafiikkaohjelmissa, sillä niiden toimintoja on nopea kokeilla kun lopputulos nähdään reaaliaikaisesti (Chetty 2021). Tämän toivotaan saavan ihmisiä kiinnostuneemmaksi aiheesta, jolloin teknologioita voidaan päivittää vielä paremmaksi asiakaspalautteiden ansiosta (The Pulse 2021).

Animaatioiden tuotannossa esiintyvät maailmat suunnitellaan yleensä vain sen osalta mitä kamera näkee, sillä 3D-grafiikkaohjelmissa ylimääräiset polygonit kuluttavat turhaan tietokoneen suorituskykyä (Chetty 2021). Pelimoottoreilla isompienkin maailmojen rakentaminen onnistuu paremmin sekä nopeammin, niiden ollessa suunniteltuja juuri sitä tehtävää varten. Tätä voidaan hyödyntää esimerkiksi rakentamalla koko animaatiomaailma valmiiksi ja käyttämällä sitä uudestaan myöhemmin esimerkiksi jatko-osissa, peleissä tai virtuaalitodellisuudessa. (The Pulse 2021.) Tämä avaa mahdollisuuksia myös animaation ja katsojan väliseen interaktiivisuuteen. Blueprinttejä hyödyntämällä voidaan esimerkiksi

(32)

rakentaa animaatio, jossa katsoja pystyy hallitsemaan kameraa animaation pyöriessä esimerkiksi tietokoneen hiirtä liikuttamalla. Tällaista toteutusta voitaisiin verrata vaikka elokuvan tuottamiseen 360-kameran avulla ja sitä voidaan hyödyntää esimerkiksi peleissä tai muissa navigoitavissa kokemuksissa. (Chetty, 2021.)

Pelimoottorianimoinnin ollessa vielä uusi vaihtoehto, sillä on omat haasteensa. Esimerkiksi animaation valaistuksen kannalta Unreal Engine 4 tarjoaa vain yhden dynaamisen valon.

Tämä valo ei tuota kohtauksiin realistisia heijastuksia eikä globaalia valaistusta ja sen tuottamat varjot ovat huonolaatuisempia kuin staattisten valojen. Muut pelimoottorin tarjoamat valot täytyy buildata ennen lopullisen tuloksen näkymistä. Tämä ei kuitenkaan ole este animointiin pelimoottorissa, vaan se vaikuttaa vain siihen, että täysin realistisen näköisiä animaatioita ei ole vielä mahdollista tuottaa. (Chetty 2021.) Tämänhetkisten pelimoottorien tarjoamien työkalujen avulla ei pystytä vielä tuottamaan myöskään esimerkiksi television vaatimusten tasoista tuotantoa (Cullinane 2020). Muita haasteita voi esimerkiksi olla uusien työkalujen, kuten C++ -ohjelmointikielen tai Blueprint-järjestelmän omaksuminen tai käytettävän laitteiston riittämättömyys ohjelmiston suorittamiseen.

(33)

5 CASE: Animointi pelimoottorilla 5.1 Toimeksianto ja tavoite

Opinnäytetyön toimeksiantajana toimii suomalainen videotuotantoon erikoistunut yritys Pixtell Oy. Yritys tarjoaa erilaisia kuvauspalveluita, ohjelmatuotantoa sekä sisältömarkkinointiin erikoistunutta videosisältöä kahden visuaaliseen tuotantoon erikoistuneen ammattilaisen toimesta. Pixtell Oy:n kotipaikkana toimii Jyväskylä ja se aloitti toimintansa vuonna 2020.

Opinnäytetyön tavoitteena on tuottaa teaseri yrityksen kehitteillä olevaan peliin sekä tutkia Unreal Engine -pelimoottorin työkalujen hyödyntämistä animaation tuotannossa. Teaserin valmistukseen ohjelmaksi valittiin Unreal Engine -pelimoottori, sillä se tarjoaa reaaliaikaiseen renderöintiin sopivia teknologioita sekä animointiin sopivia työkaluja. Peliä itsessään toteutetaan myös kyseisellä pelimoottorilla.

Työnimellä Legend of Seppo – Last Drop kulkeva peli on 3D-seikkailupeli, jossa seurataan Jyväskylässä sijaitsevan lähiön elämää 1990-luvulla. Tarinassa päähenkilö Seppo haluaa irrottautua nykyisistä elämäntavoistaan ja päästä totetuttamaan unelmaansa. Teaseri voidaan julkaista myöhemmin esimerkiksi pelin sosiaalisiin medioihin, ja sen halutaan herättävän huomiota peliä kohtaan sekä esitellä tulevaa pelialuetta.

Animaation valmistus pyritään rajaamaan niin, että perehdytään vain Unreal Enginen version 4.26.2 tarjoamiin työkaluihin sekä niiden hyötyihin animaatioprosessissa. Teaseri on tarkoitus tuottaa käyttäen hyödyksi jo olemassa olevia prototyyppejä pelimaailmasta sekä hahmoista ja muista objekteista. Koska peli on vielä tuotantovaiheessa, animaation tarkoitus on saada pelimaailma näyttämään valmiilta erilaisia maastoa muokkaavia työkaluja, assetteja sekä kuvakulmia hyödyntämällä.

5.2 Suunnitelma

Animaation tuotanto aloitettiin suunnittelemalla käsikirjoitus toimeksiantajan ohjeiden mukaisesti. Koska animaation tarkoitus on esitellä pelialuetta mahdollisimman monipuolisesti, siihen haluttiin kohtauksia sekä alueen ulko- että sisätiloista. Alkuperäiseen käsikirjoitukseen suunniteltiin noin 10-15 kohtausta, joiden aikana päähenkilön on tarkoitus kävellä kaupan kautta vesitornille tapaamaan ystäviään. Animaation on tarkoitus olla noin 60 sekuntia pitkä.

Animaation lopullinen käsikirjoitus tuotetaan pelialueen pohjalta. Pelialue koostuu maastosta, joka on rakennettu mukailemaan oikeaa jyväskyläläistä lähiötä, ja sieltä

(34)

löytyvistä 3D-objekteista, jotka on mallinnettu muun muassa pelin kehittäjien sekä työharjoittelussa olevien opiskelijoiden toimesta. Animaatio suunniteltiin toteutettavaksi yhden tason (game level) sisällä käsikirjoituksen suunnittelun aikana. Jos animaation kohtaukset vaatisivat useita toisistaan erilaisia alueita, kuten esimerkiksi maan pinnan ja avaruuden, ne voitaisiin toteuttaa usean tason avulla.

Peliprojektia tutkiessa saatavilla olevat 3D-mallit sekä hahmot käytiin läpi, ja valitut mallit tuotiin valmiiksi projektin animaatiolle luotuun kansioon. Unreal Enginen Content Browser - näkymä esittää jokaisen projektiin lisätyn assetin helpottaen muun muassa assettien hallitsemista myöhemmässä vaiheessa animointia. Loput tarvittavat assetit suunniteltiin haettavan ilmaiseksi Unreal Marketplace -nimisestä virtuaalisesta kauppapaikasta. Peliin tuotetut hahmot ovat valmiiksi luotuja 3D-malleja, joilta jokaiselta löytyy oma rigi. Hahmoista on luotu valmiiksi mallilomakkeet, joista löytyy ulkonäön lisäksi myös tietoja hahmon ominaisuuksista. Tietoja suunniteltiin käytettävän hyväksi animaation yksityiskohtien toteutuksessa. Animaation taustalle valittiin musiikkikappale, joka on tuotettu peliä varten.

Liike suunniteltiin toteutettavaksi avainkehyksillä sekä valmiilla hahmoanimaatioilla.

Pelituotannossa hahmoille luodaan lyhyitä toistuvia animaatioita kuvaamaan esimerkiksi kävelyä, hyppäämistä tai istumista, ja niiden toiminta toteutetaan Blueprinteillä.

Hahmoanimaatioiden käyttö perustuu siihen, että esikatselun aikana hahmon animaatio esitetään vain koordinaatiston yhdessä pisteessä. Objektin siirtyminen toiseen pisteeseen tuotetaan vasta pelimaailmassa. Last Dropin hahmoilta löytyy valmiiksi erilaisia animaatioita, joita hyödynnetään teaserissa.

Karkea kuvakäsikirjoitus tuotettiin jo aiemmin pelimaailmasta opitun tiedon perusteella.

Lopullinen suunnitelma voitiin toteuttaa vasta pelimoottorin sisällä, sillä osasta pelimaailman objektien prototyypeistä löytyy vielä puutteita tai virheitä, jotka aiheuttavat esimerkiksi kerrostalojen seinien esiintymisen läpinäkyvänä. Rakennukset olivat myös kokonaisia staattisia objekteja, jonka takia esimerkiksi yksittäisiä ovia ei voitu animoida avautumaan. Pelimaailmassa kuvakäsikirjoituksen luontia jatkettiin asettamalla Cine Camera Actor -nimisiä kameroita merkitsemään jokaista kohtausta. Kohtausten aikana hahmon haluttiin kulkevan sitä reittiä, jota olisi järkevintä kulkea myös todellisuudessa, ja pelialuetta tutkiessa reitin varrelta valittiin kohtauksille sijainnit, joiden koettiin esittelevän pelialuetta parhaimmalla mahdollisella tavalla.

5.3 Toteutus

Animaation toteutus aloitettiin luomalla jokaiselle kohtaukselle oma Level Sequence.

Sequencer-editori sisältää aikajanan (Timeline) sekä Track-näkymän, jotka mahdollistavat

(35)

animaation assettien avainkehysten manipuloinnin. Jokaiseen luotuun Sequenceen tuodaan kamera sekä kaikki muut assetit, joiden halutaan liikkuvan kyseisen kohtauksen aikana. Lopullisen editoinnin mahdollistamiseksi pelimoottorin sisällä projektiin luotiin vielä yksi Level Sequence, joka määrättiin Master Sequenceksi (Kuva 18). Siihen tuotiin jokaisen kohtauksen Sequence. Master-näkymässä kohtausten omiin aikajanoihin päästään käsiksi kaksoisklikkaamalla haluttua kohtausta Masterin aikajanalla. Masteriin lisätyt Sequencet ovat linkitettyjä, joten esimerkiksi Masteriin asetetut audiot kuuluvat myös kohtausten Sequenceissa.

Kuva 18. Unreal Enginen Sequencer-editori

Kohtausten rakentaminen aloitettiin luomalla jokaisen kohtauksen kameralle liike avainkehyksillä. Kamerat oltiin asetettu kuvakäsikirjoituksen suunnittelun aikana sellaisiin kohtiin, joissa pelimaailman prototyypin puutteet olisi mahdollista piilottaa mahdollisimman järkevällä menetelmällä. Kameran liikkeen tuottaminen jo kohtausta rakentaessa on tärkeää, sillä kohtaukset on tarkoitus rakentaa vain kameran katselutilavuuden osalta.

Sommittelu aloitettiin tuomalla staattiset objektit kameran näkymään ja asettamalla ne haluttuihin kohtiin. Sommittelussa otettiin huomioon isoimpien 3D-mallien sijaintien todenperäisyydet muun muassa Jyväskylän karttapalvelun ilmakuvia hyödyntämällä.

Rakennusten sisällä tapahtuvissa kohtauksissa prototyyppien puutteita korjattiin pelimoottorin tarjoamilla geometrisilla muodoilla. Kuvassa 19 havainnollistetaan esimerkki kaupan sisäosien rakentamisesta eri kokoisilla suorakulmaisilla laatikoilla sekä rappukäytävän väliaikaisten materiaalien virheiden piilottamista lieriöillä. Muodoille asetettiin materiaalit projektista valmiiksi löytyvistä tekstuureista.

(36)

Kuva 19. Pelimoottorin geometristen muotojen hyödyntäminen

Rappukäytävän hississä olevaa peilin paikkamerkkiä ei onnistuttu piilottamaan järkevästi projektin asseteilla, joten sen päälle päädyttiin rakentamaan toimiva peili hyödyntäen pelimoottorin ominaisuuksia. Projektiin asetettiin Scene Capture 2D -niminen assetti, jonka näkymä toimii kameran tavoin. Projektiin luotiin uusi materiaali, johon Scene Capture linkitettiin Blueprinttiä höydyntämällä, ja materiaali asetettiin tasolle. Menetelmän avulla taso on mahdollista saada mukailemaan peiliä, sillä sen pintaan heijastuu mikä tahansa näkymä, jonka Scene Capture 2D näkee (Kuva 20). Scene Capturen näkymä muutettiin peilikuvaksi materiaalieditorissa Blueprinttiä hyödyntämällä.

Kuva 20. Scene Capture 2D

(37)

Projektiin mallinnetuilla 3D-objekteilla sekä Unreal Marketplacen ilmaisilla asseteilla kohtauksiin pyrittiin tuomaan samaa 90-luvun tunnelmaa, jota myös peliin toivotaan.

Animaation tarinan ajankohta sijoittuu kesäpäivään Suomessa, joten ulkona tapahtuviin kohtauksiin haluttiin saada mahdollisimman realistinen tunnelma. Unreal Enginen Foliage- työkalun avulla pelimaailman maastoon on mahdollista lisätä erilaisia objekteja maalaamalla. Foliage-työkaluun voidaan lisätä esimerkiksi pensaita ja puita, ja se helpottaa maaston rakentamista, sillä objekteja ei ole pakko asetella yksi kerrallaan pelimaailmaan.

Kuvassa 21 havainnollistetaan ulkona tapahtuvaa kohtausta. Pelimaailmaan on lisätty erilaisia pensaita, puita ja nurmea kohtauksen etu-, keski- sekä taka-alalle tuomaan syvyyttä sekä piilottamaan horisonttia. Foliageen tuodut assetit löytyivät jo valmiiksi projektista, ja niissä oli ominaisuuksia, jotka aiheuttivat esimerkiksi lehtien heilumisen realistisen näköisesti. Suurin osa puista oltiin asetettu valmiiksi pelimaailmaan pelin kehittäjien toimesta ja niiden sijainnit mukailevat oikeiden puiden sijainteja Jyväskylässä.

Kuva 21. Ulkona tapahtuvan kohtauksen rakentaminen Foliage-työkalulla

Pelimaailman taivas oli asetettu valmiiksi projektiin ja se on tuotettu Ultra Dynamic Sky - assetilla. Maailmaan lisättiin animaation tuotannon aikana myös Directional Light -niminen valo, joka lisää automaattisesti auringon valoa mukailevan valon. Valo asetettiin osoittamaan samasta suunnasta, jossa Ultra Dynamic Sky -assetissa esiintyvä aurinko sijaitsee, jotta animaation objekteilla olisi realistinen varjo.

Sisätiloissa kuvattujen kohtausten valot luotiin muilla pelimoottorin tarjoamilla valoilla.

Valojen liikkuvuusparametri asetettiin staattisen sijasta liikkuvaksi, jolloin valo ja sen tuottamat varjot esiintyvät reaaliaikaisesti sen näköisenä, jolta ne tulevat näyttämään myös

(38)

lopullisessa animaatiossa, eikä erillistä buildausta tarvitse tehdä. Sisätiloissa valoja asetettiin ensin mukailemaan rappukäytävän ja kaupan lamppuja, ja sen lisäksi pimeäksi jääviin kohtiin lisättiin ylimääräisiä valoja. Kaupan lamppuja mukailevien valojen parametrit määriteltiin mukailemaan mahdollisimman paljon kirkkaita loisteputkilamppuja.

Valojen asetuksen jälkeen huomattiin, että geometrisista muodoista rakennettujen kaupan seinien materiaalien värit eivät mukailleet muita seiniä. Materiaalin väri manipuloitiin materiaalieditorissa ja tulos nähtiin reaaliaikaisesti niissä objekteissa, joihin materiaali oltiin asetettu (Kuva 22). Toinen pelimoottorin materiaalieditorin ominaisuus, jota animaatiossa hyödynnettiin oli Decal-materiaalit. Ne ovat niin sanottuja tarroja, joita voidaan asettaa objektien pintoihin. Animaatiossa hyödynnettiin projektiin valmiiksi luotuja Decal- materiaaleja, joita oltiin tuotettu esimerkiksi mukailemaan lattialla olevaa likaa sekä öljytahroja.

Kuva 22. Materiaalieditori

Kohtausten lavastuksen valmistuttua siirryttiin tuottamaan liikkeet kohtausten objekteille sekä hahmoille, jotka oltiin tuotu Sequencer-editoriin. Projektista löytyvien hahmojen rigit ja animaatiot on tuotettu valmiiksi pelin kehittäjien toimesta. Sequencessa hahmon siirtyminen paikasta A paikkaan B tuotetaan avainkehyksillä, jonka jälkeen hahmolle määrätään valmiiksi tuotettu hahmoanimaatio. Sequencer Curves -editorilla manipuloitiin hahmon sekä kameran liikkeen nopeutta mukailemaan paremmin esimerkiksi kävelyanimaation kestoa sekä askeleita. Kuvassa 23 visualisoidaan hahmon korkeusakselin sijainnin avainkehyksiä hahmon kävellessä portaita alas. Unreal Engine tarjoaa tasoeditorissaan erilaisia pikanäppäimiä esimerkiksi 3D-mallien liikuttamiseen. Esimerkiksi tietokoneen näppäimistön END-nappulaa painamalla objekti putoaa sen alapuolella olevaan lähimpään tasoon, ja kyseistä toimintoa hyödynnettiin animaation tuotannossa jokaisella kerralla, kun hahmolle

Viittaukset

LIITTYVÄT TIEDOSTOT

The game was developed with the Unity game engine, using C# language and a mobile phone accelerometer as the device that calculates the physical balance board tilt

There are also engines which do not require that much knowledge in programming and rely more on scripting such as Unity, which is yet an extremely popular game engine

The purpose of this thesis was to learn more about animation in video games and to learn how to use a commercial game engine, Unreal Engine 4’s basic animation workflow and tools

Avainsanat Google ARCore, Lisätty todellisuus, Unreal Engine Blueprint, Visuaalinen ohjelmointi.. Sivut 55 sivua ja liitteitä

Fuzzy logic is an essential part when designing more human-like AI, unlike the true or false in the regular boolean statement, fuzzy logic uses the amount of true or false to evaluate

Valaistuskartat myös toimivat yleensä vain staattisille malleille, minkä vuoksi liikkuvat mallit täytyy usein valaista erikseen (Unreal Engine 4 Documentation

Unreal Engine 4 viiteympäristössä tekoälyagentti koostuu kokonaisuudesta, joka sisältää useita eri järjestelmiä ja komponentteja, vaikkakin teoreettisesti kaikki on

It was used the CAD simulator AGX Momentum, a game engine Unity and the physics engine AGX Dynamics to create dynamics simulation, to design a virtual forest environment and to