Blender Game Engine: Drift

Blender on pääasiassa 3D-mallinnus ohjelma jolla tehdään 3D-malleja peleihin joita tehdään muissa ohjelmissa. Blenderilläkin on kuitenkin myös mahdollista tehdä pelejä. Tätä sanotaan Blender Game Engineksi (BGE). Eli voimme tehdä 3D-malleja, ja käyttää niitä saman tien peleissä ilman ohjelman vaihtamista.

Drifting game

Tehdään driftaus peli, jossa pelaaja ohjaa autoa kentässä, ja tehdään ohjauksesta sellaiset että pelaaja voi ns. driftata.

Aloitetaan 3D-mallintamalla auto. Näissä ohjeissa käytetään hyvin yksinkertaista mallia, mutta saatte itse tehdä peliin niin hienon auton kuin haluatte. Autossa tärkeintä on se että kaikki paitsi renkaat ovat samassa objektissa.

auto

Käytetään auton mallintamiseen neliötä joka on valmiiksi jo luotuna kun luomme uuden tiedoston. Painetaan tab ja mennään näin editmodeen. Painetaan A:ta ettei meillä ole mikään valittuna. Katsotaan alas ja etsitään nämä 3 symbolia  ja valitaan niistä keskimmäinen. Nyt pystymme valitsemaan objektista pelkkiä reunoja. Valitaan katon molemmat sivureunat, ja painetaan vasemmalta subdivide. Valitaan sitten auton etummainen reuna, ja lasketaan sitä näytöllä sinisestä nuolesta alaspäin vetämällä.

valitaan alareunat, ja nostetaan niitä hieman ylemmäs. Valitaan vain sivummaiset alareunat, ja painetaan vasemmalta subdivide. Painetaan A ja poistetaan valinnat, valitaan taas vain sivummaiset alareunat, ja painetaan subdivide. Toistetaan sama vielä kerran.

Valitaan toiseksi etummainen kaistale, sekä kolmanneksi takimmainen, ja nostetaan niitä ylös sinisestä nuolesta vetämällä. Näin saamme helposti paikat renkaille.

Painetaan tab ja palataan näin object modeen. Painetaan shift+A, valitaan mesh ja alavalikosta cylinder. Tästä tulee renkaamme. Muutetaan sen kokoa ja laitetaan se oikealle paikalle. Voimme tämän jälkeen kopioida rengas muihin paikkoihin painamalla shift+D. Tehdään näin toinen eturengas, sekä molemmat takarenkaat, mutta jätetään toisen eturenkaan paikka vielä tyhjäksi.

Nyt jos teitte omat autonne, ja teitte renkaista omat objektinsa, voimme jatkaa. Valitaan kaikki renkaat, ja viimeisenä itse auto, ja painetaan ctrl+P ja valitaan Object. Nyt kun liikutamme autoa, myös pyörät liikkuvat mukana.

Nyt meillä on auto valmiina, tai ainakin toistaiseksi. Voimme siis aloittaa pelin tekemisen. Painetaan aivan ylhäältä sellaisesta kohdasta missä lukee Blender Render, ja valitaan avautuneesta valikosta Blender Game. Nyt olemme vaihtuneet perinteisestä 3D-mallinnus modesta pelinteko modeen, vaikka ne ulkomuodoltaan näyttävätkin samalta.

Painetaan myös aivan vasemmasta alakulmasta kellon kuvaa, ja valitaan avautuneesta valikosta Logic Editor. Tämä avaa alanäkymään ikkunan jossa on kolme eri osaa. Täällä hoidamme kaiken pelin koodaamisen.

Valitaan automme, ja valitaan oikealta rivistä pikkukuvia kaikkein oikeanpuolimmainen kuva. Valitaan avautuneesta valikosta static, ja valitaan sen tilalle Rigidbody. Tämä tekee saman kuin Unityssä, eli nyt objektiimme vaikuttaa painovoima.

Laitetaan myös ruksi päälle Collision Bounds kohdasta. Valitaan myös Box, ja asetetaan sen tilalle Triangle Mesh. Tämä tekee myös saman kuin Unityssä Mesh Collider, eli objektimme voi nyt törmätä muihin objekteihin. Painetaan myös Compound ruksi päälle.

Valitaan jokainen rengas, ja painetaan niissäkin Collision Bounds päälle, laitetaan Boxin tilalle Cylinder, ja painetaan Compound päälle. Tämä sen takia, etteivät nämä objektit törmää toisiinsa, koska silloin auto vain lähtisi lentoon koska se törmää omaan lapseensa.

Painetaan shift+A, ja valitaan Mesh, ja sitten Plane. Suurennetaan objektia ja siirretään se auton alle. Siitä tulee automme maa valiaikaisesti.

Valitaan automme, ja katsotaan alas uuteen ikkunaamme. Tämä ikkuna on jaettu kolmeen osaan, jotka ovat Sensor, Controller, ja Actuator. Näitä lisäämällä teemme pelille sen ominaisuudet.

Tehdään autolle ensin liikkuminen. Painetaan Add Sensor kohdasta, ja valitaan Keyboard, eli näppäimistö. Uudessa laatikossa on sellainen kohta kuin Key, ja sen vieressä tyhjä laatikko. Painetaan tyhjästä laatikosta, ja painetaan sitten ylänuolta. Nyt olemme perjaatteessa lisänneet peliin if-lausekkeen joka katsoo painetaanko ylänuolta.

