Blender 2.5 Game Engine - Schede sensori, controller, attuatori

Pagina creata da Gianluca Toscano
 
CONTINUA A LEGGERE
Blender 2.5 Game Engine - Schede sensori, controller, attuatori
www.redbaron85.com --- Gennaio 2010

    Blender 2.5 Game Engine - Schede sensori,
               controller, attuatori
                                           *        *       *
Il motore di gioco di Blender (Blender GE, Game Engine) mette a disposizione diversi sensori
(sensors), controller ed attuatori (actuators) per gestire la "logica del gioco" dei vari oggetti.

Qui di seguito, vi sono i link a delle "schede" su tali elementi: in ogni tabella, sulla sinistra vi è il
nome (che è anche il link alla relativa scheda) di un sensore, un controller o un attuatore, mentre
sulla destra vi è una descrizione breve, giusto per capire velocemente "a che serve" ogni elemento
e se è quello che ci interessa.

Buon lavoro ! ;-)
                                           *        *       *

                                         Sensori (sensors)
                                    Sensore sempre attivo, manda un impulso in ogni
            Always
                                    istante.
                                    Genera impulsi positivi e negativi ad un determinato
            Delay
                                    frame rate (definito dal programmatore).
                                    Sensore per i tasti digitati sulla tastiera (anche
            Keyboard
                                    combo).
                                    Sensore per i movimenti e la posizione (over) del
            Mouse                   mouse, click dei suoi pulsanti e movimento della
                                    rotellina.
                                    Se l'oggetto che ha questo sensore entra in contatto
            Touch                   con un determinato Material, Touch genera un
                                    impulso.
            Collision               Collisione / contatto tra oggetti.
            Near                    Sensore di prossimità con altri oggetti.
                                    Proprio come un Radar, verifica se vi sono oggetti
            Radar                   lungo una determinata direzione, con un certo angolo
                                    di apertura e fino ad una certa distanza.
                                    Verifica i valori delle proprietà dell'oggetto e, se
            Property
                                    uguali ad un valore o se modificati, invia un impulso.
                                    Invia un impulso casualmente (o pseudo-
            Random
                                    casualmente).
            Ray                     Proietta un raggio lungo una direzione fino ad una
Blender 2.5 Game Engine - Schede sensori, controller, attuatori
www.redbaron85.com --- Gennaio 2010

                 certa distanza: se il raggio intercetta qualcosa, il
                 sensore emette un impulso.
                 Questo sensore invia un impulso quando l'oggetto
Message
                 riceve un Message (message).
                 Consente di intercettare movimenti e pressioni di tasti
Joystick         fatti con joystick, gamepad e altre periferiche di
                 gioco connesse al pc.
                 Se un certo attuatore dell'oggetto viene attivato,
                 questo sensore genera un impulso. Utilissimo per
Actuator
                 ridurre il numero di sensori, controller, attuatori e
                 connessioni per un oggetto.
                         *      *       *

                  Controller (controllers)
                 Se tutti i sensori in ingresso sono TRUE (stanno
AND              inviando un impulso), restituisce TRUE (invia un
                 impulso agli attuatori collegati in uscita).
                 Se almeno uno dei sensori in ingresso è TRUE,
OR
                 restituisce TRUE.
                 Restituisce TRUE se e solo se UN sensore in input è
XOR
                 TRUE e tutti gli altri no.
                 Inverso di AND: se uno dei sensori è FALSE,
NAND
                 restituisce TRUE.
                 Restituisce FALSE se almeno uno degli input è
NOR
                 TRUE.
                 L'output è FALSE se e solo se un input è FALSE e
XNOR
                 tutti gli altri sono TRUE.
                 Consente di creare la propria "tabella di verità", una
Expression       espressione di controllo personalizzata, mediante
                 determinati operatori.
                 E' possibile, in questo modo, scrivere del codice
                 Python in grado di recuperare i valori dei sensori in
                 input, fare delle scelte e delle operazioni e inviare, in
                 caso, un output agli attuatori connessi, ma anche
                 interagire con altri stati ed elementi del Game
Python
                 Engine.

                 E' necessario, ovviamente, saper programmare in
                 Python e conoscere le API Python degli elementi del
                 Game Engine di Blender.
                        *       *      *
Blender 2.5 Game Engine - Schede sensori, controller, attuatori
www.redbaron85.com --- Gennaio 2010

                     Attuatori (actuators)
                   Sposta, ruota ed effettua altre operazioni di "moto"
Motion
                   degli oggetti (li sottopone a forze, ad esempio).
Constraint         Limita o blocca del tutto alcuni movimenti.
                   Esegue delle curve IPO (animazioni in Object Mode
IPO                in tempo reale nel gioco, quindi) sull'oggetto che
                   possiede tale attuatore.
