Creazione di un gioco tramite Blender Game Engine - MATTEO VENDRAMINI
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Creazione di un gioco tramite Blender Game Engine MATTEO VENDRAMINI
Creazione Oggetti Da realizzare: Un cubo, il «protagonista» Un piano, il pavimento Oggetti casuali, i «nemici» Un elemento vuoto, ma ne riparleremo Un po’ di luci di tipo Lamp per illuminare il campo Oggetti per delimitare il campo (un piano o un cubo da modificare)
Impostazioni Game Engine E’ necessario impostare per ogni oggetto le caratteristiche che avrà nel nostro gioco. Il cubo «protagonista» e i «nemici» dovranno essere impostati come oggetti dinamici; con forme semplici la differenza non è visibile, ma nel caso di forme complesse o di campi non orizzontali, la differenza è sostanziale.
Impostazioni Game Engine Il piano e i «muri» dovranno essere statici;. Il motivo è semplice, un oggetto dinamico o un corpo rigido sono soggetti alla gravità, impostando il pavimento a statico non si avranno problemi di sparizione di tutti gli oggetti per caduta nel vuoto.
Impostazioni Game Engine Le luci vanno disposte uniformemente su tutto il campo, in modo da non avere lati bui o troppo illuminati. Il cubo vuoto si utilizza come escamotage per risolvere dei problemi che si hanno con la telecamera, lo stesso va inserito come oggetto di tipo «no collision»
Movimenti Ora iniziamo a far muovere qualcosa nel nostro gioco. Selezioniamo il cubo vuoto e impostiamo i suoi movimenti tramite i LogicBricks. Servirà un Sensore, un attuatore ed un controllore per ogni movimento. I movimenti da dare sono i quattro di base (avanti, indietro, destra e sinistra) più la rotazione a destra ed a sinistra (per guardarsi attorno)
Movimenti I sensori dovranno essere di tipo Keyboard, in modo da permettere la ricezione degli input da tastiera, i tasti da usare sono a discrezione di chi crea il gioco (io ho utilizzato WASD per i movimenti e QE per le rotazioni, ma si possono usare le frecce o qualsiasi combinazione di tasti si preferisca). I controllori saranno AND Gli attuatori saranno di Simple Motion, tramite ciò muoveremo il cubo
Movimenti Impostazioni di movimenti: in avanti (▲) e rotazione a destra (▼ )
Movimenti Nella modalità gioco ora avremo un oggetto invisibile che si muove a nostro piacimento, quindi non accadrà niente di visibile. Per vedere qualcosa dobbiamo fare in modo che il nostro «protagonista» si sposti seguendo l’oggetto che muoviamo, per fare ciò useremo l’opzione di Parenting. Tramite quest’opzione si sceglie un oggetto «padre» ed un oggetto «figlio», l’oggetto «figlio» subirà qualsiasi modifica applicheremo all’oggetto «padre».
Movimenti Selezioniamo con il tasto destro il «protagonista», poi con Shift-Rclick selezioniamo l’elemento vuoto. Con ctrl-P impostiamo il legame di parentela, l’oggetto vuoto farà da padre al cubo. Se passiamo alla modalità gioco possiamo vedere che ora il nostro cubo seguirà i movimenti che immettiamo tramite tastiera.
Camera Ora dobbiamo impostare la telecamera in modo che il nostro gioco sia in terza persona, quindi anche la telecamera dovrà seguire i movimenti del cubo, posizioniamo la telecamera alle spalle del cubo (tramite lo 0 del num-pad, possiamo vedere ciò che vede la telecamera) e seguiamo la stessa procedura usata prima per imparentare la telecamera all’elemento vuoto. Ora se guardiamo l’inquadratura della telecamera e passiamo alla modalità gioco possiamo avere una visuale in terza persona che segue il nostro «protagonista».
Ora il gioco si compone di un cubo che scorrazza su un piano orizzontale, circondato da vari oggetti, passiamo quindi a fare interagire il nostro cubo con l’ambiente circostante e, ancora una volta faremo uso dei LogicBricks
Interazioni tra gli Oggetti Facciamo in modo che il nostro cubo, a contatto con gli altri oggetti, li «mangi» e aumenti di dimensioni. Tramite i sensori di collisione in Blender possiamo riconoscere quando un oggetto ne tocca un altro, è possibile anche decidere che il sensore si attivi solo quando l’oggetto toccato è di un materiale o possiede una specifica proprietà, ed è appunto ciò che useremo noi.
Materiali Tramite il menù dei materiali creiamo due materiali, CUBE e TARGET. Non abbiamo bisogno di impostazioni particolari, cambieremo giusto il colore per distinguere gli oggetti. La distinzione dei materiali ci permette di impostare i sensori, in modo che non si attivino ad ogni collisione (con il pavimento per esempio).
Logic Bricks Partiamo dai nostri «nemici». Per dare l’effetto di essere «mangiati» dal cubo impostiamo i Logic Bricks in modo che il nostro oggetto sparisca a contatto con il materiale CUBE. Per fare ciò ci viene in aiuto l’attuatore Edit Object > End Object, che cancella l’oggetto.
Logic Bricks Per ingrandire il cubo, dobbiamo ricorrere ad uno script Python, in quanto Blender non ci offre un attuatore adatto (o non l’ho trovato io). import bge cont = bge.logic.getCurrentController() owner = cont.owner owner.localScale.x+=0.25 owner.localScale.y+=0.25 owner.localScale.z+=0.25 Lo script è da usare come controllore, il sensore è, ovviamente, da impostare sulla collisione con il materiale TARGET, non useremo attuatori.
Alternative Se non volessimo usare Python l’alternativa che ho trovato è la creazione di copie del «protagonista» di dimensioni diverse da mettere in un layer nascosto, semplicemente al posto di eseguire lo script python, ad ogni collisione il protagonista avrebbe dovuto essere terminato e sostituito con una copia di dimensione maggiore. Questo metodo però ha degli inconvenienti in quanto, la nuova copia potrebbe non essere messa nella posizione esatta della precendente. Altro problema è il numero di oggetti da creare ed impostare, che può creare confusione.
Ora posso spiegare la scelta di impostare i movimenti tramite l’elemento vuoto. Se avessimo fatto in modo che la telecamera fosse imparentata al protagonista, ogni modifica subita dal cubo si sarebbe replicata anche sulla telecamera e non si sarebbe potuta apprezzare l’espansione del cubo, così facendo le modifiche che subisce la telecamera sono solo i movimenti e le rotazioni.
Conclusione Il nostro gioco è finito. Possiamo esportare il file del gioco tramite il menù File>Export>save as Game Engine runtime Così facendo salveremo un file eseguibile con il nostro gioco.
Puoi anche leggere