In quest’ultima parte del capitolo discuteremo di alcune tecniche per la trasformazione dinamica delle mesh il cui approccio è simile a quello della messa in posa dei manichini snodati o del movimento delle marionette. Ciò significa che non agiremo in modo diretto su i vertici delle mesh, ma faremo in modo che tali vertici si adattino ai movimenti di una sorta di scheletro (le armature) consistente in un insieme di ossa (bones) tra loro connesse.
Inseriamo nella nostra scena l’oggetto Armature che di default consiste in un singolo osso rappresentato come un solido di otto facce triangolari (ottaedro) posto tra due sfere, di cui quella in basso è la radice o testa dell’osso, mentre quella in alto è la coda dell’osso.
Le armature sono dunque degli oggetti non renderizzabili che appaiono esclusivamente all’interno della 3D View. Oltre all’object/edit mode, le armature godono dell’ulteriore modalità di utilizzo detta Pose Mode.
Partiamo innanzitutto dalla modalità edit dove potremo selezionare sia l’intero osso cliccando con il tasto destro sull’ottaedro, sia una delle due estremità. Qui valgono le stesse trasformazioni viste per le normali mesh, e occorreranno pochi minuti di prove per rendersi conto che:
- muovendo radice e coda, le dimensioni complessive dell’osso aumenteranno in proporzione
- il baricentro dell’osso è nel centro della sua radice
- è possibile duplicare una selezione di ossa con Maiuscolo-D
- è possibile estrudere entrambe le estremità ottenendo un nuovo osso.
Il risultato dell’estrusione varia a seconda che essa riguardi la radice, oppure la coda. Nel primo caso, la radice dell’osso estruso coinciderà con quella dell’osso di partenza e sarà da esso slegato e indipendente.
Estrudendo la coda otteniamo invece un osso imparentato e connesso con quello d’origine.
Estrudendo la coda otteniamo invece un osso imparentato e connesso con quello d’origine. In una catena di due o più ossa così realizzata (cioè tramite estrusioni) le trasformazioni scale, rotation e location, effettuate su un singolo Bone, coinvolgeranno anche quelli adiacenti.
Per verificare la parentela tra le ossa, o per connetterle tra loro, oppure per sconnetterle e cambiarne il nome, dobbiamo recarci nel pannello Relation del contesto Bone, icona in modalità edit
Nel campo Parent vediamo che ad esempio l’osso bone.001 risulta imparentato e connesso con l’osso bone dal quale ha avuto origine mediante estrusione della coda, ereditandone (inherit) gli effetti delle trasformazioni scale e rotation (come vedremo successivamente in modalità pose). Potremo dunque sconnettere l’osso togliendo la spunta da Connected e mantenere o meno la parentela (comparirà una linea tratteggiata). Al momento trascuriamo gli altri pannelli.
Oltre alle catene lineari di ossa è ovviamente possibile crearne di ramificate o miste.
La struttura che realizzeremo in edit mode altro non è che la posizione di riposo (Rest Position) dell’armatura. Tale posizione va creata (come vedremo nel prossimo paragrafo) “dentro” il modello, supponendo che anch’esso si trovi nella sua rest position. Successivamente in modalità Pose Mode potremo variare la posizione delle ossa, creando tutte le pose che ci servono, senza però poter da qui modificare la rest position.
Nel pannello Viewport Display del contesto Object Data per l’armatura (disponibile in Object, Edit e Pose Mode), icona troviamo cinque diversi tipi di rappresentazione delle armature
In edit mode, la modalità envelope (involucro) rivela l’esistenza di un’aurea 3D di colore grigio che circonda l’osso: essa rappresenta l’area d’influenza del singolo bone sui vertici della mesh nel processo chiamato Skinning.
Partiamo da un esempio pratico riguardante l’utilizzo di un’armatura allo scopo di animare il modello che la riveste. Invece di utilizzare la classica figura umanoide che potrete importare facilmente dal software MakeHuman, partiamo dalla primitiva plane suddivisa in 7 tagli (subdivide > number of cuts) estrudendo lungo l’asse z (altezza pari a due unita di blender) le facce selezionate come nell’immagine:
Con il Loop Cut & Slide andremo a dividere in sette parti verticali le colonne (una ad una), applicando infine il modificatore subsurf con due divisioni.
A questo punto occorre creare un’armatura di 4 catene tra loro separate, ognuna delle quali costituita da tre ossa che dovrete posizionare come nella figura seguente, ossia internamente al modello.
Per rendere sempre visibile l’armatura basta attivare la spunta a In Front nel pannello Viewport Display del contesto Object Data.
Ora procediamo a ciò che in gergo viene chiamato Skinning imparentando la mesh come figlia dell’armatura. Selezioniamo dunque la mesh e poi l’armatura, dunque con Ctrl-P richiamiamo a video il menù
Set Parent To.
Le opzioni che ci interessano sono le Armature Deform: tutte e tre le scelte creeranno in modo automatico tanti Vertex Groups quante sono le ossa dell’armatura; gruppi di vertici che potranno essere:
- Vuoti (With Empty Groups)
- Scelti da quelli inglobati nell’area di azione impostata con la visualizzazione envelope (With Envelope Weights)
- Scelti automaticamente da Blender (With Automatic Weights) tramite un potente algoritmo che decide anche il peso da assegnare a ciascun vertice al fine di ottenere deformazioni naturali e senza discontinuità.
Partiamo proprio da quest’ultima opzione. Dopo aver imparentato la mesh all’armatura, selezioniamo la mesh e rechiamoci al contesto modifiers delle properties, dove noteremo subito la presenza del modifier Armature.
Nel contesto Object Data troviamo invece i gruppi di vertici creati da blender con i nomi delle ossa appartenenti all’armatura. In molti casi sarà meglio assegnare preventivamente i nomi ai singoli bone (es: testa, collo, spalla, etc) in modo da poterli facilmente trovare nella lista.
Dopo aver selezionato l’intera mesh in modalità weight paint, clicchiamo su un gruppo/osso della precedente lista per vedere l’area di influenza dell’osso sulla mesh e i pesi di ogni singolo
vertice.
A questo punto non ci resta che selezionare l’armatura e passare in modalità pose mode, dove selezioneremo un osso cliccandoci sopra con il tasto destro del mouse al fine di ruotarlo (o scalarlo) in una qualsiasi direzione. Vedremo così la mesh deformarsi in modo naturale e adattarsi alla posa della nostra armatura.
Riselezionando la mesh in weight paint ci renderemo conto di come la deformazione abbia seguito esattamente i pesi definiti da blender (che possiamo anche ritoccare in funzione delle nostre esigenze).
È possibile creare una libreria con differenti pose dalla sidebar della 3D View in modalità Pose, scheda Animation: ci basterà selezionare tutte le ossa (tasto A) e cliccare su Create Pose Asset nel pannello Pose Library
Potremo animare il tutto come desideriamo tramite i soliti keyframe, sia per singolo osso, sia per l’intera selezione di ossa. In pose mode nel contesto Bone, pannello transform, abbiamo la possibilità di bloccare per ogni osso le trasformazioni rotation e scale sui tre assi, oltre che le traslazioni (per le ossa non connesse ad altre).
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.