Camera             Serve a "simulare" un cameramen.
                   Esegue un clip audio (suoni, file audio wav, musiche,
Sound
                   ...).
Property           Assegna un valore ad una Property (proprietà).
                   Esegue Actions (azioni, sequenze) o animazioni
Shape Action
                   Shape Key sull'oggetto selezionato in fase di gioco.
                   Aggiunge o rimuove oggetti o effettua altre
Edit Object
                   operazioni sugli stessi.
Scene              Cambio di scena o di telecamera da utilizzare.
Random             Genera valori casuali.
Message            Invia un Message (messaggio).
                   Utilizzato per riavviare o chiudere il gioco o per
Game
                   caricare un livello dal disco.
Visibility         Consente di rendere un oggetto visibile o invisibile.
                   Applica un filtro di modifica 2D (maschere ed altri
2D Filter          effetti, come motion blurring, ecc...) all'immagine
                   renderizzata dell'oggetto, in tempo reale nel gioco.
                   Imposta o rimuove relazioni di parentela padre-figlio
Parent
                   tra gli oggetti. Va utilizzato da parte del figlio.
State              Consente di impostare degli stati.
                         *       *      *
                          *       *         *
www.redbaron85.com --- Gennaio 2010

 Blender GE 2.5 --- Scheda Attuatore 2D Filter
                                         *      *       *

Un Filtro 2D modifica in tempo reale (durante il gioco, a video) l'immagine renderizzata
dell'oggetto al quale è associato.
Selezionando, ad esempio, Motion Blur, ed impostando i relativi parametri per tale filtro,
l'oggetto verrà renderizzato -se mosso- con del motion blurring (sfocatura per simulare l'effetto
"mosso" degli oggetti in movimento).

E' possibile scrivere dei filtri personalizzati (custom 2D Filters) utilizzando GLSL , scrivendo un
vero e proprio programma shader con l'editor testuale di Blender, a patto ovviamente di
conoscere linguaggio di programmazione e API.
                                         *      *       *
                                         *      *       *
www.redbaron85.com --- Gennaio 2010

  Blender GE 2.5 --- Scheda Attuatore Camera
                                          *       *      *

Tale attuatore segue un personaggio o comunque un oggetto nel corso del gioco, simulando un
"cameramen", con tempi di reazione non istantanei e mantenendosi ad una certa distanza dal
soggetto.

Il nome dell'oggetto da seguire va inserito nel campo testuale OB: ; il valore di Height indica,
ovviamente, l'altezza della telecamera rispetto all'oggetto, mentre Min e Max indicano le
distanze minima e massima dall'oggetto ove può trovarsi la telecamera (che dunque non si troverà
ad una distanza "fissa", ma avrà una certa libertà, una zona di spazio); X e Y indicano, infine, quale
deve essere l'asse di riferimento per posizionare la telecamera rispetto all'oggetto.
                                          *       *      *
                                          *       *      *
www.redbaron85.com --- Gennaio 2010

           Blender GE 2.5 --- Scheda Attuatore
                      Constraint
                                          *      *       *

L'attuatore Constraint consente di limitare o bloccare del tutto movimenti o altri "gradi di
libertà" dell'oggetto.
Attraverso il menù "Constraint-type" è possibile scegliere su quale caratteristica agire
(posizione, orientamento, distanza, campo di forza).

Gli altri pulsanti (che varieranno a seconda del tipo di Constraint scelto) consentiranno, quindi, di
impostare i parametri per limitare le varie operazioni e mettere dunque in atto i Constraint.
                                          *      *       *
                                          *      *       *
www.redbaron85.com --- Gennaio 2010

      Blender GE 2.5 --- Scheda Attuatore Edit
                       Object
                                         *       *      *

Questo attuatore effettua delle operazioni che riguardano l'oggetto che lo possiede.
L'opzione di default è "Add Object", ossia "aggiungi oggetto"; è possibile selezionare un'altra
opzione mediante il menù a scomparsa "Edit Object".

L'opzione più utilizzata è proprio quella di default, Add Object, che consente ad esempio di
aggiungere nemici, pallottole ed altri oggetti alla scena; riguardo Add Object va però fatta
un'osservazione importante: gli oggetti da aggiungere vanno messi in un altro layer, invisibile,
altrimenti si avrà un errore su console in fase di debugging e non verranno mostrati i nuovi
oggetti in fase di esecuzione.
                                         *       *      *
                                         *       *      *
www.redbaron85.com --- Gennaio 2010

    Blender GE 2.5 --- Scheda Attuatore Game
                                        *      *       *

L'attuatore Game consente di avviare (o riavviare) il gioco, terminare l'esecuzione, salvare o
caricare una partita.

