il Game Engine

Scegliere la modalità vista in Prospettiva: View -> Perspective

Può essere utile sapere che, quando si lavora con il Game Engine e il puntatore del mouse è nell'area 3D, la combinazione di tasti Ctrl + ↑ ingrandisce la finestra e una nuova pressione della stessa combinazione di tasti la riporta alla sua dimensione originaria.

Scelta della modalità di disegno per il Game Engine.

Per accedere ai pannelli del Game Engine premere l'icona viola con il simbolo di Pacman oppure premere F4.

In questa sezione si inseriranno dei blocchi logici che sfruttano un modo visivo per definire le interazioni all'interno del gioco.

Nella sezione pannelli del contesto Game, sotto ciascuna delle tre sezioni compare: il nome dell'oggetto selezionato e un pulsante Add. Premere il pulsante Add una sola volta in ciascuna sezione: Sensor, Controller ed Actuator.

Connettere questo gruppo: fare Click sul cerchietto che si trova alla fine del primo sensore e trascinare il mouse sul cerchietto all'inizio del controllore. Mediante la stessa operazione (click e trascinamento) collegare i due cerchietti dalla fine del controllore al cerchietto all'inizio dell'attuatore.

Il sensore è un timer Always. Questo emette un segnale per ciascun singolo frame, quindi il controllore collegato sarà attivato in continuazione per tutta la durata del gioco.

Il controllore svolge un'operazione AND tra gli stimoli ricevuti dai sensori. Siccome c'è un solo sensore attivo, l'attuatore connesso sarà chiamato automaticamente. L'attuatore controlla gli aspetti del moto dell'oggetto selezionato.

Durante la definizione del movimento di un oggetto usare sempre come riferimento gli assi mostrati in basso a sinistra nell'area 3D per sapere sempre in quale vista si sta osservando la scena. Nel pannello dell'attuatore del moto sono rilevanti i tre riquadri dLoc in cui si deve specificare la posizione dell'oggetto lungo i tre assi cartesiani.

Cambiare il valore della coordinata Y nella riga dLoc in 0.1.

Con il puntatore del mouse nell'area 3D premere P: il cubo si muove in continuazione verso l'alto lungo l'asse Y. Premere Esc. Se si preme ancora P si vede che si ripete la stessa sequenza di movimento. Premere Esc.

Il sensore Timer emette, per ogni frame, un segnale verso il controllore del cubo. Questo a sua volta lo comunica all'attuatore che provoca il movimento dell'oggetto di 0.1 unità lungo Y, e producendo quindi un nuovo frame.

Sul pannello del sensore fare click sul pulsante con le due frecce accanto alla label Always, per aprire il menu dei sensori disponibili. Selezionare Keyboard. Il Sensore cambia e vengono mostrate le opzioni relative alla tastiera. In questo nuovo pannello si può scegliere un tasto da premere per inviare un segnale al controllore.

Premere il pulsante accanto alla label Key e, quando cambia in press a key, premere il tasto freccia in su.

Premere P per giocare. Adesso il cubo non si muoverà più automaticamente. Bisogna premere il tasto freccia in su per farlo muovere. Premere Esc per tornare a Blender.

Adesso si aggiungerà la possibilità di muovere il cubo verso il basso e di farlo ruotare. Premere il pulsante Add, in ciascuno dei tre pannelli: Sensori, Controllori ed Attuatori per creare 3 blocchi logici. Connetterli congiungendo il cerchietto posto alla fine di un blocco con quello posto all'inizio del successivo.

In questo nuovo blocco cambiare il tipo di sensore in Keybord, definire il Tasto: Freccia in giu. Nel pannello dell'attuatore modificare il valore Y (II colonna) della riga dLoc in -0.1.

Premere P per giocare. Agire sul cubo con i due stati Freccia in su e Freccia in giu. Premere Esc per tornare a Blender.

Aggiungere (premendo il pulsante Add) altri 3 blocchi, connetterli e cambiare il tipo di sensore in Keyboard. Definire il Tasto: Freccia a sinistra. Nel pannello dell'attuatore, nella riga dRot cambiare la coordinata Z (III colonna) in -0.1.

