• Ei tuloksia

5 MALLINNUSPROSESSIN HYÖDYNTÄMINEN PELIPROJEKTIIN

In document 3D-mallinnusprosessi pelikäyttöön (sivua 31-39)

Tässä kappaleessa tehdään 3D-mallin peliin alusta loppuun käyttäen edellä läpikäytyjä 3D-mallinnusprosessin eri vaiheita. 3D-mallin tekemisessä on käytetty 3ds Max ja Substance Painter -ohjelmistoja. Valmis malli viedään pelimoottoriin, jossa se viimeistellään vastaamaan pelin tarpeita.

5.1 Lyhyesti peliprojektista

Opinnäytetyö toteutetaan osana Morrow Gamesin peliprojektia. Peliä kehitetään PC-alustalle ja pelimoottorina käytetään Epic Gamesin kehittämää Unreal Engine 4:sta.

Pelin päähahmo on harrastelijakuvaaja, jonka tarkoituksena on kuvata hylättyä rakennusta. Pelin ohjelmoinnissa käytetään pelkästään Unreal Enginen blueprinttejä.

Unreal Engine 4 käyttää Blueprints Visual Scripting -nimistä järjestelmää, joka mahdollistaa pelien kehittämisen käyttäen node-pohjaista käyttöliittymää, manuaalisesti koodaamisen sijaan. Tämä nopeuttaa ja helpottaa pelien kehittämistä ja se on joustava ja tehokas esimerkiksi suunnittelijoille tai artisteille, sillä se antaa mahdollisuuden käyttää lähes kaikki käsitteitä ja työkaluja, jotka ovat yleensä vain ohjelmoijille käytettävissä. (Epic Games, 2017.)

5.2 Suunnitteluvaihe

Suunnitteluvaiheessa malliksi valikoitui videokamera. Mallia lähdettiin toteuttamaan, koska peliin tarvittiin videokamera. Peli sijoittuu hylättyyn rakennukseen, joten lähes kaikki pelin materiaalit ovat hieman ränsistyneitä ja rähjäisiä. Pelin päähahmo kuitenkin tuo kameran mukanaan, joten kameran ei tarvitse olla liian kuluneen näköinen.

Kameran tulisi kuitenkin olla käytetyn näköinen.

Referenssikuvien etsintä aloitettiin ihan käyttämällä perinteistä Googlen hakutoimintoa ja etsimällä erilaisia videokameramalleja. Videokameramalliksi valikoitui Sony Handycam CX675, jonka pohjalta päädyttiin mallintamaan peliin tarvittava videokamera. Sonyn videokamera valikoitui siksi, että se oli juuri sen näköinen, jota

Kuva 20. Videokameran referenssikuvat (Sony.)

peliin tarvittiin sekä siitä löytyi runsaasti ja useista eri kulmista referenssikuvia. Alun perin kameran näyttöön oli tarkoitus tulla reaaliaikainen renderöinti kameran linssistä, mutta tästä luovuttiin ja päädyttiin vain animoituun tekstuuriin. Reaaliaikainen renderöinti hylättiin sen työläyden ja suorituskyvyn takia.

5.3 Mallinnusvaihe

Mallin työstäminen aloitettiin tuomalla referenssikuvat 3ds Maxiin, jonka jälkeen luotiin laatikko, joka toimi kameran runkona ja jota verteksejä ja edgejä lisäämällä muokattiin pikkuhiljaa referenssikuvia vastaamaan. Mallinnus aloitettiin itse videokameran rungosta sen ollessa tärkein osa ja pohja koko mallille. Pienemmät osat luotiin kameran rungon muotojen ollessa lähes valmiit.

Pelaajan tulee pelissä tarkastella lähemmin mallia, joten videokamera mallinnettiin mahdollisimman tarkasti, kuitenkin pitäen mallin suorituskyvyn mielessä. Koska pelaajan tulee tarkastella mallia lähemmin, videokameran tekstuurien resoluutio tulee olla myös sen verran korkeatasoinen, että pelaaja ei kiinnitä resoluutioon sen enempää huomiota. Kameran pintojen kaarevuus mallinnettiin käsin ja käyttämällä smoothing grouppeja, TurboSmoothin tai NURBSin sijasta.