La scelta dell'operazione da effettuare quando viene attivato l'attuatore va fatta scegliendo una
voce dal menù a discesa Scene dell'attuatore stesso.

                                        *      *       *
                                        *      *       *
www.redbaron85.com --- Gennaio 2010

      Blender GE 2.5 --- Scheda Attuatore IPO
                                         *       *      *

L'attuatore IPO consente di eseguire delle curve IPO (trasformazioni animate a livello oggetto:
traslazione, rotazione, scaling) per l'oggetto che lo possiede.
Se l'oggetto ha un oggetto figlio, e il figlio ha a sua volta una IPO (in una relazione di parentela
padre-figlio), attivando il pulsante "Child" dell'attuatore verrà eseguita anche la IPO del figlio.

L'animazione verrà eseguita dal frame Start al frame End (al frame rate FPS del motore di
gioco), e questo per eseguire solo "porzioni" di curve IPO (i frame fanno riferimento al frame
della IPO, non del motore di gioco in esecuzione).

Inserendo il nome di una proprietà esistente nel campo FrameProp, tale campo assumerà il
valore del numero di frame della IPO eseguita.
                                         *       *      *
                                         *       *      *
www.redbaron85.com --- Gennaio 2010

 Blender GE 2.5 --- Scheda Attuatore Message
                                         *       *      *

Tale attuatore consente di inviare un messaggio (con oggetto specificato nel campo testuale
Subject: e corpo del messaggio da inserire, come stringa, in Body: ) ad un altro elemento del gioco
(il cui nome va specificato nel campo testuale To: ) che, se provvisto del relativo sensore Message,
potrà riceverlo ed attivare degli attuatori, modificare proprietà ecc... .

Anzichè una stringa, si può inviare come contenuto del messaggio direttamente il valore di una
Property dell'oggetto che possiede tale attuatore; per fare ciò, bisogna attivare la casella T/P e
scrivere il nome della Proprietà che contiene il valore da inviare nel campo testuale Propname:
(che apparirà al posto di Body: , per cui con un attuatore possiamo inviare O una stringa testuale
O un valore tratto da una proprietà dell'oggetto).
                                         *       *      *
                                         *       *      *
www.redbaron85.com --- Gennaio 2010

   Blender GE 2.5 --- Scheda Attuatore Motion
                                           *      *       *

L'attuatore Motion è un attuatore indispensabile: consente di spostare o ruotare gli oggetti
all'interno dello spazio virtuale 3D.

In Simple Motion, con oggetti non attori, si hanno a disposizione le voci LOC e ROT, che
consentono di spostare o ruotare istantaneamente degli oggetti lungo (o intorno a) uno o più assi.
La casella con la L, selezionata di default, indica che l'operazione verrà effettuata rispetto all'asse
LOCALE dell'oggetto; deselezionandola, la trasformazione verrà effettuata rispetto agli assi
GLOBALI della scena.
In Simple Motion, per gli oggetti "dinamici", attori della simulazione fisica del Game Engine,
sono disponibili altre opzioni, basate sul concetto di forza: per la durata dell'esecuzione
dell'attuatore, un oggetto verrà sottoposto ad una forza lungo un asse (per spostarlo, con force) o
rispetto ad esso (per le rotazioni, con torque).
I campi linV e angV definiscono velocità e rotazioni iniziali, da raggiungere in un tempo (in
numero di frames) specificato dal valore del campo Damp (di default 0, per cui istantaneo).

L'attuatore Motion può essere utilizzato, oltre che in modalità "Simple Motion", in modalità
"Servo Control", che serve a controllare meglio le forze applicate agli oggetti per evitare, ad
esempio, che la velocità di traslazione di un oggetto aumenti continuamente, senza fermarsi; con
Servo Control, è possibile impostare dei limiti per i vari campi, dopodiché le forze verranno
ridimensionate automaticamente.
Vi sono anche altri coefficienti in Servo Control: le combinazioni dei loro valori consentono di
ottenere una gran varietà di effetti.
                                           *      *       *
                                           *      *       *
www.redbaron85.com --- Gennaio 2010

   Blender GE 2.5 --- Scheda Attuatore Parent
                                         *       *      *

Con tale attuatore è possibile instaurare o rimuovere "al volo" delle relazioni di parentela tra gli
oggetti.

Le relazioni vanno instaurate o rimosse da parte del figlio, per cui questo attuatore dovrà essere
inserito per l'oggetto figlio e nel campo testuale OB: bisognerà inserire il nome dell'oggetto
padre.
                                         *       *      *
                                         *       *      *
www.redbaron85.com --- Gennaio 2010

 Blender GE 2.5 --- Scheda Attuatore Property
                                         *       *      *

L'attuatore Property consente di "lavorare" con le proprietà dell'oggetto che lo possiede, nel
senso che con esso è possibile modificare i valori di una proprietà (aggiungendo o assegnando
valori alla stessa) o di copiare il valore della proprietà di un altro oggetto (utilizzando il campo
testuale OB: per scrivere il nome dell'oggetto e quello Prop: alla sua destra per specificare il
nome della sua proprietà) nella proprietà specificata in Prop: (al centro).

La scelta dell'operazione da svolgere va fatta utilizzando il menù a scomparsa Type; i pulsanti
necessari per le varie operazioni verranno quindi visualizzati nella finestra dell'attuatore.
                                         *       *      *
                                         *       *      *
www.redbaron85.com --- Gennaio 2010

 Blender GE 2.5 --- Scheda Attuatore Random
                                      *      *      *

L'attuatore Random consente di generare numeri (pseudo) casuali, specificando un valore di
Seed (valore iniziale della sequenza) per generare sequenze differenti.
Attenzione: utilizzando come valore di Seed zero, l'attuatore NON si comporterà per niente in
maniera casuale !

Nel campo Property: bisognerà quindi scrivere il nome della Property il cui valore verrà
impostato con il valore ottenuto mediante Random.
                                      *      *      *
                                      *      *      *
www.redbaron85.com --- Gennaio 2010

    Blender GE 2.5 --- Scheda Attuatore Scene
                                           *      *       *

L'attuatore Scene consente di cambiare o resettare una scena, aggiungere scene nascoste o di
background e di cambiare la telecamera (punto di vista del giocatore).

La scelta dell'operazione da eseguire va fatta mediante il menù a scomparsa Scene; in base
all'opzione scelta, verranno visualizzati i pulsanti necessari per intraprendere la relativa azione (il
funzionamento e i significati sono ovvi).
                                           *      *       *
                                           *      *       *
