[LinuxFocus-icon]
<--  | Mappa  | Indice  | Cerca

News | Archivo | Link | Cose LF
[an error occurred while processing this directive]
[Alex]
Alexander Langer
<lf(at)kuxi.de>

L'autore:
Uso Linux dal 1993. Provengo dall'Amiga. Mi piace l'idea che si possa ottenere il codice sorgente per qualsiasi cosa e scoprire come gli altri hanno sviluppato le cose nei loro programmi.
Contenuto:

 

Una Semplice Animazione

[Illustration]

Premessa:

[open
mouth]

Creare una semplice animazione e' facile e divertente, sia per grandi che piccini. I tipi di animazione includono semplici animazioni di oggetti, animazioni in stile Monty Python, film in time-lapse, argilla animata stile Wallace&Grommit e molto di piu'

In questo articolo non creeremo un film completo. Usando un esempio molto semplice imparerete le tecniche base. Abbastanza per consentirvi di iniziare il vostro film ;-).

Nota: la figura sulla destra ed il piccolo punto qui sopra sono animati. Dovete abilitare l'animazione delle gif se volete vederle nel vostro browser

_________________ _________________ _________________

 

Introduzione

Creare un'animazione consiste in un processo in tre parti. Primo, pensate a cosa volete fare. Potrebbe essere una cosa semplice come chiedere ai bambini di portarvi una macchina giocattolo ed alcuni pupazzetti per iniziare subito generando un film su di un incidente stradale. Oppure potete, come gli animatori professionisti, disegnare un soggetto con schizzi e piani dettagliati. Una buona idea ed una storia ben pensata e' in genere piu' importante di un equipaggiamento costoso o di alta qualita'.

A prescindere da quello che avete deciso di fare, il prossimo passo sara' aquisire i singoli fotogrammi dell'animazione. Volendo potete eseguire su di essi una post-produzione od aggiungere fotogrammi con testi, proprio come nelle vecchie comiche di Stanlio e Ollio

Infine unirete i singoli fotogrammi per formare un filmato.  

Hardware e Software richiesti

Le immagini possono essere generate da diverse fonti Se volete acquisire le immagini da una sorgente esterna (una delle prime tre della lista di cui sopra) presumo che abbiate un software capace di farlo. A parte questo, useremo il programma mencoder facente parte del pacchetto mplayer (www.mplayerhq.hu) per produrre il filmato. Si tratta di software potente, probabilmente gia' installato sul vostro computer, e con mplayer avete anche un programma per vedere il filmato.

Per creare/modificare i fotogrammi useremo Gimp o qualsiasi altro programma di grafica
ImageMagick (www.imagemagick.org), è il coltellino svizzero dei programmi per convertire e visualizzare immagini, ed è molto utile per visualizzare e creare animazioni.  

La prima animazione

Se avete una webcam od una fotocamera digitale, piazzatela sul tavolo e metteci qualcosa di fronte. Questo "qualcosa" potrebbe essere una mela, un bicchiero o la vostra mano. Mio figlio si e' divertito con una macchina giocattolo e dei pupazzetti, creando il filmato di un incidente stradale sopra menzionato. Scattate una serie di foto, spostando un poco il soggetto dopo ogni singola foto; 10-20 foto sono sufficienti per il vostro primo file.

Se non avete una fotocamera nessun problema, eseguiremo l'animazione del "puntino saltellante". Lanciate Gimp e selezionate File->Nuovo. Fate click su "OK" ed avrete un'immagine predefinita di 256x256 con uno sfondo bianco. Selezionate lo strumento con l'immagine del pennello nella finestra principale e fate click da qualche parte nell'area in basso a sinistra dell'immagine per produrre un puntino. Fate click-destro sull'immagine, selezionate File->Salva con nome... e salvate l'immagine in una cartella vuota chiamandola "0001.jpg". Fate semplicemente click su "ok" nella videata "Salva come JPEG". Questo e' il primo fotogramma. Diciamo che vogliamo 10 fotogrammi, quindi ripetiamo le seguenti operazioni per 9 volte:

  1. spostate il puntatore del mouse vicino al punto corrente. Se piazzate i punti con eguale spaziatura da fotogramma a fotogramma, il movimento risultera' lineare. Per una palla che rimbalza e' molto piu' realistico ridurre la spaziatura quando il punto si trova nella parte superiore della sua traiettoria.
  2. premete CTRL-z per rimuovere il punto corrente (CTRL-z = annulla)
  3. cliccate per produrre il nuovo punto alla nuova posizione
  4. click-destro, selezionate File->Salva con nome... e salvate come "0002.jpg" etc.
    Suggerimento: Staccate il menu "File" selezionando la riga tratteggiata dal menu "File" Questo lascera' aperto permanentemente sul desktop il menu "File", cosi' che dovete fare solo click su "Salva con nome...". Oppure potete anche richiamare il menu File->Salva con nome... premendo la combinazione di tasti "CTRL-Shift-S"

