Visualizzazione post con etichetta game engine. Mostra tutti i post
Visualizzazione post con etichetta game engine. Mostra tutti i post

sabato 21 gennaio 2012

Blender game engine 2.60: visualizzare un testo

La visualizzazione di un testo  nel Blender Game Engine, implica la proiezione di una BitmapFont, su di un piano e la gestione della texture tramite il pannello texture face.

Nella versione 2.5 tale pannello era posizionato nelle proprieta' delle mesh dell'oggetto, mentre dalla versione 2.6, vi si puo' accedere tramite le proprieta' del materiale assegnato all'oggetto. Il tutto e' documentato in questo articolo: 
Material and Texface changes for the Game Engine

vediamo un semplice esempio:
Quello che ci serve e' una BitmapFont, che possiamo convertire da un font TTF, ed una volta selezionato come motore di rendering il Blender Game e aggiunto un piano, colleghiamo quest'ultimo alla nostra immagine.



Assegniamo un materiale, e dal pannello GameSetting, selezionamo l'opzione Text.

Ora definiamo una proprieta' nel Logic Editor, di tipo string e con il nome Text (particolare attenzione va posta nel nome di questa variabile), nel terzo campo va inserito il testo che vogliamo visualizzare.

Si deve poi creare una texture, con la stessa immagine e mappatura UV del font.



Convertire un font TTF in BitmapFont su Linux

mercoledì 18 gennaio 2012

Convertire un font TTF in BitmapFont su Linux


Utilizzando Blender, ogniqualvolta si vuole immetere del testo in modalita' interattiva (Blender Game Engine), si ha la necessita' di utilizzare un BitmapFont.
Un BitmapFont, non e' altro che un'immagine contenente  una griglia di tutti i caratteri.
Per ottenere una tale immagine a partire da un font specifico, viene indicato da molti tutorial, un programmino: ftblender (su Linux utilizzando Wine).

Un'altro metodo molto piu' immediato, e che non limita la risoluzione a 512px, e' utilizzare uno script, che automaticamente mappa l'oggetto selezionato. Tale script, purtroppo, sembra funzionare solo con la versione 2.49 di Blender.

Lo stesso autore dello script, ha creato anche una versione da riga di comando: ttf2tga.
Il funzionamento e' semplicissimo:

python ttf2tga.py font.ttf image.tga



Riepilogo dei link:

ftblender  eseguibile window
blendfont  script blender2.49
ttf2tga        script python

mercoledì 19 ottobre 2011

Blender Game Engine: Collisioni selettive

Impostando la gestione della fisica, possiamo ottenere una rilevazione-reazione realistica delle iterazione tra oggetti, ma come fare per ottenere reazioni diverse alla collisione di oggetti diversi.
Per esempio, come facciamo a fare in modo che toccando una sfera ci venga assegnato un determinato punteggio, mentre toccando un cilindro il gioco finisca?

All'oggetto rilevatore (il personaggio, il proiettile?) si deve assegnare una propieta' a cui far riferimento in seguito.
Per fare questo si deve premere il pulsante "Add Game Property", presente sulla sinistra dei logic bricks.
In questo esempio abbiamo assegnato il nome "prova" di tipo numerico a virgola mobile, con un valore pari a zero.

All'oggetto bersaglio (la sfera), aggiungeremo un sensore di tipo "Collision" e nella casella property metteremo il nome della propieta' assegnata precedentemente (relativo all'oggetto rilevatore). Se il campo "property" del sensore "Collision", rimane vuoto, significa che verrano considerate le collisioni con qualsiasi altro oggetto, mentre premendo il selettore "M/P" si attivera' la discriminazione verso il tipo di materiale. In questo caso:
Collision (Property:prova) -> AND -> Property (add) (Prop:Punteggio; Value:10)
Quando il personaggio tocca la sfera verra' aggiunto il valore 10 alla variabile Punteggio.

Se volessimo che il personaggio quando tocca il cilindro finisca il gioco, bastera' mettere nella logica del cilindro:
Collision (Property:prova) -> AND -> Game (Quick this game)


Blender Game Engine - 01: Le Basi.
BGE 2.50: 02 - I Logic Bricks 

venerdì 5 agosto 2011

Dead Cyborg - Adventure game multiplatform

Dead Cyborg e' un'avventura grafica disponibile per window, Linux e Mac.
E' stato sviluppato con l'utilizzo del Blender Game Engine, e si puo' scaricare e giocare liberamente, dato che la licenza del programma e' del tipo Free-Donation; cioe' si puo' fare una donazione libera se il gioco e' piaciuto, e verra' utilizzata come feedback per la creazione del secondo episodio che attualmente e' ad un 50% dal completamento. Al momento sul sito si puo' solo scaricare la versione Window (quella Linux verra' resa disponibile a breve), ma si puo' comunque provare a far girare la versione online.



La versione online, utilizza un plugin: Burster 3d
Si puo' scaricare la versione Linux, ma la versione 32bit e disponibile solo in formato .rpm, per cui si dovra' utilizzare alien per convertire il pacchetto, mentre per la versione 64bit sono disponibili i sorgenti, quindi si possono seguire le istruzioni per l'installazione disponibili sul sito.
Purtroppo sul mio sistema non vengono visualizzate le texture, e questo e' il risultato:

mercoledì 13 aprile 2011

Blender Game Engine - property e debug

Per gestire le varie interazioni tra oggetti, Blender mette a disposizione le property; che per chi ha un minimo di conoscenza di programmazione, equivalgono a delle variabili.
Esistono 5 tipi differenti di property:

  1. Timer - un valore compreso tra -9 e 9.
  2. String - accetta come argomento un testo.
  3. Float - un numero in virgola mobile.
  4. Integer - un numero compreso tra -9 e 9 (default 0).
  5. Boolean - false o true (default "false").
Ad ogni oggetto si puo' assegnare una o piu' property, premendo il pulsante "Add Game Property" alla sinistra del pannello del logic editor.
Ogni property e' contraddistinta da un nome (nell'esempio "coll"), il tipo (Bo = Boolean), l'argomento (di default e' false), e un flag (l'iconcina a forma di "i"), che se selezionato permette di vedere lo stato della property in modalita' debug.
Per attivare la modalita' debug, si deve innanzitutto scegliere la modalita' Blender Game dal pannello Info (quello dove sono posizionati i menu), spuntare l'opzione "Debug Properties", nel pannello Properties-Render (quello contrassegnato dall'icona della macchina fotografica), e solo a questo punto se facciamo partire il game engine, saranno visualizzati, nella parte in alto a sinistra le property dei vari oggetti ed il relativo valore.
Le property saranno visualizzate nel formato:
NomeOggetto.NomeProperty = Valore
Cosicche' se due oggetti differenti hanno lo stesso nome per la property, queste saranno univoche.
Se assegno la property "chiave" all'oggetto "sfera", e sempre una property "chiave" all'oggetto "cubo", le due property saranno univoche, ed in fase di debug otterro', qualcosa di simile:
sfera.chiave = false
cubo.chiave = false

Spero di essere stato chiaro (se ci sono errori, ommissioni o perplessita' fatemi sapere). Nella prossima guida vedremo come modificare i valori delle property e la gestione dei messaggi.



Related Posts Plugin for WordPress, Blogger...