Videokameran kahvaosa tehtiin myös referenssi kuvien avulla, jonka jälkeen niiden päälle lähdettiin spline-työkalun avulla tekemään kameran kahvan muotojen mukaisia linjoja. Tämän jälkeen splinet muutettiin joko nelikulmion, tai sylinterin muotoiseksi saaden niille haluttua syvyyttä ja muotoja.

Videokameran näytön mallinnus aloitettiin kameran rungon tapaan laatikosta, jonka jälkeen sitä muovattiin haluttuun muotoon lisäämällä edgejä connect -työkalun avulla.

Itse näyttöosaa extrudattiin hieman sisäänpäin, koska haluttiin korostaa näyttöä.

Malliin ei tullut niin suurta tai monimutkaista animaatiota, että se olisi tarvinnut mallinnusohjelman puolella suurempaa animointia, joten animointivaihe 3ds Maxin puolella jätettiin pois ja animointi suoritettiin pelimoottorin puolella myöhemmin mallin ollessa valmis.

5.4 Optimointi

Valmiin mallin optimointiin ei kulunut kauaa aikaa. Mallista poistettiin ylimääräisiä edgejä ja kaikki päällekkäiset verteksit hitsattiin yhteen. 3D-mallin LODit tehtiin pelimoottorin puolella, käyttäen Unreal Enginen omia ja valmiiksi generoituja LOD-asetuksia. Mallin optimointi oli tärkeää, koska kyseessä on pelin kannalta tärkeä malli, ja jonka kanssa pelaaja joutuu olemaan vuorovaikutuksessa. Koska mallia tulee tarkastella lähemmin se ei saa olla liian optimoitu.

5.5 UV Mappaus

Mallin UV-mappaus toteutettiin Unwrap UV -työkalulla ja käyttäen Flatten Mapping-toimintoa. Mallia unwrapatessa todettiin, että perusasetuksilla käyttämällä sai ihan riittävän hyvän tuloksen, joten mallin UV-mappeja tarvitsi vain hiukan optimoida ja mallin osasia siirrellä siten että uv mappi olisi mahdollisimman tarkka ja pelin kannalta hyvin optimoitu. Kameran kahva, näyttö ja itse kamera osa unwrapattiin erikseen, koska mallin UV-mappien haluttiin olevan mahdollisimman tarkat.

Kuva 21. Valmis 3D-malli ilman tekstuureja ja valmiiksi määritellyillä materiaalipaikoilla.

5.6 Exporttaus

Mallin liikkuvien osien, UV-mappauksen ja materiaalipaikkojen helpottamiseksi malli exportattiin kolmessa osassa: näyttö, kahva ja itse kamera. Näyttö exportattiin erikseen, koska näytön avaaminen ja kiinnimeneminen, on tarkoitus animoida vasta pelimoottorin puolella. Mallin tasoitusryhmät exportattiin myös mallin kanssa. Valot, kamerat, tekstuurit ja materiaalit jätettiin exporttaamatta niiden ollessa tarpeettomia.

Tällä taattiin se että, exportatussa tiedostossa ei ollut mitään ylimääräistä.

5.7 Teksturointi

Mallin teksturointi toteutettiin käyttämällä Substance Painteria. Mallin päämateriaalit oltiin tehty, joko ennen projektia Substance Designerissä, tai materiaaleina käytettiin jo valmiina olevia materiaaleja.

Mallin tarkemmat yksityiskohdat, kuten tekstit ja nappulat joita ei mallinnettu tehtiin Photoshopilla, jonka jälkeen ne yhdistettiin mallin tekstuureihin Painterin puolella.