Dovreste arrivare ad avere qualcosa tipo questo:
[frame1] [frame2] [frame3] [frame4] [frame5] [frame6] [frame7] [frame8] [frame9]

Ora creaiamo il filmato:

$ mencoder 'mf://*.jpg' -mf type=jpg:fps=4 -ovc copy -oac copy -o output.avi
Il parametro "fps" specifica il valore "fotogrammi per secondo". Valori più bassi significano meno lavoro da fare per voi ma un'animazione a scatti.

Per vedere il vostro capolavoro digitate:

$ mplayer output.avi
Se volete sperimentare con diversi numeri di fotogrammi per secondo potete farlo con l'opzione "-fps" di mplayer, ad esempio per forzare 10 fotogrammi per secondo usate "-fps 10". Non e' necessario ricodificare ancora l'animazione con un numero di fotogrammi diverso a meno che non vogliate darla a qualcun altro.

Specialmente per filmati corti conviene spesso usare l'opzione "-loop", ad esmpio "-loop 10". In questo modo il filmato verra' riprodotto 10 volte.

In alternativa all'uso di mencoder/mplayer, con il programma animate da ImageMagick potete visionare il filmato:

$ animate *.jpg
Il filmato viene riprodotto continuamente. Se fate click-sinistro sull'animazione si aprira' un menu. Potete usare la Barra Spaziatrice ed il tasto Backspace per spostarvi di un singolo fotogramma durante l'animazione (il nome del file del fotogramma corrente viene visualizzato nella barra del titolo della finestra, utile, se volete modificare un singolo fotogramma). Per modificare la velocita' dell'animazione usate i tasti "<" e ">"  

Stile Monty Python

Per un'animazione stile Monty Python, prendete un fotogramma di un volto. Se non avete una foto prendetene una dalla rete. Dovreste scegliere una faccia visualizzata frontalmente, con il mento ben visibile. Caricatela in Gimp e cliccate sullo strumento "Lazo". Selezionate il mento ed il labbro inferiore, avrete una selezione piu' o meno rettangolare che segue la forma del mento nella parte bassa della selezione. Premete CTRL-c per copiare la selezione. Premete CTRL-y per rimuovere la selezione. Ora gli appunti contengono un mento che potete spostare in alto e in basso, ma per creare una migliore illusione, disegnate la bocca in nero, sovrapponendo la colorazione del labbro inferiore e della regione sottostante.