Aggiungere (premendo il pulsante Add) altri 3 blocchi, connetterli e cambiare il tipo di sensore in Keyboard. Definire il Tasto: Freccia a destra. Nel pannello dell'attuatore, nella riga dRot cambiare la coordinata Z (III colonna) in 0.1

Premere P. Muovere il cubo mediante i tasti definiti. Premere Esc.

L'area dei pannelli del Game Engine può popolarsi di moltissimi pannelli, quindi è utile ridurre lo spazio occupato e individuarli rapidamente tramite un nome. Nel primo pannello dei Sensori, accanto al testo Keyboard, c'è la scritta "Sensor". Modificarla in "Freccia in su" per renderla più evocativa del significato del sensore.

Premere il pulsante con la freccia di riduzione del pannello per minimizzarne la dimensione. Ripetere la stessa operazione per tutti gli altri tasti e anche per i pannelli degli attuatori, dando anche ad essi dei nomi descrittivi (sale, scende, orario, antiorario).

Per rimuovere un blocco logico premere il pulsante X in alto a sinistra del blocco logico. Per rimuovere le connessioni tra blocchi logici portare il mouse su una linea di congiunzione e premere il tasto Canc.

Muovere il cubo applicando le leggi della dinamica.

Adesso si costruirà una scena che conterrà una sfera, che si muoverà se le si imprime una forza.

Per iniziare a disegnare la scena del gioco cancellare il cubo selezionandolo e premendo il tasto Canc.

Nel game panel c'è il pulsante Actor. Premere, con il tasto sinistro del mouse, questo pulsante.

Compaiono altri pulsanti. Premere il pulsante Dynamic, per applicare le leggi della fisica al modello.

Selezionare le seguenti opzioni:

Premere P. Si vede che sebbene non si sia introdotto alcun blocco logico, la palla si muove a causa della forza di gravità. Premere Esc.

Per sorreggere la palla serve un piano di appoggio:

Spostare il piano al di sotto della sfera usando i manipolatori e aumentare le dimensioni del piano in modo che sia circa 10 volte più grande.

Selezionare la sfera premendo il pulsante destro del mouse su di essa.

Nel game panel aggiungere un nuovo sensore, controllore e attuatore, connettere i cerchietti tra questi blocchi.

Nel pannello dell'attuatore impostare la componente Y (II colonna) della forza a 1. Premere P. Si vede che la palla cade sul piano e inizia a rotolare. Giunta ad una certa distanza, rotola all'indietro, perchè si è applicata una forza locale, cioè l'asse Y della palla ruota. Premere Esc.

Per cambiare il movimento della forza da locale a globale premere il pulsante L sulla destra della sezione Forza. Premere P. Si vede che adesso la palla si muove continuamente nella giusta direzione.

Se si applica una forza lateralmente alla palla, questa inizia a rotolare, a causa dell'attrito con la superficie del piano.

Se la palla raggiunge la fine del piano, cade. Premere Esc.

Cambiare il sensore da Always in Keyboard, e impostarlo per rispondere al tasto freccia in alto. Aggiungere e connettere altri blocchi sensori, controllori e attuatori:

Premere P. Sperimentare il movimento della palla sul piano controllato con i tasti freccia. Premere Esc.

Assegnare dei nomi a tutti i sensori e a tutti gli attuatori, per esempio "freccia in su" al primo sensore e "sollevatore" al primo attuatore. Cambiare anche i valori in tutti gli attuatori, per esempio sostituire 1 con 2 sostituire -1 con -2.

Premere P e osservare la differente velocità di spostamento della palla quando si agisce con i tasti. Premere Esc.

Aggiungere ostacoli.

Inserire un cubo nella scena: Add → Mesh → Cube. Premere Tab per uscire da Edit mode e tornare in Object mode.

Premere Alt+R per togliere la rotazione posseduta dal cubo, e trascinando le frecce del manipolatore 3D portare il cubo sulla superficie del piano. Ripetere questa operazione anche con altri oggetti aggiunti, ad esempio cilindri. Premendo P e spostando la palla con i tasti si vede che la palla urta gli oggetti inseriti nella scena. Premere Esc.

