blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore...

48
BLENDER LEZIONI DI LABORATORIO

Transcript of blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore...

Page 1: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BLENDER

LEZIONI DI LABORATORIO

Page 2: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Il motore di gioco BGMBlender ha un motore di gioco (BGM) che permette di interagire con gli

oggetti:• movimento• click del mouse• mouseover• ecc..

• Si possono creare interazioni senza programmazione (il primo caso che vedremo)

Vi sono anche due tipi di estensioni:• script in Python e Plugin Binari: il primo è il preferito ed il più usato.• interprete Python interno pienamente equipaggiato.• gli utenti possono aggiungere funzionalità scrivendo script in

Python.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 3: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: pannello modalità gioco • Per entrare in modalità gioco: P sulla tastiera (Play…

ovviamente se non sono state create azioni, non vedremo nulla)

• Per uscire dalla modalità gioco: ESC sulla tastiera• Pannello di controllo: faccina tipo «packman» (F4)

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 4: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: prime impostazioni (1)A sinistra:• Actor : l’oggetto è valutato dal game engine.• Ghost: l’oggetto non restituisce (si può trapassare

senza• difficoltà, però riesce a registrare la collisione).

Può servire se si vuole avviare un Sensore senza collidere.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

• Dynamic: l’oggetto è sottoposto a tutte le leggi della fisica menzionate. Diventano visibili altri bottoni.

• Rigid Body: se per es. abbiamo una sfera cui applichiamo una forza orizzontale, senza questa opzione in presenza di attrito la sfera si sposterà solo in orizzontale senza ruotare. Selezionando questo bottone anche in Blender la sfera ruoterà intorno a se stessa.

Page 5: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: prime impostazioni (2)Ancora a sinistra:• DoFh: l’oggetto si muove secondo i parametri impostati nella finestra

dei materiali• RotFh: ruota l’oggetto secondo la superficie sulla quale si muove.

