Quelques mots sur l’animation
Marc Neveu
Les rôles de la simulation graphique et de l'animation par ordinateur
Importance du temps dans l'évolution des phénomènes:
~ mouvement de systèmes électromécaniques (robots)
~ réactions chimiques
~mouvements de fluides, de gaz (nuages)
~ conduction de la chaleur
Expérimentation souvent coûteuse, voire impossible (collision de véhicules, explosions)
simulations graphiques des phénomènes
repose sur les techniques d'animation.
animation = modification de scène au cours du temps
Scène tridimensionnelle composée de 3 types d'entités évoluant au cours du temps:
~ Objets
~ caméras
~ lumières
Les précurseurs
Le phénaskistiscope Joseph Plateau, 1833
zootrope W. G. Horner, 1834 praxinoscope Émile Reynaud 1877
Le numérique- les débuts
Le secret de la pyramide - Barry Levinson (1985) La Faim - Peter Foldes (1974)
Luxo. Pixar.(1986)
Le numérique
The adventures of André and Wally B.- John Lasseter (1984)
Jurassic Park –
Steven Spielberg (1993)
Geri's game - Jan Pinkava (1997)
Shrek - Dreamworks (2001)
Capture de Mouvement
Optique :
capteurs réflectifs (marqueurs) attachés au corps de la vraie personne.
positions des marqueurs positions correspondantes pour le modèle animé.
Ex : petits capteurs aux articulations d’une personne et on enregistre la position de ces capteurs selon plusieurs directions.
d’où la reconstruction des positions 3D de chaque point-clé à chaque instant.
Avantages : liberté de mouvement, pas de câblage.
Inconvénients : occlusions, difficulté de distinguer 2 marqueurs proches Solutions : plus de caméras, mais le coût devient prohibitif.
La plupart des systèmes opèrent avec 4-6 caméras.
Exemple de systèmes optiques: Elite, MultiTrax.
Magnétique :
une personne porte un ensemble de capteurs magnétiques (capables de mesurer leur relation spatiale par rapport à un transmetteur magnétique centralisé).
La position et l’orientation de chaque capteur sont utilisées ensuite pour faire mouvoir l’acteur digital.
=> synchronisation des récepteurs.
Ex : pour le mouvement du corps humain, 11 capteurs sont nécessaires:
· un sur la tête
· un sur chaque bras
· un sur chaque main
· un autre au centre de la poitrine
· un sur le bas du dos
· un à chaque cheville
· un sur chaque pied
On utilise la cinématique inverse pour calculer le reste de l’information nécessaire.
Les systèmes les plus populaires sont: Polhemus Fastrack et Ascension Flock of Birds
Capture de Mouvement
exemples
Caméra 1 Caméra 2 Caméra C
Point 1
Point 2
Point N
Mise en correspondance
N points Pj repérés dans C repères 2D Ri (xji,yji) N points 3D (xj,yj,zj) i=1..C, j=1..N
Animation par images-clés
Principe
En entrée :une série d'images à des temps donnés En sortie : les images intermédiaires par interpolation.
Ex : transformer une forme géométrique en une autre lors d'une animation.
A1/2
B1/2 D1/2 C1/2
A1 D1 C1 B1 A0 B0
C0 D0
T = 0 ¼ ½ ¾ 1
Animation par images-clés
Soient N1 et N2 les nombres de sommets des 2 lignes polygonales.
Si N1 > N2 alors
RT:=(N1-1) div (N2-1) RS:=(N1-1) mod (N2-1)
on ajoute RT points aux RS premiers segments et RT-1 aux autres.
N1 = 15
N2 = 7 RT=2,RS=2 N’2 = 15
T=0 ½ 1
Animation par images-clés
-La méthode de prétraitement vue pour les segments peut être étendue aux facettes d’objets 3D
-mais plus complexe car il faut assurer une correspondance entre facettes et
sommets. Il faut donc ajouter des facettes et des sommets pour que les 2 images clés en aient le même nombre (= morphing 3D).
morphing 2D : extension de la méthode des images-clés à une interpolation selon les pixels plutôt que les sommets de figures.
Animation par images-clés
Problème : si on interpole des positions
=>Interpolation paramètrique (paramètres de
position et de forme, lumière, caméra, etc…)
Animation procédurale
• Algorithme décrivant le mouvement
créer OBJET (...);
TEMPS = 0;
tantque Y > 0
Y = INITIALE – ½*G*TEMPS^2 deplacer (OBJET, X,Y,Z);
dessiner OBJET;
enregistrer l'image effacer OBJET
TEMPS:=TEMPS+1/25;
Ex : chute libre d’un objet
créer HORLOGE (...);
pour IMAGE:=1 a NB_IMAGES TEMPS:=TEMPS+1/25;
ANGLE:=A*SIN (OMEGA*TEMPS+PHI);
MODIFIER (HORLOGE, ANGLE);
dessiner HORLOGE;
enregistrer l'image effacer HORLOGE Ex : pendule
simulation
Squelette + habillage
Cinématique : directe/inverse
A
B directe
inverse
Interpolations
Linéaire : (1-t) A +t B Exemples :
A et B sont 2 points 3D dans les clés successives (points de l’objet, positions de caméra)
A et B sont 2 angles (articulation d’un squelette)
A et B sont deux intensités (variation de lumière)
Interpolations : linéaire
discontinuités au niveau de la dérivée, donc de la vitesse => animation
saccadée.
t 0 2 5 8
10 20 45 100
exemple: articulation d'un bras de robot caractérisée par un angle (t) . supposons :
t’ (2-1/25)/2=49/50 2 (2+1/25-2)/3=1/75 …
1*10/50+49*20/50=19.8 20 74*20/75+1*45/75=20.33 …
’≈a/t 0.2*25=5 0.33*25≈8.25
i
i i+1
i+1 i
(t') = (1-t') + t' avec t'= t-t t' 0,1
t -t
Interpolations : splines
Pi
Pi-1
Pi+1 Pi+2 TiI
TiO
( , , t P T T
i i iI,
iO) ( t
i1, P T T
i1,
iI1,
iO1)
2 3
1 1
( )
, ,
i i i
i i i i i
i i i i
t t t t t t
X t A B C D
i i i
avec i t
t t t t
Interpolations : splines
1
1 1
1 1 1
3( ) (2 )
2 3 2( ) ( )
i i i i
O
i i i i i i i
O O I
i i i i i i i
I O I
i i i i i i i i i
A P A P
A B C D P B iT
B iT C P P i T T
B C D iT D P P i T T
t ti
en posant s on peut écrire i
1 1 2 3 1
3 2
3 2
1
3 2
2
3 2
3
( ) ( ) ( ) ( ) ( )
( ) 2 3
( ) 2 3
( ) 2
( )
O I
i o i i i i
o
X t H s P H s P H s iT H s iT avec
H s s s
H s s s
H s s s s H s s s
3 2
1
2 2 1 1
1
3 3 2 1
' ( ) 1
0 0 1 0
1 0 0 0
i O
i I i
Pi c est à dire X t s s s Pi
iT iT
Splines de Hermite
Continuité
Pi Pi-1
Pi+1 Pi+2 TiI
TiO
Pi
Pi-1 TiI Pi+1 Pi+2
TiO
Pi Pi-1
Pi+1 Pi+2 TiI
TiO
G0 ou C0 continuité
G1 continuité
C1 continuité
=
= k
≠
Choix des vecteurs tangents
1) On choisit t
i= i
i i+1
, i=i, et [t ,t ]=[0,1]
i
On a la C1 continuité : splines de Catmull Rom
I O
i i
1 (Pi+1-Pi-1)
2) On choisit T =T = (Pi+1-Pi)+(Pi-Pi-1) =
2 2
Choix des vecteurs tangents
I O i
i i i+1 i i i-1 i
3) Tension
(1- )
On choisit T =T = (P -P )+(P -P ) 1,1 2
=1 =-1
contrôle « comment » la courbe se tend au point Pi. (courbe tendue, lâche).
Choix des vecteurs tangents
I i i
i i+1 i i i-1
O i i
i i+1 i i i-1 i
4) Continuité
(1+ ) (1- )
On choisit T = (P -P )+ (P -P )
2 2
(1- ) (1+ )
T = (P -P )+ (P -P ) 1,1
2 2
=-1 Ni C1, ni G1
contrôle la continuité au point Pi en direction et vitesse.
Ex : balle rebondissant sur un mur => discontinuité du mouvement au point d’impact, la balle ne freine pas avant de rencontrer le mur.
Choix des vecteurs tangents
I O i i
i i i+1 i i i-1 i
5) Biais
(1- ) (1+ )
On choisit T =T = (P -P )+ (P -P ) 1,1
2 2
=1 =-1
contrôle la direction de la trajectoire au point Pi. Ceci permet à l’animateur d’anticiper ou de retarder une position ou un
événement
Combinaison des 3
I i i i i i i
i i+1 i i i-1
O i i i i i i
i i+1 i i i-1
i i
(1- )(1+ )(1- ) (1- )(1- )(1+ )
T = (P -P )+ (P -P )
2 2
(1- )(1- )(1- ) (1- )(1+ )(1+ )
T = (P -P )+ (P -P )
2 2
, , 1,1
i
= Splines de Kochanek-Bartels
Abscisse curviligne
b b b 2 2
a a a
ds df
L= ds = .dt = .dt = x'(t) +y'(t) .dt
dt dt
Soit un arc paramétré C1 donné par f(t)=(x(t),y(t)) pour t dans [a,b].
déplacement infinitésimal
df
df=f(t+dt)-f(t)= .dt dt
Notons sa norme ds = longueur infinitésimale parcourue pendant l'intervalle de temps dt. Alors la longueur de l'arc est obtenue en sommant ces longueurs élémentaires
On résume cette formule en exprimant la longueur infinitésimale sous la forme ds2 = dx2 + dy2
i i+1 i
i+1 i
(t') = (1-t') + t' avec t'= t-t t' 0,1