www.redbaron85.com --- Gennaio 2010

    Blender GE 2.5 --- Scheda Attuatore Shape
                      Action
                                       *      *      *

Come suggerisce il nome, tale attuatore consente di eseguire animazioni di deformazione della
mesh, mediante l'esecuzione di Actions o di animazioni Shape Key (la "porzione" di animazione
da riprodurre va impostata inserendo i numeri dei frame iniziale e finale in Sta: ed End: , in
maniera simile a quanto avviene con l'attuatore IPO, che invece riproduce animazioni a livello
oggetto).
                                       *      *      *
                                       *      *      *
www.redbaron85.com --- Gennaio 2010

    Blender GE 2.5 --- Scheda Attuatore Sound
                                           *       *       *

L'attuatore Sound consente di caricare un file audio da disco, mediante il pulsante Load Sound e
un campo di testo, e di gestirne l'esecuzione con le voci presenti nel menù a scomparsa.
E' possibile inoltre regolare il volume e gestire altri aspetti della riproduzione.
                                           *       *       *
                                           *       *       *
www.redbaron85.com --- Gennaio 2010

        Blender GE 2.5 --- Scheda Attuatore State
                                             *       *       *

L'attuatore State consente di agire sugli Stati (BGE States) del gioco:
    •   Copy copia gli stati (selezionati e non) dell'attuatore negli stati generali del sistema,
        sovrascrivendo le impostazioni precedenti;
    •   Add aggiunge gli stati selezionati dell'attuatore agli stati generali del sistema (come un OR
        logico);
    •   Sub sottrae gli stati selezionati dell'attuatore agli stati generali del sistema;
    •   Inv inverte i valori degli stati generali del sistema se i corrispondenti stati dell'attuatore sono
        selezionati.
                                             *       *       *
                                             *       *       *
www.redbaron85.com --- Gennaio 2010

 Blender GE 2.5 --- Scheda Attuatore Visibility
                                           *       *       *

L'attuatore Visibility consente di rendere un oggetto visibile o invisibile.
Attivando l'opzione Children, la trasformazione verrà effettuata anche sui figli dell'oggetto (se
presenti).
                                           *       *       *
                                           *       *       *
www.redbaron85.com --- Gennaio 2010

    Blender GE 2.5 --- Scheda Controller AND
                                          *      *      *

Il controller AND si comporta come descritto dall'omonimo operatore booleano.
La logica dell'operatore OR è la seguente: viene restituito VERO se TUTTI gli input sono a
VERO, FALSO in tutti gli altri casi.

E' possibile collegare più sensori al socket di ingresso del controller (cerchietto in rilievo sulla
sinistra) e più attuatori mediante il socket di uscita (cerchietto nero, pieno, sulla destra).