(selezioniamo la superficie, andiamo nella finestra dei materiali, impostiamo Fh Dist a un valore 0.10 (più facce ha la superficie più piccolo è questo valore), selezioniamo l’oggetto e clickiamo su RotFh.

• Mass: massa dell’oggetto.• Size: grandezza della sfera che avvolge l’oggetto. Il perimetro

esterno della sfera determina l’area della collisione dell’oggetto. Se dentro quest’area si trova un altro oggetto avviene una collisione.

• Form: aiuta a controllare il comportamento del Rigid Body.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 6: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: prime impostazioni (3)Ancora a sinistra:• Damp: determina l’attrito con l’ambiente circostante. Sotto la forza

della gravità un oggetto non cade più velocemente se la sua massa e più grande ma è minore l’attrito con l’ambiente che lo circonda. Si possono simulare ambienti come spazio, aria o acqua solo cambiando il valore.

• RotDamp: come damp però è valido per la rotazione.• Anisotropic: se selezionato rende visibili tre altri bottoni che

rappresentano l’attrito fra gli oggetti (uno rispetto all’altro). Si può inserire un valore per ogni asse. Molto utile quando gli oggetti hanno un movimento non uguale nelle tre direzioni. Es. uno skateboard cammina abbastanza facilmente avanti o indietro ma lateralmente no.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 7: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sensori, controller, attuatori Compare il pannello di controllo della modalità gioco (F4). Troviamo:• Sensori: rilevano l’evento• Controller: impostano la condizione• Attuatori: eseguono l’azione

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 8: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sel, act, link e stateTroviamo:• Sel: se selezionato, i LogicBricks degli oggetti

selezionati nella finestra 3D sono visibili.• Act: rende visibili i LogicBricks dell’oggetto attivo• Link: rende visibili i LogicBricks degli oggetti connessi al

Controller• State: mostra solo i sensori connessi allo stato attivoI bottoni sono presenti sia per sensori, controller, attuatori

Occupiamoci prima dei sensori.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 9: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sensori • Le azioni possono svolgersi in vario modo, cioè tenendo conto delle

regole fisiche o no.• Per ora vediamo la modalità STATIC.• Se facciamo click su SEL, nel primo pannello dei sensori, compare la lista

degli oggetti presenti. • Nel nostro caso ho creato un cono capovolto, cui poi ho assegnato

colore/texture.

Quindi ho la possibilità di agire con i sensori sul cono.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 10: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sensori Con un click su ADD avremo la possibilità di inserire un sensore:collisioni,input dalla tastiera, movimento del mouse, vicinanza, ecc.Vi sono più tipi di sensori:

Always: sensore di default.• E’ un sensore che agisce sempre: se un Controller gli èconnesso e è connesso ad un Attuatore, l’azione definitadall’Attuatore succederà per tutta la durata del gioco.• pulsante x cancella questo sensore.• nel campo apposito è possibile impostare il nomedel sensore• Per riconoscerlo nelle scene complesse• pulsante con la freccia per comprimere o espandere

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 11: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sensori - ALWAYS Always (continua): • I tre bottoni sotto sono le pulsazioni del sensore: hanno due valori Vero (il

primo) e Falso(il secondo). Quando un Controller è connesso ad un Sensore e avvia l’Attuatore prende ogni volta un impulso. l’Attuatore a sua volta diventa attivo quando la pulsazione è vera e si disattiva quando è falsa. Esempio: se con il mouse dobbiamo passare sopra ad un oggetto per animarlo, avendo premuto il primo pulsante (Vero) quando il mouse passa sopra l’oggetto si anima, e quando il mouse è altrove si ferma. Nel caso in cui il secondo pulsante fosse premuto, succederebbe il contrario. Il terzo pulsante determina la frequenza delle pulsazioni. Si misurano in frame per secondo(se il numero è impostato a 50 significa che il Sensore si avvia ogni secondo).

• Pulsante Inv: inverte l’output del sensore. In pratica il Pulsante pulsazioni Vero diventa Falso e viceversa. Nel caso in cui nessuno di questi pulsanti fosse premuto il Sensore agisce una volta sola all’inizio del gioco.

• Questi pulsanti sono presenti in tutti i sensoriProf. R. Folgieri Realtà Virtuali aa 2010/2011

Page 12: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sensori – KEYBOARD e MOUSE Keyboard:• prende l’input dalla tastiera. Per selezionare la chiave attiva: premere

sopra il campo accanto alla scritta Key (apparirà la scritta Press anykey).Premere il tasto desiderato sulla tastiera

• AllKeys: il sensore si avvia con tutti i tasti della tastiera. Sotto, dove c’è la scritta Hold si possono inserire altri due tasti modificatori, che vanno tenuti premuti mentre si preme il tasto principale.

Mouse:• cattura il mouse: movimento, pressione sui tasti e se si trova sopra un

oggetto.• Con click sul tasto lungo si può scegliere l’opzione che si desidera fra:• Left button: click sul tasto sinistro del mouse• Middle button: click sul tasto centrale del mouse• Right button: click sul tasto destro del mouse• Movement: si avvia ad ogni movimento del mouse• Mouse over: si avvia quando il mouse si trova sopra l’oggetto

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 13: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sensori – TOUCH e COLLISIONTouch:• Questo sensore si avvia quando l’oggetto viene in contato con un

materiale.Se nel campo MA: si inserisce il nome di• un materiale il sensore reagisce solamente a quel materiale.Se non viene

indicato nessun materiale reagirà a tutti materiali.Collision:• impulso quando succede una collisione fra l’oggetto attivo e un altro

oggetto nell’ambiente circostante.• Se si vuole limitare l’individuazione della collisione non a tutti gli oggetti

circostanti, nel campo Property si deve inserire il nome di una proprietà. Allora si individuerà solamente la collisione con gli oggetti che hanno questa proprietà.

• Stessa procedura valida se al posto di una proprietà si vuole inserire il nome di un materiale. Premendo su M/P si cambia il campo accanto da Property a Material.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 14: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sensori – NEAR e RADARNear:• invia un impulso ogni volta che nelle vicinanze trova un altro oggetto.

L’area nella quale gli altri oggetti (solo gli oggetti Actor) sono cercati è delimitata da una sfera con il raggio pari al valore nel campo Dist.

• Due impulsi: uno quando l’oggetto entra nell’area sferica con raggio il valore Dist e uno quando esce dall’area sferica con il valore Reset. Esempio: se abbiamo una porta la quale si apre quando l’oggetto attore entra nell’area sferica con raggio Dist si chiude quando l’oggetto attore esce dall’area Reset.

• Per delimitare il campo degli oggetti intorno si inserisce nome di proprietà nel campo Property: reagirà solo agli oggetti che hanno questa proprietà.

Radar:• individua gli oggetti in area conica definita dalla distanza in Dist, da un

angolo inserito nel campo Ang: ed anche dalla direzione determinata da uno dei bottoni X (asse positivo x), Y (asse positivo y) e Z ( asse positivo z). Se nel campo Prop è inserito il nome di una proprietà il radar individuerà solo gli oggetti che hanno questa proprietà.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 15: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sensori – PROPERTY e RAYProperty:• controlla il valore delle proprietà. Esistono quattro modi per controllare

questo valore. • primo e di default: Equal -il sensore reagisce solo se la proprietà nel

campo Prop ha un valore uguale al valore nel campo Value• Not Equal -il sensore reagisce solo se la proprietà nel campo Prop non ha

un valore uguale al valore nel campo Value• Interval -il sensore reagisce solo se la proprietà nel campo Prop ha un

valore che si trova nell’intervallo fra Min e Max• Changed -il sensore reagisce solo se la proprietà nel campo Prop cambia

valore.Ray:• Emette un raggio di lunghezza pari al valore Range e direzione da

scegliere in finestra Type. Se un oggetto o uno con proprietà con nome uguale a quella nel campo Property o un materiale con nome uguale al materiale nel campo Material (usare M/P per cambiare Property o Material), si trova ad intercettare il raggio, il sensore fornisce un impulso.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 16: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: sensori – RANDOM e MESSAGERandom:• genera impulsi casuali che dipendono da valore di partenza Seed• Per avere valori veramente casuali si devono impostare anche i pulsanti

delle pulsazioni.Message:• Se un messaggio arriva, il sensore emette un impulso.• Il messaggio può essere filtrato in modo da ricevere solo certi messaggi,

impostando una stringa nel campo Subject.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 17: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: controller (1)• Quando l’evento viene catturato dai sensori, i Controller controllano

l’impulso arrivato dai Sensori e lo passano agli attuatori. Vi sono 4 modi per controllare gli input dei sensori:

• AND: passa direttamente l’impulso quando lo riceve. Se sono stati connessi due o più Sensori, il Controller tratta l’impulso secondo l’operazione logica And (vero se entrambi i Sensori sono veri).

• OR: tratta l’impulso secondo l’operazione logica Or (basta che uno solo dei sensori connessi sia vero ed è vero).

• ESPRESSION• PYTON

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 18: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: controller (2)• AND

• OR

• EXPRESSION: ha un campo che può contenere un’espressione. Solo se la condizione posta dall’espressione è vera, il Controller passa l’impulso. I tipi delle espressioni sono: Intero, Float, Boolean, String, Proprietà, Nome Sensore. Le operazioni aritmetiche valide sono somma, sottrazione, divisione, moltiplicazione, maggiore di, maggiore o uguale di, minore di (+,-,/,*,>,>=,<). Le operazioni logiche sono NOT, OR, AND, Uguale (==).

• PYTHON: rende il GameEgine molto flessibile e potente. Nel campo Script si può inserire il nome di un script in python dalla finestra Text (Shift + F11).

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 19: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: actuatorEsecutori o Attuatori (Actuator)Indicano le azioni da eseguire. Si hanno esecutori:• delle azioni (Action Actuator)• del movimento (Motion Actuator)• della limitazione (Constraint Actuator)• delle animazioni IPO (Ipo Actuator)• della camera (Camera Actuator)• del suono (Sound Actuator)• delle proprietà (Property Actuator)• degli oggetti (Edit Object Actuator)• delle scene (Scene Actuator)• casuali (Random Actuator)• dei messaggi (Message Actuator)

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 20: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore delle azioni• valido solo per le armature. Serve per attivare un’animazione delle

armature. Esistono cinque modi di eseguire l’animazione, che si possono attivare premendo con il mouse sopra il campo Play e scorrendo il mouse sulla modalità desiderata.

• Play -Esegue l’azione che comincia dal frame Sta e finisce al frame End ad ogni impulso ricevuto

• Flipper -Esegue l’azione contenuta nei frame da Sta a End in base all’impulso. Quando l’impulso arriva l’azione parte e quando l’impulso cessa, l’azione ritorna indietro fino al frame Sta anche se non è arrivato al frame End.

• Loop Stop -Esegue l’azione in un ciclo finche l’impulso è positivo (azione da Sta a End). Se l’impulso diventa negativo si ferma a frame corrente

• Loop End -Esegue ripetutamente l’azione (da Sta aEnd) finchè l’impulso è positivo. Quando smette l’azione continua fino all’ultimo frame e poi si ferma.

• Property -Esegue l’azione nel frame determinato dal valore della proprietà nel campo Prop

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 21: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore del movimento• È l’actuator più importante: muove, ruota, sposta l’oggetto. Accanto al

campo che indica il tipo di movimento (Force, dLoc, dRrot ecc) ci sono tre pulsanti in cui si può inserire il valore per ogni asse(x,y,z). Il quarto pulsante L, se selezionato, fa sì che il movimento si esegua nell’asse locale, altrimenti i movimenti hanno come riferimento gli assi globali. L’Actuator inizia il movimento quando prende impulso positivo e si ferma quando l’impulso diventa negativo. Per muovere un oggetto per una certa distanza bisogna dare un impulso negativo dopo ogni impulso positivo. Si hanno i tipi di movimento:

• Force -Una forza viene applicata agli oggetti dinamici.• Torque -Una forza di rotazione viene applicata agli oggetti dinamici.• dLoc -Sposta l’oggetto• dRot -Ruota l’oggetto per un certo angolo• linV -Imposta la velocità lineare dell’oggetto.Se si selezione il pulsante

add la velocità si somma a quella esistente• angV -Imposta la velocità angolare.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 22: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore della limitazione

• limita il movimento dell’oggetto nella direzione desiderata, nella misura che si trova fra Min e Max

• all’inizio è impostato su None.• Volendo si può aggiungere della difficoltà di movimento in

quella direzione impostando anche Damp diverso da zero.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 23: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore delle animazioni IPO• Permette escuzione in GameEngine oggetto animato tramite curve IPO. Solo IPO

di mesh (Loc,Rot,Size,Col), luci (Loc,Rot,RGB,Energy), Camera (Loc,Rot,Lens,ClipSta,ClipEnd). Se oggetto imparentato con altro, con btn Child viene eseguita anche animazione di oggetto imparentato. Bottone Force converte IPO che contengono spostamento (Loc) in forza applicata a oggetto. Selezionando anche bottone L, forza eseguita su assi locali. Modi per animazioni:

• Play -Esegue animazione che inizia da frame Sta e finisce a frame End a ogni impulso ricevuto

• PingPong -Al primo impulso esegue l’animazione dall’inizio alla fine(Sta,End).Al secondo lo esegue al contrario(End,Sta)

• Flipper -Esegue animazione contenuta in frame da Sta a End in base a impulso.Quando impulso arriva l’animazione parte e quando impulso cessa, torna indietro fino al frame Sta anche se non arrivato al frame End.

• Loop Stop -Esegue l’animazione in un ciclo finche l’impulso è positivo(l’azione da Sta aEnd).Se l’impulso diventa negativo si ferma al frame corrente

• Loop End -Esegue ripetutamente l’azione(l’azione da Sta aEnd) finche l’impulso e positivo.Quando smette l’animazione continua fino al ultimo frame e poi si ferma.

• Property -Esegue l’animazione nel frame determinato dal valore della proprietà nel campo PropProf. R. Folgieri Realtà Virtuali aa 2010/2011

Page 24: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore della camera e esecutore del suono

Esecutore della camera:• simula una camera di un gioco in terza persona. Nel campo OB: si deve inserire il

nome del oggetto da seguire. Height è l’altezza della camera dall’oggetto. Min e Max impostano la distanza minima e massima della camera dall’oggetto. I bottoni X eY determinano a quale asse deve stare dietro la camera.

Esecutore del suono• esegue un suono da un file audio caricato nella finestra Sound Buttons. Una volta

aggiunto premere sul bottone con il segno - e scorrere il mouse sul file audio desiderato(nel caso aveste caricato più di uno).Premendo il pulsante Custom set si aggiungono altri due pulsanti: volume e altezza del suono. Esecuzione suoni:

• Play Stop -Esegue il suono finchè l’impulso e positivo• Play End -Esegue il suono fino alla fine quando un impulso positivo è stato dato.• Loop Stop -Suona e ripete il suono quando impulso è stato dato.• Loop End -Suona ripetutamente finche c’è un impulso.Quando non c’è più allora

lo esegue fino alla fine e si ferma.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 25: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore delle proprietà• serve per maneggiare le proprietà, assegnando, aggiungendo valori o

copiando il valore di un’altra proprietà.• Sarebbe consigliabile usare python per eseguire queste operazioni

perché si risparmierebbe memoria.• Quando è impostato su Assign , l’attuatore assegna il valore inserito nel

campo Value alla proprietà inserita nel campo Prop• Se è impostato su Add, aggiunge il valore Value alla proprietà nel campo

Prop.• Si ha, inoltre, Copy, che copia il valore della proprietà Prop, che

appartiene all’oggetto OB, nell’ultima riga, nella proprietà Prop nella riga sotto Copy

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 26: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore degli oggetti• compie operazioni sugli oggetti. Aggiunge altri (che devono essere in un

layer non visibile) usando come fonte quello principale, sostituisce la mesh con un’altra, termina l’oggetto o lo ruota nella direzione di un altro oggetto. Quattro modi di esecuzione:

• Add -Aggiunge un altro oggetto OB: che attualmente si trova in un layer nascosto,avendo come origine la posizione dell’oggetto principale.Time decide il tempo in frame della vita dell’oggetto aggiunto.(0 vuol dire sempre). Nel linV si può inserire la velocità del movimento in una delle tre assi.L fa si che questo movimento si esegua sull’asse locale.

• End Object -Finisce la vita dell’oggetto principale cancellandolo dal gioco.

• Replace Mesh -Sostituisce il nostro oggetto con un’altra mesh.Molto utile per tecniche di LOD(livelli di dettaglio)

• Track to -Gira l’asse Y dell’oggetto verso un altro indicato da OB: Time decide quanto velocemente avviene questo movimento. 3D se selezionato determina se questa rotazione viene fatta in tutte e tre le direzioni o solamente sul piano X/Y.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 27: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore delle scene• Nella barra del menu, accanto al campo SCE (per default 1), c’é piccolo

bottone con il segno meno. Con click si può scegliere se aggiungere un’altra scena al gioco. Buon metodo di creazione: dividere i livelli in varie scene. Esecutore scene serve proprio per gestire tali scene. Modi d’uso:

• Restart -Ricomincia dall’inizio la scena attuale• SetScene -Nel campo SCE inserisce il nome della scena da iniziare.• SetCamera -Questo modo e molto utile quando si usa più di una

camera.Imposta il nome della camera che deve avere la visuale inserendo il suo nome nel campo Camera

• AddOverlayScene -Aggiunge una scena sopra quell’attuale.• AddBackgroundScene -Aggiunge una scena sullo sfondo.• RemoveScene -Rimuove la scena attuale• SuspendScene -Sospende una scena finche non è chiamato

ResumeScene• ResumeScene -Riprende la scena sospesa con SuspendScene

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 28: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore casuale• Genera valori casuali, inserendo una proprietà nel campo Property ed un

numero in Seed (valore di start, altrimenti si ottiene stessa sequenza).• Bool Constant -Si usa solo per testare valori TRUE o FALSE• Bool Uniform -Casualità 50%.True o False• Bool Bernoulli -uguale a Bool Uniform con aggiunta di altro parametro,

Chance. Quando è, per esempio, impostato a 0.2 il valore TRUE ha il 20% delle possibilità di essere estratto.

• Int Constant -Testa un valore intero inserito nel campo Value• Int Uniform -Genera un numero casuale intero fra Min e Max• Int Poisson -Genera dei numeri che hanno una media Mean che si

raggiunge con un numero infinito di generazioni.• Float Constant -Testa il valore float inserito nel campo Value• Float Uniform -Genera un valore float tra Min e Max• Float Negative -Genera un numero casuale float con una media Mean ed

una deviazione SD• Float Neg.Exp. -valore casuale che decade in modo esponeziale

partendo dal valore iniziale Half-life time.Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 29: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: esecutore dei messaggi

• manda messaggi che sono ricevuti dal sensore dei messaggi.• Se nel campo To viene specificato un nome di proprietà, il

messaggio viene mandato a quegli oggetti che contengono questa proprietà, altrimenti viene mandato a tutti.

• Il soggetto va inserito nel campo Subject• Il contenuto Body può essere sia testo (T/P non selezionato)

o Proprietà (T/P selezionato)

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 30: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Un primo esempio

• Facciamo muovere un oggetto alla pressione di più tasti su tastiera

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 31: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Interazione tra più oggetti - 1• Facciamo muovere più oggetti insieme ma in modo

diverso• Aggiungo una sfera• Creiamo un sensore always, un controller and e un

attuatore parent (scriviamo che l’oggetto genitore è Cone – attenti a maiuscole e minuscole…)

• Ora assegnamo anche un altro movimento alla sfera (es. rotazione)

• La sfera si muove nella stessa direzione del cono, ma nel frattempo esegue anche la rotazione

• La relazione è solo nel motore di gioco

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 32: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Interazione tra più oggetti - 2

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 33: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Interazione dinamica - 1• Disegno una mesh icosfera e la alzo dal piano• Nel pannello LOGIC seleziono DYNAMIC• Se fate click su P, l’oggetto cade nel vuoto perché è soggetto alla forza di

gravità, presente di default in Blender• Per fermare la caduta creiamo il pavimento (mesh PIANO). Ingrandiamolo

un po’• Il piano non fa parte del motore «fisico» ma gli oggetti reagiranno alla sua

presenza (verificate con P)• Se impostiamo il piano come corpo rigido, potrà ruotare, altrimenti potrà

muoversi ma non ruotare• Con sleeping consumerà meno risorse…• Radius è per considerare il raggio di impatto con gli oggetti• Massa: forza = massa per accelerazione (quindi massa > accelerazione <)• Damp ammortizza il movimento degli oggetti (simile a forza attrito)• RotDamp agisce in modo simile ma su rotazione• Provate a giocare con i parametri

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 34: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Interazione dinamica - 2

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 35: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Interazione dinamica - 3• Ora selezioniamo la sfera e mettiamo un sensore che si attiva con la freccia

verso l’alto sulla tastiera• Aggiungiamo un controller AND• Mettiamo un attuatore MOTION e qui mettiamo FORCE a 3 per l’asse Y

globale

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 36: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Interazione dinamica - 3• Impostiamo modalità CORPO RIGIDO• ora entriamo in modalità P• Teniamo premuta la freccia verso l’alto• la sfera si sposta, ma rotolando

• Se ora facciamo click su BOUND, e lasciamo BOX nel menu che appare, la sfera, invece, scivola sulla superficie.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 37: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

BGM: tips & tricks

• comandi avanzati

• interazioni all’interno di un gioco

Page 38: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Interazione dinamica – materiali 1• Ora selezioniamo la sfera, impostiamo dynamic, corpo rigido e no sleeping• La sfera cade sul piano e rimane ferma. Vogliamo farla rimbalzare.• Selezioniamo il piano e poi il pannello materiali• Add new. Nella scheda MATERIAL attiviamo DYN. • RESTITUT indica quanta energia cinetica verrà restituita all’oggetto dopo

una collisione (proprietà elastica. Interagisce con DAMP per l’oggetto). Poniamolo = 1

• FRICTION è l’attrito radente (sui libri di Fisica trovate i coefficienti di attrito di vari materiali)

• Creiamo un materiale con RESTITUTION 1 anche per la sfera• Se andate in modalità P, la sfera rimbalza sul pavimento (smorzato secondo

DAMP)

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 39: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Interazione dinamica – materiali 2• Provate con diversi oggetti con differenti valori di RESTITUTION• Sempre nei materiali vi sono altri valori. Selezioniamo la sfera e nei

materiali proviamo gli altri valori:• Fh: forza verticale. Se presente l’oggetto non toccherà gli altri oggetti (es. il

pavimento) ma resterà sospeso come su un cuscinetto d’aria. Fh(poniamolo al max = 1) agisce all’interno di un volume impostato con FhDist (mettiamolo a 3). Provate con P cosa succede

• Ora andiamo dal men materiali spostiamoci in WORLD a andiamo nella scheda Mist/star/Physi. Ci interessa GRAV (gravità): se desideriamo, giochiamo con il valore della gravità all’interno del mondo virtuale che abbiamo creato.

Ma dove sono gli effetti nella scena fisica (rendering)?Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 40: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Effetti della modalità P• Le animazioni e l’interazione le vedo, per il momento, solo in modalità P.

Non le vedo nemmeno se seleziono la modalità di visualizzazione delle curve IPO!

• In barra del menu selezionate GAME>RECORD GAME PHYSICS TO IPO• Ora se torniamo in P ed eseguiamo qualche movimento e poi premiamo

ALT-A vediamo i movimenti anche nella finestra 3D (si esce sempre con ESC). Ora avremo anche le curve IPO.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 41: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Game stand alone• Come esportare lo scenario, comprese le risposte fisiche, come

applicazione stand alone?• Riprendo il file del cono e della sfera (prova-cono2.blend)• Nella barra dei menu: FILE>SAVE RUNTIME. Scegliere il

percorso creando una cartella apposita• Il sistema potrebbe richiedere alcune librerie (file dll) necessarie

per l’esecuzione. Ad ogni messaggio di errore, occorre tener traccia del nome della libreria richiesta, la si cerca nella cartella di installazione di blender e la si copia nella cartella del gioco

• Una volta finito, il gioco può partire: l’inquadratura è quella definita dalla telecamera impostata in blender al momento della creazione del gioco.

• La telecamera può seguire il gioco se fornita di appositi sensori, controller e attuatori

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 42: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Uso del Joystick

• Con il sensore Joystick e con un controller (and) ed un attuatore di movimento, è possibile anche usare il joystick della playstation ;)

