28
Animazione interattiva di Animazione interattiva di personaggi 3D personaggi 3D con dinamica basata sulle con dinamica basata sulle posizioni posizioni Relatore : Laureanda: Prof. Marco Schaerf Fiammetta Pascucci Correlatore: Prof. Ingemar Ragnemalm Ing. Marco Fratarcangeli Università degli Studi di Roma “La Sapienza” Laurea Specialistica in Ingegneria Informatica

Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Embed Size (px)

Citation preview

Page 1: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Animazione interattiva di Animazione interattiva di personaggi 3Dpersonaggi 3D

con dinamica basata sulle posizionicon dinamica basata sulle posizioni

Relatore : Laureanda:Prof. Marco Schaerf Fiammetta Pascucci

Correlatore:Prof. Ingemar RagnemalmIng. Marco Fratarcangeli

Università degli Studi di Roma“La Sapienza”

Laurea Specialistica in Ingegneria Informatica

Page 2: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Obiettivo● Creare una caduta realistica di un personaggio 3D tra oggetti presenti nello spazio.

Studio di tecniche e metodologie.

Articolare un personaggio 3D.

Rivestire il personaggio 3D.

Considerare il problema delle collisioni tra oggetti nello spazio.

Page 3: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Caduta della Ragdoll

Page 4: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Sommario

• Background.

• Articolare un personaggio 3D.

• Rivestimento del personaggio 3D.

• Collision Detection.

• Risultati, Conclusioni & Lavori Futuri.

Page 5: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Contesto• L’animazione di un personaggio virtuale è un

processo arduo da realizzare.

L’essere umano è composto da più di 208 ossa.

I movimenti di un essere umano sono il risultato di molti gradi di libertà.

La definizione e il controllo del movimento sono

tematiche di notevole interesse nell’ambito della ricerca scientifica.

Page 6: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Tecniche di animazione:L’animazione basata sulla

fisica• L’animazione basata sulla fisica: è una

tecnica che sta riscuotendo molto successo negli ultimi anni.

E’ basata sulle leggi della fisica.

Gli oggetti si muovono sotto le leggi fisiche.

Utilizzata in molti videogiochi per dare maggior

realismo.

Page 7: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Tecniche di animazione: La fisica della Ragdoll

• La fisica della Ragdoll: tecnica largamente usata nella gestione della fisica dei corpi.

E’ un tipo di animazione procedurale usata per

generare automaticamente animazioni in tempo reale.

Permette grande naturalezza ai corpi.

Di solito un personaggio è in stati di incoscienza

all’interno dell’ambiente.

Page 8: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Concetti matematicinecessari per la Ragdoll

Physics• Sistema a particelle:

E’ composto da un set di particelle.

Ogni particella ha associata:- una posizione - una velocità - una massa.

Il sistema a particelle permette di realizzare una

copia dell’oggetto reale.

Page 9: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Concetti matematicinecessari per la Ragdoll

Physics

Il moto delle particelle è stato realizzato con

l’integratore di Verlet.

I vincoli sono risolti con un metodo iterativo.

Le collisioni sono risolte con delle proiezioni.

Page 10: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Metodo di Verlet● Usato per avere più stabilità nella traiettoria della particella.

Riduce il livello di errore introdotto nel passo di integrazione.

La simulazione è stabile e veloce.

La posizione al successivo istante di tempo (t0 + 1):

- posizione al precedente istante di tempo (t0 -1)

- posizione al corrente istante di tempo (t0)

Page 11: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Metodo di VerletPosizione al prossimo time step:

x ( t0 + Dt ) = x ( t0 ) + ( x ( t0 ) - x ( t0 - Dt ) ) + aDt =

2 x (t0) – x ( t0 - Dt ) + aDtx ( t0 + Dt ) = posizione futura

x ( t0 ) = stato corrente

x ( t0 - Dt ) = stato precedente

La formula finale è:

x ( t0 + Dt ) = 2 x (t0) - x ( t0 - Dt ) + aDt + O ( Dt )

In un singolo instante di tempo la nuova posizione viene calcolata.

2

2

2 4

L’integrazione di Verlet deriva dalla serie di

Taylor.

L’espansione di Taylor al tempo to

Page 12: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

QuaternioniE’ un vettore in 4 dimensioni q = [s, x, y, z] S= angolo di rotazione, XYZ = asse di rotazione.

Non soffrono del Gimbal lock . La rotazione fatta attorno ad un asse

può comprire la rotazione su un altro asse.

Se il pitch è a 90° la yaw e roll si possono annullare a vicenda.