Ora premete CTRL-v e selezionate lo strumento "Sposta" (l'icona con le frecce disposte in tutte e 4 le direzioni). Spostate il mento dove si trovava in origine. Salvate l'immagine come 0001.img, come avete fatto per il punto saltellante, fate click su "Esporta" quando Gimp vi informa che JPEG non supporta la trasparenza. Spostate il mento un poco piu' in basso e salvate l'immagine come 0002.jpg. Continuate fino ad avere tutti i fotogrammi. Poi usate encode con mencoder. Guadagnerete dei punti se sincronizzerete i movimenti delle labbra con la musica o la voce in una traccia sonora.

Se volete codificare una GIF animata (come l'immagine ad inizio articolo), il programma convert di ImageMagick servira' allo scopo:

$ convert -delay 20 *.jpg out.gif
L'opzione "-delay" viene espressa in centesimi di secondo, quindi 20 equivale a 5 fotogrammi per secondo. A proposito, potete vedere i singoli fotogrammi nella GIF animata con "identify":
$ identify out.gif"
out.gif[0] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[1] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[2] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[3] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[4] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[5] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[6] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[7] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[8] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[9] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[10] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
 

Filmati time-lapse

La tecnica time-lapse, per i non esperti di fotografia, consiste in una tecnica che riprende ad intervalli un processo naturalmente lento (tipo lo sbocciare di un fiore) per poi, proiettando in continuo i fotogrammi, rendere una visione accelerata del processo. I filmati time-lapse sono facili da creare anche se si dimostrano molto interessanti. E non dovete neppure preoccuparvi piu' di tanto di avere una sceneggiatura od una storia. Tutto quello che dovete fare e' impostare il vostro computer in modo che esso possa scattare fotografie ad intervalli regolari. Se avete una telecamera compatibile con video4linux (v4l) dovreste provare vgrabbj (gecius.de/vgrabbj/). Puo' scattare foto ogni x secondi e salvarle su di un file.

Se scattate automaticamente, potete permettervi il lusso di un alto numero di fotogrammi al secondo, almeno fino a quando lo spazio libero sul vostro hard-disk ve lo consente.

Cosa riprendere?

Non ho provato io stesso, ma se avete un bambino appena nato potreste fotografarlo ogni x mesi, dalla nascita attraverso la sua vita. D'accordo, ci vuole un bel poco di tempo prima di avere un paio di fotogrammi, ma il risultato dovrebbe essere molto carino. Dovrete scattare vere fotografie, quindi passarle allo scanner, perche' e' sicuro che le foto dureranno molti anni, se comparati con i formati dei file, il deterioramento dei media ed altri problemi.

Se decidete di fotografare vostro figlio che cresce, la mia conclusione è che 6 mesi dovrebbero essere sufficienti per avere abbastanza foto, senza far passare troppo tempo tra uno scatto e l'altro. Se il bambino e' nato in estate, potete prendere le foto del compleanno e del Natale :-). L'altra conclusione e' che si faccia sempre in modo da includere nella foto sempre 2m, cosi' da avere la stessa scala per tutte le foto. Altrimenti dovrete scalarle da soli.  

Altre Idee

Immaginate come potere aggiungere audio alla vostra animazione. Anche semplicemnte facendo del rumore battendo i piedi, strillando ecc.; rendera' l'animazione molto piu' vivace.

Riproducete il lavoro di Pixar Luxo Jr. (www.pixar.com/shorts/ljr/) con la vostra lampada da tavolo ed una palla

Diciamo che volete aggiungere un fumetto, per far dire qualcosa ad un personaggio. Invece di usare passi di "1" per i nomi immagine, usate passi di "10" quando scattate i fotogrammi. Caricate il fotogramma sul quale volete aggiungere il fumetto con Gimp. Disegnate la nuvoletta ed aggiungete il testo. Salvate il fotogramma ed uscite da Gimp. Ora duplicate (copiate il file) il fotogramma 9 volte, attribuendogli numeri tra il fotogramma corrente e quello successivo. Se avete mai programmato in BASIC negli anni 80 ricorderete questa tecnica :-). Quando li codificate, i fotogrammi con il fumetto saranno mostrati per un periodo piu' lungo, abbastanza lungo da poter leggerne il testo. Con la stessa tecnica potete inserire un nuovo fotogramma cosi' come veniva fatto nei film muti all'inizio del 20° secolo.

Dovrestte essere capaci di vedere il(i) fotogramma precedente sovrapposto sopra la foto presa dal vivo (chiamata "onion skin"). In questo modo potete meglio allineare la posizione degli oggetti in movimento, migliorando l'illusione del movimento stesso. Il Gimp Animation Package sembra essere molto promettente per questo scopo.  

Ulteriori letture

 

Discussioni su quest'articolo

ogni articolo possiede una sua pagina di discussione, da questa pagina puoi inviare un commento o leggere quelli degli altri lettori:




Webpages maintained by the LinuxFocus Editor team
© Alexander Langer
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Translation information:
en --> -- : Alexander Langer <lf(at)kuxi.de>
en --> ita: Roberto Pauletto <neverquit(at)cwazy.co.uk>

2004-11-01, generated by lfparser version 2.50