• Al sensore joystick si possono associare:• Movimento a destra• Movimento a sinistra• Movimento in basso• Movimento in alto• Bottone (fire)

• Provate ad associare i primi 4 a movimenti, ad esempio, e l’ultimo alla rotazione.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 43: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Sensore touch• Se abbiamo un oggetto che compie due movimenti

(esempio omino o pallina che va in avanti con il tasto freccia avanti e salta con la barra spaziatrice) e vogliamo che i movimenti siano compiuti solo quando l’oggetto tocca una superficie (esempio il pavimento) dobbiamo fare così:

• Aggiungiamo il sensore touch

• Colleghiamolo ai controller AND degli altri due movimenti. Gli attuatori saranno collegati solo quando sarà premuto uno dei due tasti sulla tastiera e contemporaneamente l’oggetto toccherà il pavimento.

• Pensate ad un oggetto che risale una scala in un gioco

• Allo stesso modo si potrà utilizzare un controller OR

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 44: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Sensore touch - esempio

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 45: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Altri attuatori interessanti

• Message: permette di inviare un messaggio che sarà ricevuto da un altro sensore

• Sound: per avviare suoni precaricati in Blender (wav)• Camera: permette ad una telecamera di seguire un

oggetto• Edit: per modificare/eliminare run time oggetti nella scena