Reference: : http://vcg.iei.pi.cnr.it/~cignoni/CI0405/CI_Lez21.pdf “Paolo Cignoni”

Spherical linear interpolation, interpolazione tra quaternioni.

La matematica che c’è dietro non è intuitiva.

Page 13: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Articolare un personaggio 3D

● Generare movimenti simili all’essere umano.

La ragdoll è stata creata mediante il metodo utilizzato nell’articolo:“Advanced Character Physics” di Thomas Jakobsen (2001)

La ragdoll è composta: - 16 particelle. - 24 vincoli di equidistanza.

Le particelle rappresentano le giunture.

I vincoli di equidistanza rappresentano le ossa.

Page 14: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

● La ragdoll è composta da due importanti vincoli:

Vincolo di equidistanza: è un vincolo tra due particelle inserito dopo aver calcolato la distanza che le separa.

Vincolo di giuntura: è un vincolo di movimento con il quale vengono limitate le rotazioni.

Articolare un personaggio 3D

Page 15: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Vincolo per la giuntura spalla

● Secondo passo: cambiare le coordinate spaziali in coordinate nell’origine.

X

Y

Z

Coordinate spaziali

X

Y

Z

Coordinate nell’origine

Spalla

Gomito

Mano

LEGENDA

● Primo passo: considerare i gradi di libertà.

Page 16: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

“Allowed Area”

Z

Y Plane YZ

175°

X

YPlane XY

120°

X

Z Plane XZ

165°

LEGENDA

SPALLA

GOMITO

MANO

DEF REGION

REGION BEGIN

REGION END

Page 17: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

PIANO XY: senza vincolo

Page 18: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

PIANO XY: con il vincolo

Page 19: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Vincoli per le giunture L’algoritmo presentato è stato pensato per costruire tutte le giunture che sono presenti nella ragdoll.

Per ogni giuntura si sono considerati i gradi di libertà associati.

Si è costruita una “allowed area”.

Se si è fuori dalla allowed area si pensato di ritornare o più vicino alla region begin o alla region end.

Page 20: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Rivestimento della ragdoll● Rivestimento del personaggio mediante l’utilizzo della tecnica “Simplified skin from points”.

Il busto.

L’addome.

Le braccia.

Le gambe.

Il collo.

Page 21: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Il busto• E’ formato da 5 particelle. Calcolare il punto centrale

del pentagono.

Calcolare cinque punti che

si trovano tra il centro del pentagono e gli angoli.

Inserire un set di triangoli tra

i punti trovati.

Ripetere il calcolo anche per

la parte posteriore del busto.

Page 22: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Collision Detection

● E’ un problema fondamentale in computer

animation. Capire, dato un oggetto, quale sarà la posizione finale che l’oggetto assumerà dopo la collisione.

La penetrazione del piano.

Collisione con delle sfere.

Page 23: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Collisione con il piano• Per tutte le particelle:- Calcolare la distanza tra le particelle e il piano.

- Quando una particella è in una posizione non validala particella verrà riflessa

sul pavimento.- Si sono considerati i coefficienti

damp riflessione del pavimento.

Pavimento

Inter-penetrazione della particella

Proietto sopraalla superficie

Page 24: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Collisioni con le sfere● Per tutte le particelle:

- Calcolare la distanza tra la posizione della particella il centro della sfera.

- Se la distanza è minore del raggio proietterò la particella al di fuori della sfera.

Tutto dipende dal raggio della sfera.

Raggio

Nuovaposizione

Posizione non valida

Page 25: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Risultati

Page 26: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Lavori futuri

Rivestire la Ragdoll con un approccio più adeguato, ad esempio con la tecnica dello “Skinning”.

Osservare cosa potrebbe succedere se gli oggetti con cui collide la ragdoll non fossero rigidi ma deformabili.

Page 27: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Conclusioni• Implementazione:

• Vincoli per le giunture della Ragdoll.

• Rivestimento della Ragdoll.

• Collisione della Ragdoll con delle grandi sfere.

• Risultati:

• Simulazione veloce e stabile.

• Caduta realistica.

Page 28: Animazione interattiva di personaggi 3D con dinamica basata sulle posizioni Relatore :Laureanda: Prof. Marco SchaerfFiammetta Pascucci Correlatore: Prof

Dipartimento di Informatica e Sistemistica Università di Roma "La Sapienza" Fiammetta Pascucci

Conclusioni

Riconoscimento:

Tesi svolta presso la Linköping University con

lettera di merito del Prof. Ingemar Ragnemal.

Interagens s.r.l. “Personaggi Animati Interattivi” (PAI).