ReveRig Add-On
11.1 Esigenze
Capitolo 11
i personaggi. In tale modo si introduce un grosso vantaggio in termini di facilità di gestione dei file di progetto, in quanto questi risulteranno più leggeri e facilmente lavorabili anche con hardware non specializzato. Inoltre, permette di creare un’organizzazione molto ordinata dei file di progetto, migliorandone l’usabilità. Tuttavia, si introducono delle limitazioni non sottovalutabili, in quanto, con questo meccanismo, si perde la possibilità di agire sulle deformazioni degli oggetti se non attraverso degli appositi oggetti chiamati proxy.
Ciò significa che, allo stato attuale, non ci è concesso di accedere in maniera diretta e completa alla mesh dei personaggi che vogliamo animare. Le blendshape generate precedentemente, ovvero le 52 relative alle espressioni facciali e le 6 relative alla posizione della lingua, risultano inaccessibili e pertanto inutilizzabili. Si viene a creare, quindi, un blocco al proseguimento del lavoro in quanto non è possibile trasferire i dati acquisiti, con tecnologia ARKit per il volto e con l’utilizzo di Papagayo-NG per la lingua, sul modello del personaggio che vogliamo animare.
Risulta fondamentale creare un sistema che funga da tramite tra dati acquisiti e blendshape sulle quali lavorare. Come vedremo nella sezione11.3la soluzione è stata trovata nella creazione di un apposito rig facciale.
Unire i due workflow di animazione Come visto nei capitoli9e10, il processo di lavoro relativo all’animazione delle espressioni facciali e quello relativo all’animazione della lingua possono essere compiuti in modo separato, offrendo alla produzione maggiore spazio di ma-novra nella gestione delle risorse disponibili. Tuttavia, tra essi intercorre una relazione dovuta all’influenza che la blendshape jawOpen ha sulla determinazione dell’animazione finale della lingua. Diventa necessario, all’interno di Blender, legare questi due processi fino ad ora distinti.
Realizzare un prodotto di animazione stilizzato Ormai risulta chiaro che l’obiettivo finale è quello di realizzare un prodotto di animazione con “stile Pixar”. Tuttavia, gli strumenti fino ad ora individuati, consentono solo in parte di raggiungere questo obiettivo.
Il sistema di motion capture adottato consente di catturare le espressioni facciali da un volto reale ma non fornisce dei metodi semplici e diretti per trasformare tali dati in espressioni più stilizzate. Ciò comporta la necessità di dover manipolare manualmente i dati ottenuti in modo da enfatizzare determinate deformazioni. Tuttavia, anche se all’interno di Blender ci sono strumenti ed interfacce dedicate alla gestione di keyframe e delle blendshape, il lavoro di manipolazione dei dati raccolti risulta un processo lungo e caratterizzato da scarsa intuitività. Questo richiede di dover agire in maniera diretta sulle curve di interpolazione o di animare manualmente le blendshape, processo che all’interno di una produzione seriale come quella di Reverie Dawnfall richiederebbe troppo tempo, gravando negativamente sul budget a disposizione.
Diventa necessario definire un’interfaccia che consenta di lavorare, in modo pratico e veloce, sui dati raccolti così da ottenere come risultato l’animazione voluta. La soluzione a questo problema si è trovata individuando diversi strumenti da utilizzare contemporaneamente. In particolare, l’animazione desiderata può essere ottenuta combinando da un lato la manipolazione dei dati acquisiti con i sistemi di mocap facciale attraverso l’utilizzo dell’add-on ReveRig; dall’altro l’utilizzo del rig facciale del personaggio che si sta animando creato precedentemente come descritto in [33].
11.1 – Esigenze
Importare i dati per l’animazione della lingua Come visto nel capitolo10, i dati relativi all’animazione della lingua vengono esportati da Papagayo-NG nel formato dat. Diventa ne-cessario creare uno strumento interno a Blender che ci consenta di importare tale file e che sia in grado di leggere ed elaborare come desiderato i dati in esso racchiusi. In particolare, i dati importati devono consentire di poter animare le blendshape relative alla posizione della lingua. Per compiere queste operazioni sono state create apposite funzioni all’interno dell’add-on ReveRig.
Unificare la pipeline di lavoro Oltre alla necessità di unire i workflow relativi all’animazione delle espressioni facciali e della lingua, risulta utile racchiudere all’interno di un unico add-on tutti i principali strumenti che devono essere utilizzati all’interno di Blender per effettuare l’animazione desiderata.
ReveRig è stato pensato per soddisfare tale requisito. Al suo interno compaiono strumenti che consentono di agire in modo fine sulle singole blendshape e di gestire nuovi parame-tri appositamente creati per consentire all’animatore di lavorare con maggiore semplicità ed intuitività.
Alcune delle esigenze sopra riportate, sebbene siano state individuate in modo specifico per la produzione di Reverie Dawnfall, in realtà sono necessità che caratterizzano l’intero settore dell’animazione facciale computerizzata. Per questo motivo, si è deciso di procedere allo sviluppo di ReveRig avendo, da un lato come obiettivo principale quello di creare uno strumento apposita-mente pensato per essere inserito all’interno della produzione di Reverie Dawnfall e quindi porre rimedio ai limiti e alle esigenze sopra riportate; ma dall’altro lato, durante l’intero processo di sviluppo, non è mancata occasione di rivolgere lo sguardo anche al mercato globale nel settore dell’animazione facciale, soprattutto in riferimento alla community di Blender. È per questo motivo che ReveRig, con alcune necessarie semplificazioni rispetto a quanto verrà descritto nelle sezioni11.3,11.4e11.5, può rivelarsi (ed in parte si sta già rivelando) uno strumento di grande importanza, oltre che a Robin Studio, anche a tutti gli artisti digitali che utilizzano Blender come programma per l’animazione. I primi risultati di una distribuzione internazionale dell’Add-On ReveRig sono riportati nella sezione11.6.
Siccome si è deciso che ReveRig debba comprendere, quanto più possibile, tutti i passaggi necessari per portare a termine l’animazione facciale, ne risulta che il numero di azioni che possono essere svolte tramite l’add-on è elevato. Questo potrebbe causare un conseguente aumento della complessità e una diminuzione drastica dell’usabilità di tali strumenti.
Per queste ragioni, oltre ad organizzare il codice sia a livello di impaginazione sia basandosi sul principio della singola responsabilità, come riportato nel capitolo8.3.5, si è deciso di suddividere ReveRig in tre macro-sezioni separate (o pannelli), ciascuna delle quali racchiude le azioni principali relative a una o più fasi all’interno del processo di animazione (vedi figura11.1). Tale suddivisione ha lo scopo di aumentare l’usabilità dell’add-on e di consentire all’animatore di gestire in modo più comodo ed intuitivo il suo lavoro.
ReveRig comprende: una prima sezione relativa alla creazione del rig facciale e alla sua unione con le geometrie che compongono il volto (vedi sezione11.3); una seconda sezione relativa alla fase di retargeting perciò fornisce gli strumenti utili per trasferire i dati importati, relativi
all’animazione, sul modello da animare (vedi sezione11.4); una terza ed ultima sezione che racchiude una serie di strumenti utili, come bottoni e slider, per consentire una manipolazione fine dell’animazione (vedi sezione11.5).
Di seguito andremo a descrivere nel dettaglio come ciascuno di questi pennelli è stato svilup-pato, come si compone la sua interfaccia utente (UI) e come l’animatore può sfruttare al meglio gli strumenti previsti per realizzare l’animazione facciale. Siccome ReveRig è pensato anche in un’ottica internazionale, si è deciso di sviluppare l’intero codice e l’UI facendo ampio utilizzo della lingua inglese. Per mantenere maggiore coerenza tra i contenuti di questo documento e le funzionalità presenti nell’add-on, di seguito alcuni termini verranno proposti nella stessa forma con la quale sono presenti nel codice sorgente di ReveRig.
Figura 11.1: I tre pannelli principali di ReveRig