Ad esempio, ecco la tabella di verità dell'AND con due input, A e B (V sta per Vero, True; F sta
per Falso, False):

                                               AND
                                   Input A Input B Output
                                      V         V           V
                                      V          F          F
                                      F         V           F
                                      F          F          F
                                          *      *      *
                                          *      *      *
www.redbaron85.com --- Gennaio 2010

           Blender GE 2.5 --- Scheda Controller
                      Expression
                                           *       *       *

Mediante il controller Expressions è possibile scrivere semplici "espressioni" (logiche,
aritmetiche) per generare eventi o modificare alcuni valori e proprietà del motore di gioco.

E' possibile utilizzare, come variabili, numeri interi (15, 2, ...), numeri in virgola mobile (float; la
virgola va espressa con un punto: 12.23, 3.4, ...), booleani (TRUE per vero, FALSE per falso),
stringhe (delimitate da "", ad es.: "Esempio di stringa"), proprietà (identificate dal loro nome) e
nomi dei sensori (i nomi che tali sensori hanno nella logica dell'elemento).
Le espressioni aritmetiche possibili riguardano le 4 operazioni (+, -, *, /) e i confronti tra i
valori: = (maggiore uguale a).
Le operazioni booleane possibili sono:

                                 Operatore            Esempio
                                NOT            Not EXPR
                                OR             logical OR
                                AND            logical AND
                                               EXPR1 equals
                                ==
                                               EXPR2
E' possibile, inoltre, utilizzare il costrutto IF, con la seguente sintassi: IF(Test, ValueTrue,
ValueFalse).

Esempio:
    •   l'espressione 1+1 genera come risultato 24;
    •   l'espressione nomePersonaggio == "Mike" (dove nomePersonaggio è il nome di una
        proprietà presente nel motore di gioco) controlla se il valore della proprietà è uguale alla
        stringa alla destra dell'operatore ==, per cui il risultato può essere TRUE o FALSE;
    •   l'espressione "Giocatore1" > "Giocatore2" equivale a confrontare due stringhe; il
        risultato è chiaramente FALSE (un booleano).
                                           *       *       *
                                           *       *       *
www.redbaron85.com --- Gennaio 2010

  Blender GE 2.5 --- Scheda Controller NAND
                                          *      *      *

Il controller NAND si comporta come descritto dall'omonimo operatore booleano.
La logica dell'operatore OR è la seguente: viene restituito FALSO se e solo TUTTI gli elementi
sono a VERO (arrivano impulsi positivi dai sensori collegati in input), mentre restituisce VERO in
tutti gli altri CASI.

E' possibile collegare più sensori al socket di ingresso del controller (cerchietto in rilievo sulla
sinistra) e più attuatori mediante il socket di uscita (cerchietto nero, pieno, sulla destra).

Ad esempio, ecco la tabella di verità del NAND con due input, A e B (V sta per Vero, True; F sta
per Falso, False):

                                              NAND
                                   Input A Input B Output
                                      V         V           F
                                      V          F          V
                                      F         V           V
                                      F          F          V
                                          *      *      *
                                          *      *      *
www.redbaron85.com --- Gennaio 2010

    Blender GE 2.5 --- Scheda Controller NOR
                                           *     *       *

Il controller NOR si comporta come descritto dall'omonimo operatore booleano.
La logica dell'operatore OR è la seguente: viene restituito VERO se e solo se TUTTI gli elementi
sono a FALSO (non arrivano impulsi dai sensori in input), mentre restituisce FALSO in tutti gli altri
casi.

E' possibile collegare più sensori al socket di ingresso del controller (cerchietto in rilievo sulla
sinistra) e più attuatori mediante il socket di uscita (cerchietto nero, pieno, sulla destra).

Ad esempio, ecco la tabella di verità del NOR con due input, A e B (V sta per Vero, True; F sta per
Falso, False):

                                               NOR
                                   Input A Input B Output
                                       V         V           F
                                       V         F           F
                                       F         V           F
                                       F         F           V
                                           *     *       *
                                           *     *       *
www.redbaron85.com --- Gennaio 2010

      Blender GE 2.5 --- Scheda Controller OR
                                          *      *      *

Il controller OR si comporta come descritto dall'omonimo operatore booleano.
La logica dell'operatore OR è la seguente: restituisce VERO se ALMENO uno degli elementi è
VERO, FALSO altrimenti.

E' possibile collegare più sensori al socket di ingresso del controller (cerchietto in rilievo sulla
sinistra) e più attuatori mediante il socket di uscita (cerchietto nero, pieno, sulla destra).

Ad esempio, ecco la tabella di verità dell'OR con due input, A e B (V sta per Vero, True; F sta per
Falso, False):

                                                OR
                                   Input A Input B Output
                                      V         V           V
                                      V          F          V
                                      F         V           V
                                      F          F          F
                                          *      *      *
                                          *      *      *
