Blender 2.5 Game Engine - Schede sensori, controller, attuatori
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
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
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. * * *
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