Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Le animazioni parte 1 – Time Line


Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Introduzione

In questa serie di tutorial parlerò delle animazioni, degli strumenti che troviamo in Blender e di come implementarle nei giochi. Creare un’animazione è fare muovere, ruotare o cambiare forma o colore ad un’oggetto nel tempo, questa definizione può sembrare un pò azzardata ma come tu forse sai oltre all’FPS (frame per second) esiste in Blender anche l’AFR (animation frame rate), di solito lo si imposta a 60 come per l’FPS e l’opzione si trova sulla finestra delle Proprietà del render  nella tab Display, come mostro nell’immagine

Detto questo è ora di introdurre un concetto che sta alla base delle animazioni ed è vitale per comprendere come funzionano, i Key Frame. Un KF è un frame che viene evidenziato (vedremo a breve come) che salva le proprietà di quell’oggetto nel tempo. Come prima cosa cambia la finestra dei Mattoni (no per ora non ci servono) con la TimeLine (la finestra con l’icona di un’orologio).

La Time Line

Come puoi notare la TimeLine si presenta come una griglia a righe verticali con dei numeri in basso e una barra menù piena di opzioni. Andiamo per ordine, i numeri sono i frame, la linea verde è il cursore che puoi spostare cliccando col tasto sinistro del mouse o con i tasti freccia (sinistra e destro 1 frame per volta, Shift+ su o giù 10 frame), ci sono altre combinazioni di tasti ma per ora bastano. Se scrolli la rotella del mouse fai uno zoom e se la clicchi puoi muovere la TL. Le voci di menù a sinistra sono abbastanza intuitive, tranne i Marker che spiegherò in seguito. Salto le varie voci dei menù perchè non le useremo per ora. Di seguito ci sono due pulsanti uno con un’orologio che è una variante per il playback, ma non funziona in fase di rendering; l’altro pulsante è un catenaccio e limita il cursore per la gamma di riproduzione. Di seguito i frame di Inizio (Start) e di Fine (End), si possono cambiare se per caso l’animazione è più corta. Il numero di seguito indica il Frame corrente. Poi ci sono i pulsanti di riproduzione. Il menù a tendina dove c’è scritto No Sync serve a sincronizzare l’animazione ed ha tre opzioni, una è quella di default No Sync (non sincronizza), le altre due sono Frame Dropping salta il frame se l’animazione è troppo lenta, in un FrameRate di 60 frame al secondo anche se viene saltato un frame è difficile accorgersene, l’altra opzione è AV-Sync che sincronizza con l’audio, anche qua se l’audio è troppo lento il frame viene saltato. Di seguito c’è un pulsante rosso che se premuto fa partire la registrazione automatica dei frame ad ogni spostamento dell’oggetto, per ora salto questa opzione perchè è un pò avanzata, serve sostanzialmente a ridurre i tempi di realizzazione di un’animazione. Ultime opzioni a destra sono dei pulsanti che servono sostanzialmente a fare quello che si può fare usando le scorciatoie da tastiera, quindi per ora li saltiamo.

Inserire un Key Frame

Per inserire 1 KF basta posizionare il puntatore del mouse sulla finestra 3D e premere I, apparirà il seguente menù
Le varie opzioni sono relative alle tre operazioni di Posizione (Location), Rotazione (Rotation), Scalatura (Scaling). 
Ci sono anche delle combinazioni come LocRot (Location e Rotation) o una delle più usate LocRotScale. Per il nostro esempio però userò soltanto la prima, quindi a questo punto puoi inserire il primo KF al frame 1 della Time line cliccando su Location. Se sposti il cursore puoi notare che adesso al frame 1 c’è una linea gialla, quello è il KeyFrame. Adesso sposta il cursore fino al frame 120, puoi farlo manualmente, usando i tasti freccia in su+Shift oppure inserendo il numero nella casella del frame corrente. Ora sposta il cubo fino alla fine della griglia sull’asse X e inserisci un’altro KeyFrame. Hai appena creato un’animazione. Per riprodurla basta tornare al frame iniziale e premere ALT+A, per fermarla basta premere il tasto Esc. Puoi continuare ad inserire KF e provare le varie combinazioni come la Scalatura dell’oggetto o la Rotazione. Avrai sicuramente notato che nel mio esempio l’animazione finisce al frame 120, ma il cursore arriva fino al frame 250 prima di riprodurre di nuovo l’animazione, a noi non importa ai fini del Game Engine, ma se vuoi puoi cambiare il frame finale (End) e impostarlo a 120. Per fare tornare il cubo indietro basta aggiungere un KF che lo riporta alla posizione iniziale, ma più precisamente a 1 frame prima della fine, questo perchè il primo frame esiste già, quindi riportandolo al frame 1 facciamo un’errore perchè ricopiamo un frame che già esiste e questo può allungare di pochissimo l’animazione. Certo è più facile inserire un KF al punto d’origine visto che il cubo parte da li, o come vedremo nel prossimo articolo copiare un frame e spostarlo nel tempo. La risposta sta tutta nell’inserire l’esatto frame finale dell’animazione, questo è importante per tutti i video giochi che farai. Quindi aggiungi altri 120 frame alla fine dell’animazione, sposta il cursore al frame 240 e il cubo all’origine, inserisci il KeyFrame. Se fai partire l’animazione ora puoi notare che quando arriva al frame 240 e torna al frame 1 c’è un’impercettibile stop all’animazione, questo perchè nei due frame (1 e 240) il cubo è nella stessa posizione. Basta cambiare il frame finale a 239 e l’animazione sarà fluida.

Per eliminare un KF basta posizionarsi sul frame e col puntatore del mouse sulla 3D view premere ALT+I, Blender ti chiederà se vuoi cancellare il KF.

I marker

I marker sono come delle note che si inseriscono prima o dopo (questo è personale), per ricordarsi esattamente a cosa fa riferimento quel KF, sono più usati quando si creano animazioni complesse (tipo cartoni animati), personalmente non li ho mai usati per i video giochi. Per inserirne uno basta premere M col puntatore del mouse sulla Time Line, mentre per rinominarlo CTRL+M e appare una finestra dove si può inserire il nome. Una particolarità è che come il numerò dei frame appare accanto al nome dell’oggetto proprietario in basso a sinistra nella 3D view di colore arancione (se si usa il tema di default di Blender). Per cancellare un marker basta premere X col mouse sulla Time Line.

Per questa prima parte è tutto, c’è molto da dire sulle animazioni perchè Blender dispone di più di uno strumento per manipolarle. L’interesse primario per chi fa video giochi è sicuramente fare muovere un personaggio, ma prima di arrivare a quel punto prima bisogna obbligatoriamente capire come funziona il sistema che usa Blender per animare. Come sempre sperimenta, prova ad aggiungere altri oggetti e ad animarli in modi diversi, una cosa che puoi provare è animare la Camera, è un’esercizio stimolante.


Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1

Warning: file_exists(): open_basedir restriction in effect. File(/tmp/rvpuuusc.txt) is not within the allowed path(s): (/membri/blendergameengineitalia/:/membri2/blendergameengineitalia/:/membri/.dummy/) in /membri/blendergameengineitalia/wp-includes/plugin.php(437) : runtime-created function on line 1