(es. proiettili, oggetti scagliati, ecc.)• Scene: permette di controllare le scene di un gioco

• Provate….

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 46: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Raccogliere oggetti da una scena (1)• Poniamo il caso di un personaggio che deve raccogliere oggetti• Si deve agire sia sugli oggetti sia sul personaggio• Creiamo ad esempio un cilindro che può muoversi lungo gli assi globali

(sarà il personaggio) e una sfera che sarà l’oggetto da prendere• Nella logic della sfera e selezioniamo ACT e GHOST. Gli oggetti che la

toccheranno non la sposteranno• Mettiamo un sensore NEAR che si attiva quando un oggetto si avvicina

alla sfera (si può specificare la distanza di attivazione). Poniamo poi il controller AND.

• Come attuatore scegliamo EDIT OBJECT e tra le azioni possibili END OBJECT

• Quando il cilindro si avvicinerà alla sfera, questa scomparirà e sembrerà «presa» dal cilindro.

• Volendo contare gli oggetti che il cilindro «recupera» torniamo nella logic del cilindro e click su ADD PROPERTY. Scegliamo INT e diamo alla proprietà il nome RECUPERATI e lasciamo 0 di default. La proprietà successiva permette (se nel menu GAME è selezionato SHOW debug property) di vedere il valore durante il gioco

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 47: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Raccogliere oggetti da una scena (2)• Aggiungiamo alla sfera l’attuatore MESSAGE cui colleghiamo in

