Tecniche di manipolazione della geometria
3.2 Blendshape
Definizione Le blendshape sono dei modelli facciali lineari in cui i vettori di base non sono ortogonali tra loro ma rappresentano le singole espressioni facciali [13]. I vettori di base vengono chiamati blendshape, morph tarhet, shape key o anche semplicemente shape. All’interno di questo documento utilizzeremo principalmente il termine blendshape sia per indicare le singole espressioni facciali, sia per indicare la tecnica di deformazione in generale.
Figura 3.2: Deformazione geometria tramite blendshape. Sinistra: posa neutra o di base; destra: espressione di sorriso specialmente nella parte inferiore del volto; nel mezzo: interpolazione tra le due espressioni.
L’utilizzo delle blendshape è molto diffuso grazie alla loro semplicità di utilizzo e alla loro intuitività, e nonostante i loro limiti, che vedremo più approfonditamente più avanti, sono la tecnica più diffusa e più utilizzata nell’industria cinematografica. Alcuni esempi in cui si sono
3.2 – Blendshape
utilizzate le blendshape su dei personaggi principali sono Il curioso caso di Benjamin Button, Il signore degli anelli, King Kong, Final Fantasy: The Spirit Within, Star Wars e Stuart Little [13].
Come funzionano La tecnica delle blendshape si basa sull’interpolazione, per questo motivo a volte può essere indicata come shape interpolation. Con questo approccio l’espressione facciale finale viene realizzata andando a combinare linearmente un certo numero di blendshape che rappresentano determinate deformazioni (si veda la figura3.2per un esempio). Ad esempio, per ricreare un volto sorridente si possono combinare una blendshape che deforma la parte superiore del volto (occhi e sopracciglia) e una blendshape che si occupa di deformare la parte inferiore andando a sollevare gli angoli della bocca per creare un sorriso. In questo modo è possibile creare un numero elevato di combinazioni tra le varie blendshape andando a gestire i vari parametri di influenza, chiamati anche pesi o slider.
Secondo quanto riportato da Lewis [13] ci sono due grandi vantaggi nell’utilizzare le blend-shape:
• La parametrizzazione utilizzata ha un valore facilmente identificabile: il peso (weight). Que-sto offre all’animatore una relazione diretta ed intuitiva tra il parametro peso e l’influenza che una blendshape avrà sul risultato finale.
• Aiutano l’animatore a gestire meglio il modello, evitando di creare deformazioni non volute.
In questo modo risulta più facile creare animazioni più organiche e credibili.
Sebbene tale tecnica permetta di creare un numero indefinito di espressioni da poter combina-re insieme, combina-realizzacombina-re un personaggio digitale in grado di copricombina-re una vasta gamma di espcombina-ressioni facciali consiste in un lavoro molto lungo, in certi casi potrebbe richiedere più di un anno di lavoro svolto da professionisti specializzati [13]. Ad esempio, per il personaggio di Gollum nel film Il Signore degli Anelli le blendshape presenti nel modello finale hanno raggiunto il numero totale di 946, di cui però la maggior parte sono state introdotte per correggere deformazioni non volute, generate dall’interferenza tra due o più blendshape, mentre le blendshape originali erano 64 [14]. Il problema dell’interferenza verrà trattato meglio in seguito.
Due varianti della tecnica basata sulle blendshape sono l’approccio “whole-face” (globale) e l’approccio “delta” (locale) [15].
Approccio whole-face l’espressione facciale che si ottiene come risultato può essere vista come una semplice somma vettoriale. In pratica, un modello è formato da 𝑛 blendshape, ognuna delle quali è composta da un numero di vertici pari a 𝑝, infine ogni vertice è rappresentato da tre valori x,y,z. Ogni blendshape, quindi, può essere espressa come un vettore b𝑘di lunghezza 3𝑝, ottenuto andando a ordinare le coordinate dei vertici in maniera consistente tra tutte le blendshape del modello (es xxx...yyy...zzz... o xyzxyzxyz...).
L’espressione facciale finale può essere quindi ottenuta con:
f =
𝑛
∑𝑘=0
𝑤𝑘b𝑘 (3.1)
o utilizzando la notazione matriciale
f = Bw (3.2)
Dove f è un vettore 3𝑝 × 1 contenente l’espressione facciale risultante, B è una matrice 3𝑝 × 𝑛 contenente le 𝑛 blendshape, b𝑘 è la singola blendshape e w è un vettore 𝑛 × 1 contenente i pesi (weight) per ciascuna blendshape.
Approccio delta con questo approccio, partendo da quanto visto sopra, si definisce una blend-shape b0 che rappresenti la posa base, tipicamente il volto a riposo, mentre tutte le blendshape b𝑘restanti vengono sostituite dalla differenza b𝑘− b0.
f = b0+
𝑛
∑𝑘=1
𝑤𝑘(b𝑘− b0) (3.3)
(dove b0è l’espressione facciale neutrale). In forma matriciale può essere indicata come
f = b0+ Bw (3.4)
Tipicamente i pesi per ciascuna blendshape vengono limitati tra [0,1], ma in alcune DDC (digital content creation suites) come Maya e Blender, si ha possibilità di modificarne il range.
In entrambi i casi, i valori intermedi vengono trovati tramite tecniche di interpolazione lineare.
Come è facile intuire, visto che la posizione dei vertici dell’espressione facciale finale è data dalla combinazione pesata delle diverse blendshape, risulta fondamentale che la topologia poligonale, e quindi il numero di vertici e come tali vertici sono collegati tra loro, rimanga invariata. Questo è un fattore che dovrà essere tenuto in considerazione sia nella creazione del rigging facciale sia nella scelta della tecnica di acquisizione dati.
Come accennato precedentemente, l’utilizzo di blendshape non è privo di limiti e criticità.
Uno dei maggiori problemi nell’utilizzare le blendshape è dato dalla loro interferenza [15]. Questo è dovuto al fatto che le varie blendshape non sono ortogonali tra loro, ciò significa che i parametri (pesi) che le definiscono non sono indipendenti. Può succedere, infatti, che alcune blendshape si sovrappongano creando effetti di competizione o di rinforzo. In pratica la sovrapposizione è dovuta al fatto che un certo numero di vertici risulterà presente nel vettore di due o più blendshape, e quindi la posizione finale dei vertici in questione sarà determinata dall’influenza delle blendshape che li contengono. Tale problema si può limitare definendo delle aree di influenza per ciascuna blendshape (es sopracciglio-destro), tuttavia molte espressioni facciali, per risultare più organiche e credibili, necessitano in alcuni punti di una parziale sovrapposizione di diverse blendshape. Inoltre, se consideriamo che i modelli utilizzati nell’industria cinematografica raggiungono le 100 blendshape, risulta evidente che sia quasi impossibile evitare del tutto le sovrapposizioni. Infatti, come riportato precedentemente, per il modello di Gollum la maggior parte delle blendshape create serviva per andare a gestire le diverse interferenze create dall’uso di 64 blendshape originali.
Per ridurre il numero di interferenze è preferibile usare l’approccio locale e suddividere il più possibile in aree specifiche il potenziale di azione di ciascuna blendshape, andando a definire per ciascun vertice il peso che ne indichi il fattore d’influenza, un approccio intuitivo è la tecnica del weight painting dove i pesi vengono “pitturati” sui vertici. Uno dei metodi per definire le regioni di influenza si basa sul FACS, come vedremo meglio nel capitolo9, questo permette anche di avere una parametrizzazione semantica, avendo una relazione quasi uno a uno tra blendshape e azione muscolare, rendendo il processo di animazione più intuitivo. Tuttavia, il solo utilizzo delle blendshape potrebbe dare risultati non soddisfacenti, per questo motivo non è raro utilizzare