L’animazione è senz’altro il campo di applicazione ideale e di maggior interesse del software 3D. Di conseguenza Blender possiede tutti gli strumenti necessari ad animare ogni singolo elemento delle nostre scene virtuali. L’argomento Animazione è piuttosto vasto e meriterebbe una trattazione in un volume a sé stante, specie considerando che gli open movie della Blender Animation Studio (opere realizzate interamente con Blender) dimostrano che è possibile raggiungere una qualità cinematografica. In questo capitolo troverete descritte le principali caratteristiche dell’animazione con le quali iniziare fin da subito a fare esperienza. Blender possiede diverse finestre relative all’animazione che potremo riunire e organizzate in un singolo workspace. Le più importanti sono il Dope Sheet (in basso) e il Graph Editor a sinistra (non incluso di default nel workspace Animation). Nell’immagine potete vedere come si presentano queste finestre quando si lavora a un progetto di animazione piuttosto consistente. Al solito non lasciamoci intimorire da ciò che a prima vista potrebbe sembrare ostico e partiamo dai concetti base. Tutti gli argomenti finora esposti hanno riguardato la composizione di scene statiche, dove in pratica non avviene nulla, come in un’istantanea. Per creare dei movimenti e rendere la scena dinamica, dovremo decidere cosa dovrà mutare all’interno di determinati intervalli di fotogrammi, con l’ulteriore possibilità di affidarci alle leggi della fisica (cap.7). Al momento concentriamoci sull’impiego dei cosiddetti fotogrammi chiave (keyframes) e i metodi d’interpolazione di Blender. Partiamo dunque dalla scena con il cubo di default adottando per ora il classico workspace Layout (passeremo successivamente al workspace Animation). In basso, nella timeline, troviamo il range di fotogrammi attivi in una zona di colore grigio chiaro, mentre i fotogrammi fuori dal range sono in grigio scuro. Il range è fissato dai valori Start ed End il numero sulla sinistra indica il frame su cui è posto il cursore rappresentato nella timeline da una linea verticale azzurra. Possiamo spostare il cursore semplicemente cliccando con il tasto sinistro del mouse sul numero dei frame e quindi tenere premuto per scorrere il cursore stesso lungo la timeline.
Il fattore fondamentale nella creazione delle animazioni è la scelta del frame rate, cioè il numero di fotogrammi visualizzati in un secondo di animazione. Tale numero si trova nel contesto Output delle properties. Valori tipici sono 25-30 frame per secondo. Più alto è il numero dei fotogrammi, migliore sarà la fluidità dell’animazione, che però verrà renderizzata in un tempo superiore. Di default il numero di fotogrammi al secondo è impostato a 24, valore che possiamo lasciare inalterato per tutti gli esperimenti iniziali. Tornando alla nostra scena, selezioniamo il cubo e clicchiamo il pulsante posto sulla sinistra dell’header della timeline. Immediatamente sopra il pulsante apparirà il menu
Cliccando sull’area sotto la scritta Active Keying Set, accanto le icone a forma di chiavi, apparirà un ulteriore elenco con diverse voci che potremo scorrere con la rotellina del mouse.
Selezioniamo Location e clicchiamo il pulsante + per aggiungere un fotogramma chiave nel punto della timeline in cui si trova il cursore e relativo alla posizione del cubo nello spazio in quell’istante. Nel fare così in realtà avremo aggiunto un keyframe per ognuna delle tre coordinate del cubo (quelle della sua origine). Infatti recandoci nella sidebar della 3D View (tasto N) vedremo che le coordinate del cubo (piazzato esattamente nell’origine del sistema di coordinate 0,0,0 della scena di default) saranno tutte e tre di colore giallo, cioè il colore che in Blender evidenzierà qualsiasi parametro fissato tramite keyframe in un preciso fotogramma.
Selezionando un oggetto per il quale sono stati impostati dei keyframes, vedremo comparire nella timeline dei rombi di colore arancione (se selezionati) o bianco (se non selezionati) in corrispondenza di ognuno di essi.
Capiremo meglio il loro utilizzo nella finestra Dope Sheet (molto simile alla timeline e dove al posto dei rombi troveremo dei cerchi). Cosa comporta l’aver fissato in un determinato istante, un key frame location per l’oggetto? Significa che esso sarà vincolato a trovarsi in quella posizione in tale istante. In assenza di un ulteriore keyframe della stessa natura, antecedente o successivo, che ponga l’oggetto in un’altra posizione, esso resterà fisso per tutta la durata dell’animazione. Provate ad esempio a spostarvi in un fotogramma diverso da quello chiave e qui traslate il cubo lungo una qualsiasi direzione, dopodiché cliccate nuovamente in un punto a caso della timeline per vedere il cubo riportarsi automaticamente nella posizione fissata dal keyframe. L’unico modo per variare la posizione del cubo sarà quello di fissare un diverso keyframe location in un diverso istante dell’animazione, caso in cui vedremo muoversi il cubo nell’intervallo di tempo che passa tra i due keyframes; o alternativamente imparentando l’oggetto a un genitore in movimento. Possiamo controllare l’animazione con i comandi presenti al centro nell’header della timeline
- La freccia singola orientata a destra sarà il play (barra spaziatrice); avviando l’animazione sparirà mostrando lo stop.
- La freccia singola orientata a sinistra mostrerà l’animazione invertita.
- La freccia orientata a destra con rombo porterà il cursore al keyframe successivo.
- La freccia orientata a sinistra con rombo porterà il cursore al keyframe precedente.
- La freccia a destra con una barra verticale porterà il cursore all’ultimo frame del range.
- La freccia a sinistra con una barra verticale porterà il cursore al primo frame del range.
Vediamo cosa accade alla finestra DopeSheet con l’introduzione di due keyframe Location; innanzitutto anche qui troviamo una linea verticale azzurra che indica l’attuale frame visualizzato nella 3D View.
Nel sommario a sinistra notiamo come sia stata associata al cubo una Action nominata automaticamente CubeAction, riguardante la trasformazione ottenuta tramite keyframe, in questo caso di tipo Location. Il Dopesheet Summary ha dunque una struttura gerarchia che mostra gli oggetti della scena e l’elenco delle azioni applicate ad essi. Sulla destra vedremo dei cerchi (di colore arancione se selezionati, oppure bianchi) che indicano la posizione lungo la linea temporale dei keyframes. Cliccando sulla freccia accanto a Object Transforms appariranno i dettagli dell’azione riguardante il nostro cubo: X Y e Z Location. Nella finestra Dopesheet potrete muovervi e agire sugli elementi ivi presenti in modo consueto, cioè:
- Allargare la vista (restringendo la scala temporale) ruotando la rotellina del mouse in su.
- Stringere la vista (allargando la scala temporale) ruotando la rotellina del mouse in giù.
- Traslare (panning) l’intero pannello con la pressione della rotellina del mouse più il movimento del mouse.
È possibile agire sui singoli keyframe con:
- Tasto destro su un keyframe (cerchio) per selezionarlo. Insieme a esso verranno evidenziati in arancione anche tutti i cerchi della gerarchia superiore e inferiore (ma non quelli dello stesso livello a meno che non vengano anch’essi selezionati mantenendo la pressione del tasto Maiuscolo).
- Tasto A seleziona tutto (due volte rapidamente per deselezionare) .
- Tasto B avvia una selezione dei keyframe tramite un’area rettangolare da definire con il mouse.
- Tasto X elimina keyframes selezionati.
- Tasto G spostare lungo la scala temporale i keyframes selezionati.
- Tasti Maiuscolo-D duplica e sposta i keyframes selezionati.
Infine è possibile visualizzare nella Viewport la rappresentazione grafica del percorso di un oggetto animato, recandoci nel pannello Motion Paths, contesto Object . Qui basta cliccare per far apparire il percorso nella 3D view (il medesimo tasto cambierà in Update Path per aggiornare dopo eventuali cambiamenti). I punti bianchi rappresentano i singoli fotogrammi e diventano arancioni in corrispondenza dei fotogrammi chiave con in più il numero del frame corrispondente.
Nella traslazione del cubo da un punto all’altro dello spazio possiamo osservare che tale movimento avviene a velocità non costante; infatti dall’iniziale fase di accelerazione, il cubo passa a un successivo tratto a velocità quasi costante, per giungere infine alla conclusiva decelerazione. Questo accade perché di default Blender modifica i valori fissati tra due keyframe interpolandoli in modo non lineare, come visibile nella finestra Graph Editor.
Sulla sinistra della finestra è situato l’elenco delle azioni in modo similare a quanto visto in Dopesheet, con in più la possibilità di rendere invisibili le curve cliccando sull’occhio contrassegnato dallo stesso colore della curva. In questa finestra oltre all’asse della scala temporale (asse x ) troviamo una scala verticale corrispondente al valore numerico del parametro fissato con il keyframe (nel nostro esempio il valore delle coordinate). In questo caso avendo traslato l’oggetto lungo l’asse y, le curve relative alle coordinate x e z saranno due rette piane e costanti, mentre l’altra avrà la forma dell’interpolazione applicata da Blender, che di default è di tipo bézier; riconoscerete infatti le maniglie situate a destra e a sinistra dei punti di controllo della curva che coincidono con i keyframe. La curva rappresenta il modo in cui il valore fissato in un keyframe si trasformerà in un numero N di fotogrammi fino al valore fissato nel successivo keyframe (quindi in un tempo pari a N/FPS secondi, dove fps è il frame rate fissato per l’animazione). Dalla forma di questa curva capirete il perché del comportamento visto nella traslazione del cubo: troviamo una prima parte dove la pendenza della curva sale lentamente (accelerazione) fino a raggiungere un andamento quasi lineare (velocità costante) per poi convergere al valore finale in una decelerazione. Questa interpolazione è impostata di default per evitare irrealistiche discontinuità nel moto degli oggetti, ciò senza dover ricorrere all’uso di un motore fisico.
Proviamo ora ad agire sulle maniglie dei punti di controllo per cambiare la forma della curva e controllare l’effetto sull’animazione:
tale curva impone un movimento che anziché partire a velocità zero, lo farà con elevata rapidità (pendenza della curva) per poi rallentare fino a che i valori (delle coordinate) raggiungeranno quelli fissati nel secondo keyframe. Così facendo non abbiamo modificato né la posizione dei keyframe, né alterato i valori impostati da tali fotogrammi chiave, in quanto tramite le curve del Graph Editor, chiamate F-Curves, saremo anche liberi di cambiare la posizione dei keyframe e i valori di questi, agendo sui punti di controllo della curva bézier, per i quali valgono i comandi:
- Con il tasto G potremo muoverli liberamente modificando sia la posizione del keyframe nella timeline, sia il valore fissato nel keyframe.
- Tasto G+X modificare la sola posizione del keyframe nella timeline.
- Tasto G+Y modificare il solo valore impostato con il keyframe (ad esempio uno spostamento minore o maggiore)
- Tasto Maiuscolo-D duplicare il punto di controllo/keyframe.
- Tasto X eliminare un keyframe.
- Tasto I inserisce un nuovo keyframe e un nuovo punto di controllo della curva bézier.
Dal menu Key > Handle Type nell’header del graph editor potremo decidere il comportamento delle maniglie analogamente a quanto visto nel paragrafo 2.4
Nei menu posti nell’header del Graph Editor troviamo molte altre importanti opzioni, alcune delle quali le andremo ad utilizzare nella solita sidebar (tasto N)
Dopo aver cliccato su un punto di controllo della F-Curve potremo cambiare il tipo di interpolazione, quindi la forma della curva, fino al successivo punto di controllo; ciò recandoci nel pannello Active Keyframe della scheda F-Curve e scegliendo tra: interpolazione Bézier, Linear o Costant, opzioni situate in una finestra che comparirà su schermo anche con la pressione del tasto T
L’interpolazione lineare è ad esempio utile nel caso banale dell’animazione di un oggetto che rotea di 360 gradi intorno all’asse verticale. L’animazione che ne consegue potrà infatti essere eseguita in loop continuo.
Oltre ai Keyframes Location è possibile impostare quelli di tipo Rotation e Scaling, più diverse loro combinazioni:
- Location & Rotation
- Location & Scale
- Rotation & Scale
- Location, Rotation & Scale
Proviamo a realizzare proprio l’esempio citato in precedenza della rotazione completa intorno ad un asse. Selezionate il cubo della scena di default e fissate per esso un keyframe Rotation nel primo fotogramma dell’animazione. Nel pannello Transform della sidebar nella 3D View, dopo esservi spostati all’ultimo frame del range, aggiungete 360 al valore presente in Rotation (asse Z; se esso fosse 0 occorre solo inserire 360) e create un nuovo keyframe Rotation.
Il colore verde di sfondo vi ricorda che in un altro istante è stato già impostato almeno un keyframe. Avviando l’animazione vedrete che la rotazione dell’oggetto partirà lentamente, raggiungerà la massima velocità a metà del tempo, per infine rallentare progressivamente fino a raggiungere la posizione iniziale. Nel Graph Editor selezionate il primo punto di controllo e cambiate l’interpolazione con quella lineare: a ogni riavvio dell’animazione noterete un istante di stasi dovuto al fatto che in un loop del genere la rotazione non dovrebbe essere fissata nell’ultimo frame al: <valore di partenza> + 360°, come abbiamo appena fatto, ma qualcosa meno di 360°. Considerando N il numero di fotogrammi nel quale avviene la rotazione, calcoliamo il valore: R° = 360°-(360°/N). Questo sarà l’esatto valore (leggermente minore di 360) da fissare con il secondo keyframe rotation, il quale restituirà un’animazione della rotazione in Loop fluida e priva dell’istante di stasi.
Con l’interpolazione Constant, il parametro condizionato da keyframes salterà in modo discontinuo da un valore all’altro
Oltre a queste principali interpolazioni, ne esistono altre suddivise nelle categorie: Easing e Dynamic Effects che potranno essere utili a seconda dei casi. Le interpolazioni Easing risultano chiare già dalle icone che ne illustrano l’andamento; quelle Dynamic Effects servono per emulare una dinamica fisica senza dover ricorrere a un rigoroso calcolo del moto come vedremo nel capitolo successivo; più precisamente con esse è possibile ottenere un leggero superamento della quota numerica impostata nel keyframe (come per inerzia) con successivo ritorno indietro. Quindi potremo simulare anche un rimbalzo (bounce) oppure una vibrazione di tipo elastico.
Prima di esporre le altre possibilità offerte dal graph editor e dalle F-Curves, conviene capire meglio l’entità degli effetti derivabili dall’utilizzo dei keyframe che ci permettono di animare praticamente ogni parametro esistente in Blender. Dunque prendiamo come esempio il parametro Metallic di un qualsiasi materiale. Nel nodo Principled dello Shader Editor (oppure nel relativo pannello del contesto Material delle properties) clicchiamo con il tasto destro del mouse su per far apparire il seguente menù
Come potete vedere la prima opzione Insert Keyframe è proprio quella che ci interessa. Dopo aver assegnato un keyframe al parametro Metallic, esso diventerà del caratteristico colore giallo; successivamente cliccando di nuovo con il tasto destro del mouse su Metallic, nello stesso fotogramma, avremo due diverse opzioni relative al keyframe: Replace (se vogliamo cambiare il valore) e Delete per cancellare il keyframe. Dopo aver fissato il keyframe di partenza con Metallic pari a 0 andiamo ad aumentare tale valore fino a 1 in un altro fotogramma chiave. Tutti gli oggetti in possesso di questo materiale diventeranno Glossy nel tempo dell’animazione che intercorre tra i due keyframe, e ciò secondo l’andamento dell’interpolazione vista con la curva nel Graph Editor. Non esiste solo la possibilità di applicare keyframes ai parametri come il valore Metallic; potremmo ad esempio decidere di attivare un intero pannello come ad esempio le ombre di un qualsiasi oggetto light (eevee) applicando semplicemente il keyframe alla casella con la spunta attiva (o disattiva). Oppure potremo applicare un keyframe alle icone dell’outiliner in modo da rendere visibile o invisibile un intero oggetto in qualsiasi frame dell’animazione renderizzata.
Le possibilità di animazione sono praticamente infinite, potremo ad esempio mutare gli shader del materiale e le proprietà di una qualsiasi texture, oppure animare un lattice per osservare una deformazione animata di una mesh, etc. In Blender qualunque cosa è animabile.
Nel renderizzare i fotogrammi di una qualsiasi animazione potrete rendere maggiormente fluido e realistico il movimento degli oggetti simulando l’effetto ottico del Motion Blur, con cui le parti in moto appariranno sfocate in modo proporzionale alla loro velocità. Il motion blur è disponibile sia per Eevee, sia per Cycles. Rechiamoci nel contesto properties Render relativo a Cycles dove troveremo il seguente pannello:
aumentando il valore di Shutter verranno mixati tra loro dei frame sempre più “distanti” nel tempo. Il motion blur è utile anche a simulare l’effetto mosso della fotografia (il quale che deriva dall’uso di tempi di esposizione più lunghi). Un esempio lo trovate proprio nella copertina di questa guida online
Paragrafo successivo
Paragrafo precedente
Torna all’Indice
Nell’augurarti un divertente e produttivo studio di Blender, ti ricordo che puoi supportare questo progetto in due diversi modi: con una piccola donazione (paypal) oppure acquistando la versione PDF (su lulu.com) impaginata in modo professionale e ottimizzata per la visione su Tablet.