Oikea sisältö. Oikea paikka.

Oppijana Youtubessa: Unity 3D

On uskomatonta mitä kaikkea tänä päivänä voi oppia katsomalla Youtubea. Päätinkin kehittää itselleni pienen oppimisprojektin. Lähdin vihdoin tutustumaan Unity 3D -pelimoottoriin. Tavoitteena oli tehdä lyhyt FPS –pelidemo (First Person Shooter, eli perinteinen toimintapelinäkymä kolmiulotteisessa maailmassa). Erilaisia oppimisvideoita löytyy vaikka kuinka ja ne ovat ilmaisia. Tekijät ovat tyypillisesti yksityishenkilöitä tai joskus ammattimaisia bloggareita. Parhaat ovat tehneet jopa kattavat oheismateriaalit, jotka katsoja voi ladata tekijän verkkosivuilta, esimerkiksi uutiskirjeen tilaamista vastaan. Opiskelu näiden videoiden avulla on paljon koulun penkkiä tehokkaampaa ja oppimistuloksetkin yleensä parempia.

Miksi sitten yksityishenkilö näkee tämän kaiken vaivan ilmaiseksi? Uskoisin, että laadukkaan oppimateriaalin tekeminen Youtubeen toimii samalla tavoin ammatillisen profiilin kohottajana kuin painetun oppikirjan kirjoittaminen. Laaja katsojajoukko antaa oppimateriaalin tekijän asiantuntemukselle tietyn auktoriteettiaseman, mistä on hyötyä työuralla. Oli tekijän motivaatio mikä hyvänsä, näitä oppimateriaaleja kannattaa hyödyntää. Niitä löytyy kaikkiin mahdollisiin aiheisiin.

Unity 3D kehitysympäristö

Kannattaa huomioida, että nämä videot ovat vain nopea tapa päästä alkuun uuden taidon opiskelussa. Kun haluat mennä syvemmälle, tarvitset usein hieman laajemman skaalan oppimismetodeja.

Aloitin siis Unityyn tutustumisen kuuden videon sarjalla, jonka pääset katsomaan alla olevasta linkistä. Videoihin kuului materiaalipaketti, joka sisälsi valmiita C#-skriptejä ja 3D-malleja harjoitusten tekoa helpottamaan. Itselleni tämä oli erityisen hyödyllinen, sillä C# ei ole itselleni entuudestaan tuttu ohjelmointikieli, eikä minulla ole juuri mitään kokemusta 3D-mallintamisesta. C# ei kuitenkaan ollut täysin hepreaa, sillä kirjoitan jokapäiväisessä elämässäni PHP:ta ja JavaScriptia. Olen myös tutustunut pelien tekemiseen 2D-pelien maailmassa. Itse pelimoottorin laajuus on koodisyntaksia suurempi haaste.

Videosarjassa tehtiin ensin yksinkertainen pelimaailma Unityn omien työkalujen avulla. Ensin valittiin tekstuurit taivaalle ja maalle. Pinnanmuotoja sai muotoiltua hiirellä ja animoidut 3D-puut tippuivat paikoilleen pensselin vedolla. Säätämällä siveltimen kokoa sai isompaakin metsää. Höystin vielä omaa maailmaani hakemalla ilmaisen Google Sketchup 3D-mallinnusohjelman mallikirjastosta perihelsinkiläisen lähiöostarin 3D-mallin.

Seuraavaksi tehtiin pelaaja. Koska pelaajasta näkyy FPS pelissä vain käsi ja ase, oli pelaaja yksinkertainen sylinteriobjekti, johon sidottiin muut elementit. Kiinnitin siis pelaajasylinteriini oheismateriaaleista löytyneen käden ja rynnäkkökiväärin 3D-mallit. Tämän jälkeen tarvittiin FPS controller, eli vähän C# koodia. Skriptit liitetään pelin objekteihin, tässä tapauksessa pelaajaan. Perustason FPS controller -skripti löytyy kyllä valmiina myös Unityn kirjastosta, mutta käytin materiaalissa ollutta skriptiä, koska mukana tulleissa 3D-malleissa oli näihin skripteihin sidotut animaatiot esimerkiksi aseen rekyylille. Näitä skriptejä voi muokata ja luoda vapaasti Unityssa, jos vain hallitsee C#-kielen ja tuntee pelimoottorin hieman paremmin. Tässä vaiheessa tyydyin kuitenkin vain muokkaamaan hieman aseen tähtäimen ruudulle tuovaa skriptiä.

Nyt minulla oli siis pieni laaksoinen maisema, puita ja lähiöostari. Pystyin liikkumaan luomassani maailmassa ja ammuskelemaan. Jotain kuitenkin vielä puuttui: vastustajat. Koska tavoitteenani ei ollut tehdä todellista peliä vaan ainoastaan tutustua Unity-pelinkehitysympäristöön, tyydyin lisäämään pari sotilasta partioimaan lähiöostarilleni.

Löysin animoidut sotilasmallit materiaalipaketista ja lisäsin niihin niin ikään valmiin partiointiskriptin. Nyt demoni oli valmis näytettäväksi kollegoille ja kun aikaa taas löytyy, voin jatkaa Unity-pelimoottorin opiskelua eteenpäin. Selvää on, että vaikka alkuun on helpohko päästä, niin oppimiskäyrä tulee olemaan jyrkempi kuin aiemmin opettelemassani HTML5/JavaScript -pohjaisia 2D-pelejä tuottavassa Construct 2 -pelimoottorissa.

Pelissä pitää olla vastustajia

Youtubesta löytyy siis oppimateriaalia kaikkiin tarpeisiin, kravatin solminnan ja avaruusraketin rakentamisen väliltä.

Unity-kehitysympäristö on ladattavissa osoitteessa Unity3D.com Mac- ja Windows-koneille. Unitylla voi tehdä pelejä lähes kaikille alustoille (mm. Windows, Mac, Linux, iOS, Android, Oculus Rift, Playstation, Xbox). Opiskelutarkoituksiin pelimoottori on ilmainen, mutta kaupalliseen käyttöön siitä peritään maksu.

Suomessa vietetään peliviikkoa 14-20.11.2016.

Lisää aiheesta:

Unity pelimoottori: http://unity3d.com

Katso hyödyntämäni videosarja Youtubessa: https://www.youtube.com/playlist?list=PL3eZfsRk6nF00HSZZJKgZ-HOoz3CJYXJu