Malliin tuli 5 materiaalipaikkaa. Materiaaleiksi tuli muovi, metalli, nahka, kangas ja näyttö.

Koska pelin graafinen tyyli on mahdollisimman realistinen niin, materiaalit olivat mallin kannalta suuressa osassa. Teksturoinnissa käytettiin mahdollisimman realistisia materiaaleja. Itse kameran materiaaliksi haluttiin vähän kulunut ja likainen pinta.

Kameran materiaalin tulisi olla sen näköinen, että kamera on ollut hyvässä käytössä pelin päähahmon toimesta tai se on ostettu käytettynä. Kameran materiaaliksi valikoitui musta, mattapintainen ja kulunut muovi.

Kameran näytön materiaalin luominen toteutettiin vasta pelimoottorin puolella, koska näyttöön tulee liikkuva materiaali simuloimaan oikeata näyttöä. Lisäksi halutaan että, näyttö toimii myös valon lähteenä. Kameran metalliosiksi tulee hiukan kulunut alumiini.

Vaikka kyseessä oli metalli, materiaalin ei haluttu heijastavan liikaa valoa, joten tekstuuri tehtiin lähes mattapintaiseksi. Kameran hihnan materiaaleiksi tuli nahka ja kangas. Molemmat näistä ovat matalaresoluutioisia, sillä materiaalit eivät näy hihnan ollessa tumma ja vähemmän esillä kuin kameran muovi ja metalliosat.

Kameran kaikki tarkemmat yksityiskohdat, joita ei mallinnettu tehtiin Photoshopissa, jonka jälkeen ne yksitellen maalattiin Substance Painterissa 3D-mallin pintaan.

Photoshopissa tehtiin myös kaikki kameran tekstit ja tarrat sekä kameran kuvitteellisen valmistajan logo.

5.8 Mallin vienti pelimoottoriin

Koska videokameran näytön tarvitsee avautua, näytön liikkuminen animoidaan pelimoottorin puolella. Pelimoottorin puolella animoiminen ei ole niin tarkkaa kuin mallinnusohjelmassa, mutta koska kyseessä on hyvin yksinkertainen ja vain yhteen suuntaan liikkuminen, animointi on helpompi tehdä pelimoottorin puolella. Pelimoottorin puolella mallin osaa liikutellaan, eikä varsinaisesti animoida, joten näin ollen malliin ei tarvinnut rigata tai luoda luita. Pelimoottorissa huomattiin, että mallin lightmap resoluutio oli hyvä, sillä UV-mapeista ei heijastunut outoja varjoja objektiin.

Kameran näytön tekstuurit toteutettiin käyttämällä ”panner” -toimintoa, joka liikuttaa kuvaa joko vaaka-, pysty- tai molemmissa tasoissa yhtä aikaa. Ensin luotiin sopiva kuva Photoshopissa, jonka jälkeen sitä liikuteltiin halutulla tavalla saaden valkoista kohinaa kuvaavan tekstuurin.

Kameran näytön aukeaminen toteutettiin käyttäen Unreal Enginen Blueprinttejä.

Kameran näytöstä luotiin blueprintti, jossa näytön kääntymisen kulma ja nopeus määritettiin Timeline- toiminnon avulla ja käyttämällä SetRelativeRotation -nodea.

Kameran näyttö aukeaa, kun pelaaja on vuorovaikutuksessa kameran kanssa. Lisäksi näyttöön kiinnitettiin himmeä lamppu, johon luotiin välkkyvä efekti tuomaan lisää realismia kameraan.

Kuva 22. Valmis videokameran 3D-malli teksturointuna ja pelimoottoriin vietynä.

6 YHTEENVETO

Opinnäytetyön tavoitteena oli luoda asiakkaalle 3D-mallinnuksen työnkulun malli ja sen perusteella mallintaa esimerkki 3D-mallista, jonka oli tarkoitus tulla osaksi asiakkaan projektia. Lisäksi opinnäytetyön tavoitteena oli tutkia tarkemmin 3D-mallinnukseen liittyviä työvaiheita tarkemmin ja näin saada itselle parempi käsitys työvaiheista tulevaisuutta ajatellen.

