Vous êtes sur la page 1sur 9

Animation personnage 3D (1)

 1ère manière d’animer un personnage


 Série de maillage correspondant à des position
clés de l’animation
Animation de personnage
Interpolation de maillage
basée squelette


Affiche : mesh1, mesh2, mesh3, mesh4, mesh1, mesh2, etc.

Alexandre Meyer
M2pro

1 M2R 2

Animation personnage 3D (2) Animation personnage 3D (2)


 2e manière d’animer un personnage  Interpolation de positions clefs du squelette
 Personnage 3D = 1 squelette + 1 maillage
(+texture+etc.)

M2R 3 M2R 4

Squelette Squelette = arbre


 Pas de géométrie, que des « os »

M2R 5 M2R 6

1
Squelette = arbre Squelette : parcours de l’arbre
1 nœud de l’arbre = 1 joint

 une matrice relative au père
 Méthode simple:
void draw(node) {
 Souvent Matrice = rotation + translation
 Rotation = orientation de l’os
glPushMatrix();
 Translation  longueur de l’os glTranslate(…,…,…);
 La matrice est contrainte selon le type de joint glRotate(…,…,…, …);
 Ex. coude simple = 1-DOF (degre of freedom) drawGeometry(node);
 Os de longueur fixe  translation constante durant anim for (i=0; i<numChildren; i++)
draw(children[i]);
glPopMatrix();
}

M2R 7 M2R 8

Intérêts des arbres Squelette


 Structure hiérarchique sur l’objet  Manipulation (cinématique) directe
 L’épaule tourne  tout le bras tourne  Angles  squelette en 3D
 Boites englobantes :  Animation
 Construites hiérarchiquement  Skinning pour construire le modèle
 Collision, contact  Cinématique inverse
 Affichage/LOD  Position extrémité  calcul angles
 Sélection à la souris
 Édition interactive du modèle

M2R 9 M2R 10

Animation par positions clés du squelette Exemple de fichier BVH …


 Animation par position clés (key framing) Format de fichier : BVH
 Position initiale = un squelette à J joints …
 Une pose = J rotations (avec 1 rotation=1 angle, 2
angles ou 3 angles) + démo avec Blender (cf. TP)
 Une animation = n poses

M2R 11 M2R 12

2
Introduction “Mesh Skinning” Introduction “Mesh Skinning”
Supposons qu’un artiste nous produit un modèle correspondant au squelette
Ou inversement il produit un squelette correspondant à un maillage donné
Problème : comment animer le maillage en fonction du squelette
 Déformer le maillage en fonction des
Une réponse possible : skinning mouvement du squelette
 Vu comme la peau qui se déforme au
dessus du squelette

M2R 13 M2R 14

Skinning Skinning
 Maillage 3D + squelette  Sommet(vertex) du maillage associé à un os
 Chaque sommet est attaché à un ou  Déplacement de l’os  le maillage suit
transformation des sommets
plusieurs os 

 Somme des poids = 1


 Pose « au repos »
 Maillage non déformé
 Pose « animée »
 Position squelette donnée
 Trouver position des sommets

M2R 15 M2R 16

Comment ça marche (1) Comment ça marche (2)


 Sommet v, attaché à l’os J1. Au repos :  Nouvelle position du squelette
 Trouver nouvelle position du sommet

y v y v

v'
J1
J0

x x
© J. Gregory,
M2R 2003
17 © J. Gregory,
M2R 2003
18

3
Comment ça marche (3) Comment ça marche (4)
 On transforme le sommet v :  Passage du sommet v du repère du
 De l’espace du modèle (ou Monde) modèle (monde) dans l’espace lié à l’os
 Dans l’espace lié à l’os (local) (local)
 Le sommet est fixe par rapport à l’os
v
 Donc on peut bouger le squelette y

 Re-transformation dans l’espace du


modèle/monde J1
 Donne nouvelles coordonnées du sommet,v’ J0

x
M2R 19 © J. Gregory,
M2R 2003
20

Comment ça marche (4) Comment ça marche (5)


 Sommet, dans l’espace lié à l’os (local)  Sommet toujours dans la même position,
quelle que soit la position du squelette

y v y v

v'
J1
J0

x x
© J. Gregory,
M2R 2003
21 © J. Gregory,
M2R 2003
22

Comment ça marche (6) Avec des maths


 Retour à l’espace du modèle (monde),  Xi position de la base de l’os i (translation)
position du sommet par rapport à l’os père i-1

y v y v

v'
X1

X0
x x
© J. Gregory,
M2R 2003
23 © J. Gregory,
M2R 2003
24

4
Avec des maths (2) Avec des maths (3)
 Qi rotation de l’os i par rapport à l’os  Position au repos de l’os Ji
père i-1  Produit matriciel des translations et rotations
depuis la racine :
j
repos
y v B j = ∏ X i Q i = Matrice Monde< − Local
i =0