www.redbaron85.com --- Gennaio 2010

  Blender GE 2.5 --- Scheda Controller Python
                                           *      *       *

                     (clicca sull'immagine per vederne una versione ingrandita)
Il controller "Python" è quello che consente la maggiore libertà (e potenza) di azione all'interno
del Game Engine: attraverso l'esecuzione di script e moduli programmati in linguaggio Python,
attivabili quando il controller riceve impulsi dai sensori in input, è infatti possibile eseguire sia
azioni "semplici" (movimenti, cambiamenti di stato, ...) che complesse (anche gestire un pò di
intelligenza artificiale dei personaggi, connessioni di rete per il multiplayer via LAN o Internet,
ecc...).

Per collegare uno script o un modulo Python al Game Engine mediante tale controller, è
sufficiente scrivere il nome del file da utilizzare nella casella di testo del controller, a destra del
campo (menù a tendina) "Execution Method".

Ovviamente, per poter scrivere moduli e script in Python da eseguire mediante tale controller, è
necessario saper programmare in Python e conoscere le API del motore di gioco di Blender.
                                           *      *       *
                                           *      *       *
www.redbaron85.com --- Gennaio 2010

  Blender GE 2.5 --- Scheda Controller XNOR
                                          *      *      *

Il controller XNOR si comporta come descritto dall'omonimo operatore booleano.
La logica dell'operatore OR è la seguente: restituisce FALSO se e solo se un input è FALSO e tutti
gli altri input sono TRUE.

E' possibile collegare più sensori al socket di ingresso del controller (cerchietto in rilievo sulla
sinistra) e più attuatori mediante il socket di uscita (cerchietto nero, pieno, sulla destra).

Ad esempio, ecco la tabella di verità dello XNOR con due input, A e B (V sta per Vero, True; F sta
per Falso, False):

                                              XNOR
                                   Input A Input B Output
                                      V         V           V
                                      V          F          F
                                      F         V           F
                                      F          F          V
                                          *      *      *
                                          *      *      *
www.redbaron85.com --- Gennaio 2010

    Blender GE 2.5 --- Scheda Controller XOR
                                          *      *      *

Il controller XOR si comporta come descritto dall'omonimo operatore booleano.
La logica dell'operatore OR è la seguente: restituisce VERO se e solo se UNO SOLO degli input è
TRUE e tutti gli altri false.

E' possibile collegare più sensori al socket di ingresso del controller (cerchietto in rilievo sulla
sinistra) e più attuatori mediante il socket di uscita (cerchietto nero, pieno, sulla destra).

Ad esempio, ecco la tabella di verità dello XOR con due input, A e B (V sta per Vero, True; F sta
per Falso, False):

                                               XOR
                                   Input A Input B Output
                                      V         V           F
                                      V          F          V
                                      F         V           V
                                      F          F          F
                                          *      *      *
                                          *      *      *
www.redbaron85.com --- Gennaio 2010

   Blender GE 2.5 --- Scheda Sensore Actuator
                                        *      *      *

Questo particolare sensore invia un impulso positivo quando un attuatore (il cui nome va
specificato nel campo Act: del sensore) viene attivato.

Può diventare molto utile, ad esempio, per ridurre il numero di sensori, controller, attuatori e
relative connessioni all'interno del pannello Game Logic di un oggetto.
                                        *      *      *
                                        *      *      *
www.redbaron85.com --- Gennaio 2010

     Blender GE 2.5 --- Scheda Sensore Always
                                          *      *       *

Questo sensore è, come suggerisce il nome, sempre attivo: invia un impulso positivo ad ogni
"tic" di esecuzione del gioco.
Torna particolarmente utile, ad esempio, per implementare orologi, conti alla rovescia, ecc...
                                          *      *       *
                                          *      *       *
www.redbaron85.com --- Gennaio 2010

   Blender GE 2.5 --- Scheda Sensore Collision
                                         *       *      *

Il sensore Collision permette di rilevare il contatto / collisione dell'oggetto che lo possiede con
altri oggetti provvisti o di un determinato Material o di una determinata Proprietà (la scelta del
"criterio" da utilizzare va fatta premendo il pulsante M/P che tramuterà il campo a destra in
Property: o in Material: , a seconda dei casi; ad ogni modo, è possibile specificare O un material O
una proprietà, per ciascun sensore).
                                         *       *      *
                                         *       *      *
www.redbaron85.com --- Gennaio 2010

       Blender GE 2.5 --- Scheda Sensore Delay
                                           *       *       *

Il sensore Delay emette segnali positivi e negativi in determinati istanti (tempi e durata sono
espressi in numero di frames).
Il valore di Delay indica la durata del primo periodo di OFF, al termine del quale viene generato
un impulso ON di durata pari al valore specificato nel campo Dur.

