Upload
dinhtu
View
217
Download
2
Embed Size (px)
Citation preview
AnimationHabillage
M Neveu
Les précurseursLe 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 Voyage de Chihiro - H. Miyazaki - studio Ghibli (2001)
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)
Pixar
BUF- 2006
Mac Guff - 2006
The Minions - Illumination Entertainment / Illumination Mac Guff (2015)
Le petit prince - M. Osborne - On Animation Studios (2015)
Ice Age - Blue Sky Studios (2002)
Applications
Jeux video
Audiovisuel
Visualisation scientifique Simulation
Serious games
Les différentes techniques
• Interpolation entre positions clés– Très souple ma is fastidieux
• Capture de mouvements– Grande qualité mais spécifique
• Édition de mouvement– Pratique mais limité et risqué
• Modèles générateurs– Automatique mais complexe
• Idéalement, automatisé avec un contrôle précis de l’animateur
Capture de Mouvement
Optique : capteurs réflectifs (marqueurs) attachés au corps de la vraiepersonne.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
Capture de Mouvement
Avec des caméras de type Kinect : ● Pas de marqueurs● Calibrage ● Surfaces lambertiennes● Peu couteux et logiciels nombreux
MOCAP : environnement contraint, avec ou sans marqueurs
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,yj
i) N points 3D (xj,yj,zj) i=1..C, j=1..N
Animation par images-clésPrincipeEn entrée :une série d'images à des temps donnésEn 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ésSoient 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 N’2 = 15RT=2,RS=2
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
• A lgorithme décrivant le mouvement
créer OBJET (...);TEMPS = 0;tantque Y > 0
Y = INITIALE – ½*G*TEMPS^2deplacer (OBJET, X,Y,Z);dessiner OBJET;enregistrer l'imageeffacer OBJETTEMPS:=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'imageeffacer HORLOGE
Ex : pendule
simulation
Squelette + habillage
Interpolation de positions clefs
• Compléter lorsqu’on a assez d’information• Interpoler position, angle, forme,
transparence…• Demande une grande technique
Fonctions d’interpolation
• Modifications des points de contrôle• Influence plus ou moins locale• Interpolation vs approximation• Forte continuité ou points de
rebroussement• Dérivées réglables (tension, biais
contrôle)Splines de Catmull-Rom de Kochaneck-Bartels, etc…
Interpolations : splines
Pi
Pi-1
Pi+1 Pi+2TiI
TiO
( ti , P i ,T iI ,T i
O) ( ti+1 , P i+1 ,T i+1I ,T i+1
O )
X (t )=Ai+Bi( t−tiΔi )+C i( t−tiΔi )2
+Di( t−t iΔi )3
avec Δi=t i+1−t i et t∈[ ti , ti+1]
Paramétrisation de la courbe
Paramétrisation●Par morceaux
●Contrôle de la vitesse : on introduit distance = f(temps)
T0 T1 T
t
1
0
P
P1
P0
0 1 t
P
P1
P0
T0 T1 TP(T )=P( t(T ))
P(T )=P(d (t (T )))
T0 T1 T
t
1
0
d
1
0 0 1 t
P
P1
P0
T0 T1 T
P
P1
P0
0 1 d
Paramétrisation de la courbe
T0 T1 T
t
1
0
d
1
0 0 1 t
P
P1
P0
T0 T1 T
P
P1
P0
0 1 s-1
0 1 t
P
P1
P0
s-1
1
0 0 1 d
« Redressement » avec abcisse curviligne s (t )=∫0
t
∥dPdu
∥du
Dt cst → DP non cst
P(T )=P(s−1(d ( t(T ))))
Paramétrisation de la courbe
• Vitesse non constante• Reparamétrisation par la
longueur d’arc• Calcul analytique ou discret• Vitesse réglable• Départ et fin souples (Ease
In/Out)
Effets
• Anticipation des mouvements• Rebonds, points d’inflexion
• Adapter la vitesse à la masse• Etirements / écrasements (volume constant)• Bruiter le mouvement
Effets
/home/mneveu/Vidéos/deformations/pendule.mpeg
Squash and Stretch
• Extension/écrasement donnent de la vie (les êtres vivants se déforment quand ils se déplacent)
• Souvent : volume constant
Squash & Stretch
Timing
• Le nombre d 'inbetweens donne un aspect plus ou moins lisse au mouvement
• Utilisé pour rendre +/- rapide, +/-dynamique, +/- heurté,....
• Change l'expressivité
Timing
Anticipation
•préparation physique•pour expliquer•pour attirer l'attention
•pour accélérer le mouvement qui suit •pour souligner la difficulté d'une action
Anticipation
Follow through, overlapping action
•FT : terminaison d'une action (jambe reste en l'air après un tir au foot)•succession d'actions : yeux-tête-corps, bras-avantbras-main, ….•Découpage de parties du corps par FTOA
Follow through
Slow in slow out•Flow-chart pour placer les images intermédiaires
•Gestion de la continuité du mouvement par splines (accélération/ralentissement)•Corrections
Lissage de la progression : accélération (ease-in) et décélération (ease-out)
Contrôle de la vitesse
Slow in Slow out, Ease in Ease out
Récréation
Geri's game - Jan Pinkava (1997) Luxo - John Lasseter (1986)
The Adventures of André and Wally B (1984)
For the Birds - Ralph Eggleston (2000)
Cinématique directe
• Objet décomposé en une hiérarchie de repères
• Humain, animaux, robots…• Interpolation de positions• Représentation des orientations
–Matrice 3x3 et angles d 'Euler mal adaptés– Utiliser les quaternions et l’interpolation par
Slerps• Composition depuis la racine
Cinématique inverse
• Mouvement fixé par la position d’une extrémité
Modèles hiérarchiques
Modélisation procédurale
• Comme le bonhomme de neige• Problèmes :
– Modèle de plus en plus complexe– Écrire le code sans erreurs– Modifier le modèle– Manipuler le modèle
Modèle hiérarchique
• Modèle divisé en morceaux• Relations entre les morceaux• Paramètres pour :
– Forme des morceaux (écrasement)– Position des morceaux (inclinaison)
• Hiérarchie du modèle :– Base se déplace : tout suit– Torse se déplace : tête et boutons suivent– Tête se déplace : yeux et nez suivent
/home/mneveu/Vidéos/deformations/bonhommeneige.mpeg
Hiérarchie de nœuds
• Chaque nœud :– Transformation en coordonnées locales– Modèle simple en coordonnées locales– Dessin des enfants (qui héritent des
coordonnées locales)
• Après le nœud :– Retour aux coordonnées locales précédentes– Couleur, matériau, style, etc. ?
• Pas fixé
Bonhomme de neige
Base
Torse
Bouton3Bouton1 Bouton2 Tête
Œil2Œil1Nez
©R. Barzel, 2002
Personnage -Squelette
-Hanches
-Hanche1
-Buste
-Buste1
-Cou
-Tête
-Buste2
-Epaulegauche
-Avbrasgauche
-Brasgauche
-Maingauche
-Buste3
-Epauledroite-Avbrasdroit
-Brasdroit-Maindroite
-Hanche2-Cuissegauche
-Jambegauche-Piedgauche
-Hanche3-Cuissedroite
-Jambedroite-Pieddroit
Descente de l’arbre• Méthode simple:
void draw(node) {glPushMatrix();glTranslate(…,…,…);glRotate(…,…,…);drawGeometry(node);for (i=0; i<numChildren; i++) draw(children[i]);glPopMatrix();
}
• Convient bien aux langages à classe (Java, C++)– Méthode de base object.draw(),…
Intérêts des arbres
• Structure hiérarchique sur l’objet• Boites englobantes :
– Construites hiérarchiquement– Collision, contact– Affichage/LOD– Sélection à la souris
• Édition interactive du modèle
Inconvénients des arbres
• Trop limité :– Morceaux bien distincts– Trous, pénétration, discontinuités– Besoin de suivre toute la hiérarchie
• Deux extensions : – Graphes de scène– Squelette
Graphes de scène
• issus de l'architecture des boîtes à outils 3D [Open Inventor ~ 1990] .
• avec des librairies graphiques de bas niveau, manipulation d'entités de plus haut niveau
• Principe : graphe acyclique orienté pour organiser hiérarchiquement une scène 3D
• structure arborescente manipulée par sa racine ; nœud = un élément de la scène à représenter
Graphes de scène
• avantages et possibilités : adéquation avec la programmation objet et
bonne structuration de la scène; optimisation et simplification de la gestion
de l'ordre d'affichage et du détourage («clipping»);
transmission et partage aisés du contexte graphique (propriétés) entre nœuds parents et enfants.
Graphes de scène
• Nœuds distincts :• Caméra• Sources lumineuses• Transformations • Groupes• Surfaces • Matériaux
• Surfaces simples– Sphère, cône, cylindre, cube…– Paramètres donnés par transformation précédente
(a) présente un graphe de scène ne représentant que les objets géométriques de
la scène. Cette visualisation permet d'appréhender clairement l'organisation de la scène.
(b) est une représentation complète d'un graphe de
scène, faisant apparaître les
transformations et autres nœuds graphiques.
Graphe de scène OpenInventor
Graphe de scène Java3D
Alias|Wavefront « SBD »
Squelette
• Système contraint• Pas de géométrie, que des « os »
©R. Barzel, 2002
Squelette
• Manipulation directe• Cinématique inverse• Skinning pour construire le modèle
Skinning
Skinning
• Un objet autour de chaque « os » :
Gap
Skinning
• Joindre les objets :
Étirement
Skinning
• Sommets intermédiaires• 50/50 pour chaque os• Pincement visible
Skinning
• Sommets intermédiairesPoids :
33/66, 50/50 et 66/33
Skinning: les maths
• Modèle 3D plus squelette• Chaque sommet est attaché à un ou
plusieurs os– Somme des poids = 1
• Pose « au repos »– Modèle non déformé
• Pose « animée »– Position squelette donnée– trouver position des sommets
Utilisation du barycentre en skinning
Modélisation d'un squelette par des os (bones).Les sommets (vertices) de la peau aux articulations sont attachés à plusieurs os (pondérations wi).Ils subissent donc une combinaison pondérée de transformations:
Illustration du skinning sur une articulation pliée à 90°
Principe
• Sommet v, attaché à l’os J1. Au repos :
J1
J0
y
x
v
J1
J0
y
x
v
Principe
• Nouvelle position du squelette=>Trouver
nouvelle position du sommety
x
v'
vy
x
v'
v
Principe
• On transforme le sommet v de l’espace du modèle dans l’espace lié à l’os
• Le sommet est fixe par rapport à l’os, donc on peut bouger le squelette
• Re-transformation dans l’espace du modèle ce qui donne les nouvelles coordonnées du sommet,v’
Principe
• Sommet, dans l’espace lié à l’os :
J1
J0
y
x
v
J1
J0
y
x
v
Principe
y
x
v'
vy
x
v'
v
Sommet toujours dans la même position, quelle que soit la position du squelette
Principe
• Retour à l’espace du modèle, position du sommet
y
x
v'
vy
x
v'
v
Maths :
• Au repos, Xi position de la base de l’os i (translation)
X0
y
x
X1
v
X0
y
x
X1
v
Maths :
Q0
y
x
Q1
v
Q0
y
x
Q1
v
Qi rotation de l’os i
J1
J0
y
x
v'
J1
J0
y
x
v'
Position à l’équilibre de l’os Ji Produit matriciel des translations et rotations depuis la racine
j
iiij
0
QXB
Maths :
• On déplace le squelette (animation) : Ti la translation pour l’os i, Ri sa rotation
T0
y
x
T1
R0
R1
v'
T0
y
x
T1
R0
R1
v'
Maths :
• Pose actuelle décrite par la matrice :•
• similaire à la matrice de la pose au repos :
j
iiij
0
RTP
j
iiij
0
QXB
Maths :
• Interpolation pour les sommets qui dépendent de plusieurs os :
v j=(∏i=0
j
Pi)(∏i=0
j
Bi)−1
v
v k=(∏i=0
k
Pi)(∏i=0
k
Bi)−1
v
v=w j v j+wk v k avec w j+wk=1
- Multiplication une fois pour toutes de v par Bj-1 pour se ramener dans l’espace lié à l’os (au repos)
- Puis multiplication du résultat par Pj pour se ramener dans l’espace du modèle, dans la pose actuelleCe qui nous donne :
- Calculs effectués pour chaque sommet du modèle- Tracé des sommets obtenus- Interpolation des positions pour les sommets qui dépendent de plusieurs os
v'=(∏i=0
j
Pi)(∏i=0
j
Bi)−1
v
v'=(∏i=0
j
Pi)(∏i=j
0
Bi−1) v
Exemple: v' = P0P1B1−1B0
−1v