Aggiungere un piano inclinato su cui può essere spinta la palla e poi lasciata rotolare.

Selezionare il cubo. Nel Game Panel selezionare le seguenti opzioni: Actor - Dynamic - Rigid Body

Premere P. Far urtare la sfera contro il cubo. Si vede che il cubo ha un movimento inappropriato per la sua forma perchè il sistema di trattamento delle collisioni ha assunto che gli oggetti abbiano una forma sferica. Premere Esc.

Nel Game panel, sotto il pulsante Actor, c'è un pulsante etichettato Bounds. Premerlo. Si apre un elenco in cui bisogna selezionare la voce Box, che rappresenta il modo in cui il sistema deve considerare il cubo quando viene urtato. Nel caso di forme più complesse si deve selezionare la voce: Convex Hull Polytope. Selezionare gli altri oggetti e assegnare l'adatto tipo di Bounds. Premere P e far rotolare i vari oggetti. Premere Esc.

Adesso si assegnerà al tasto Spazio la funzione di far saltare la palla. Aggiungere un nuovo gruppo di sensore, controllore ed attuatore e connetterli. Modificare il sensore da Always a Keyboard e associarlo al tasto Spazio.

Nella sezione Forza dell'attuatore assegnare alla terza coordinata (Z) il valore 250 e premere il pulsante con L per disattivarlo, cioè per applicare la forza globalmente anzichè localmente nella direzione Z. Assegnare i nomi ai componenti del blocco logico.

Premere P, osservare l'effetto del tasto Spazio sulla palla e poi premere Esc. Quando la palla tocca il piano di appoggio deve rimbalzare.

Aggiungere un nuovo sensore e cambiarlo in tipo Touch. Connettere questo sensore allo stesso controllore del tasto Spazio. In questo modo il controllore invia il segnale all'attuatore quando il tasto spazio è premuto e contemporaneamente la palla tocca un altro oggetto, come ad esempio il piano di appoggio.

Adesso si imposta il gioco affinchè si riporti in uno stato iniziale quando la palla tocca un certo oggetto.

Se si preme P per avviare il gioco, si nota che non succede niente perchè il sensore Always sta continuamente azzerando la scena. Premere Esc.

Premere P e muovere la sfera. Premere R per riavviare il gioco. Premere Esc.

Premere P. La scena si riporta allo stato iniziale quando la sfera urta un ostacolo. Premere Esc.

Adesso si aggiungerà un oggetto che il giocatore può raccogliere quando si avvicina.

Premere P. quando si passa vicino all'oggetto, questo scompare definitivamente. Premere Esc.

Ogni volta che viene catturato un oggetto si vuole incrementare un punteggio totale.

Si usa l'attuatore Message per mandare un segnale a un altro oggetto nella scena che possiede il sensore Message. Questo sensore incrementerà il valore di una proprietà.

Quando il sensore Near è attivato il controllore aziona entrambi gli attuatori, in particolare il messaggio verrà inviato a tutti gli oggetti presenti nella scena.

Il tabellone del punteggio è un oggetto vuoto, non possiede geometria e non sarà visibile nel contesto del game engine.

Quando questo oggetto è selezionato premere il pulsante Add Property nel pannello Game Logic.

Cambiare il nome dell'oggetto appena aggiunto in items, e modificare il tipo da Float a Int. Questa è una variabile dove verranno contati gli elementi raccolti.

Premere il pulsante D (per "Debug") a destra della proprietà. In tal modo sarà possibile leggere il valore della proprietà durante il gioco. Selezionare Show Debug Properties.

Premere P. osservare il testo che compare in alto a destra: è il numero di oggetti raccolti. Premere Esc.

Premere P. Si vede che quando si raccoglie un elemento il valore della proprietà cresce. Premere Esc.

Il valore di questa proprietà può essere usato per riavviare il gioco o per passare ad un altro livello di difficoltà.

Per ottenere un gioco da eseguire anche su computer che non hanno blender, nel menu File scegliere Save RunTime.