Q1 X i Q i = MatriceLocal (i −1)< − Local (i )


Q0

x
© J. Gregory,
M2R 2003
25 M2R 26

Avec des maths (4) Avec des maths (5)


 On déplace le squelette (animation) :  Ti la translation pour l’os i, Ri sa rotation :

y y

v' R0 v'
J0
T0
J1 T1 R1

x x
© J. Gregory,
M2R 2003
27 © J. Gregory,
M2R 2003
28

Avec des maths (6) Avec des maths (7)


 Pose actuelle décrite par matrice :  Multiplication de v par Bj-1 pour se
j ramener dans l’espace lié à l’os/local (au
animation
P j = ∏ Ti R i = MatriceMonde< − Local repos)
i =0  Une fois pour toutes
 Puis multiplication du résultat par Pj pour
similaire à la matrice de la pose au repos :
se ramener dans l’espace du
modèle/monde, dans la pose actuelle
j
B j = ∏ X i Q i = MatriceMonde<− Local
repos

i =0

M2R 29 M2R 30

5
Avec des maths (8) Avec des maths (9)
 Ce qui nous donne, si v est influencé par  Calculs effectués pour chaque sommet du
l’os j modèle
 Tracé des sommets obtenus
v′ = P j B −j 1 v  Interpolation des positions pour les
sommets qui dépendent de plusieurs os
= Matrice animation Monde<− Local ×
Inverse( Matrice repos Monde< − Local ) × v

M2R 31 M2R 32

Poids Smooth Skinning


 Sommets(vertex) modifiés par plusieurs os  Un sommet V est influencé par plusieurs os
 Moyenne pondérée des déplacements  Ici l’os i et l’os j
V
 Ajuster les poids

Vi
Vj Sommet V =
Os i
moyenne pondérée
des sommets Vi et Vj
Os j

M2R 33 M2R 34

Skinning : en résumer Skinning : en résumer

n  Pour les normales:


v′ = ∑ wi M i v avec ∑ wi = 1
i
N
n′ = ∑ wi M i−1 n
T
avec ∑w i =1
i
i i

où: N est le nombre de matrice
n est le nombre de matrices n est la normale
v est la position du sommet wi est le poids associé
T
M i−1 est la transposé inverse de la matrice Mi
wi est le poids associé
M i est la matrice de transformation
M2R 35 M2R 36

6
Skinning Skinning: limitations
Le skinning que nous venons de voir est le
 Problème : étant donné un maillage Smooth skinning.
 Comment trouver un squelette appropriée
 Pour chaque point du maillage, comment
trouver le ou les os associés? + poids?
 Différentes pistes
 Artiste à la main
 Squelette : avec une triangulation de Delaunay
 Poids
 Distance à l’os (cf. TP1 Blender)
 Diffusion de la chaleur [cf. SIGGRAPH2007]

M2R 37 M2R 38

Skinning++
 Puisque problème avec smooth skinning
Skinning++  Autres réponses
 Skinning + FFD
 Skinning classique avec dual quaternion
 « Simulation » de la déformation de la peau
 [Larboulette05]: cherche à conserver une surface
de peau constante
 en utilisant des muscles: réaliste mais lourd en
calcul (cf. transparents suivants)
 etc.

Problème avec le smooth skinning classique


M2R 40

Skinning+ FFD Skinning+FFD : résultat


 Placer squelette simplifié sur modèle
 Squelette porte FFD

Smooth skinning Skinning + FFD

M2R 41 M2R 42

7
Skinning : dual quaternion “Dynamic Wrinkles” [Larboulette05]
 Quasiment identique au smooth skinning
 Conservation de l’aire de la surface durant la pliure
 Les rotations et translation sont regroupés
Par un système de masse-ressort peu dense donc
dans des quaternions++ = dual quaternions 
peu couteux à résoudre
dont l’interpolation se passe mieux

Smooth skinning Dual quaternion


VIDEO M2R 43 M2R 44

Résultats : “Dynamic Wrinkles” Résultats : “Dynamic Wrinkles”

Skinning classique

Dynamic
Wrinkles

M2R 45 VIDEO M2R 46

Simple Anatomical Models Skin: Simple Anatomical Models


 Muscles are attached to bones, sometimes with  Complex musculature
tendons as well can be built up from lots
 The muscles contract in a volume preserving of simple primitives
way, thus getting wider as they get shorter

M2R 47 M2R 48

8
Skin: Simple Anatomical Models Skin: Detailed Anatomical Models
 Skin can be attached to the muscles with  One can also do detailed simulations that
springs/dampers and physically simulated accurately model bone & muscle
with collisions against bone & muscle geometry, as well as physical properties
 This is becoming an increasing popular
approach, but requires extensive set up

 Check out cgcharacter.com

M2R 49 M2R 50

Skin: Detailed Anatomical Models

VIDEO

M2R 51

Vous aimerez peut-être aussi