Animation Habillage - ufrsciencestech.u-bourgogne.fr · studio Ghibli (2001) Le numérique The...

Post on 30-Apr-2018

217 views 2 download

transcript

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