Completare la finestra di salvataggio specificando il nome del file e la cartella in cui salvarlo. Potrebbe succedere che a ogni tentativo di esecuzione si ottenga un messaggio di file non trovato (generalmente una dll) aggiungere quel file nella stessa cartella del gioco.

Adesso si assegnerà un colore agli oggetti. Aprire il pannello dei materiali (F5). Selezionare la sfera principale nell'area 3D. Nel pannello dei materiali premere il pulsante Add (si aggiunge un nuovo materiale alla sfera). Individuare l'etichetta Col e premere il pulsante che si trova accanto ad essa. Il puntatore del mouse si trasforma in contagocce. Usarlo per prelevare un campione di colore dalla tavolozza e poi allontanarsi. Ripetere l'operazione per gli altri oggetti.


Gioco del Labirinto.

Scegliere la "Vista dall'alto" premendo 7 sulla tastierina numerica.

Nella scena di default il cubo è già selezionato, quindi eliminarlo premendo X e confermare la cancellazione scegliendo Erase Selected Object dal menu a comparsa.

Aggiungere un piano: con il puntatore del mouse nell'area 3D premere Spazio, e scegliere Add → Mesh → Plane.

Modificare le dimensioni del piano: avvicinare il puntatore del mouse al piano, premere S (Scala) e allontanare il mouse fino a quando il piano copre l'intero schermo. Per fermare il ridimensionamento del piano premere il pulsante sinistro del mouse.

Assicurarsi di trovarsi in Edit Mode, selezionare tutti i vertici, premendo A.

Suddividere il piano: per 4 volte premere W, ogni volta si apre un menu a comparsa, scegliere Subdivide. A questo punto sul piano è presente una griglia.

Togliere la selezione ai vertici premendo A. Ottenere un cerchio di selezione premendo due volte B. Modificare le dimensioni del cerchio di selezione, premendo i tasti + (per ingrandirlo) e - (per rimpicciolirlo) sulla tastierina numerica, fino a quando il cerchio di selezione diventa grande quanto basta per contenere un quadrato della griglia che ricopre il piano.

Scegliere un quadrato della griglia su uno dei lati del piano, che rappresenterà l'ingresso nel labirinto e trascinare il mouse coprendo una successione di quadrati adiacenti che formino un percorso del labirinto, fino a raggiungere un quadrato di uscita. Sul percorso formare anche delle diramazioni che riportano indietro. Prestare attenzione a lasciare sempre un quadrato di separazione tra due percorsi. Terminata la selezione (i lati del percorso scelto saranno gialli e le superfici dei quadrati saranno viola) premere Esc.

Passare in "Vista frontale": premere 1 sulla tastierina numerica.

Muovere i vertici verso il basso: avvicinare il puntatore del mouse al piano. Premere G (Grab: muovere) e, con il tasto Ctrl premuto, spostare il mouse verso il basso fino a quando i vertici selezionati raggiungono la più vicina suddivisione della griglia. Premere il pulsante sinistro del mouse per fermare lo spostamento dei vertici.

Passare in vista dall'alto (7 sulla tastierina numerica).

Assicurarsi di essere in edit mode e premere il pulsante "Face Select Mode", rappresentato dall'icona con il triangolo sulla barra centrale dei menu.

Al centro dei quadrati che formano la griglia, in cui si è diviso il piano, è comparso un quadratino nero. Esso indica che si può selezionare l'area in cui è contenuto, in uno tra due modi possibili: si può fare clic con il tasto destro del mouse su essa oppure si può trascinare il cerchietto di selezione.

In uno dei due modi descritti, selezionare il pavimento del labirinto.

Uscire da Edit mode e passare in UV Face Select.

Nel contesto di editing si è aperto un nuovo pannello, identificato da "Texture Face". Accanto al pulsante Set VertCol c'è un quadratino che, facendo clic al suo interno, apre la tavolozza da cui è possibile scegliere un colore. Allontanare il mouse dalla tavolozza e premere il pulsante Set VertCol. Premere anche il pulsante Light.

