Les Humanoïdes - deptinfo.cnam.frdeptinfo.cnam.fr/Enseignement/DEACAM/animation... · 4 Groupes de...

Preview:

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)

Recommended