Al termine di un periodo di ON, viene emesso un segnale negativo, a meno che Dur non sia a 0: in
quel caso, il sensore resterà a ON, senza emettere impulsi negativi.

Se si attiva il pulsante REP, il ciclo verrà ripetuto all'infinito, altrimenti solo una volta (se Dur è a
zero, verrà ripetuto all'infinito solo OFF, non il ciclo OFF-ON).
                                           *       *       *
                                           *       *       *
www.redbaron85.com --- Gennaio 2010

    Blender GE 2.5 --- Scheda Sensore Joystick
                                         *      *       *

Con tale sensore è possibile, come suggerisce il nome, intercettare la pressione dei tasti di un
joystick, gamepad o qualunque altra periferica di gioco collegata al pc, nonchè il movimento
della stessa (solo il movimento inteso come "cambiamento": per recuperare i valori di posizioni,
entità dello spostamento, ecc... è necessario scrivere degli script Python conoscendo, tra le altre
cose, le API di programmazione di tale sensore, proprio come con il sensore Mouse).
                                         *      *       *
                                         *      *       *
www.redbaron85.com --- Gennaio 2010

  Blender GE 2.5 --- Scheda Sensore Keyboard
                                          *       *      *

Il sensore KeyBoard è uno dei sensori più importanti, in quanto consente di intercettare la
pressione dei tasti della tastiera, utilizzati dall'utente per interagire con il motore di gioco di
Blender (es.: per muovere i personaggi, eseguire azioni, ecc...).

Cliccando sul pulsante posto accanto a Key e premendo un tasto della tastiera, si assegnerà il
sensore a quel tasto, mentre facendo lo stesso su uno o entrambi i pulsanti di Hold si potranno
creare delle combinazioni di tasti (per cui, ad esempio, mettendo N in Key e CTRL e ALT nei due
spazi di Hold, si attiverà il sensore alla pressione dei tasti CTRL + ALT + N); selezionando "All
Keys", infine, il sensore si attiverà alla pressione di un qualsiasi tasto (ad es. per implementare un
"premere un tasto per continuare / press any key").

E' possibile utilizzare questo sensore per assegnare un valore ad una proprietà del game engine,
cosa che va fatta scrivendo il nome della proprietà nel campo "Target:"; l'input sarà attivo fino a
quando la proprietà nominata nel campo "LogToggle" sarà a TRUE.
                                          *       *      *
                                          *       *      *
www.redbaron85.com --- Gennaio 2010

   Blender GE 2.5 --- Scheda Sensore Message
                                         *      *       *

Tale sensore si attiva quando l'oggetto che lo possiede riceve un messaggio (inviato, ad esempio,
da altri oggetti, mediante l'attuatore Message).

Per "filtrare" i messaggi, facendo in modo che il sensore si attivi solo per certi messaggi anzichè
per tutti, si può specificare il nome del messaggio che può attivare il sensore scrivendolo nel
campo testuale Subject: .
                                         *      *       *
                                         *      *       *
www.redbaron85.com --- Gennaio 2010

        Blender GE 2.5 --- Scheda Sensore Mouse
                                          *      *       *

Questo sensore è in grado di intercettare click dei tasti del mouse, rotazione della rotellina,
passaggio del mouse su determinati elementi o su tutti gli oggetti e movimenti del mouse. La scelta
del tipo di evento da catturare va fatta mediante un menù a tendina (una opzione alla volta per
sensore).

Per recuperare la posizione del cursore del mouse, comunque, bisogna utilizzare uno script
Python; le funzioni Python del sensore Mouse che consentono di fare ciò sono:
    •   getXPosition()           :     integer
    •   getYPosition()           :     integer
Altre funzioni Python sono disponibili, ad esempio, per recuperare l'id dell'oggetto intercettato dal
"raggio" emesso dal mouse (in caso di sensore Over), ecc...
                                          *      *       *
                                          *      *       *
www.redbaron85.com --- Gennaio 2010

       Blender GE 2.5 --- Scheda Sensore Near
                                          *      *       *

Questo sensore emette un impulso positivo quando un oggetto, provvisto di una determinata
proprietà (da specificare nel campo Property: del sensore), si trova "nelle vicinanze" dell'oggetto
che possiede tale sensore. Se il campo Property: viene lasciato vuoto, il sensore si attiverà con
qualsiasi oggetto.

La distanza di attivazione va specificata nel campo Dist: ; quando l'oggetto con la proprietà di
attivazione entrerà nel raggio d'azione specificato da Dist:, il sensore inizierà ad emettere segnali
positivi, e li emetterà fino a quando l'oggetto con la Property non si troverà ad una distanza
maggiore di Reset dall'oggetto.
                                          *      *       *
                                          *      *       *