Opinnäytetyön tavoitteet saavutettiin, sillä asiakas oli tyytyväinen sekä työnkulun malliin, että sen pohjalta tehtyyn 3D-malliin. Esimerkki 3D-mallina toiminut kannettava videokamera onnistui siinä määrin, että sitä voidaan käyttää siinä projektissa mihin se oli alun perin suunniteltu tulevankin. Myös 3D-mallinnuksen työnkulun mallia voidaan käyttää uusien työtekijöiden tai työharjoittelijoiden kouluttamisessa.

Peliprojektia, jonka osana opinnäytetyö suoritettiin, on tarkoitus Morrow Gamesin toimesta kehittää jatkossa joskus tulevaisuudessa. Projekti ei ole ainakaan tällä kovin tärkeä yritykselle, vaan sitä kehitetään eteenpäin muiden töiden ohella.

LÄHTEET

Autodesk 2015. Introduction to polygons. Viitattu 8.7.2017.

https://knowledge.autodesk.com/support/maya-lt/learn- explore/caas/CloudHelp/cloudhelp/2015/ENU/MayaLT/files/Polygons-overview-Introduction-to-polygons-htm.html.

Autodesk 2016. Smoothing Groups. Viitattu 6.7.2017.

Blender Foundation 2017b. About. Viitattu 19.5.2017 https://www.blender.org/about/.

Blender Foundation 2017a. Blender History. Viitattu 9.5.2017 https://www.blender.org/foundation/history/.

CGMeetup 2015. Smaug Speed Modeling in Zbrush. Viitattu 15.8.2017.

http://www.cgmeetup.net/home/smaug-speed-modeling-in-zbrush/.

Holm, P. 2005 3ds Max history. Viitattu 9.5.2017 https://www.3dbuzz.com/forum/threads/97960-3ds-max-history.

Maxon. Cinema 4D in the movies. Viitattu 22.5.2017. https://www.maxon.net/en-us/industries/movies-vfx/.

Polygon Reducer 2008. Reducing level of detail. Viitattu 16.8.2017. http://polygon-reducer.pc-guru.cz/reducing-level-of-detail.

Rhinoceros 2017. What are NURBS? Viitattu 7.8.2017. https://www.rhino3d.com/nurbs.

Silverman, D. 2013. 3D Primer for Game Developers: An Overview of 3D Modeling in Games.

Viitattu 28.5.2017. https://gamedevelopment.tutsplus.com/articles/3d-primer-for-game-developers-an-overview-of-3d-modeling-in-games--gamedev-5704.

Slick, J. 2016a. The many, linked definitions of “Spline”. Viitattu 15.5.2017.

https://www.lifewire.com/definitions-of-spline-2177.

Slick, J. 2016b. Topology in 3D animation. Viitattu 19.5.2017. https://www.lifewire.com/topology-in-3d-animation-2181.

Slick, J. 2016c. Surfacing 101 – The Basics of Texture Mapping. Viitattu 5.7.2017.

https://www.lifewire.com/texture-mapping-1956.

Thilakanathan Studios 2016. Why do we need topology in 3D modeling? Viitattu 15.8.2017.

http://thilakanathanstudios.com/2016/09/why-do-we-need-topology-in-3d-modeling/.

Time & Trends Academy 2016. History of Autodesk 3ds Max. Viitattu 9.5.2017 http://timesandtrendsacademy.com/history-autodesk-3ds-max/.

Unreal Engine 4. Blueprints Visual Scripting. Viitattu 14.8.2017.

https://docs.unrealengine.com/latest/INT/Engine/Blueprints/.

WiseGEEK 2017. What is 3D modelling? Viitattu 9.5.2017 http://www.wisegeek.com/what-is-3d-modeling.htm

In document 3D-mallinnusprosessi pelikäyttöön (sivua 31-39)