• Non ci sono risultati.

Creazione delle strutture scheletriche dei personaggi e delle shapes-animations

6.3. Tecniche di manipolazione e ottimizzazione dei Modelli 3D provenienti da software per la simulazione matematica

7.1.3. Creazione delle strutture scheletriche dei personaggi e delle shapes-animations

I modelli fin ora descritti, compresi i personaggi, sono dei semplici oggetti statici che possono essere liberamente disposti all’interno di una scena 3D. Prima di poter fare in modo che i personaggi siano animabili, ad essi va associato un complesso sistema di articolazioni tramite la fase cosiddetta di rigging, nella quale vengono creati gli oggetti che formeranno una struttura scheletrica, per tanto, questi oggetti saranno imparentati tra loro con opportuni vincoli cinematici, diretti e inversi, volti a simulare il comportamento di un reale scheletro umano. Gli oggetti che compongono la struttura scheletrica prendono per questo motivo il nome di “bones”.

The genesis of Chua’s circuit

58 Parliamo di vincoli cinematici diretti quando un singolo elemento può essere spostato o ruotato causando lo spostamento dei punti del modello da esso dipendenti. Tale struttura può essere creata sfruttando semplici vincoli gerarchici, come avviene nel caso del braccio dove muovendo l’omero vengono spostate tutte le ossa dell’avambraccio e della mano. In casi particolari, come avviene per le gambe, spesse volte è necessario che i piedi restino attaccati al terreno mentre il baricentro del personaggio si abbassa causando una flessione delle ginocchia. Per simulare questo tipo di comportamento, è necessario ricorrere a vincoli di cinematica inversa nei quali, gli oggetti che compongono lo scheletro della gamba siano gerarchicamente vincolati tra di loro, così come avviene nelle catene cinematiche dirette, ma in questo caso l’oggetto con il quale la catena termina, ovvero il piede, è vincolato, oltre che all’oggetto tibia, ad un oggetto di controllo che gli consente di essere spostato e di causare ripercussioni sull’intera catena. In questo modo, avvicinando l’oggetto di controllo al corpo o viceversa, otterremo la flessione della gamba che verrà invece stesa allontanando l’oggetto di controllo dal corpo.

Per ottenere i corretti comportamenti della struttura, è necessario definire dei vincoli di spostamento o rotazione dei singoli componenti. Per fare un esempio pratico, dobbiamo fare in modo che una tibia ruoti su un singolo asse e che la sua rotazione sia limitata entro un certo angolo che le impedisca di sovrapporsi al femore ruotando indietro, o di ruotare in avanti oltre l’asse perpendicolare del femore.

In casi particolari, per esempio per l’animazione di una mano si devono controllare circa venti ossa, per cui sono stati impiegati alcuni script in modo da rendere gruppi di oggetti come quello della mano parametricamente legati ad altri al fine di simulare la rotazione simultanea delle dita. Link cinematici sono usati anche per gli occhi: i modelli sferici di questi ultimi vengono messi in gerarchia all’oggetto che pilota la testa del modello e contemporaneamente il loro orientamento viene vincolato a degli oggetti “null”, ovvero oggetti privi di dimensioni, in modo da poter puntare lo sguardo al semplice spostamento di questi oggetti.

The genesis of Chua’s circuit

59 Fig. 33 Azione sull’oggetto di controllo delle dita e sui target degli occhi.

Le parti dell’ossatura vengono animate inserendo dei key-frames (fotogrammi chiave) nella time-line del software di animazione 3D. l’utilizzo dei key-frame consente di animare il modello definendo le trasformazioni spaziali solo in alcuni punti della time-line. Successivamente, il software provvederà a creare il movimento interpolando la posizione tra il primo e il secondo key-frame creato. Per fare un esempio, se vogliamo che il modello alzi un braccio in un secondo, avendo impostato la time-line ad una frequenza di 30 frames per secondo, sarà sufficiente impostare un key-frame al frame 1 in cui il modello ha il braccio abbassato e uno al frame 30 in cui il braccio è alzato. I movimenti così creati possono essere successivamente visualizzati sotto forma di curve, dette f-curves o curve-funzione, delle quali è possibile definire la tipologia di interpolazione, generalmente lineare o esponenziale, in base al tipo di movimento che vogliamo realizzare.

Lo scheletro così creato è provvisto di un modello di associazione alle strutture ossee utilizzate per il motion capture, per cui diventa possibile caricare animazioni eseguite da un attore reale e registrate in opportuni files di testo in formato Biovision Hierarchy (.BVH). Il file così caricato, associa allo scheletro del modello un set di key- frames attraverso i vengono riprodotti i movimenti registrati dall’attore. Una volta impostato lo scheletro per l’associazione con il modello di animazione .BVH, è possibile modificare le animazioni caricate in base alle specifiche esigenze utilizzando l’editor di curve del programma di animazione. Nei casi di animazioni comuni, come per le camminate, è stato possibile caricare dei motion capture preconfezionati opportunamente modificati in base alle scene. In casi di animazioni più particolari non è stato possibile utilizzare questa tecnica, per cui è stato necessario ricorrere all’animazione manuale dei personaggi con risultati più che apprezzabili anche se non così fluidi e naturali come quelli che si ottengono con la tecnica descritta.

The genesis of Chua’s circuit

60 Fig. 34 Visualizzazione delle f-curves dell’animazione di una parte dello scheletro.

La fase successiva alla creazione dello scheletro è lo skining che consiste nell’associazione di parti della mesh alle singole bones secondo una mappa di influenza che lo scheletro avrà sui diversi punti che compongono il modello tridimensionale, la cosiddetta weight-map. Generalmente i programmi di animazione sono provvisti di strumenti che consentono la creazione automatica delle weight-map in base alla prossimità dell’oggetto-osso ai punti della mesh che però necessita di interventi manuali locali al fine di aumentare, diminuire o sfumare le varie aree di influenza, come avviene nel caso delle articolazioni degli arti e delle dita.

Per l’animazione facciale sono state usate tecniche di shape animation attraverso le quali è possibile deformare un modello tridimensionale in modo da ottenere diversi stati delle mesh. attraverso il morphing questi stati vengono opportunamente interpolati in modo da ottenere le espressioni facciali necessarie per la sincronizzazione labiale e per conferire ai personaggi le espressioni emozionali.

The genesis of Chua’s circuit

61 Fig. 35 Stati differenti della mesh, utilizzati per le espressioni facciali.

Ognuno dei personaggi è dotato di una decina di stati differenti della mesh in modo da avere un set di espressioni per simulare i movimenti della bocca e del volto durante il parlato. Gli stati vengono creati partendo dal modello di base che viene deformato per simulare la pronuncia di un fonema o un espressione emozionale. Successivamente essi vengono caricati in un apposito mixer che consente di interpolarli ottenendo come risultato finale un set pressoché infinito di espressioni.

Dopo aver caricato le tracce audio nella time-line del software di animazione 3D, è possibile impostare i key-frame corrispondenti alla pronuncia dei fonemi ottenendo così la sincronizzazione dell’animazione facciale con la traccia audio.