www.redbaron85.com --- Gennaio 2010

   Blender GE 2.5 --- Scheda Sensore Property
                                          *      *       *

Tale sensore può interagire con le proprietà (Properties) impostate per l'oggetto che lo possiede;
in particolare, può verificare se una proprietà (il cui nome va specificato nel campo Property: del
sensore) ha un valore uguale o diverso da quello specificato nel campo Value: del sensore, oppure
se tale valore è presente nell'intervallo Min: - Max: o, ancora, se tale valore è cambiato
(Changed), ad esempio perchè modificato da un attuatore.

Ogni sensore può effettuare un solo tipo di controllo su una sola proprietà alla volta; il tipo di
controllo da effettuare va selezionato mediante l'apposito menù a discesa presente nella finestra del
sensore.
                                          *      *       *
                                          *      *       *
www.redbaron85.com --- Gennaio 2010

     Blender GE 2.5 --- Scheda Sensore Radar
                                        *      *       *

Questo sensore si comporta proprio come un vero radar: "percepisce" gli oggetti posti fino ad una
certa distanza dall'oggetto che lo possiede, limitatamente ad un cono di osservazione definito da
un asse (per la direzione) e da un'apertura angolare (parametro Ang: ); la distanza massima va
definita, invece, mediante il campo Dist: .

Inserendo il nome di una proprietà nel campo Prop: del sensore, questi si attiverà (inviando un
impulso positivo) solo se verranno intercettati dal "fascio" (invisibile) oggetti dotati di tale
proprietà, altrimenti (se si lascerà il campo Prop: vuoto) si attiverà con tutti.

A differenza del sensore Ray, questo sensore riesce a "vedere attraverso i muri", ossia non viene
bloccato dagli oggetti che trova lungo il cammino (proprio come il sensore Near).
                                        *      *       *
                                        *      *       *
www.redbaron85.com --- Gennaio 2010

   Blender GE 2.5 --- Scheda Sensore Random
                                         *      *       *

Tale sensore invia degli impulsi in maniera "pseudo-casuale", nel senso che la sequenza di
istanti ai quali inviare gli impulsi non è proprio casuale, ma definita da un valore (seed).
Se il valore del campo Seed è uguale a zero, gli impulsi verranno inviati continuamente, per cui il
sensore si comporterà a tutti gli effetti come un sensore Always.

Per implementare un meccanismo... "un pò più casuale" di Random, si consiglia di utilizzare
l'omonimo attuatore.
                                         *      *       *
                                         *      *       *
www.redbaron85.com --- Gennaio 2010

        Blender GE 2.5 --- Scheda Sensore Ray
                                          *       *      *

Ray proietta un raggio (invisibile) lungo una direzione (specificata scegliendo una voce dal menù
combo presente nella finestra del sensore) fino ad una certa distanza (Range), ed invia un impulso
se intercetta un oggetto provvisto della Proprietà o del Material specificato nel campo Property:
o Material: del sensore (si passa dal controllo sulla Property: al controllo sul Material: cliccando
sul pulsante M/P del sensore, ed inserendo quindi il nome della Proprietà o del Material nel
campo testuale posto accanto a M/P).

Lasciando il campo testuale vuoto, il sensore si attiverà ad ogni oggetto intercettato.

Il raggio viene proiettato fino ad una distanza specificata mediante il pulsante numerico Range e
viene bloccato dagli ostacoli (per cui non si può "vedere attraverso i muri" ecc...), a meno che non
si selezioni il pulsante X
                                          *       *      *
                                          *       *      *
www.redbaron85.com --- Gennaio 2010

      Blender GE 2.5 --- Scheda Sensore Touch
                                           *       *       *

Questo tipo di sensore emette un impulso positivo se l'oggetto al quale è associato entra in
contatto con un oggetto provvisto di un particolare Material (il cui nome va inserito nel campo
MA: del sensore) o con qualunque oggetto della scena (se si lascia il campo MA: del sensore
vuoto). L'impulso viene emesso per tutta la durata del contatto, ad ogni frame.

E' utile, ad esempio, per far sì che un giocatore avanzi solo se "con i piedi per terra": in questo caso,
un sensore Touch e un sensore keyboard (se si avanza mediante la pressione di un tasto della
tastiera, recepito da tale sensore) andranno collegati ad un controller AND, collegato a sua volta ad
un attuatore di moto o ad altri attuatori, per cui verrà generata l'azione solo se entrambi i sensori
saranno attivi (si veda la descrizione del controller AND).
                                           *       *       *
                                           *       *       *
Puoi anche leggere