Animation des humanoïdes - Département Informatique Cnam Paris

Transcription

Animation des humanoïdes - Département Informatique Cnam Paris
Les Humanoïdes
Présenté par : N’dri AHOUA – Décembre 2003
1
Plan de l’exposé
• Introduction
• Présentation des groupes de recherche et de leurs
projets sur les humanoïdes
• Différents types d’humains virtuels
• Modélisation des humanoïdes
• Spécification 3D des humanoïdes
• Animation des humanoïdes
• Application des humanoïdes
• Conclusion et perspectives
2
Introduction
Humanoïde = représentation graphique d'un être humain par un
ordinateur
Reproduire l’être humain dans un environnement virtuel = simulation du
mouvement humain :
=> tâche particulièrement complexe
Mise au point de nombreuses méthodes par différents groupes de
recherche : H-Anim, IRISA, CRYO, Mirlab, XD PRODUCTION
CEDRIC…
Problèmes :
•
intrinsèquement complexe
•
de cohérence dans la combinaison de mouvements
•
de complexité du mouvement du corps humain
3
Groupes de recherche et leurs projets
•
IRISA ( Institut de Recherche en Informatique et Systèmes Aléatoires) :
Projet SIAMES ( Synthèse d'Images, Animation, Modélisation et Simulation).
Simulation de systèmes dynamiques complexes afin de réaliser
des outils de modélisation et de contrôle pour l’animateur.
•
Cryo-Interactive de la société CRYO : projet «Humain Virtuel
Temps-Réel»
Création d'un module d'animations interactives d'un humain
virtuel.
– Les principales fonctions du module d'animation sont:
• la locomotion (marche, course), la préhension d'objet, le
mouvement des habits, etc.
•
Le working groupe H-Anim, créé dans le Symposium VRML 97.
Spécifications de la représentation des humains virtuels et de ses
comportements en VRML.
4
Groupes de recherche et leurs projets (suite)
•
MiraLab (Université de Genève)
Un laboratoire pluridisciplinaire travaillant sur la simulation
humaine virtuelle et les mondes virtuels.
•
XD PRODUCTION (Studio de création et d'animation d'images
virtuelles)
– Domaine d’activité :
• Production (films en image de synthèse),
• Recherche et développement (Cyberdome: capture
de mouvements, formes et textures),
• 3D sur Internet (XDNet : moteur 3d temps réel conçu
pour s'intégrer aux navigateurs internet)
•
CEDRIC (centre de recherche et d’études en informatique du CNAM)
5
Les différents types d’humains virtuels
Quatre types d’humains virtuels : d’après D.Thalmann « A New
Generation of Synthetic Actors »
• Les avatars
• Les acteurs guidés (manipulés par l'utilisateur
« marionnette »)
• Les acteurs autonomes (représentent un service ou un
programme « robot »)
• Les acteurs perceptifs et interactifs
6
Une notion : les degrés de liberté (DDL)
•
Nombre de variables pour spécifier un état physique
•
Vecteur d’états
–
ensemble de variables définissant toutes les configurations
possibles
–
forme une base dans l’espace d’états
–
Animation : chemin dans l’espace d’états
Exemple :
Une phalange, le genou = 1 degré de liberté
Le poignet….. = 2 degrés de liberté
Le cou, base du pouce = 3 degrés de liberté
7
Modélisation des humanoïdes : définition
Création de personnages dans un environnement virtuel en 3D
Intégration des données de ces personnages pour l’animation lors
de la spécification des structures articulées
Une donnée = un nœud qui peut être manipulé pour modifier
l’apparence d’un élément (une articulation).
Personnages modélisés = une structure articulée comportant
50 DDL.
La structure = {segments de longueur définie + des articulations
de 1, 2 ou 3 DDL}.
8
Modélisation du squelette humain
Il est composé :
•
de segments (les os)
•
des articulations (reliant les os)
os + articulations = structure articulée décrite par un graphe
orienté de corps rigides reliés par des liaisons mécaniques qui
définissent un schéma pour simuler les membres et les
articulations.
9
Modélisation des humanoïdes : synthèse
Représentation hiérarchique du squelette humain
Règle d’élaboration d’ un
arbre de transformation
Racine
• Un nœud de l’arbre possède
un père unique,
Noeud 0
Fils du noeuds 0
Noeud 1
Noeud 2
...
Noeud N
Noeuds frères
Feuille
...
...
Le squelette humain représenté par
des nœuds de transformation dont
l’ensemble constitue un arbre de
transformation
• Les nœuds frères ont un père
commun,
• Un nœud sans fils est une
feuille de l’arbre,
• Un nœud de l’arbre peut
posséder des nœuds fils et des
nœuds frères.
10
Spécification 3D des humanoïdes (d’après H-anim)
• L’ humanoïde : hiérarchie d’entités + différents comportements
(rotation des articulations, la déformation, la translation)
• Deux étapes pour définir la structure de l’humanoïde :
– mise en place d'une hiérarchie
– définition d'une enveloppe corporelle (la peau)
11
Spécification 3D des humanoïdes
Génération automatique de l'enveloppe
corporelle
Une première couche composée d'un
ensemble de metaballs modélisant les
muscles vient s'additionner au squelette de
départ.
le squelette humain défini au LIG (Lésions intraarticulaires du genou) [source……]
L'enveloppe est alors générée à partir de ces
primitives pour obtenir le résultat final lors du
mouvement du squelette.
12
Un exemple : H-anim (VRML)
• Le corps humain ={ segments (bras, pied etc..)}.
• Les segments sont reliés par une articulation (coude, poignet,
cheville).
• L’animation = modification des angles des articulations.
• Un fichier Humanoïde = {nœuds}
• Chaque nœud est défini par un prototype (PROTO)
– Joint = une articulation du corps.
– Segment = chaque partie élémentaire (non articulée) du
corps.
– Site = emplacement de la caméra et/ou modélisation d’un
point de référence lors de l’animation de point d’ancrage
d’un bijou.
– Displacer = représentation d’une action musculaire
– Humanoid = le conteneur général
13
Animation des humanoïdes
• Animer une image (cinéma, réalité virtuelle) ==> faire varier un
phénomène dans le temps par une procédure.
• Changement ayant un effet visuel ==> objet d'animation
• Objet d'animation : l’évolution de la position de cet objet, de
l'observateur ou d'une source lumineuse, modification de la
forme, de la couleur, de la transparence ou de la texture.
14
Animation des humanoïdes
Exemple d’humanoïde en mouvement
15
Différents types de mouvements pouvant être
simulés
- La locomotion
- Les mouvements corporels
- La préhension
- Les mouvements associés à des tâches complexes
- La génération de gestes
- Etc.
16
Principes de l’animation en informatique
• Mouvement = une séquence d’animation
(représentée à l’écran)
• Une séquence d’animation = succession d’images
présentées les unes après les autres
• Elles donnent une impression de mouvement du fait
de la persistance rétinienne de l’œil humain
• Pour une séquence d’animation il faut :
– Une modification des objets du monde virtuel/temps
– Transformer la représentation des objets et les afficher
17
Description des états d’une séquence
d’animation
Diagramme d’état d’une séquence d’animation
Différents états
•
Calcul de l’image
•
Modification de la configuration des objets en fonction du temps
•
Affichage de l’image (processus du double « buffering »)
18
Différentes méthodes utilisées en animation
• Trois principales méthodes sont utilisées
¾ La cinématique (production d’effet sans se préoccuper
des causes : comment le mouvement peut être
représenté)
¾ La dynamique (description des lois physiques qui lient les
causes et les effets )
¾ Calcul de mouvements à partir du mouvement (tout
mouvement peut être décrit à partir d’une base de
trajectoires préenregistrées)
19
Différentes techniques d’animation
• Trois principales techniques d’animation
¾ Animation par images clé « keyframing »
¾ Animation par capture de mouvements « motion capture »
¾ Animation par modèles physiques
20
Animation par images clé « keyframing » (1/2)
• Le « keyframing » = animation traditionnelle + interpolation entre scènes
intermédiaires de deux images clés
• Le principe d’interpolation
– Fournir des images à des instants donnés
– Le programme calcule les images intermédiaires par interpolation
(transformation d’une forme géométrique en une autre forme lors de
l’animation)
• Règle de l’interpolation
– Il faut certaines correspondances entre deux positions clés
successives (entre image de départ et image d’arrivée)
– Cas contraire : procéder à un prétraitement pour faire concorder
les deux positions clés
21
Animation par images clé « keyframing » (2/2)
• Exemple: une transformation de formes (le morphing)
• Le « morphing » = animation par des images calculées à
l’aide de fonctions continues (souvent linéaires)
Une interpolation 3D
22
Mise en œuvre du « keyframing »
Pour mettre en œuvre le « keyframing » il faut :
• Une horloge pour cadencer le calcul de l’animation et
spécifier la durée de l’animation
• Spécifier les moments clés de l’animation : c’est à dire
les moments caractéristiques (début, fin, …)
• Spécifier les valeurs clés de l’animation : point de
départ, arrivée, …)
• Un système d’interpolation : calcule à chaque moment
les valeurs caractéristiques de l’objet à partir des valeurs clés
23
Domaines d’utilisation du « keyframing »
p ro g ram m é
Jav a 3 D
d écrit
VRM L
L angage
K ey fra m in g
E n v iro n n em en t 3 D
3 d s m ax
24
VRML
• VRML (Virtual Reality Modeling Language) = langage de
description des scènes 3D adapté au web
•
Principes
L’unité de base est la scène.
Le format de ficher : type texte.
•
Concepts de base:
• Nœud: unité basique d’un fichier VRML.
• Prototype: patron pour construire un nouveau type de
nœud.
• Système d’événements: la possibilité d’émettre et/ou de
recevoir des événements d’autres éléments de la scène.
• Système de routage: permet la propagation des
25
événements entre les objets.
Exemple de fichier VRML uneTable.wrl
#VRML V2.0 utf8
DEF T Transform {
children [
Transform {
# plateau
translation 0.0 0.4 0.0
children
Shape {
appearance Appearance {
material Material { diffuseColor 0.8 0.8 0.8 }
}
geometry Box { size 1.3 0.15 1.3 }
}
}
Transform {
# pied 1
translation -.5 0.0 -0.4
children
DEF Pied Shape {
appearance Appearance {
material Material { diffuseColor 1.0 1.0 0.0 }
}
geometry Cylinder { height 0.9 radius .075 }
}
}
Transform {
# pied 2
translation .5
0.0 -0.4
children USE Pied
}
Transform {
translation
# pied 3
-.5 0.0 0.4
children USE Pied
}
Transform {
# pied 4
translation .5 0.0 0.4
children USE Pied
}
]
}
26
Le « keyframing » en VRML
• La structure générale du « keyframing » en VRML
• Les différents interpolateurs VRML
27
Animation en VRML
• Utilisation du mécanisme d'événements (eventIn eventOut..)
• Description des comportements dans un langage de
programmation (utilisation du nœud «Script» : Java Javascript
ou VRMLscript)
• Déclenchée par un événement utilisateur (détection d'un clic
souris : «capteurs» ou une horloge «TimeSensor»)
• Interpolateurs (pour générer l’animation entre deux images)
28
Animation en VRML : gestion des évènements
• Un événement = message contenant 1 valeur champ
considéré).
• Un nœud VRML est composé de champs de type:
– «eventIn» évènements en entrée
– «eventOut» évènements en sortie
– «exposedField » des évènements en E/S
– «field» des champs en lecture seule
• «Route» (Routage) = aiguillage des nœuds d’ E/S de même type
• «TimeSensor» = génération des événements correspondant à
des tics d'horloge à intervalles réguliers.
29
Animation en VRML : les instructions
FONCTION «keyframing »
Instructions VRML correspondantes
Horloge
TimeSensor
Durée de l'animation
Champ cycleInterval de TimeSensor
Moments clés
Champ key d'un interpolateur
Valeurs clés
Champ keyValue d'un interpolateur
Calcul d'interpolation
Interpolateurs de VRML
30
Animation en VRML : un exemple
• Conception
– humanoïde de sexe féminin conçu par le groupe H-anim
– Il est debout sur un terrain plat (position initiale)
– Un menu horizontal : Stop, Marcher, Courir, Sauter,
Marche_cercle
– La modification du pointeur = présence d’événement à
l’option.
– Un clic sur une option ==> déclenchement de l’événement
associé à cette option
31
Animation en VRML
• Démonstration
32
Java 3D : définition
• Java 3D = bibliothèque de classes pour créer des scènes 3D
(utilisation de formes complexes, d'éclairages, de textures,
d'animations, de sons)
• Le package Java 3D : extension du langage Java
• Utilisation des bibliothèques graphiques 3D existantes (les
standards OpenGL, DirectX … )
• Importation des graphes de scènes VRML
• Indépendant du matériel
33
Principe d’animation en Java 3D
• On a besoin de créer :
– Un «TransformGroup pour gérer des transformations des objets
3D
– Un objet «Alpha» précisant le nombre de tours et la vitesse du
mouvement
– Un «Interpolator» (sous classe de Behavior) construction d’une
interpolation du temps entre deux valeurs
– «Bounding» indiquant la zone modifiée
Syntaxe :
Les deux premiers sont reliés par :
RotationInterpolator(Alpha alpha, TransformGroup target)
puis void setSchedulingBounds(Bounds region)
lancé sur un «Behavior»
34
Interpolation en Java 3D
• Système d’interpolation
Alpha
intervalle
Interpolateur
Valeurs
Objet (TG)
• Organisation d’une animation
35
Les différents types d’interpolateurs
ColorInterpolator
Interpolation entre deux couleurs
définissant la composante diffuse du
matériau cible
PathInterpolator
permet l’interpolation entre les
différentes valeurs.
RotationInterpolator
Interpolation linéaire entre deux valeurs
définissant la composante angulaire de
rotation du TransformGroup cible.
ScalarInterpolator
Interpolation linéaire entre deux valeurs
définissant la composante de mise à
l'échelle uniforme du TransformGroup
cible
PositionIterpolator
Interpolation linéaire entre deux
positions définissant la composante de
translation du TransformGroup cible
36
Les transformations en Java 3D
• Transformations : utilisées pour positionner et animer une
forme 3D dans l'espace
• La classe «Transform3D» décrit une opération de translation,
de rotation ou d'homothétie
• Cette opération est associée à une instance de la classe
«TransformGroup» et ajoutée à l’arbre de la scène pour
l'appliquer sur une forme
37
Procédure d’animation d’un objet en Java 3D
•
•
Après la création de « TransformGroup » :
On crée un objet « Alpha » (fonction de rotation au cours du
temps : Alpha(int nombreDeBoucles, long duree) )
On crée un interpolateur (faisant référence à Alpha et l’objet
cible)
•
–
•
RotationInterpolator rotator = new
RotationInterpolator(…);
On crée un « scheduling » (région du mouvement )
–
•
BoundingSphere bounds = new BoundingSphere( new
Point3d(0.0,0.0,0.0), 100.0);
Ajout de l’interpolateur au graphe de scène
–
rotator.setSchedulingBounds(bounds); pour fixer la
région du mouvement de rotation à cette sphère
38
Un outil d’animation : 3d smax
• Logiciel de création, de modélisation, d’animation et de rendu
d’objet 3D
• C’est une application indépendante tournant sous le système
windows
•
•
Il permet la création des objets d'une scène, la modification de
ces objets ainsi que leur manipulation.
Les constituants fondamentaux d'une scène sont :
– La géométrie
– La lumière
– Les caméras
39
Interface de 3ds max
• L'interface du logiciel contient les informations relatives à:
– La modélisation et l'édition
– La définition des matériaux
– L'animation
– Le rendu
•
L'interface de 3D Studio Max contient huit zones principales de
travail
40
L’animation dans 3ds max
• Utilisation des modificateurs d’objets pour l’animation dans une
scène
• Enregistrement des paramètres de modifications
• Des outils permettant de manipuler les clés d’animation
– La vue piste: « Track View »
– La configuration du temps pour déterminer et mesurer la
durée de l’animation
• Des contrôleurs pour générer l’animation
41
Le « keyframing » dans 3ds max
• 3ds max permet l’animation par image clé « keyframing »
• Chaque image clé est défini par l’utilisateur
• Le programme calcule l’ensemble des images intermédiaires en
tenant compte des paramètres
• La technique de calcul utilisée est l’interpolation générée par les
différents contrôleurs
42
Les contrôleurs dans 3ds max
• Les contrôleurs = fonctions spécifiques qui gèrent des données
d’animation
– le stockage des valeurs d’animation
– Prise en charge des interpolations d’une valeur à une autre
• Un contrôleur est associé à un objet dont les paramètres
(spécifiés par le composant central) sont animés
• exception de « transformation » toujours affecté à tout
nouvel objet au moment de sa création
• Exemple : « Linear » (linéaire), « Smooth » (lissage)
43
Structure générique pour l’animation de type
« keyframing »
• Une structure générique des trois systèmes :
– VRML, Java 3D, 3ds max
Durée
Moments clés
Intervalles
Horloge
Interpolateur
Valeurs
Objet animé
Valeurs clés
44
Conclusion «keyframing »
• Contrôle de l’animation par l’utilisateur
• Demande une compétence de l’animateur
• Manque de fluidité dans le mouvement
45
Animation par capture de mouvements « motion
capture »
• Capture de mouvements = filmer un acteur dans un costume de
capteur effectuant des mouvements spécifiques
• Chaque geste des articulations (représentées sur le costume)
indique les postures clés du mouvement
• L’animateur analyse les mouvements et les adapte aux modèles
3D
• Un système de capture =
– { senseurs alimentant les données de position et
d’orientation à un ordinateur }
– Des caméras
– Du matériel et des logiciels de traitement
46
Animation par capture de mouvements « motion
capture » : un exemple
• Exemple d’animation par capture de mouvements
Capture du mouvement par la méthode optique et retranscription au
modèle 3D
47
Animation par capture de mouvements « motion
capture » : principe
• Enregistrement des actions de l’acteur
• Analyse des actions
• Réplication sur un objet 3D
– Directe (le bras humain contrôlant le mouvement du bras du
personnage 3D)
– Indirecte (contrôler la tête d’un personnage par la souris)
48
Les différentes étapes de la capture de
mouvements « motion capture »
• Planification du processus de capture
•
La capture de mouvement
• Nettoyage des données capturées
• Édition du mouvement
• Application du mouvement au personnage 3D animé. « Motion
Mapping »
49
Domaines d’utilisation de la capture de
mouvements
Optique
Système de capture
de mouvements
Magnétique
Mécanique
Capture de mouvements
Traitement des
données capturées
Mocap
50
Capture de mouvements : Système mécanique
• Exemple
• Des capteurs capables d’enregistrer leur
propre position.
• Ce sont des exosquelettes
• Chaque articulations est munie d’un
potentiomètre mesurant l’angle au niveau des
articulations
• Fonctionne sans fil
• Pas de perturbation due à l’environnement.
Un capteur mécanique de mouvements, le système
« Gipsy2 » de Analogus
51
Capture de mouvements : Système optique
• Exemples : capture avec marqueurs
Le cyberdome d’Angoulême
muni de caméra
Acteur en action
la reconstitution des
mouvements
52
Capture de mouvements : Système magnétique
• Capteurs magnétiques (6 à 11)
• Enregistrement des positions des
marqueurs dans l'espace à l'aide de
détecteurs.
• Pas de problèmes de masquage
• Limitation d’espace
• Encombrement des fils
Gypsy Motion Capture System
53
Édition des mouvements capturés
• Pourquoi a-t’on besoin d’éditer les données capturées ?
– La réutilisation
– La création de mouvements difficilement faisables
– L’imperfection de la réalité
– Changement d’intention
54
Structure générique pour la capture de
mouvements
Caméras
Marionnette
Données
Mapping
Acteur
Objet animé
Modèle
55
Animation par capture de mouvements « motion
capture »
• Démonstration
56
Animation par modèles physiques
• Définition des « lois du mouvement » et permettre le
programme d’engendrer le mouvement
• Les « lois du mouvement » :
– Une procédure à exécuter (équation de la trajectoire)
• V = Fpas * Lpas (v = vitesse, Fpas Lpas = fréquence et
longueur des pas)
• Des lois de la physique (y =100 –5t2)
• Des lois comportementales
57
Domaines d’utilisation du modèle physique
Procédurale
Type d’animation
Par contrainte
Modèle physique
Environnement d’animation
Renderware
58
L'animation procédurale
• Description du mouvement par un programme
• Prise en compte des espaces physiques et dynamiques des
mouvements
• On distingue :
– Les méthodes « cinématiques » (reproduction des
mouvements sans connaître les causes)
– Modèle « dynamique » (qui s’intéresse aux causes)
– Le calcul de mouvement à partir d’autres mouvements (tout
mouvement peut être décrit à partir d’une base de
trajectoires préenregistrées)
59
L'animation par contrainte
• Cinématique :
– Incorporation de positions clés
– Fonction de comportement permettant au personnage de
réagire à l’environnement
– La dynamique inverse pour déterminer les forces au
mouvement
• Énergétique (fonction énergétique)
• Dynamique (spécification des contraintes géométriques)
• Espaces-temps : « comment » (spécification du mouvement,
exécution du mouvement, la structure physique)
60
Application des Humains virtuels
• Sur le web
Première apparition d'une présentatrice
virtuelle d'informations sur internet (19
avril 2000)
http://www.ananova.com
• Environnement léger
The Personal Virtual Human Assistant
Virtual Reality Lab (VRlab), EPFL
61
Conclusion et perspectives
• Intégration effective des humanoïdes dans la 3D
• Les problèmes de mouvements sont en passe d’être résolus
– Par la combinaison des différentes techniques d’animation
– Par la performance des outils
• L’idéal serait de créer des avatars autonomes, intelligents,
capables de simuler le comportement humain
• La possibilité d’utiliser ces avatars sur les environnements légers
62
Bibliographie
•
[Far 03] J.M. Farinone, Java et le multimédia, 2003
•
[AaAVH1998] : Tolga K. Capin, I. S. Pandzic, N. Magnenat Thalmann, D.
Thalmann, Realistic Avatars and Autonomous Virtual Humans in VLNET
Networked Virtual Environments, (1) Computer Graphics Laboratory,
Lausanna, 1999
• http://cedric.cnam.fr/~farinone/CCAM/java3D.pdf
• http://cedric.cnam.fr/~farinone/CCAM/java3D.pdf
• http://www.motion-capturesystems.com/magnetic_motion_capture_km_kk.html
• http://www.ananova.com
• http://ligwww.epfl.ch/
63
Les humanoïdes
• Questions ??????????
64
Annexes
Exemple d’interpolation : A Æ B et B Æ A
•
•
•
On fournit le point de départ A, point d’arrivée B, puis celui de A
Le programme calcule les points intermédiaires de la trajectoire
Animation de 10s : Si A--ÆB =5s, et XA =0, XB =10
t = 0 x = 0, t = 5 x = 10 ==> x = 2t
t = 5 x = 10, t = 10 x = 0 ===> x = -2(t-5)+10 (linéaire car x = at+b)
65