ingresso l’uscita dell’AND già creato (quello per il NEAR) • Nel campo SUBJECT scriviamo la frase: «uno»

• Torniamo sul cilindro e aggiungiamo un sensore, un AND e un attuatore• Come sensore mettiamo MESSAGE e nel SUBJECT mettiamo il

messaggio da catturare «uno»• L’attuatore sarà PROPERTY e nel campo PROP scriviamo ilnome della

proprietà da modificare. RECUPERATI, con ADD e 1 nel campo VALORE. In mod P, in alto a sinistra, vedremo i risultati.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011

Page 48: blender4.ppt [modalità compatibilità] - mtcube.com · Il motore di gioco BGM Blender ha un motore di gioco (BGM) che permette di interagire con gli oggetti: • movimento • click

Passare a un livello successivo• Occorre cambiare scena• Introdurre un oggetto che se urtato o raggiunto scatena un evento.

L’evento sarà:• Sensore: TOUCH, con i parametri di default.• Controller: AND• Attuatore: SCENE. Vi sono più azioni possibili. Noi useremo il RIAVVIO

DEL LIVELLO, cioè RESTART (quello di default)• In modalità gioco, quando l’attore raggiungerà e toccherà l’oggetto, la

scena si riavvierà. Tutti gli oggetti torneranno alla configurazione di partenza.

Prof. R. Folgieri Realtà Virtuali aa 2010/2011