Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
Les Humanoïdes
Présenté par : N’dri AHOUA – Décembre 2003
2
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
3
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
4
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.
5
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)
6
Les différents types d’humains virtuels
Quatre types d’humains virtuels : d’après D.Thalmann « A NewGeneration 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
7
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é
8
Modélisation des humanoïdes : définition
Création de personnages dans un environnement virtuel en 3DInté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}.
9
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.
10
Modélisation des humanoïdes : synthèse
Représentation hiérarchique du squelette humain
Règle d’élaboration d’ un arbre de transformation
• Un nœud de l’arbre possède un père unique,
• 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.
Racine
Noeud 0
Noeud 1 Noeud 2 Noeud N...
... ...Noeuds frères
Fils du noeuds 0
Feuille
Le squelette humain représenté par des nœuds de transformation dont l’ensemble constitue un arbre de transformation
11
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)
12
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.
L'enveloppe est alors générée à partir de ces primitives pour obtenir le résultat final lors du mouvement du squelette.le squelette humain défini au LIG (Lésions intra-
articulaires du genou) [source……]
13
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
14
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.
15
Animation des humanoïdes
Exemple d’humanoïde en mouvement
16
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.
17
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
18
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 »)
19
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)
20
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
21
• 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
Animation par images clé « keyframing » (1/2)
22
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
23
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
24
Domaines d’utilisation du « keyframing »
K eyfram ing
L angage
E nvironnem ent 3D 3ds m ax
program m é Java 3D
décrit V R M L
25
VRML
• VRML (Virtual Reality Modeling Language) = langage de description des scènes 3D adapté au web
• PrincipesL’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 événements entre les objets.
26
Exemple de fichier VRML uneTable.wrl
#VRML V2.0 utf8DEF T Transform {children [
Transform { # plateautranslation 0.0 0.4 0.0childrenShape {
appearance Appearance {material Material { diffuseColor 0.8 0.8 0.8 }
}geometry Box { size 1.3 0.15 1.3 }
}}
Transform { # pied 1translation -.5 0.0 -0.4childrenDEF 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 { # pied 3
translation -.5 0.0 0.4
children USE Pied
}
Transform { # pied 4
translation .5 0.0 0.4
children USE Pied
}
]
}
27
Le « keyframing » en VRML
• La structure générale du « keyframing » en VRML
• Les différents interpolateurs VRML
28
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 Javascriptou 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)
29
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.
30
Animation en VRML : les instructions
Interpolateurs de VRMLCalcul d'interpolation
Champ keyValue d'un interpolateurValeurs clés
Champ key d'un interpolateurMoments clés
Champ cycleInterval de TimeSensorDurée de l'animation
TimeSensorHorloge
Instructions VRML correspondantesFONCTION «keyframing »
31
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
32
Animation en VRML
• Démonstration
33
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
34
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»
35
Interpolation en Java 3D
• Système d’interpolation
Alpha Interpolateur Objet (TG)intervalle Valeurs
• Organisation d’une animation
36
Les différents types d’interpolateurs
Interpolation linéaire entre deux positions définissant la composante de translation du TransformGroup cible
PositionIterpolator
Interpolation linéaire entre deux valeurs définissant la composante de mise à l'échelle uniforme du TransformGroupcible
ScalarInterpolator
Interpolation linéaire entre deux valeurs définissant la composante angulaire de rotation du TransformGroup cible.
RotationInterpolator
permet l’interpolation entre les différentes valeurs.
PathInterpolator
Interpolation entre deux couleurs définissant la composante diffuse du matériau cible
ColorInterpolator
37
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
38
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
39
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 deces objets ainsi que leur manipulation.
• Les constituants fondamentaux d'une scène sont :– La géométrie– La lumière– Les caméras
40
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 detravail
41
L’animation dans 3ds max
• Utilisation des modificateurs d’objets pour l’animation dans unescè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
42
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
43
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)
44
Structure générique pour l’animation de type « keyframing »
• Une structure générique des trois systèmes :– VRML, Java 3D, 3ds max
Horloge Interpolateur Objet animé
Durée Moments clés
Valeurs clés
Intervalles Valeurs
45
Conclusion «keyframing »
• Contrôle de l’animation par l’utilisateur
• Demande une compétence de l’animateur
• Manque de fluidité dans le mouvement
46
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
47
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
48
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)
49
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 »
50
Domaines d’utilisation de la capture de mouvements
Optique
Capture de mouvements
Système de capture de mouvements
Traitement des données capturées
Magnétique
Mécanique
Mocap
51
Capture de mouvements : Système mécanique
• 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.
• Exemple
Un capteur mécanique de mouvements, le système « Gipsy2 » de Analogus
52
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
53
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 filsGypsy Motion Capture System
54
É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
55
Structure générique pour la capture de mouvements
Mapping Données Objet animé
Caméras Marionnette
Modèle Acteur
56
Animation par capture de mouvements « motion capture »
• Démonstration
57
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
58
Domaines d’utilisation du modèle physique
Modèle physique
Type d’animation
Environnement d’animation Renderware
Procédurale
Par contrainte
59
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)
60
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)
61
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
62
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
63
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-capture-systems.com/magnetic_motion_capture_km_kk.html
• http://www.ananova.com
• http://ligwww.epfl.ch/
64
Les humanoïdes
• Questions ??????????
65
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 = 2tt = 5 x = 10, t = 10 x = 0 ===> x = -2(t-5)+10 (linéaire car x = at+b)