UNE MÉTHODE COMPORTEMENTALE DE MODÉLISATION ET D´ANIMATION DU CORPS HUMAIN
Michel BRET
Professeur en A.T.I., Université PARIS8 1998
Article refusé par IMAGINA en 1998
1 Résumé
2 Introduction
3 Travaux antérieurs
4 Le langage
5 Le squelette
6 Les muscles
7 Les organes et les tissus graisseux
8 La peau
9 Éléments secondaires
10 L´animation
11 Génération de comportements par des réseaux neuronaux
12 Génération de réseaux neuronaux par des algorithmes génétiques
13 Conclusion
1 Résumé
Cet article présente une méthode de génération et d´animation de corps
vivants basée sur des modèles dynamiques, comportementaux, connexionnistes
et évolutionnistes.
La construction d´un corps repose sur une structure en couches (os,
muscles, organes, graisses et peau) tenant compte de données anatomiques.
Les mouvements sont gérés par un modèle dynamique intégrant des notions
de biomécanique.
L´animation utilise des "acteurs" munis de comportements et simulés par des
machines à états.
Une animation "secondaire" de cheveux et de vêtements accompagne les
mouvements du corps.
La vie est simulée par des réseaux neuronaux donnant à ces acteurs la
faculté d´apprendre et de s´adapter.
Enfin les algorithmes génétiques permettent de faire évoluer des
populations de tels réseaux.
Mots clés
Acteur,
Algorithmes génétiques,
Animation comportementale,
Cheveux,
Connexionnisme,
Corps humain,
Dynamique,
Modèles de muscles,
Réseaux neuronaux,
Vêtements.
2 Introduction
2-1 De l´apparence
Les artistes (sculpteurs ou peintres) qui produisent l´image d´un corps
ne peuvent faire l´économie d´une certaine connaissance de l´anatomie: Le
rendu final de la peau (seule surface visible) dépend des dispositions
relatives des os, muscles, graisses et autres organes. De plus, une bouche
ouverte, par exemple, laisse voir une partie de l´intérieur.
Mais un corps vivant ne peut se concevoir sans le mouvement ni sans
une volonté le produisant: La synthèse du corps est donc inséparable de son
animation et d´une simulation de la pensée.
2-2 Les niveaux
Un rendu fonctionnel de l´apparence conduit à définir des structures
profondes: Le squelette, les muscles, les organes, les tissus graisseux et
une peau enveloppant ces différents éléments.
Plutôt que de construire des bases de données, nécessairement lourdes et
figées, il est préférable de définir des "acteurs" possédant des méthodes
d´auto génération et d´adaptation.
2-3 Les mouvements
Les mouvements sont générés par un ensemble d´impulsions communiquées
aux muscle. Ceux-ci, en se déformant, entrainent les os, les organes et les
tissus graisseux. La peau se tend alors automatiquement sur ces éléments.
Nous avons choisi de simuler ce fonctionnement au moyen d´une machine
à états dans laquelle le basculement automatique d´un état dans un autre
dépend de schémas prédéfinis et des valeurs délivrées par des capteurs
analysant l´environnement et le corps lui-même. Cette machine commande
des "programmes moteurs" agissant sur les articulations.
2-4 Animations "secondaires"
Les cheveux et les vêtements sont considérés comme tributaires du corps
et sont entrainés dynamiquement par les mouvements de celui-ci. Des détections
de collisions et des réactions aux chocs ont permis de gérer automatiquement
leur animation.
2-5 Les comportements
L´interaction entre un être vivant et son environnement (perception et
action) est gérée par le système nerveux qui "lit" le monde extérieur gràce
à des capteurs (organes des sens), qui le modélise de façon abstraite sous
forme de signaux circulant dans des réseaux. Puis il effectue des simulations
lui permettant de former un projet qu´il exécute ensuite en envoyant des
ordres à ses muscles moteurs. Une boucle de rétroaction lui
permet de vérifier constamment l´adéquation de l´action et du projet.
Une machine à états modélise très imparfaitement un être vivant dans la
mesure où elle est incapable de s´adapter à un environnement variable. Nous
avons utilisé les réseaux neuronaux pour construire, par apprentissage, des
comportements répondant à des situations données et en respectant un ensemble de
contraintes.
2-6 Évolution
Le problème de la construction des réseaux neuronaux (dont on sait que
l´architecture dépend du problème traité) a été résolu par des algorithmes
génétiques: Une population de réseaux arbitraires évolue par sélection,
croisements et mutations en privilégiant ceux qui optimisent une certaine
fonction d´évaluation.
3 Travaux antérieurs
3-1 De l´animation en général
La simulation des méthodes de l´animation traditionnelle a été, et reste
encore, prépondérante, surtout dans le monde de la production: Probablement
pour des raisons de rentabilité immédiate, il est en effet plus facile de faire
comme avant plutôt que d´innover...
Mais, depuis les années 80, la recherche s´oriente vers l´utilisation de
modèles dynamiques, et, depuis les années 90, de modèles connexionnistes.
Renouvelant l´ancienne conception de la représentation comme "mimésis",
ces nouvelles approches visent à simuler le fonctionnement plutôt qu´à vouloir
rendre l´apparence: La dynamique simule le monde des choses et le connexionisme
simule celui des êtres.
Dans les prochaines années, les techniques d´animation vont intégrer les
nouvelles connaissances issues de la "Vie Artificielle" [RAY 1994] [SIMS 1994],
[HEUDIN 1994].
3-2 Modélisation dynamique du corps
David ZELTZER [ZELTZER 1982] utilise, dès 1982, la notion de "moteur de
contrôle" pour gérer l´animation de structures articulées, à laquelle il
adjoint celle de processeur de mouvement préfiguration de ce que seront les
comportements.
Les travaux de Demetri TERZOPOULOS, bien que ne traitant pas spécifiquement
des corps vivants, sont à la base de l´animation dynamiques de surfaces souples
[TERZOPOULOS 1987], utilisée pour modéliser les muscles et la peau.
Gavin MILLER [MILLER 1988] a introduit l´usage des ressorts dans la
simulation de muscles moteurs pour animer des serpents et des vers.
Armin BRUDERLIN [BRUDERLIN 1989] décrit la locomotion humaine par un modèle
dynamique du mouvement des jambes qu´il associe avec une direction "à but",
anticipant par là les travaux sur l´intentionnalité.
Michael McKENNA [McKENNA 1990] anime des figures articulées en appliquant
la mécanique Newtonienne, il introduit également les notions de "contrôleur de
marche" et de "programme moteur".
Marc RAIBERT [RAIBERT 1991] applique la robotique au contrôle dynamique de
la locomotion d´êtres artificiels bipèdes.
Jessica HODGINS [HODGINS 1995] simule des comportements athlétiques (courir,
faire du vélo, sauter, ...) par des modèles dynamiques compatibles avec des
données biomécaniques. Elle adapte aussi ces comportements à des acteurs
quelconques [HODGINS 1997].
3-3 Modélisation anatomique du corps
Keith WARTERS [WATERS 1987] introduisait une méthode de paramétrisation
d´un modèle facial simulant l´action superficielle des muscles du visage pour
synthétiser des expressions. Yuencheng LEE [LEE 1995] reprend cette méthode
en l´automatisant et en lui associant un modèle dynamique.
ZAJAC [ZAJAC 1986] [ZAJAC 1989] a développé le 1er modèle de muscles
appliqué à la synthèse du corps humain.
John CHADWICK [CHADWICK 1989] a developpé un système d´aide à l´animation
traditionnelle de personnages basé sur une structure en "couches" fournissant
divers niveaux de contrôle.
Les THALMANs [MAGNENAT-THALMANN 1991] decrivent des procédures attachées
aux noeuds d´une structure articulée ("joint-local deformations") pour simuler
des changements naturels de la forme des membres.
David CHEN et ZELTZER [CHEN 1992] avaient proposés en 1992 de produire les
déformations d´un corps mobile en simulant l´action des muscles et les forces
qu´ils exercent sur le squelette. Pour cela ils avaient développé un modèle
basé sur la biomécanique et la méthode des éléments finis destiné aux
animateurs et aux specialistes de l´étude fonctionnelle des muscles.
Victor Ng Thow HING [HING 1994] donne un modèle dynamique de tendons et
de muscles pour contrôler les mouvements d´un corps articulé.
Ferdi SCHEEPERS [SCHEEPERS 1997] et ses collaborateurs décrivent un système
de modélisation du corps basé sur la déformation des muscles induite par les
mouvements du squelette.
Jane WILHELMS [WILHELMS 1997] modélise automatiquement la peau en voxélisant
la masse du corps, dont est extraite une isosurface polygonale ancrée ensuite
aux muscles par des ressorts.
3-4 Modélisation des cheveux et des vêtements
Ken-ichi ANJYO [ANJYO 1992] présente une méthode simple pour traiter le
comportement dynamique des cheveux.
Michel CARIGNAN [CARIGNAN 1992] développe des algorithmes de modélisation et
d´animation de vêtements ajustés à des acteurs de synthèse en mouvement:
Definis comme des pièces planes cousues ensembles, les vêtements sont ensuite
ajustés à un corps mobile au moyen de modèles physiques tenant compte de
l´élasticité, de l´adhérence et des collisions.
Jessica HODGINS [HODGINS 1997] définit les "mouvements secondaires" comme
le comportement passif d´éléments dépendant des corps contrôlés: C´est le cas
des cheveux et des vêtements.
3-5 Animation comportementale
Craig REYNOLDS introduisit les notions d´"acteur" [REYNOLDS 1982] et de
"comportement" [REYNOLDS 1987] qui furent reprises et ameliorées par de
nombreux auteurs.
Xiaoyuan TU [TU 1994] synthétise un monde marin virtuel basé sur des
modèles physiques et habités par des poissons artificiels, définis comme des
agents autonomes, dont les comportements répondent à des intentions en
activant des moteurs de contrôle.
De même Radek GRZESZCZUK [GRZESZCZUK1995] construit des animaux artificiels
apprenant, par essais successifs, à se mouvoir dans un environnement virtuel.
Bruce BLUMBERG [BLUMBERG 1995] synthétise des créatures virtuelles autonomes
capables de se comporter dans un environnement donné, mais acceptant aussi
un contrôle extérieur au niveau de l´intention, au niveau de l´exécution d´une
tâche et au niveau moteur.
3-6 Application des modèles connexionnistes
Michiel VAN DE PANNE et Eugène FIUME [VAN DE PANNE 1993] [VAN DE PANNE 1994]
utilisent des
réseaux neuronaux dont les entrées sont des valeurs de capteurs et dont les
sorties actionnent des moteurs de mouvement pour construire des créatures
decouvrant des stratégies de marche.
Karl SIMS [SIMS 1991] utilise des techniques de sélection, de variation et
de mutation sur des expressions LISP (inspirées de la programmation génétique)
pour créer des structures complexes (plantes, textures, mouvements, ...).
Karl SIMS [SIMS 1994] utilise des réseaux neuronaux (générés par des
algorithmes génétiques) pour contrôler les muscles de créatures artificielles
dont le comportement est dirigé vers un but (nager, marcher, sauter, ...).
4 Le langage
4-1 Développement d´outils
Nous avons développé un interpréteur pseudo compilé dont la syntaxe,
proche de celle du langage C, est tolérante et générale: Ainsi les types
sont gérés dynamiquement (aucune déclaration n´est donc obligatoire), les
opérateurs logique et arithmétiques sont étendus aux tableaux [BRET 1988].
Ce langage est orienté objet et il est possible d´y définir des nouveaux
types ainsi que des propriétés arbitraires.
Un outil est généralement implémenté sous la forme d´une fonction stockée
sur le disque, et qui peut être invoquée interactivement ou appelée d´une
autre fonction (sans être nécessairement ni déclarée ni chargée).
4-2 Ouverture
L´utilisateur accède au système à plusieurs niveaux:
Au niveau le plus élémentaire il définit, dans le langage, les objets,
les propriétés et les algorithmes de son choix, sans être contraint par une
syntaxe trop rigoureuse.
A un niveau plus élevé il dispose des mêmes facilités directement en
langage C (plus difficile à mettre au point mais plus rapide à
l´exécution).
Enfin il peut linker une application quelconque avec l´interpréteur.
Pratiquement on commence par mettre au point intéractivement un programme
dans le langage puis, lorsque le résultat est satisfaisant, on le traduit
en une fonction C qu´il suffit alors d´associer à une nouvelle commande du
langage.
4-3 Programmation avancée
4-3-1 Animation comportementale:
Un "acteur" est un objet particulier encapsulant un programme (comprenant
du code compilé, des piles, des mémoires et des entrées-sorties locales)
permettant de simuler une programmation parallèle: Une des fonctions de ce
programme, dite "générateur", construit les bases de données (topologie,
propriétés dynamiques, etc...), une autre fonction, dite "adaptateur",
ajuste l´objet (géométrie, dynamique, ...) pour satisfaire certaines
contraintes. Le générateur est appelé une seule fois à la création de l´acteur,
tandis que l´adaptateur est appelé à chaque image de l´animation.
Un tel objet sera dit muni d´un "comportement" si son adaptateur est
capable de le faire réagir convenablement à des situations imprévues.
Une population d´acteurs, même s´ils sont munis de comportements identiques,
interagissent de façons différentes entre eux, avec l´environnement et le
superviseur selon les informations présentes sur leurs entrées.
4-3-2 Réseaux neuronaux:
Des objets de type "réseau neuronal" peuvent être définis et construits
par la donnée d´une première couche prenant les informations en entrée, une
dernière
couche délivrant les sorties et une ou plusieurs couches cachées complétant
le système. Les poids des connexions, initialisés aléatoirement, sont
raffinés par apprentissage sur un jeu de couples (entrée-sortie souhaitée)
par la méthode de la rétropropagation de l´erreur [BHARATH 1994, page 37],
[BOURRET 1991, page 205] et [ABDI 1994, page 133].
Ces réseaux peuvent résoudre de nombreux problèmes dont on ne connait pas
de solution algorithmique, et nous les avons appliqué à la définition des
comportements (voir le paragraphe 10-2).
4-3-3 Algorithmes génétiques:
Des populations d´objets peuvent être définies par la donnée d´un alphabet
(par exemple {0,1}), d´individus construits aléatoirement comme mots de cet
alphabet et d´une fonction d´évaluation.
On commence par copier les individus en les selectionnant au hasard, avec
un biais favorisant les mieux evalués.
Puis on les apparie par des opérations de croisement.
Des mutations aléatoires (avec une faible probalité) sont effectuées.
Après un nombre plus ou moins grand de générations, la population évolue
vers une meilleure adaptabilité.
De principe très simple, ces algorithmes génétiques sont de plus
remarquablement robustes. Cependant le problème du codage reste une difficulté:
Les meilleurs résultats sont obtenus lorsque l´alphabet est minimum.
GOLDBERG [GOLDBERG 1991] propose un codage "multiparamétré à borne fixe",
consistant à projeter linéairement un mot binaire (lorsque l´alphabet est
réduit à 2 éléments) sur l´intervalle [Umin,Umax] de variation du paramètre
réel à coder; c´est cette méthode, efficace pour les algorithmes génétiques
simples, que nous avons implémenté.
5 Le squelette
5-1 Structure articulée
Le squelette est modélisé par une arborescence dont la racine est un os
porteur. Les os sont attachés les uns aux autres et reçoivent des degrés
de liberté: Rotations selon une rotule ou un axe et d´amplitudes limitées
(soit par des bornes géométriques, soit par des forces de rappel, soit encore
par des ressorts).
Lorsque l´os porteur change (changement de pied dans la marche par
exemple), la racine change et l´arbre est automatiquement réorganisé.
5-2 Constructions des os
Un os est un acteur réduit à son "générateur" qui, lorsqu´il est appelé
la première fois, génére une base de données comportant une surface polyédrique et
certaines propriétés encapsulées dans l´os (comme les points d´ancrage des os
les uns aux autres). En ajoutant un "adaptateur" il est possible de modifier
le squelette au cours d´une animation (morphing d´un corps dans un autre par
exemple).
6 Les muscles
6-1 Construction des muscles
Les muscles sont des acteurs comportant une méthode de génération et une
méthode d´adaptation.
À la première invocation, la méthode de génération construit une base de
données comportant une topologie (description procédurale des points de
contrôle d´une surface paramétrique) et des propriétés encapsulées (noms d´os
et points d´attache du muscle sur ces os, propriétés dynamiques, etc...).
La géométrie est reconstruite à chaque image de l´animation par la méthode
d´adaptation.
Par exemple:
deltoide->generer() génére la topologie d´un deltoide et lui affecte des
propriétés d´attache et de dynamique.
deltoide->adapter() génére effectivement la géométrie de ce muscle en
fonction de son environnement.
Les changements de forme se font à volume constant: Défini comme une
surface géodésique, un muscle a un volume approximé par la somme des produits
des distances de deux sections consécutives par le carré de leur rayon. Une méthode
dichotomique permet d´encadrer rapidement les rayons des sections lorsque
le muscle se déforme.
Certains muscles s´attachent à d´autres et les muscles ne doivent pas se
pénétrer les uns les autres: L´ordre de leurs générations n´est donc pas
indifferent.
6-3 Mouvement des muscles
Une première méthode simple d´animation consiste à considérer l´ensemble
des muscles comme statique et à ne faire dépendre leurs formes que de l´état
du squelette comme dans [SCHEEPERS 1997] ou [WILHELMS 1997]. Ainsi il suffit
de modifier celui-ci pour déformer les muscles automatiquement.
Une autre méthode, plus réaliste, revient à définir les muscles comme
un réseau de surfaces élastiques (modélisées par des ressorts) subissant
des actions extérieures (poids des os d´attache et réaction de muscles
concurrents) et intérieures (variation de la raideur par exemple) et dont
l´état d´équilibre entraine une position du squelette.
Un ensemble d´impulsions communiquées aux muscles définit un geste. Un
mouvement est une suite de gestes dont l´enchaînement est contrôlé par un
comportement.
Des forces de contact empêchent les éléments du corps de s´interpénétrer.
7 Les organes et les tissus graisseux
7-1 Utilité de ces éléments
Un volume important du corps est occupé par des organes: Estomac,
poumons, etc... Ceux-ci sont tenus par les muscles et interviennent dans
la forme générale du corps.
Les tissus graisseux, généralement situés entre les muscles et la peau,
adoucissent l´aspect extérieur du corps, qui, sans eux, ressemblerait à un
écorché. Ils sont définis comme les muscles mais n´ont pas la possibilité de
générer des forces internes.
7-2 Implémentation
Ils sont attachés élastiquement par des ressorts au squelette et aux
muscles, ils se mettent en place automatiquement, par une méthode de
relaxation, sous l´action de la pesanteur, de la résistance des ressorts
d´attache et en évitant les collisions avec les éléments voisins.
8 La peau
8-1 Génération
L´idéal eut été de définir la peau comme une surface fermée et continue
enveloppant les éléments décrits ci-dessus. Pour des raisons pratiques il a
été plus facile de la décomposer en éléments distincts s´adaptant localement
à une partie du corps (par exemple un bras).
Sur une partie du corps constituée d´un ensemble d´os, de muscles,
d´organes et de tissus graisseux une peau est générée selon l´algorithme
suivant (voir figure):
1) Déterminer une courbe 3D (C), la plus intérieure possible à ces
éléments, et en constituant un "axe".
2) Déplacer un point (M) le long de cette courbe selon un certain pas
dC et, pour chaque position de M déterminer le plan (P) perpendiculaire
en M a (C).
3) Dans le plan (P) déterminer un cercle de centre M et de rayon
suffisamment grand pour qu´il soit extérieur aux éléments. Sur ce cercle
faire tourner un "oeil" O selon un pas angulaire dA. Déterminer l´intersection
I de OM avec les éléments la plus proche de O, au moyen d´un "lancer de rayon".
4) L´ensemble des intersections I constitue une section (S) des éléments
par le plan (P). L´ensemble des sections (S) sont les génératrices d´une
surface géodésique enveloppant les éléments.
Cette technique simule un laser virtuel ayant sur ses équivalents
réels (comme le Cyber Ware) l'avantage de la souplesse: Ainsi peut-il être
programmé de façon à pouvoir visiter des concavités, il suffit pour cela de
faire progresser le point M et le plan (P) à des vitesses différentes (le point
M s´atardant dans les régions "creuses" à visiter).
À cause de la définition nécessairement limitée des éléments sousjacents
à la peau, l´algorithme précédent de génération fait apparaître des
irrégularités. Différentes méthodes de lissage ont été implémentées pour
corriger ces inperfections:
Lissages métriques consistant à remplacer un ensemble de sommets voisins
par leur barycentre.
Lissage angulaire par atténuation des changements de concavité.
Muscles
Laser virtuel
Peau
Algorithme de génération de la peau: Exemple d´une cuisse.
8-2 Jonction des peaux partielles
Les morceaux consécutifs de peaux sont générés de façon à se chevaucher
sur au moins 3 sections, lesquelles sont amenées à coincider. Puis une
extension courbe passant par les points de contrôle est générée en utilisant
des surfaces paramétriques du troisième degré. La continuité des tangentes
est assurée par la présence de 3 couples de points de contrôle confondus
(voir figure).
Muscles
Peaux
Peau continue
Jonction de morceaux de peau: Exemple du bras et de l´avant-bras.
8-3 Élasticité
Wilhelms et Van Gelder [WILHELMS 1997] décrivent une méthode de simulation
d´une peau élastique basée sur la relaxation d´un réseau de ressorts
préalablement ancrés sur un corps en position neutre. Lors d´un mouvement du
corps, la peau atteint une position d´équilibre compatible avec la nouvelle
forme et avec sa position originale.
S´inspirant de ces idées nous avons implémenté l´algorithme suivant:
1) Générer la peau (au moyen de l´algorithme 8-1) sur le corps dans sa
position neutre.
2) Déterminer un ensemble de points (M) attachés procéduralement aux muscles
(c´est à dire dont la position est repérée par un système de coordonnées
barycentriques par rapport à des points de ces muscles variables dans le
temps). Pratiquement nous avons procédé par échantillonnage.
3) Pour chacun de ces points (M) déterminer le point (P) de la peau le plus
proche et lui attacher un ressort M -> P.
4) Pour une autre position du corps laisser la peau atteindre une position
d´équilibre par une méthode de relaxation en empêchant la peau de traverser
les autres éléments du corps par une détection de collisions.
5) L´algorithme est appliqué itérativement, chaque position à un instant
étant déterminée par rapport à sa position précédente.
9 Éléments secondaires
9-1 Les cheveux
Ils ont été simplements modélisés par des chaînes de petits éléments
connectés les uns aux autres par des ressorts angulaires. Munis d´une masse,
ils tombent naturellement dans un champ de pesanteur. Des détections de
collisions et des réponses aux chocs élastiques avec frottement simulent leur
interaction avec les obstacles (le corps, les vêtements et tous les objets
y compris les autres cheveux).
Ils sont implantés aléatoirement sur le crâne.
9-2 Les vêtements
Nous inspirant des travaux de TERZOPOULOS [TERZOPOULOS 1987] et de
CARIGNAN [CARIGNAN 1992], nous avons modélisé des voiles par un maillage de
ressorts. Comme pour les cheveux, détections de collisions et réponses aux
chocs permettent de gérer automatiquement leur comportement dynamique.
Pratiquement, une méthode de relaxation fait tomber les voiles sur le
corps depuis une position largement extérieure, puis des attaches sont définies
au moyen de ressorts entre les voiles et certains points du corps, chaque
image de l´animation se deduisant itérativement de la précédente à partir de
cette première position d´équilibre.
10 L´animation
10-1 Animation dynamique
Les méthodes cinématiques d´animation, si elles permettent un contrôle
géométrique complet, échouent à simuler les mouvements réels. De plus elles
ne savent pas gérer la complexite. Le "key-framing", encore utilisé de nos
jours, n´est qu´un "truc" commode sans grand intérêt.
Les modèles dynamiques, largement développés (voir le paragraphe 3-2),
font partie de tous les logiciels d´animation qui se respectent.
Nous avons implémenté une méthode linéaire d´approximation qui remplace
une dérivée par un taux d´accroissement. L´erreur commise est d´autant plus
faible que le "delta_t" est plus petit. Pratiquement, entre deux images I(t) et
I(t+1), on calcule itérativement I(t+k), k variant dans [0,1] avec un petit pas
(par exemple delta_t = 0.1), ne tenant compte que de la dernière pour
l´affichage (les images intermédiaires peuvent être utilisées pour un
"motion blur").
Par rapport aux méthodes analytiques qui résolvent un système d´équations
différenrielles, cette méthode permet de résoudre potentiellement n´importe
quel problème de dynamique, au détriment de l´exactitude cependant.
Nous ne faisons aucune hypothèse restrictive sur les champs de forces
(qui sont des objets comme les autres) ni sur les propriétés des surfaces
animées (qui reçoivent des coefficients qualifiant l´élasticité des chocs et
la friction au glissement) ni sur la nature des liaisons des objets (libres
ou contraints comme dans les structures articulées par exemple).
Les systèmes de particules apparaissent comme un cas particulier, dans la
mesure ou une population de particules est un objet possédant des propriétés
spécifiques (comme les masses, les vitesses ou les durées de vie de chaque
individu)
10-2 Animation comportementale
En animation traditionnelle il est nécéssaire de définir toutes les
positions: L´animateur est un marionnettiste construisant, image par image,
le mouvement qu´il veut produire.
L´ordinateur apporte une aide précieuse en automatisant le processus:
Soit en définissant des trajectoires et des lois de mouvements sur
chaque élément à animer.
Soit en générant les mouvements procéduralement.
Soit en utilisant des modèles physiques (comme l´animation dynamique).
Soit en numérisant des mouvements réels (le "motion capture").
Mais ces techniques ne permettent d´animer que des objets déterministes et
en aucun cas des êtres vivants dont les mouvements dépendent non seulement de
facteurs physiques mais encore de comportements.
Les facteurs physiques sont representés par des données en mémoire et des
fonctions extérieures aux objets (lois de la dynamique par exemple).
REYNOLDS avait introduit les notions d´"acteur" [REYNOLDS 1982] et de
"comportement" [REYNOLDS 1987] reprises par BLUMBERG [BLUMBERG 1995]. Depuis,
avec les langages orientés objet, il est devenu possible d´encapsuler un
comportement dans une entité. Pour cela nous associons un programme à un objet,
lequel devient ainsi "exécutable".
Plusieurs acteurs ayant le même comportement peuvent se comporter
différemment puisque leurs codes, bien qu´identiques, se déroulent de façons
différentes en fonction des informations qu´ils reçoivent de l´environnement.
10-3 Implémentation
À chaque objet peut être associé un programme complet comprenant un code
compilé (un main() et des fonctions appelées), des mémoires statiques, des
entrées/sorties, autant d´éléments définis localement.
Le main() d´un acteur ainsi que toutes ses fonctions peuvent être
executés par n´importe quel acteur ainsi que par le superviseur.
Tous les acteur partagent les mémoires externes.
Les acteurs échangent des messages entre eux et avec leur environnement au
moyen de "boites à lettres".
11 Génération de comportements par des réseaux neuronaux
11-1 Réseaux de neurones
Les difficultés considérables rencontrées dans la modélisation et
l´animation du corps humain par les méthodes traditionnelles nous ont conduit
a adopter une stratégie radicalement différente: Abandonnant une démarche
purement algorithme nous avons confié la résolution de ces problèmes à des
réseaux capables de s´auto-organiser et faisant preuve d´une conduite
"intelligente" émergeant de leurs nombreuses connexions. Au lieu de chercher
une solution algorithmique à un problème, on construit un réseau neuronal que
l´on met en présence de ce problème sur le mode "question-reponse" ou encore
"essai-erreur" en le faisant s´autoconfigurer de façon à répondre de mieux
en mieux à des exemples (apprentissage supervisé).
La propriété dite de "généralisation" d´un réseau
neuronal garantit que celui-ci peut réagir convenablement à des exemples non
appris.
11-2 Implémentation
Des réseaux multicouche à rétro-propagation de l´erreur [ABDI 1994, page 140]
[BOURRET 1991, page 189] ont été utilisés conjointement aux idées developpées
par VAN DE PANNE et FIUME [VAN DE PANNE 1993] [VAN DE PANNE 1994]
ainsi que par SIMS [SIMS 1994]
concernant les réseaux de capteurs-actuateurs:
La couche d´entrée est connectée à des capteurs:
Capteurs analysant l´environnement (par exemple contact d´un pied
avec le sol)
Capteurs analysant la position du corps lui-même (angles des membres
entre eux et avec un référentiel lié au monde)
La couche de sortie est connectée à des "moteurs" (couples exercés sur
les articulations).
Une ou plusieurs couches cachées permettent de complexifier le réseau.
Les poids des connexions des neurones d´une couche vers ceux de la
couche suivante sont initialisés aléatoirement.
Un apprentissage est réalisé en présentant au système des couples
(entrée-sortie souhaitée), l´erreur (différence entre la sortie souhaitée
et la sortie calculée) est utilisée pour corriger les poids par la méthode
de la rétro-propagation. Cet apprentissage revient à construire une "base
de connaissance" associant une stratégie précalculée à une situation donnée
[RIJPKEMA 1991]. Mais ici cette base de connaissance est étendue (propriété
de généralisation propre aux réseaux neuronaux) à des situations non apprises.
Une première difficulté consiste à trouver une architecture de réseau
(combien de couches, combien de neurones sur une couche), elle a été résolue,
en s´inspirant des travaux de Karl SIMS [SIMS 1994], par des algorithmes
génétiques.
Une deuxième difficulté consiste à trouver des couples (entrée-sortie)
pertinents, elle est liée au problème et a été abordée cas par cas (pour la
marche par exemple, des gestes rétablissant l´équilibre ont été donnés
comme sortie correspondant à des positions de déséquilibre présentées en
entrée).
12 Génération de réseaux neuronaux par des algorithmes génétiques
12-1 Algorithmes génétiques
Les algorithmes génétiques, initialement developpés par
John HOLLAND [HOLLAND 1975], sont des algorithmes d´exploration
basés sur la sélection naturelle et la génétique, et utilisant des
processus pseudo-aléatoires.
Outre leur simplicité, ils se caracterisent par une remarquable robustesse
et montrent des comportements adaptatifs proches de ceux des êtres humains.
Comme les réseaux neuronaux ils résolvent des problèmes dont on
ne connait pas de solution algorithmique, mais, alors que ces
dernier sont essentiellement connexionnistes, ils utilisent des méthodes
évolutionnistes.
12-2 Implémentation
Une population de réseaux neuronaux construits aléatoirement évolue par
reproduction, croisements et mutations en optimisant une certaine fonction
d´évaluation. Cette fonction est en fait la note obtenue par un processus
consistant, dans un premier temps à calculer la matrice des poids d´un réseau
par apprentissage et, dans un deuxième temps, à utiliser ce réseau pour faire
se comporter un acteur, et c´est la performance de ce comportement qui est
notée (pour la marche par exemple ce peut être la distance parcourue pénalisée
par l´énergie depensée).
Une autre méthode de sélection, proposée par Karl SIMS [SIMS 1991], utilise
un jugement de valeur (par exemple esthétique) porté par le superviseur.
Ces deux méthodes peuvent d´ailleurs très bien cohexister.
13 Résultats
Le choix d´un langage plutôt que d´un programme dédié a rendu possible
toutes sortes d´expériences. Voici par exemple l´une d´entre elles qui a servi
à générer la séquence des voiles dans le film "DÉFILÉ DE MODE":
13-1 Le corps
Nous nous sommes inspiré, pour la modélisation du corps, de données
anatomiques
[MOREAUX 1959], [RICHER 1996] et [SZUNYOGHY 1996], et, pour la modélisation des muscles, de données biomécaniques [GOUBEL 1998].
Le squelette se compose de 214 os ancrés selon une hiérarchie dynamique
dont la racine est le premier os trouvé en contact avec le sol.
Nous avons modélisé 143 muscles attachés au squelette et aux organes.
Enfin la peau vient se plaquer sur l´ensemble selon l´algorithme 8-1.
La figure suivante decrit ces 3 etapes.
Squelette, muscles et peau.
13-2 Modèle comportemental
Comme ZELTZER [ZELTZER 1982],qui utilise des machines à états finis pour
simuler la marche humaine sur un terrain quelconque, nous definirons un
comportement par une machine à états créant et enchainant des mouvements.
Ainsi la marche peut être simulée par un ensemble de gestes du genre: tendre,
plier, balancer, ... L´enchaînement d´un geste à un autre est declenché par un
événement extérieur (par exemple poser un pied sur le sol va provoquer une
extension de la jambe porteuse et un balancement de l´autre jambe, une perte
d´équilibre va provoquer des gestes compensatoires, etc ...).
Un corps est défini comme un acteur muni d´un comportement et d´un
système d´analyse du monde (capteurs de contact, capteurs angulaires).
Les sorties
de ces capteurs sont interprétés comme entrées de la machine à états qui
décide quel mouvement déclencher et avec quels paramètres.
Par exemple si le pied gauche est en contact avec le sol, si la cuisse
droite est levée et si le centre de gravité du corps se projette en avant
du pied gauche, le geste ´projeter_en_avant´ est declenché sur la jambe
droite.
Le rôle d´un geste est de commander un "programme moteur" [McKENNA 1990]
générant des couples exercés sur les articulations.
Parallèlement à ces gestes moteurs, des gestes de compensation sont
automatiquement declenchés. Par exemple lorsque la jambe droite est projetée
en avant, un couple s´exerce sur l´épaule gauche pour imprimer un
balancement arrière au bras gauche. Plusieurs gestes peuvent s´appliquer
à un même élément, celui-ci réagit alors selon la somme des influences.
D´autre part tous les acteurs sont contraints par des méthodes leur
imposant des positions relatives (ancrages) et des déviations angulaires
limitées (angle du bras et de l´avant bras par exemple).
12-3 Réseau neuronal
Pour donner vie a ce robot entièrement automatique, les entrées d´un
réseau de neurones sont connectées aux capteurs, et ses sorties sont
connectées à la machine à états. Un apprentissage supervisé lui apprend
des exemples de comportement par la donnée de couples (valeurs des capteurs-
comportement déclenchés). Lorsque le réseau est stabilisé il est alors
capable de répondre correctement à des entrées nouvelles (propriété de
généralisation des réseaux neuronaux). Par exemple si le corps a appris à
rétablir son équilibre lorsqu´il est penché en avant et lorsqu´il est penché
en arrière, il saura rétablir son équilibre lorsqu´il est penché sur le coté.
Pratiquement 18 couples d´apprentissage ont suffi à rendre le corps
capable de rétablir son équilibre dans n´importe quelle configuration de
départ. Le tableau suivant donne les sorties souhaitees (S0) et les
sorties calculees (SC) apres 5000 passes. En fait une commande regroupe 2
sorties S1 et S2, et le couple C(t) est calculé comme une courbe de
Hermite passant par {C(0),S1,S2} où C(0) est la valeur du couple
à l´instant de l´impulsion. Cette courbe représente une
"intention" (projet d´un mouvement) qui peut être interrompue a tout
moment par un événement extérieur. Mais, comme
l´explique Alain BERTHOZ [BERTHOZ 1997], la coordination de mouvement
ne saurait se réduire à une succession linéaire de phases mais implique
un contrôle à plusieurs niveaux:
1) Une correction est apportée en permanence par des "comparateurs"
qui mesurent le mouvement réalisé et le comparent au mouvement prévu.
2) Une action extérieure peut interrompre un mouvement (par exemple
la pose d´un pied au sol termine le mouvement en cours et en enclenche
un autre).
3) Enfin le mouvement prévu peut ne plus être adapté à l´environnement,
des corrections et même des changements de stratégies sont alors
nécessaires (par exemple dans la marche sur un terrain mouvant, un
pas prévu peut s´avérer trop court et nécessiter son alongement).
S0 = sortie souhaitée
SC = sortie calculée
S0 = 0.687500 0.562500 0.687500 0.687500 0.687500 0.687500 0.750000 0.500000
SC = 0.624720 0.567813 0.789856 0.673585 0.759580 0.781653 0.824856 0.510717
S0 = 0.750000 0.750000 1.000000 0.000000 0.750000 0.250000 0.750000 0.750000
SC = 0.747018 0.744049 0.993511 0.054847 0.717353 0.255245 0.667496 0.739045
S0 = 0.750000 0.250000 0.750000 0.750000 0.750000 0.750000 0.750000 0.000000
SC = 0.723682 0.187543 0.748450 0.765033 0.685704 0.707895 0.664760 0.001424
S0 = 0.750000 0.750000 1.000000 0.000000 0.750000 0.250000 0.250000 0.750000
SC = 0.663025 0.746494 0.983379 0.008898 0.806061 0.237232 0.343296 0.776323
S0 = 0.750000 0.250000 0.750000 0.750000 0.000000 0.750000 0.750000 0.000000
SC = 0.796294 0.261352 0.741390 0.736826 0.065853 0.740536 0.860361 0.002545
S0 = 0.250000 1.000000 1.000000 0.000000 0.250000 0.250000 0.750000 0.750000
SC = 0.271646 0.901820 0.943672 0.013268 0.311289 0.257667 0.691537 0.718702
S0 = 0.750000 0.250000 0.250000 0.750000 0.250000 1.000000 1.000000 0.250000
SC = 0.719811 0.235099 0.258149 0.760314 0.233857 0.966136 0.895650 0.255302
S0 = 0.750000 0.750000 1.000000 0.000000 0.750000 0.250000 0.750000 0.750000
SC = 0.652172 0.820802 0.988373 0.081365 0.665482 0.292405 0.736287 0.787096
S0 = 0.750000 0.250000 0.250000 0.750000 0.250000 0.750000 0.750000 0.000000
SC = 0.689887 0.262874 0.349685 0.744647 0.229253 0.831036 0.720326 0.001201
S0 = 0.250000 0.750000 0.750000 0.000000 0.750000 0.250000 0.250000 0.750000
SC = 0.336754 0.819497 0.819290 0.002943 0.816457 0.345281 0.178607 0.703503
S0 = 0.750000 0.750000 0.250000 0.750000 0.000000 0.750000 1.000000 0.000000
SC = 0.683034 0.664234 0.289419 0.730131 0.004250 0.778697 0.906859 0.003976
S0 = 0.250000 0.750000 0.750000 0.000000 0.375000 0.375000 0.500000 0.500000
SC = 0.210769 0.842981 0.761530 0.007284 0.312833 0.402757 0.509698 0.495382
S0 = 0.375000 0.375000 0.625000 0.625000 0.750000 0.750000 0.750000 0.750000
SC = 0.465135 0.403385 0.567204 0.619487 0.710380 0.704939 0.780725 0.735205
S0 = 0.250000 0.250000 0.250000 0.250000 0.375000 0.375000 0.625000 0.625000
SC = 0.153227 0.223189 0.293630 0.234658 0.406911 0.373390 0.694519 0.631380
S0 = 0.750000 0.250000 0.750000 0.750000 0.750000 0.750000 0.750000 0.000000
SC = 0.657710 0.281050 0.698316 0.743533 0.733331 0.757199 0.729230 0.026868
S0 = 0.000000 1.000000 0.750000 0.000000 0.750000 0.250000 0.250000 0.750000
SC = 0.097813 0.946774 0.701969 0.006784 0.807009 0.188847 0.314545 0.766287
S0 = 0.250000 0.250000 0.250000 0.750000 0.000000 0.000000 0.750000 0.000000
SC = 0.199531 0.268380 0.267261 0.769457 0.058958 0.098808 0.693478 0.002902
S0 = 0.000000 1.000000 0.750000 0.000000 0.250000 0.250000 0.250000 0.750000
SC = 0.011215 0.976365 0.756324 0.003270 0.240037 0.002122 0.246872 0.750335
4 erreurs, erreur maximun = 0.247878, erreur tolerée = 0.1
Adaptation du réseau en 5000 passes à partir de 18
exemples.
Le réseau est constitué (voir figure):
D´une couche d´entrée de 6 neurones connectés à des capteurs angulaires
mesurant les angles des fémurs et des tibias avec la verticale et à deux
capteurs de contact situés sous les pieds.
D´une couche cachée de 6 neuronnes.
D´une couche de sortie de 8 neuronnes envoyant des couples moteurs aux
genoux et aux hanches pour faire tourner les tibias et les fémurs.
En fait une commande regroupe 2 sorties S1 et S2, et le couple C(t) est
calculé comme le point P(t) d´une courbe de Hermite passant par {C(0),S1,S2} où
C(0) est la valeur du couple à l´instant de l´impulsion. Cette courbe
représente une "intention" (projet d´un mouvement) qui peut être
interrompue a tout moment par un événement extérieur.
Dans un modèle plus evolué les sorties declenchent des
comportements agissant sur les muscles des jambes pour produire les mêmes
résultats (voir paragraphe 6-3).
Capteurs = Contacts,Angles
Reseaux
Moteurs=Couples
Réseau neuronal contrôlant les jambes.
13 Conclusion
Le système présenté dans cet article a permi de produire plusieurs films
de synthèse ("CAHINCAHA" en 1996, "MYSTÈRE ET BOULE DE GOMME" en 1997 et
"DÉFILÉ DE MODE" en 1998) qui en retracent le développement: Des premiers
essais seulement comportementaux aux essais plus récents utilisant des
systèmes connexionnistes.
Lorsque les problèmes d´implémentation ont été résolus, on dispose d´un
modèle très souple dont le contrôle global est aisé. Il peut être utilisé
pour générer des personnages de dessins animés, des marionnettes virtuelles ou
autres bêtes fantastiques.
De nombreuses améliorations restent bien entendu a faire, parmi lesquelles:
1) Perfectionner le modèle de peau (par exemple en integrant les plis et
les rides).
2) Synthétiser des "expressions" faciales.
3) Traiter le problème de la danse.
4) Implémenter des méthodes de coévolution mettant en concurrence plusieurs
populations s´évaluant mutuellement, ceci afin d´éviter à l´algorithme
génétique de se cantoner dans un minumum local [KOZA 1991].
Bibliographie
Hervé ABDI
Les réseaux de neurones
Presses Universitaires de Grenoble 1994
Ken-ichi ANJYO, Yoshiaki USAMI, Tsuneya KURIHARA
A Simple Method for Extracting the Natural Beauty of Hair
in COMPUTER GRAPHICS 26(2), 111-120, 1992
Alain BERTHOZ
Le sens du mouvement
Éditions Odile Jacob Sciences,1997
Ramachandran BHARATH, James DROSEN
Neural Network Computing
Windcrest/McGraw-Hill 1994
Bruce M. BLUMBERG, Tinsley A. GALYEAN
Multi-Level Direction of Autonomous Creatures for Real-Time Virtual
Environments
in COMPUTER GRAPHICS, 47-54, 1995
P. BOURRET, J. REGGIA, M. SAMUELIDES
Réseaux Neuronaux
TEKNEA 1991
Michel BRET
Anyflo: Logiciel d´Animation 3D
in Imaginaire Numerique HERMES, 47-55, 1988
Armin BRUDERLIN, Thomas W. CALVERT
Goal-Directed, Dynamic Animation of Human Walking
in COMPUTER GRAPHICS 23(3), 233-242, 1989
Michel CARIGNAN, Ying YANG, Nadia MAGNENAT THALMANN, Daniel THALMANN
Dressing Animated Synthetic Actors with Complex Deformable Clothes
in COMPUTER GRAPHICS 26(2), 99-104, 1992
John E. CHADWICK, David R. HAUMANN, Richard E. PARENT
Layered Construction for Deformable Animated Characters
in COMPUTER GRAPHICS 23(3), 243-252, 1989
David T. CHEN, David ZELTZER
Pump It Up: Computer Animation of Biomechanically Based Model of Muscle
in COMPUTER GRAPHICS 26(4), 89-98, 1992
Jean-Louis DESSALLES
L´ordinateur génétique
HERMES 1996
David E. GOLDBERG
Algorithmes Génétiques
Addison-Wesley 1991
Francis GOUBEL, Ghislaine LENSEL-CORBEIL
Biomécanique, éléments de mécanique musculaire
MASSON 1998
Radek GRZESZCZUK, Demetri TERZOPOULOS
Automated Learning of Muscle-Actuated Locomotion Through Control Abstraction
in COMPUTER GRAPHICS, 63-70, 1995
Jean-Claude HEUDIN
La Vie Artificielle
HERMES, 1994
Victor Ng Thow HING
A Biomechanical Musculotendon Model For Animating Articulated Objects
Thesis, Departement of Computer Science University of TORONTO, 1994
John HOLLAND
Adaptation in natural and artificial systems
Ann Arbor; The University of Michigan Press, 1975
Jessica K. HODGINS, Wayne L. WOOTEN, David C. BROGAN, James F. O´BRIEN
Animating Human Athletics
in COMPUTER GRAPHICS, 71-78, 1995
Jessica K. HODGINS, Nancy S. POLLARD
Adaptating Simulated Behaviors For New Characters
in COMPUTER GRAPHICS, 153-162, 1997
J.R. KOZA
Genetic evolution and co-evolution of computer programs
in C.G. LANGTON (Ed.), Artificial Life II, 603-629, Addison-Wesley, 1991
Yuencheng LEE, Demetri TERZOPOULOS, Keith WATERS
Realistic Modeling for Facial Animation
in COMPUTER GRAPHICS, 55-62, 1995
Michael McKENNA, David ZELTZER
Dynamic Simulation of Autonomous Legged Locomotion
in COMPUTER GRAPHICS 24(4), 29-38, 1990
Gavin S.P. MILLER
The Motion Dynamics of Snakes and Worms
in COMPUTER GRAPHICS 22(4), 168-178, 1988
Arnould MOERAUX
Anatomie Artistique de l´Homme
MALOINE, 1959
Marc H. RAIBERT, Jessica K. HODGINS
Animation of Dynamic Legged Locomotion
in COMPUTER GRAPHICS 25(4), 349-358, 1991
Thomas S. RAY
Evolution, complexity, entropy, and artificial reality.
in Physica, 239-263, 1994
Craig W. REYNOLDS
Computer Animation with Scripts and Actors
in COMPUTER GRAPHICS 16(3), 289-296, 1982
Craig W. REYNOLDS
Flocks, herds, and schools: A distributed behavioral model.
in COMPUTER GRAPHICS 21(4), 25-34, 1987
Paul RICHER
Taité d´Anatomie Artistique
Bibliothèque de l´Image, 1996
Ferdi SCHEEPERS, Richard E.PARENT, Wayne E.CARLSOM, Stephen F.MAY
Anatomy-Based Modeling of the Human Musculature
in COMPUTER GRAPHICS Graphics, 163-172, 1997
Karl SIMS
Artificial Evolution for Computer Graphics
in COMPUTER GRAPHICS 25(4), 319-328, 1991
Karl SIMS
Evolving Virtual Creatures
in COMPUTER GRAPHICS, 15-22, 1994
Karl SIMS
Evolving 3D Morphology and Behavior by Competition
in Artificial Life IV Proceedings, MIT Press, 28-39, 1994
András SZUNYOGHY, György FEHÉ
Grand Cours d´Anatomie Artistique
KONEMANN, 1996
Demetri TERZOPOULOS, John PLATT, Alan BARR, Kurt FLEISCHER
Elastically Deformable Models
COMPUTER GRAPHICS 21(4), 205-214, 1987
Xiaoyuan TU, Demetri TERZOPOULOS
Artificial Fishes: Physics, Locomotion, Perception, Behavior
in COMPUTER GRAPHICS, 43-50, 1994
Michiel VAN DE PANNE, Eugène FIUME
Sensor-Actuator Networks
in COMPUTER GRAPHICS , 335-342, 1993
Michiel VAN DE PANNE
Control Techniques for Physically-Based Animation
These, Universite de TORONTO, 1994
Keith WATERS
A Muscle Model for Animating Three-Dimensionam Facial Expression
COMPUTER GRAPHICS 21(4), 17-24, 1987
Jane WILHELMS, Allen VAN GELDER
Anatomically Based Modeling
in COMPUTER GRAPHICS, 181-188, 1997
Andrew WITKIN, Michael KASS
Spacetime Constraints
in COMPUTER GRAPHICS 22(4), 159-168, 1998
David ZELTZER
Motor Control Techniques for Figure Animation
in IEEE Computer Graphics and Applications 2,9, 53-59, 1982
F.E. ZAJAC, E. L. Topp, P. J. STEVENSON
A dimensionless musculotendon model
in Proceedings IEEE Engineering in Medecine and Biology, 1986
F.E. ZAJAC
Muscle and tendon: Properties, models, scaling, and application to
biomechanics and motor control
in Critical Reviews in Biomedical Engineering, 17, 359-411, 1989