Togliere la selezione al pavimento, premendo A, e selezionare tutte le pareti del labirinto. Al riguardo potrebbe essere necessario ruotare la scena premendo la rotella centrale del mouse. Quando tutte le pareti sono selezionate, nel pannello Texture Face aprire la tavolozza, definire un nuovo colore e premere il pulsante Set VertCol. Premere anche il pulsante Light.

Creare una pallina: in Object Mode premere il tasto Spazio, scegliere Add → Mesh → UVsphere e premere Ok. Assegnare un colore alla palla, diverso da quelli assegnati al labirinto.

Spostare la telecamera (tasto G) all'inizio del labirinto e orientarla (tasto R) per vedere l'ingresso del labirinto.

Spostare la pallina davanti alla telecamera, al punto di partenza del labirinto.

Selezionare la telecamera e (tenendo premuto Shift) selezionare la pallina. Mentre i due oggetti sono selezionati premere Ctrl+P affinché si spostino insieme.

Assegnare un nome alla pallina: Nel contesto di editing accanto al pulsante OB scrivere il nome 'player'.

Passare al contesto del game Engine, selezionare la palla e nei pannelli Sensore, controllore ed attuatore premere i tre pulsanti Add.

Modificare il sensore da always a Keyboard. Congiungere i cerchietti tra il sensore e il controllore e tra il controllore e l'attuatore.

Fare clic nella casella accanto al pulsante Key e, sulla tastiera, premere il tasto Freccia in su.

Nella sezione Attuatore, sulla riga Forza, nella colonna della coordinate y scrivere 20.

Chiudere le tre sezioni premendo il pulsante con la freccetta arancione.

Premere i pulsanti Add per aggiungere altre tre sezioni. Nella sezione sensore modificare il sensore in keyboard e fare clic nella casella alla sinistra della voce Key, quindi premere il tasto freccia in basso.

Congiungere i pallini accanto alle tre sezioni. Nella sezione Attuatore assegnare il valore -20 alla componente y della forza.

Chiudere le tre sezioni premendo la freccetta arancione e aggiungere altri tre pannelli. Anche per questo sensore scegliere Keyboard, cliccare nella casella Key e poi premere il tasto freccia a sinistra. Scrivere 20 nella componente x della forza.

Congiungere i tre pannelli e minimizzarli. Ripetere lo stesso procedimento per dare il valore -20 alla componente x della forza quando si preme il tasto freccia a destra.

Premere il pulsante Actor. Premere il pulsante dynamic.

Passare alla vista da telecamera (0) e premere P per provare il gioco. Alla fine della prova premere Esc.

Adesso si introdurrà un secondo livello del gioco. Passare alla vista dall'alto. Aggiungere un cubo. Assegnare un colore al cubo e passare in edit mode. Selezionare i quattro vertici frontali, quelli paralleli al labirinto.

Premere X per cancellare le facce selezionate. Uscire da edit mode, scegliere Vertex Paint, selezionare tutte le facce del cubo. Premere W e, dal menu a comparsa, scegliere Light. Colorare le facce selezionate, scegliendo un colore dalla tavolozza e premere il pulsante Set VertCol nel pannello Paint del contesto di editing. Collocare il cubo all'uscita del labirinto, in una posizione tale che la palla ci cada all'interno.

Aprire il menu accanto al pulsante "scena" nella barra in alto, e scegliere il comando Add new per aggiungere una nuova scena, si apre un menu: scegliere "copia completa".

Fare clic sulla parola SCE e cambiarla in "livello 2".

Si cancelli il labirinto ma si lasci la palla e la telecamera con cui costruire un nuovo labirinto come fatto prima.

Tornare alla scena 1.

Selezionare il cubo. Entrare in Game panel, aggiungere i 3 pannelli. Modificare il sensore da always a collision e premendo il pulsante Add Property assegnare il valore 'player'.

Collegare i tre pannelli e modificare l'attuatore da moto a scena e scrivere il nome dato alla scena: "livello 2".

Selezionare la palla, passare nel game panel e cliccare Add property. In corrispondenza di prop scrivere 'player'.

A questo punto se si supera il livello 1, entrando nel cubo, si passa al livello 2.