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