venerdì 26 marzo 2010

Blender Game Engine 2.50: 04 - Animazioni Keyframe

Le animazioni di tipo keyframe, vengono gestite da Blender attraverso le IPO. Qualsiasi tipo di trasformazione puo' essere interpolata tra frame chiave.
Premendo il tasto "I"(inset keyframe"), si crea il keyframe sul canale specificato (posizione, rotazione, ecc.) nella posizione attuale sulla timeline (di default, il frame 1).









Se si vuole creare una trasformazione della durata di un secondo, ci si deve spostare di 24 frame.
Sulla timeline ci si sposta al frame desiderato che viene visualizzato tra parentesi di fianco al nome della mesh. In questo caso, si vuole creare una rotazione istantanea, tipo le palette di un flipper, quindi ci spostiamo di 5 frame.
A questo punto si effettua la trasformazione sull'oggeto desiderato e si crea il keyframe.
Blender creera' i frame intercalari automaticamente, ottenendo un'animazione fluida .
Per poter controllare l'animazione dal game engine, basta scegliere un attuatore "Ipo", dove si devono specificare il frame d'inizio e di fine, ed il ciclo di riproduzione (play, ping-pong, flipper, loop end, ecc.)
Play: riproduce dal frame d'inizio al frame di fine.
ping-pong: inizio-fine, fine-inizio.
flipper: inizio-fine, e solo quando il sensore ritorna uno stato false: fine-inizio.




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

martedì 16 marzo 2010

Ardesia

Ardesia e' un programma che permette di disegnare annotazioni sullo schermo e registrare la sessione per poi rivederla in un secondo momento. Puo' trovare impiego nella presentazione di progetti tramite lavagna luminosa, o in tutorial e presentazioni varie.

Per poter funzionare si deve abilitare Compiz (nota per me, negativa, in quanto sul mio sistema Compiz porta svariati livelli di incompatibilita').
La versione attualmente disponibile e' la 1.0, la recensione si riferisce alla 0.2.

Ardesia 0.7: whiteboard Linux-Windows



Il progetto, nonostante il numero di versione, si presenta maturo e mette a disposizione una varieta' di strumenti abbastanza varia.


Alla base dello schermo e' posizionata la palette di selezione dei colori e degli strumenti di annotazione.
Si puo' scegliere lo spessore e il colore del tratto, per poter scarabocchiare lo schermo a mano libera o utilizzando delle freccie o strumenti di cerchiatura.
Una funzione molto azzeccata e' il riconoscimento delle forme, cosicche' se si disegna una linea a mano libera, questa verra' "raddrizzata". Allo stesso modo se si disegna un cerchio abbozzato, o un'ellissi, questo verra' approsimato dal programma ad una forma geometricamente corretta.
Dispone delle funzioni di undo-redo, salvataggio, e si puo' scegliere lo sfondo, su cui disegnare; di default si disegnera' sul desktop e sulle finestre ivi presenti, ma si puo' scegliere uno sfondo colorato o caricare un'immagine.
Si puo' nascondere il layer di disegno visualizzando cosi' un desktop pulito, e ultima funzione ma non per importanza, si puo' registrare tutto quello che si fa nella sessione di disegno.

Non avevo grandi aspettative da questo programma, dato il numero di versione; ma utilizzandolo ci si deve ricredere dopo pochi minuti.
Unico progetto simile, ma molto piu' limitato, e' Gromit, il cui sviluppo e' fermo da tempo.

http://code.google.com/p/ardesia/

giovedì 4 marzo 2010

Mendeley: gestione e ricerche documenti su linux.

Mendeley e' un'applicazione cross-platform per l'organizzazione e l'annotazione di publicazioni di qualsiasi genere. Oltre a catalogare i testi in base a campi di ricerca e alla gestione di un sistema di etichette e note, integra un viewer interno particolarmente efficiente, tramite cui poter aggiungere dei segnalibri con annotazioni varie. In questo modo si ha a disposizione un potente strumento per raccogliere informazioni, citazioni e fare ricerche strutturate secondo le proprie esigenze.
Offre strumenti collaborativi e di interscambio rendendo possibile condividere con altri utenti documenti, riferimenti e annotazioni, su cui effetuare ricerche e correzioni.
E' dotato di un plugin per Word e OpenOffice, che genera automaticamente riferimenti e bibliografie in oltre 100 stili diversi.
Attraverso uno script e' possibile con un singolo click importare parti di un documento, citazioni e file PDF ove disponibili, all'interno di Mendeley Desktop.

Si possono sincronizzare i dati della versione Desktop, con un'account di 500MB; in questo modo e' possibile accedere ai dati delle proprie ricerche, in qualunque momento e su qualsiasi computer attraverso la versione Web del programma.

Mendeley e' disponibile al seguente indirizzo:
http://www.mendeley.com/download-mendeley-desktop/
nella versione per Ubuntu, Window, Mac.
Il programma e' completamente gratuito, ma non open-source, quindi non sono disponibili i sorgenti.

Nel caso di Ubuntu si deve aggiungere l'apposito repository (in base alla versione posseduta), utilizzando Synaptic, o aggiungendo l'indirizzo nel file /etc/apt/sources.list:
  • Hardy/8.04: deb http://www.mendeley.com/repositories/xUbuntu_8.04 /
  • Intrepid/8.10: deb http://www.mendeley.com/repositories/xUbuntu_8.10 /
  • Jaunty/9.04: deb http://www.mendeley.com/repositories/xUbuntu_9.04 /
  • Karmic/9.10: deb http://www.mendeley.com/repositories/xUbuntu_9.10 /

sudo apt-get update
sudo apt-get install mendeleydesktop


sabato 27 febbraio 2010

Pitivi vs OpenShot.

Pitivi, editor video non lineare, prende il posto di Gimp, nell'installazione di Ubuntu.
Questa notizia ha dato vita a diversi flame su vari forum, in cui le discussioni erano incentrate sulla scelta di togliere un mostro sacro (GIMP) al posto di un'editor video non all'altezza.
Lo scenario degli editor video su Linux, e' in continua evoluzione, senza pero' (purtroppo) arrivare a livelli soddisfacenti.
In particolare in ambiente Gnome, si distinguono due programmi:
Pitivi, editor di vecchia data, dallo sviluppo altalenante, riscritto e arrivato ora in versione usabile;
OpenShot, editor giovane e dallo sviluppo veloce e costante (almeno sino ad ora).
In particolare quest'ultimo ha ricevuto sempre piu' credito, dal fatto che e' gia' in grado (al contrario di Pitivi), di gestire le transizioni e gli effetti.
Li ho provati entrambi e devo dire che il vincitore e'..........Pitivi.

Pitivi e' in grado di gestire qualsiasi formato visualizzabile con Totem (dato che si appoggia a Gstreamer), e' stabile, e ha una gestione modulare dei plugin (anche se ancora non ne esistono).
E' in grado di visualizzare le waveform, (eventualmente escludibili) e gestisce i keyframe (per ora soltanto per la parte audio).
Al momento sono supportate solo semplici operazioni di editing come il trimming e la gestione delle clip (move, ripple, shift).
Non sono supportate le transizioni e gli effetti, che saranno disponibili solo a partire dalla prossima versione.
Nel menu' Progetto e' presente la voce Cattura screencast, che pero' non ho potuto provare perche' a quanto pare deve essere installato anche Istanbul (programma di recording desktop).
Tutto sommato sono rimasto favorevolmente impressionato, e compilando la versione in sviluppo ci sono gia' diverse novita'.

La versione presente nei repository ufficiali e' la 0.13.3 e la si puo' installare da Synaptic o da terminale:
sudo apt-get install pitivi



http://www.pitivi.org/

giovedì 25 febbraio 2010

Decibel, audio player.

Decibel, e' un player audio minimale, perfettamente integrato con l'ambiente Gnome. Il pregio di tale player e' di ottimizzare poche ma basilari funzioni senza appesantire l'intero sistema.
La finestra principale si divide in due aree: a sinistra il file system da cui scegliere le tracce audio (eventualmente escudibile), a destra la playlist che supporta anche il drag&drop.



Nel menu edit->preferences sono presenti diversi plug-in che possono essere attivati o disattivati:
  • la gestione e il download delle cover
  • la visualizzazione al cambio di traccia attraverso le notifiche desktop
  • l'aggiunta del programma nella tray-icon
  • la gestione dei CD
  • La gestione di una library.
http://decibel.silent-blade.org

lunedì 22 febbraio 2010

Creare pacchetti .deb da sorgente

Creare un pacchetto .deb dai sorgenti, e' un'operazione d'obbligo se vogliamo avere un'installazione tracciabile dei nostri programmi.
Problema: Seguiamo un progetto e suoi sviluppi, e dobbiamo compilare i sorgenti per ottenere gli eseguibili. In questo caso compilando i sorgenti non possiamo tenere d'occhio tutti i file installati nel sistema dal file di configurazione in fase di compilazione. E siamo costretti a tenere la directory di compilazione per un'eventuale disinstallazione.
La soluzione e' la creazione di un pacchetto. Ogni distribuzione ha un suo formato di cui i piu' diffusi sono sicuramente i .deb (Debian e derivati, quindi anche Ubuntu), e .rpm (OpenSuse e derivate). Per una conversione tra i due formati si puo' utilizzare alien, di cui abbiamo gia' parlato, ma qui discuteremo la creazione ex-novo di un pacchetto avendo solamente i sorgenti. Lo so, in giro per la rete si trovano migliaia di guide su come creare pacchetti, ma qui voglio approfondire l'argomento, dato che l'operazione di impacchettamento non e' univoca, e ci possono essere svariati problemi, dipendenti dal linguaggio utilizzato, e dal toolkit di compilazione.
Per aver un maggior controllo sulla creazione del pacchetto, vediamo innanzittutto la sua struttura.
All'interno di un file .deb, sono contenuti un file "debian-binary" (che specifica la versione del formato Deb), e due tarball:
control.tar.gz
data.tar.gz
L'archivio control.tar.gz contiene informazioni riguardanti il pacchetto, le sue dipendenze e gli script che vengono lanciati per l'installazione o la rimozione. In particolare il file "control" contiene informazioni come il nome del pacchetto, la sua versione, la priorita', l'architettura, le dipendenze, ecc.

L'archivio data.tar.gz, contiene tutti i file che effettivamente verranno installati nel sistema. Quindi, per prima cosa, si devono compilare i sorgenti e nel caso in cui il programma sia scritto in Python, si puo' procedere subito alla creazione del pacchetto.
A questo punto possiamo utilizzare due strade.

  • La prima e' creare la struttura richiesta da un file .deb, manualmente, creando il file control e le directory necessarie:
dirPacchetto/DEBIAN/control
La directory DEBIAN, va creata all'interno del directory dirPacchetto, al cui interno verra' creato il file "control", editato seguendo le specifiche spiegate sopra.

dirPacchetto/usr/bin
All'interno di questa directory, ci deve trovare posto l'eseguibile principale, contenente la classe main.py
dirPacchetto/usr/share
All'interno vi possono essere create 3 directory opzionali: "application", "doc", "nomeProgramma"
Se presenti, in "doc", ovviamente ci saranno tutti i file di documentazione, nonche' le licenze d'uso e d'installazione.
In "Application", ci sara' il file nomeProgramma.desktop che specifica dove mettere il collegamento al programma nel menu di sistema.
E la directory "nomeProgramma", conterra' ovviamente tutti i file componenti il programma, in questo caso, si deve modificare la directory dirPacchetto/usr/bin, inserendo un file testo "nomeProgramma", contenente 3 righe, e che va reso eseguibile:
#!/bin/bash
cd /usr/share/nomeProgramma #prova è il nome del programma
env python Main.py #Main.py è la classe main del programma nomeProgramma.

  • La seconda opzione per creare la struttura necessaria alla creazione del pacchetto, e' utilizzare un comando (dh_make), che creera' per noi tutto quello che e' necessario, e che si potra' poi modificare in base alle nostre esigenze.
Innanzitutto ci servono dei tool di sviluppo, che installeremo con il seguente comando:

sudo apt-get install dpkg-dev dh-make

Creiamo una directory con il nome del programma seguito dal numero di versione (per fare un'esempio, "mypaint-0.80") e vi copiamo all'interno il file tar.gz contenente i sorgenti. Scompattiamo il file tar.gz all'interno della directory creata.
A questo punto tramite il comando "cd", ci portiamo all'interno della directory e diamo un comando del tipo:

dh_make -e lomdav@tin.it -c GPL -f NomeDelFile.tar.gz

Le opzioni che abbiamo usato del comando dh_make sono:
-e specifica l'indirizzo email del maintainer (colui che ha creato il pacchetto)
-c specifica la licenza di distribuzione (in questo caso la licenza GPL, e' pienamente libera, e intende la ridistribuzione dei sorgenti per future modifiche).
-f specifica la tarball contente i sorgenti.

Il comando dh_make ci chiedera' il tipo di pacchetto se non specificato tramite opzioni sulla riga di comando (per esempio -s per binario singolo), che puo' essere di diversi tipi:
singolo, multiplo, libreria, modulo kernel o cdbs.
Il caso piu' comune e' che il programma sia un singolo binario.
Per creare il pacchetto si utilizzera' il comando:
dpkg-deb -b directoryProgramma nomeProgramma_versione_architettura.deb
Il formato del nome del pacchetto include oltre al numero di versione, anche l'architettura del sistema per cui e' stato compilato il sorgente, tipo i386, i686, amd64, oppure all (se e' indipendente dal processore utilizzato).

Nota bene: come mi ha fatto notare Sandro, se si vuole appronfondire l'argomento e' bene che si legga il Debian Policy Manual, disponibile anche in Italiano.

sabato 20 febbraio 2010

Blender Game Engine 2.50: 03 - sensori, controller, attuatori.

L'editing dei Logic Bricks, si riduce alla monipolazione di questi 3 gruppi di stati-pulsanti.

In ogni gruppo si deve specificare l'oggetto sul quale si vuole agiscano i Logic Bricks. L'oggetto puo' essere qualsiasi cosa presente nella scena, quindi anche l'oggetto Camera o l'oggeto Light.

Una volta premuto il tasto "Add", si puo' scegliere da un menu a discesa, il tipo di sensore da utilizzare. Il caso piu' classico e' il sensore "Keyboard", che aspetta un input da tastiera, per poter muovere l'oggetto specificato.
In questo caso si dovra' indicare il tasto da impostare come sensore.
Analizzeremo gli altri sensori piu' avanti.








I controller, possono essere immaginate come dei filtri, in realta' non sono altro che operatori logici.
Di default, e' impostato su "And".
"And" e' un operatore logico che ritorna in uscita un risultato positivo solo se in entrata si ha un valore positivo.





In altre parole, se il sensore da' una risposta positiva (in questo caso se il tasto specificato e' stato premuto), allora l'attuatore puo' essere eseguito.

L'attuatore, e' l'esecutore di un'azione. Di default e' impostato su "Motion". Quindi modificando il valori delle 3 caselle numeriche "Loc", si specifica un'incremento direzionale sui tre assi cartesiani, mentre modificando i valori delle caselle "Rot", si specifica un'incremento rotazionale intorno ai tre assi.
Per esempio, se mettiamo nella prima casella "Loc", il valore 0.20, lasciando il resto a 0.00, quello che otteniamo e' lo spostamento dell'oggetto specificato, di 0.20 unita' sull'asse X, quandoo premiamo il tasto specificato nel sensore.







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

Related Posts Plugin for WordPress, Blogger...