Painetaan seuraavaksi Add Actuator, ja valitaan täältä Motion eli liike. Nyt meille tulee uusi laatikko oikealle. Etsitään siitä Force kohta, ja laitetaan sen Y kohtaan -10.

Keyboard laatikomme vieressä on pieni ympyrä. Otetaan siitä hiirellä kiinni, ja vedetään se suurempaan ympyrään Motion kohdamme vasemmalla puolella. Nyt näiden kahden väliin pitäisi tulla Controller nimeltään And.

Voimme nyt kokeilla peliä. Tämä onnistuu painamalla ylhäältä Game, ja sitten Start Game Engine. Nyt jos painamme ylöspäin nuolta pitäisi automme kulkea eteenpäin. Pääsemme pois pelistä painamalla esc näppäimistöltä.

Tehdään sama alasnuolelle toiseen suuntaan. Eli taas Add Sensor ja Keyboard, ja tällä kertaa asetetaan Keyhyn alasnuoli. Sitten Add Actuator, Motion ja laitetaan tällä kertaa Force Y kohtaan 10. Nyt kun painamme alas, pitäisi auton kulkea päinvastaiseen suuntaan.

Lisätään seuraavaksi kääntyminen. Luodaan kaksi uutta Keyboard laatikkoa, ja laitetaan toiseen vasen nuoli ja toiseen oikea. Luodaan myös kaksi uutta Motion laatikkoa, ja laitetaan niihin Angular Velocity Z-akselille toiseen 0.50 ja toiseen -0.50. Ja testataan peliä. Jos auto kääntyy väärään suuntaan, vaihdat arvojen paikat.

Jos haluamme, niin voimme asettaa ettei auto käänny ellei sillä ajeta joko eteen tai taakse päin, niinkuin oikeakin auto. Tämä onnistuu lisäämällä Keyboard-laatikoiden First Modifier kohtaan ylänuoli. Nyt ylänuolen on oltava painettuna että auto kääntyy. Jos haluamme saman pakille, on meidän luotava 2 uutta Keyboard-laatikkoa, laittaa molempiin taas vasen ja oikea nuoli, ja laittaa tällä kertaa First Modifier kohtaan alanuoli, ja vetää niistä nuolet keskimmäisiin laatikoihin.

Nyt kääntymisen ei pitäisi toimia ollenkaan, vaikka painat oikeita nappeja. Tämä johtuu siitä, että keskimmäiset laatikkomme on And laatikoita, eli kaikki joista olemme vetäneet nuolet laatikoihin pitää olla painettuna että se toimii. Painetaan tästä And kohdasta, ja laitetaan sen tilalle Or. Nyt jos edes toinen laatikoista josta olemme vetäneet viivat on painettuna, peli toimii oikein. Eli jos nyt kokeilemme, pitäisi automme liikkuminen toimia täysin oikein.

Nyt ongelmana on enää kameran liikkuminen, tai pikemminkin sen puuttuminen. Tämä on kuitenkin helposti korjattu. Valitaan kamera, ja huomataan että Logic näytöltä kaikki katoaa. Tämä johtuu siitä että kaikki muokkaukset mitä teimme on tehty vain autoon, ja näkyy tämän takia vain autossa.

Laitetaan kameraan sellainen Sensor kuin Always. Tämä tarkoittaa sitä että asiat tapahtuvat koko ajan. Lisätään sitten uusi Actuator nimeltään Camera. Tämä on kameralle suunniteltu oma laatikkonsa. Painetaan GameObject kohdasta, ja lisätään siihen tekemämme auton nimi. Laitetaan Height kohtaan 15, Min ja Max 10, Axis -Y ja Damping 2 ja vedetään nuoli edellisestä laatikosta tähän.

Nyt jos kokeilemme peliä, pitäisi kameran mennä suoraa pelaajan taakse ja pysyä siellä.

Teemme vielä yhden muokkauksen, joka on syy miksi toista eturengasta ei laitettu vielä paikoilleen. Valitaan toinen eturengas, ja lisätään siihen Keyboard samalla tavoin mitä  teimme autossakin. Asetetaan siihen oikea nuoli, ja painetaan päälle Tap kohta. Tehdään sama myös vasemmalle nuolelle, ja lisätään kaksi Motion laatikkoa, joihin tulee Rotation kohtaan 20 ja toiseen -20. Mikä se näistä on, on teidän selvitettävä itse, sillä se riippuu miten olette renkaat luoneet. Nyt renkaiden pitäisi kääntyä sitä mukaan mihin painatte, mutta ne eivät palaa normaaliin asentoon vielä.

Tämä korjataan luomalla täysin identtiset Keyboard laatikot kuin aijemminkin, mutta tällä kertaa näihin laitetaan Invert-kohta päälle, ja vedetään ne päinvastoin mitä aijemmin. Näin kun päästämme näppäimestä irti, se palaa takaisin keskiasentoon. Nyt vain kopioimme renkaan toiselle puolelle, jolloin se säilyttää kaikki samat asiat mitä olemme toiseenki renkaaseen tehnyt, ja automme on valmis.

Voitte seuraavaksi luoda autolle kentän missä kulkea.




Tämä materiaali on tuotettu Euroopan maaseudun kehittämisen maatalousrahaston tuella