Brevet FR2874724A1 — publié le 20060303

Procédé d'animation temporelle d'un avatar tridimensionnel, dispositif, programme d'ordinateur, produit programme d'ordinateur et support d'enregistrement correspondants. 1. Domaine de l'invention Le domaine de l'invention est celui de la réalité virtuelle, et notamment de l'animation d'avatars dans un environnement virtuel ou de réalité mixte. De manière générale, on définit un environnement virtuel (EV) comme étant une représentation numérique d'un environnement en 3D, pouvant imiter le monde réel, dans lequel on peut évoluer de façon interactive. Par ailleurs, on désigne par Environnement Virtuel Collaboratif (EVC), un environnement virtuel permettant à plusieurs personnes de collaborer à distance en temps réel et/ou différé au moyen d'un terminal informatique relié à un réseau de télécommunications. L'invention concerne plus précisément une technique d'animation temporelle d'avatars, par exemple de type humanoïdes, d'une posture de départ vers une posture d'arrivée, un humanoïde correspondant à une représentation tridimensionnelle (3D) d'un être humain dans un environnement virtuel. L'invention s'applique notamment, mais non exclusivement, dans des systèmes de réalité virtuelle dans le cadre de services, de jeux, de forums de discussion, de services ou d'applications de travail collaboratif assisté par ordinateur TCAO (CSCW pour Computer Supported Coopérative Work en anglais) ou encore pour des personnes utilisant le langage des signes pour communiquer. 2. L'art antérieur Afin d'animer de manière naturelle un avatar en temps réel, certaines techniques de l'art antérieur proposent d'utiliser des animations pré-calculées (ou pré-définies ), ou d'utiliser des gestes de désignation, permettant à un utilisateur de désigner par exemple un lieu ou un objet de l'environnement virtuel, sans connaissance a priori de l'environnement virtuel. Dans le cadre de l'animation d'humanoïdes par exemple, il est possible d'utiliser un squelette hiérarchique articulé dont les différents membres sont liés entre eux, comme illustré en figure lA, pour décrire l'humanoïde. Le déplacement d'un membre du squelette hiérarchique peut alors entraîner le mouvement des autres membres qui lui sont attachés : la rotation de l'épaule d'un humanoïde entraîne par exemple un mouvement du reste du bras, c'est-à-dire du coude, du poignet, des phalanges, .... Pour donner plus de volume à l'humanoïde, il est possible de jouer sur la forme de ses maillages, comme illustré en figure 1B. Cependant, lors de l'animation de l'humanoïde, il existe un risque d'apparition de zones de discontinuités entre les membres et/ou d'absence de contractions musculaires visibles. Les humains virtuels ainsi créés ne reflètent donc pas de manière réaliste un utilisateur réel. Il est alors nécessaire de traiter différemment ces zones d'articulation lors de la modélisation de l'humanoïde, afin de donner plus de réalisme aux animations, ce qui entraîne un coût supplémentaire en terme de mémoire. Pour donner plus de réalisme à l'humanoïde, il est par exemple possible d'associer une enveloppe déformable au squelette hiérarchique, comme illustré en figure 1C. On associe alors des fonctions mathématiques ou des pondérations aux sommets composant le maillage de l'humanoïde, en fonction des modifications apportées aux articulations de la structure articulée. Les avatars sont ensuite animés selon deux principales techniques d'animation : la cinématique directe (ou cinématique avant) et la cinématique inverse. La cinématique directe consiste à agir directement sur les articulations (translation ou rotation) du squelette. Le squelette étant hiérarchique, un mouvement sur une articulation est ensuite transmis à ses fils. La cinématique inverse consiste: à appliquer un mouvement à une articulation et à répercuter le mouvement sur ses parents. Par exemple, pour qu'un avatar désigne quelque chose du doigt, on positionne le doigt à l'endroit cible, et la technique de cinématique inverse calcule les positions et rotations des poignet, coude, épaule, correspondantes. De nombreux logiciels proposent ainsi des techniques d'animation de personnages 3D réalistes. Cependant ces techniques présentent de nombreux inconvénients. Tout d'abord, ces techniques ne fonctionnent pas toujours en temps réel. Ensuite, ces techniques sont généralement complexes à mettre en u̇vre, et sont, par conséquent, coûteuses, notamment en terme de mémoire. Par ailleurs, ces techniques ne sont généralement pas transportables d'une application à une autre, et ne permettent donc pas une maîtrise complète de la chaîne d'animation. Ainsi, l'intégration d'une animation dans une autre application (si cela est possible) est relativement lourde, ce qui empêche une modularité et une interactivité des animations. 3. Objectifs de l'invention L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention est de fournir une technique d'animation d'un avatar en temps réel qui soit efficace, simple à mettre en u̇vre et peu coûteuse, notamment en terme de mémoire. L'invention a encore pour objectif de fournir une telle technique d'animation présentant un mouvement réaliste et fluide de l'avatar, pouvant s'appliquer aux humanoïdes. Un autre objectif de l'invention est de proposer une telle technique qui soit compatible avec les applications existantes, et notamment avec un environnement virtuel collaboratif, comme la plate-forme SPIN-3D (marque déposée) par exemple. 4. Caractéristiques essentielles de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé d'animation temporelle d'un avatar 3D dans un environnement virtuel ou de réalité mixte d'une posture de départ vers une posture d'arrivée, l'avatar étant associé à une structure hiérarchique articulée comprenant au moins deux segments reliés par au moins une articulation. Selon l'invention, un tel procédé comprend une étape d'interpolation d'au moins une posture intermédiaire de l'avatar entre la posture de départ et la posture d'arrivée tenant compte d'au moins une différence par rapport à la posture de départ. Ainsi, selon l'invention, l'avatar ne passe pas de façon directe d'une posture à une autre mais de manière transitoire, au travers d'au moins une posture intermédiaire. L'avatar étant associé à une structure hiérarchique articulée comme illustrée en figure lA, le déplacement d'un membre entraîne alors les autres membres qui lui sont reliés. Le mouvement global de l'avatar, par exemple un humanoïde, est alors beaucoup plus fluide, et par conséquent plus réaliste. Par exemple, dans le cas où une animation est composée uniquement d'une posture de départ (l'avatar penche la tête à droite par exemple), et d'une posture d'arrivée (l'avatar penche la tête à gauche par exemple), l'étape d'interpolation selon l'invention permet de déterminer des postures intermédiaires entre les postures de départ et d'arrivée (l'avatar penche un peu la tête à droite, la tête de l'avatar est au centre, l'avatar penche un peu la tête à gauche). Avantageusement, l'étape d'interpolation tient compte d'au moins une posture imposée de l'avatar entre la posture de départ et la posture d'arrivée, de façon qu'au moins une desdites posture intermédiaire correspond à ladite posture imposée à un instant donné. Ainsi, si l'animation est composée d'une posture de départ, d'une posture d'arrivée et d'au moins une posture imposée, l'étape d'interpolation permet de déterminer des postures intermédiaires entre la posture de départ et la posture d'arrivée en passant par la posture imposée, considérée comme une posture intermédiaire à un instant donné du déroulement de l'animation. Autrement dit, l'étape d'interpolation permet de calculer des éventuelles postures intermédiaires entre une posture de départ et une posture imposée, puis entre la posture imposée et une posture d'arrivée. Si plusieurs postures sont imposées, il est également possible de calculer des postures intermédiaires entre ces postures imposées. Par exemple, si l'avatar a les mains sur les hanches (posture de départ) et qu'il doit réaliser une animation de frappements des mains, il devra passer par la posture imposée mains écartées , puis par la posture imposée mains jointes avant de retourner à la posture mains écartées qui correspond à la posture d'arrivée. L'étape d'interpolation peut, dans cet exemple, déterminer des postures intermédiaires entre la posture de départ (mains sur les hanches) et la première posture imposée (mains écartées), puis entre la première posture imposée et la seconde posture imposée (mains jointes), et enfin entre la seconde posture imposée et la posture d'arrivée. Ainsi, à certains instants de l'animation, une posture intermédiaire correspond à une posture imposée. De façon préférentielle, ladite différence est exprimée sous la forme d'une variation d'au moins une valeur d'angle d'ouverture d'au moins une desdites articulation de l'avatar. En effet, l'avatar étant associé à une structure hiérarchique articulée comprenant au moins deux segments reliés par une articulation, les différentes positions (ou postures) de l'avatar sont notamment définies en fonction des angles d'ouverture des différentes articulations. Les avatars sont ensuite animés selon une technique de cinématique directe ou de cinématique inverse, en agissant sur les articulations (translation ou rotation) du squelette. De manière avantageuse, ladite interpolation appartient au groupe comprenant une interpolation linéaire, une interpolation accélérée ou une interpolation décélérée. Ainsi, les animations corporelles étant composées d'une succession de postures associées à des temps, l'invention propose de mettre en u̇vre une étape d'interpolation linéaire, accélérée ou décélérée entre au moins deux postures, en fonction du geste que l'on souhaite restituer. Dans le cas où l'interpolation est de type accélérée ou décélérée, le procédé d'animation selon l'invention met en u̇vre une étape de détermination d'un coefficient d'interpolation permettant de fixer une force d'accélération ou de décélération de ladite interpolation en fonction d'au moins un critère de fluidité visuelle prédéterminé, de façon à ajouter un réalisme supplémentaire à la dynamique de l'animation. Il est ainsi possible de préciser, pour chacune des postures, la façon d'aller à la posture suivante, en précisant le mode d'interpolation (accéléré, linéaire, décéléré) et le coefficient d'interpolation, pour déterminer les postures intermédiaires au cours de l'étape d'interpolation. On peut par exemple accélérer un mouvement entre deux postures imposées en diminuant le nombre de postures intermédiaires, ou ralentir un mouvement en augmentant le nombre de postures intermédiaires. Préférentiellement, ladite posture intermédiaire de l'animation de l'avatar tient compte d'au moins un des paramètres appartenant au groupe comprenant : - une posture précédant ladite posture intermédiaire dans ladite animation ; - une posture imposée ; - un instant courant de ladite animation ; ladite posture d'arrivée ; - un mode d'interpolation ; - ledit coefficient d'interpolation. On rappelle que dans le cas où l'étape d'interpolation tient compte d'au moins une posture imposée de l'avatar entre la posture de départ et la posture d'arrivée, une posture intermédiaire correspond, à un instant de l'animation, à cette posture imposée. L'invention concerne également un dispositif d'animation temporelle d'un avatar tridimensionnel dans un environnement virtuel ou de réalité mixte, un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé d'animation, un produit programme d'ordinateur correspondants. Les avantages des dispositif d'animation, programme d'ordinateur et produit programme d'ordinateur sont les mêmes que ceux du procédé d'animation. Par conséquent, ils ne sont pas détaillés plus amplement. L'invention concerne encore un support d'enregistrement contenant un fichier de données lisible par ordinateur. Selon l'invention, le fichier de données contient une animation d'un avatar tridimensionnel dans un environnement virtuel ou de réalité mixte d'une posture de départ vers une posture d'arrivée, l'animation étant stockée dans ledit fichier de données sous la forme d'une liste comprenant au moins : la posture de départ, la posture d'arrivée, une posture intermédiaire entre la posture de départ et la posture d'arrivée, obtenue par interpolation et tenant compte d'au moins une différence par rapport à la posture de départ. Pour chacune des postures de ladite animation à l'exception de ladite posture d'arrivée, ledit fichier de données contient : - un marqueur de position de ladite posture sur une échelle temporelle ; - des données de détermination d'une posture suivante de ladite animation comprenant au moins un mode d'interpolation et un coefficient d'interpolation associé. 5. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : les figures 1A, 1B et 1C, déjà commentées en relation avec l'art antérieur, présentent différentes techniques de modélisation (c'està-dire de création) d'un avatar tridimensionnel ; les figures 2 et 3 illustrent le principe de hiérarchisation d'une structure hiérarchique ; les figures 4A, 4B et 4C présentent les courbes d'interpolation permettant le calcul de postures intermédiaires selon l'invention ; la figure 5 illustre le déplacement d'une posture de l'avatar à une autre ; la figure 6 illustre un exemple d'application de l'invention. 6. Description d'un mode de réalisation de l'invention Le principe général de l'invention repose sur une technique d'interpolation entre une position de départ et une position d'arrivée d'un avatar, par exemple de type humanoïde, en passant éventuellement par une posture imposée, permettant d'animer de manière réaliste et fluide un tel avatar en temps réel, les différentes positions (ou postures) étant notamment définies en fonction des angles d'ouverture des différentes articulations. La technique d'interpolation selon l'invention peut notamment tenir compte d'une accélération ou d'une décélération du mouvement de l'avatar. Ce procédé d'animation temporelle selon l'invention peut notamment s'intégrer dans un système plus complet, permettant de gérer des avatars dans des environnements virtuels, et notamment de gérer le chargement, l'affichage et l'animation de tels avatars, par exemple en fonction de messages provenant d'un utilisateur. Ces messages peuvent être du type désignation d'une position, mise en u̇vre d'une animation pré-calculée, ajout d'une expression faciale, .... Un tel système complet peut notamment intégrer de nombreuses notions, comme la richesse et la multitude des modes d'animations, la fusion d'animations, la généricité des animations, l'interactivité avec un modèle en temps réel, ou encore l'interopérabilité avec des applications ou des environnements existants. Il est ainsi possible de fusionner des animations, notamment des animations pré-calculées et/ou des animations interactives asservies aux événements d'un utilisateur (en tenant notamment compte d'informations du type position de l'espace à désigner , par exemple par le regard, que l'utilisateur ne peut pas connaître à l'avance), pendant le déroulement d'une session d'environnement virtuel. On peut, à titre d'exemple, citer des déictiques de l'avatar asservis au déplacement de la souris combinées avec une animation pré-calculée de torsion du corps et déplacement de la tête. Un tel système complet permet ainsi de gérer le chargement, l'affichage et l'animation d'avatar dans une application d'environnement virtuel 3D (comme la plate-forme d'environnement virtuel collaboratif SPIN-3D , notamment décrite par D. Pavy et al.dans le document Spin-3D: A VR-Platform on Internet ADSL Networks for Synchronous Collaboration ), ou de réalité mixte, grâce à l'utilisation, par le système complet, du même contexte graphique qu'une application hôte. On peut citer à titre d'exemples la compatibilité avec un environnement virtuel collaboratif existant, l'intégration sous forme de modules d'affichage et d'animation distincts dans des applications d'environnement virtuel existantes, la manipulation d'humanoïdes définis dans un format du type VRML ou H-Anim connu, ou encore l'utilisation de techniques d'animations faciales ou d'analyse vidéo connus, .... On rappelle le langage VRML (en anglais Virtual Reality Modeling Language , en français langage de modélisation de réalité virtuelle ) fut créé pour décrire des scènes 3D sur Internet. Un fichier VRML est un fichier texte qui définit entre autres, la forme, la couleur, la taille et la position d'objets ou d'avatars 3D. Ce langage normalisé est notamment utilisé dans la plate-forme d'application SPIN-3D (marque déposée). Le format H-Anim (défini par un groupe de travail sur l'animation d'humanoïde Humanoid Animation working group ) propose quant à lui d'ajouter des mots-clés au langage VRML pour la définition d'humanoïdes et leurs animations (par exemple un objet Joint pour définir des articulations, Segment pour définir des segments du corps, Site pour définir des effecteurs terminaux ou encore Displacer pour définir les déplacements autorisés pour des sommets d'un segment). On présente ainsi un mode de réalisation préférentiel de l'invention, dans lequel la technique d'animation temporelle selon l'invention s'intègre dans un système complet permettant de gérer le chargement, l'affichage et l'animation de tels avatars, par exemple de type humanoïde. Un tel système complet est notamment compatible avec la plate-forme d'environnement virtuel collaboratif SPIN-3D . On rappelle brièvement le principe de cette plate-forme, décrit plus précisément dans le document FR 2 819 920. Cette plate-forme permet à des utilisateurs distants de se réunir en petits groupes en temps réel pour réaliser une tâche en commun (par exemple le partage synchrone d'applications, la communication orale, la co-manipulation d'objets 3D, ...), chaque utilisateur étant représenté par un humanoïde (un clone) qui reproduit ses actions.Les interactions avec l'environnement virtuel et avec les objets qu'il contient sont assurées par des périphériques de sélection et de manipulation (souris, SpaceMouse - marque déposée, écran tactile...), chaque utilisateur disposant d'un poste de travail comprenant : - un module décisionnel (dit module utilisateur) qui scrute les actions sur les périphériques, les événements de l'application, et en déduit les animations à déclencher à distance ; - un module d'animation (dit module clone) qui recueille ces informations et anime en fonction les humanoïdes. 6.1 Chargement et visualisation de l'humanoïde On présente dorénavant, en relation avec la figure 2, la représentation graphique d'une partie du maillage du bras d'un humanoïde à partir d'un squelette hiérarchisé. Comme précisé en relation avec l'art antérieur, les différents segments (bras, avant-bras, mains, ..., représentés par des traits pleins) du squelette hiérarchique articulé sont liés entre eux par des articulations (épaules, coudes, poignets, ..., représentés par des pointillés). Ainsi, l'épaule 21 est reliée au bras 22 et agit sur le coude 23, le coude 23 est relié à l'avant-bras 24 et agit sur le poignet 25, le poignet 25 est relié à la main 26 et agit sur les doigts (pouce 27, index 28, majeur 29, ...). Chaque segment ou articulation est notamment défini en fonction des sommets du maillage, des coordonnées de texture, de sa position ou orientation dans l'espace, .... Dans un système complet permettant de gérer des avatars dans des environnements virtuels, il est ainsi possible de charger en mémoire un humanoïde composé d'un maillage triangulaire dans un format classique (par exemple VRML97, H-Anim 200x ou encore X3D - marques déposées), et de composer un graphe de scène respectant la structure articulée hiérarchique en utilisant un analyseur du langage. Il est ainsi possible, dans un système complet, de visualiser la représentation graphique du graphe de scène construit, chaque n u̇d de l'arbre possédant une méthode (au sens informatique) pour pouvoir s'afficher dans un contexte de rendu graphique d'une application hôte. On peut notamment citer les bibliothèques connues OpenGL et DirectX (marques déposées) pour le rendu graphique. Le contexte de rendu graphique (type de projection, jeux de lumière, définissant une scène) peut ainsi être défini dans l'application hôte. Dans ce cas, l'humanoïde peut être chargé et affiché dans cette scène en appelant des méthodes du système, le système complet utilisant le même contexte graphique que l'application hôte. Ainsi, comme illustré en figure 3, à chaque boucle d'affichage, on fait un appel au n u̇d racine 32, situé tout en haut de la hiérarchie, qui répercute (31) la demande d'affichage à ses fils, et ainsi de suite jusqu'aux feuilles 33 de l'arbre (correspondant aux extrémités de l'humanoïde). 6.2 Modification de la rotation d'une articulation Une fois l'humanoïde affiché, il est souhaitable de pouvoir l'animer, en modifiant par exemple la rotation d'une de ses articulations. Cette rotation peut être mise en u̇vre en modifiant le champ rotation de l'objet joint (articulation), tel que défini dans la norme H-Anim 200x (définie dans le document ISO/IEC FCD 19774, Information technology - Computer graphies and image processing - Humanoid animation ), et présenté en annexe 1. Le champ rotation spécifie notamment une rotation du système de coordonnées de l'objet joint , exprimée à l'aide d'un quaternion. La rotation du système de coordonnées peut également être exprimée en fonction des angles d'Euler (angles en x, y et z dans l'espace en degrés). 6.3 Les postures d'un humanoï de Il est également souhaitable de pouvoir modifier la posture de l'avatar, par exemple de type humanoïde. Le format H-Anim peut également décrire, en plus d'une structure hiérarchique articulée, une façon d'animer un humanoïde et/ou une façon de décrire les animations d'humanoïdes. 6.3.1 Création d'une posture Il est cependant préférable d'utiliser ce format H-Anim pour décrire la structure articulée, mais d'utiliser une technique nouvelle pour la création, la sauvegarde, et la restitution de la posture d"un humanoïde. Dans le système complet dans lequel s'intègre l'invention, il est ainsi possible de modifier plusieurs rotations d'articulations de l'humanoïde, en temps réel, et pour définir une nouvelle pose ou posture de l'humanoïde. Ainsi, deux postures sont différentes si au moins la valeur d'angle d'ouverture d'une articulation est modifiée entre les deux postures. 6.3.2 Sauvegarde d'une posture Des dispositifs d'affichage (par exemple un écran), d'interaction avec le modèle (par exemple une souris, un clavier...), formant un poste de travail, sont alors nécessaire pour faire les modifications de la position des articulations. Les modifications associées aux articulations peuvent ensuite être enregistrées, à partir d'un dispositif d'enregistrement des données (par exemple un bouton, une zone de saisies...), dans un fichier de données (par exemple au format PVE ). Ce stockage d'une posture dans un fichier nécessite la création d'une routine (au sens informatique), ce fichier comprenant alors la liste des champs modifiés par rapport à la position d'origine. On peut notamment référencer pour chacun des champs (comme présenté en annexes 2 et 3) le nom de l'articulation, puis la rotation associée à cette articulation, sous forme d'angles d'Euler ou de quaternions normalisés, les trois premières valeurs (qx, qy, qz) définissant un vecteur normalisé représentant l'axe de rotation et la quatrième (w) définissant l'angle de rotation, exprimé en radians. Une posture ainsi sauvegardée pourra être utilisée dans une autre animation, par le même humanoïde ou par un autre avatar. Il s'agit donc de postures génériques. 6.3.3 Déclenchement d'une posture Le mode d'animation peut notamment être défini en fonction d'un module décisionnel couplé à un dispositif technique (poste de travail), tel que décrit en relation avec la plate-forme SPIN-3D et dans le document FR 2 819 920 déposé au nom du même Demandeur, en envoyant par exemple un message de type déclenchement d'une posture corporelle . On rappelle notamment qu'un tel module décisionnel scrute les actions sur les périphériques et les différents événements et en déduit les animations à déclencher à distance. Lorsque le message est reçu, l'humanoïde se trouvant dans une certaine posture doit passer dans une nouvelle posture, de façon transitoire et non pas de façon directe, de façon à améliorer la fluidité visuelle du mouvement. Ainsi, le procédé d'animation terriporelle selon l'invention propose une étape d'interpolation permettant de passer d'une posture de départ à une posture d'arrivée, mettant en u̇vre des postures intermédiaires. Certaines postures peuvent notamment être imposées entre la posture de départ et la posture d'arrivée. Dans ce cas, au moins une posture intermédiaire correspond, à un instant donné de l'animation, à une posture imposée. Selon l'invention, l'étape d'interpolation prend en compte au moins certains des éléments suivants : le temps, la posture de départ, la posture d'arrivée, le mode d'interpolation (linéaire, accélérée., décélérée...) ainsi que les coefficients d'interpolations associés. De nouveau, il est intéressant pour un système complet de créer une routine informatique permettant de récupérer les informations enregistrées sous un format de posture, afin de pouvoir rejouer une posture préalablement enregistrée. 6.4 Les animations d'un humanoïde En plus de la modification de la posture de l'humanoïde, il est également souhaitable de pouvoir créer, modifier, ou encore sauvegarder des animations. Le format H-Anim présenté précédemment permet de décrire des animations, mais de manière complexe. 6.4.1 Création d'une animation L'invention propose une nouvelle technique d'animation d'avatars au format H-Anim, mais ne reposant pas sur la description H-Anim des animations. Plus précisément, les animations corporelles étant composées d'une succession de postures associées à des temps, l'invention propose de mettre en u̇vre au moins une étape d'interpolation entre deux postures. Ces interpolations peuvent être réalisées de manière linéaire, accélérée ou décélérée, en fonction du geste que l'on souhaite restituer, un indice permettant de régler le coefficient d'interpolation. On présente désormais en relation avec les figures 4A, 4B et 4C la technique d'animation temporelle d'avatar mettant en u̇vre une étape d'interpolation selon l'invention, la figure 4A présentant une interpolation linéaire, la figure 4B une interpolation accélérée, et la figure 4C une interpolation décélérée. Plus précisément, les courbes des figures 4A, 4B et 4C présentent les postures intermédiaires entre une posture de départ 41 et une posture d'arrivée 42 en fonction du temps. Ainsi : dans le cas d'une interpolation linéaire (figure 4A), les postures intermédiaires sont calculées de la façon suivante : dans le cas d'une interpolation accélérée (figure 4B), les postures intermédiaires sont calculées comme suit : dans le cas d'une interpolation décélérée (figure 4C), les postures intermédiaires sont définies par: avec : courant, début, fin correspondant respectivement au temps courant (temps présent), au temps de la posture de départ (TO) et au temps de la posture d'arrivée (Tf) ; Pos_initiale correspond à la valeur d'angle initiale, c'est-à-dire à la valeur de l'angle de la posture de départ ; Pos-courante correspond à la nouvelle valeur d'angle ; coef correspond au coefficient d'interpolation ; la différence entre une posture de départ et une posture d'arrivée étant exprimée sous la forme d'une variation de la valeur de l'angle d'ouverture d'au moins une des articulations du squelette hiérarchisé. On constate ainsi que plus le coefficient d'interpolation est élevé, plus l'accélération ou la décélération est importante. L'étape d'interpolation selon l'invention permet ainsi d'animer un avatar, par exemple de type humanoïde, de façon réaliste et naturelle. 6.4.2 Sauvegarde d'une animation Il est notamment possible d'enregistrer les animations dans un fichier (par exemple au format AVE ), par exemple en créant une routine comme proposée en annexe 4: le fichier obtenu contient alors la liste de différentes postures contenues dans l'animation. Pour chacune des postures, on peut par exemple signaler sa position sur l'échelle des temps et la façon d'aller à la posture suivante, c'est-à-dire préciser le mode d'interpolation (accéléré, linéaire, décéléré) et le coefficient d'interpolation, les postures intermédiaires étant calculées automatiquement à partir des formules décrites précédemment. Dans un système complet, des dispositifs d'affichage (par exemple un écran), d'interaction avec le modèle (par exemple une souris, un clavier...), d'enregistrement des données (comme des boutons, des zones de saisies...) sont nécessaire afin de sélectionner les différentes postures, leur associer un temps et un mode d'interpolation, et enfin sauvegarder la nouvelle animation. Il est ainsi possible de sauvegarder une animation pour pouvoir la rejouer par la suite, par le même ou par un autre avatar, par exemple dans une application hôte. Dans un tel système complet, il est donc possible de stocker dans des fichiers indépendants les avatars et les animations, pour pouvoir adapter ces animations génériques dans des applications hôtes. 6.4.3 Déclenchement d'une animation Comme pour le déclenchement d'une posture, le mode d'animation peut notamment être défini en fonction d'un module décisionnel couplé à un dispositif technique, tel que présenté précédemment, en envoyant par exemple un message de type déclenchement d'une animation corporelle . Lorsque le message est reçu, l'humanoïde se trouvant dans une posture de départ doit passer par plusieurs postures imposées (décrites dans les fichiers d'animations), de façon transitoire et non directe de sorte à améliorer la fluidité visuelle du mouvement, afin d'arriver dans une posture d'arrivée. Par exemple, comme illustré en figure 5, l'humanoïde 51 se trouve tout d'abord dans une posture de départ 51, avec un bras écarté sur le côté (formant un angle d'environ 90 degrés avec le corps de l'humanoïde). L'humanoïde doit ensuite passer par une première posture imposée 52, correspondant à un écartement plus réduit du bras de l'humanoïde par rapport à son corps (formant un angle d'environ 60 degrés) et par une seconde posture imposée 53, correspondant à un écartement encore plus réduit du bras de l'humanoïde par rapport à son corps (formant un angle d'environ 30 degrés) avant d'arriver dans la posture finale 54 bras le long du corps. Selon l'invention, une étape d'interpolation est mise en u̇vre entre la posture de départ 51 et la première posture imposée 52, puis entre la première posture imposée 52 et la seconde posture imposée 53, et enfin entre la seconde posture imposée 53 et la posture d'arrivée, de sorte à obtenir un mouvement plus fluide et plus réaliste de l'humanoïde. Il est également possible que l'humanoïde soit dans une posture différente (par exemple les mains sur la tête) avant le début de l'animation. Dans ce cas, l'humanoïde passe d"abord d'une posture de départ (mains sur la tête par exemple) à une première posture imposée (bras écarté sur le côté par exemple), correspondant au début d'une animation. Le passage de cette posture de départ à la première posture imposée peut notamment mettre en u̇vre la technique d'interpolation présentée ci-dessus. La première posture intermédiaire est obtenue en prenant en compte la posture de départ (posture courante), la première posture intermédiaire (posture suivante), le temps courant (TO), un mode d'interpolation et un coefficient d'interpolation (coef). Une fois la première posture imposée (correspondant au début d'une animation) atteinte, l'invention propose de calculer à chaque instant la posture intermédiaire suivante pour arriver jusqu'à la dernière posture de l'animation (posture d'arrivée), en prenant en compte à chaque itération le temps courant, la posture courante, la posture cible (posture suivante), le mode d'interpolation et le coefficient d'interpolation pour aller à la posture suivante. Dans ce mode de réalisation préférentiel, dans lequel la technique d'animation temporelle selon l'invention est intégrée dans un système complet permettant de gérer le chargement, l'affichage et l'animation d'avatar, il est également possible pour donner plus de vie et plus de réalisme à un avatar de type humanoïde par exemple, de lui faire jouer de façon aléatoire des animations dites de signes de vie . On peut ainsi faire faire à l'avatar de légers mouvements du corps, par exemple pour symboliser sa respiration, en utilisant le format présenté précédemment. 6.5 La désignation Dans le système complet de gestion du chargement, de l'affichage et de l'animation d'avatars, il est souhaitable de pouvoir représenter des gestes de désignation. Ces gestes de désignation peuvent se faire avec la main, le doigt tendu ou non, avec un objet (par exemple une règle), ou encore avec la tête ou avec une autre partie du corps. Un tel système complet permet, dans un mode de réalisation préférentiel, une désignation par le suivi du regard. Il est ainsi possible, dans le système complet, de fusionner des animations asservies aux événements d'un utilisateur (désignation du regard) à des animations pré-calculées, pour animer de manière interactive un avatar. On présente par exemple en figure 6 une application à l'imagerie médicale 3D, permettant à plusieurs médecins réels de se retrouver dans un environnement virtuel collaboratif pour discuter d'une tumeur sur un organe d'un patient, un médecin dans l'environnement virtuel (humanoïde) pouvant montrer du doigt la tumeur à ces collègues. Comme présenté précédemment, un dispositif technique couplé à un module décisionnel permet de recevoir un message du type déclenchement d'un geste de désignation . Il est ainsi possible, à partir du système complet, de : - désigner un objet avec la main (droite ou gauche), en y associant éventuellement une forme (index tendu par exemple) ; - désigner un objet de la tête (suivi de la tête, du regard associé, mouvement du buste associé...) ; - combiner un geste de désignation avec une posture ou une animation en cours d'exécution (désigner par exemple une personne dans l'environnement virtuel tout en jouant une animation faciale de rire et en se tapant la main sur le ventre) : il est ainsi possible de faire jouer à l'avatar une animation pré-calculée et d'y ajouter simultanément un autre mode d'animation interactif ; - suivre instantanément la cible sans interpolation particulière ;- décaler dans le temps l'atteinte à la cible, en utilisant soit une loi de Fitts, soit une interpolation entre la posture courante et la posture cible selon l'invention ; - regagner une position d'origine ou jouer une animation particulière lors d'une inactivité (aucun message de désignation de cible depuis un certain temps) ; - pouvoir donner à l'humanoïde une posture ou une animation particulière lors d'un geste de désignation. Le module décisionnel, encore dit module utilisateur ou intelligent, joue dans un tel système complet un rôle très important dans le basculement d'un mode à un autre. On peut notamment utiliser une technique de cinématique inverse pour trouver l'orientation dans l'espace du poignet, du coude, de l'épaule (par exemple quand l'avatar désigne un objet de la main) quand on ne dispose que de la position de la cible à atteindre. 6.6 La capture de mouvement Le système complet de gestion des avatars propose également de mettre en u̇vre une technique de capture de mouvement notamment à base d'analyse vidéo, comme proposé par 0. Bernier et D. Collobert dans Head and Hands 3D tracking in real time by the EM algorithm . Selon cette technique, on récupère la position dans l'espace des mains et de la tête de l'utilisateur réel. A partir d'une technique de cinématique inverse on peut retrouver les rotations des épaules, coudes, poignets de l'utilisateur, et ainsi obtenir un avatar qui suit les mouvements de l'utilisateur derrière son terminal. Une telle technique présente ainsi un caractère non-intrusif par rapport à d'autres techniques de capture de mouvement du type exo-squelette... A chaque boucle d'affichage, il est alors possible de récupérer la nouvelle position des mains et de la tête et de s'en servir pour animer l'avatar. Cette technique permet ainsi d'enregistrer des postures et des temps associés, qui pourront être rejoués dans d'autres applications pour créer différentes animations, ces animations pouvant notamment être accélérées ou ralenties en utilisant la technique d'interpolation présentée dans ce document. 6.7 Les animations faciales Il est également possible dans un système complet d'intégrer certaines fonctionnalités d'un moteur d'animation faciale connu, comme celui proposé dans le document FR 2 811 792 au nom du même Demandeur, et notamment les fonctionnalités permettant d'appliquer une émotion, une expression faciale ou encore d'utiliser des scripts d'animations (comme opiner de la tête, sourire et cligner des yeux). Pour qu'une telle technique d'animation faciale soit mise en u̇vre, il est nécessaire que la tête de l'avatar soit composée d'un système musculaire et paramétrique. De nouveau, une animation faciale figurant des signes de vie peut être jouée régulièrement pour donner plus de vie au personnage. Finalement, le procédé d'animation temporelle d'un avatar 3D peut être mis en u̇vre dès qu'une nouvelle posture est à déterminer. Une nouvelle posture peut être à déterminer dès lors qu'un module décisionnel envoie un message du type : déclenchement d'une posture corporelle et/ou d'une animation corporelle et/ou d'une désignation et/ou d'un suivi de la tête et/ou de signes de vie corporels et/ou d'une capture de mouvement vidéo et/ou d'une expression faciale et/ou d'un comportement facial et/ou de signes de vies faciaux et/ou manipulation des paupières et/ou manipulation des yeux. L'invention permet ainsi de donner plus de vie et de réalisme à un avatar, notamment un humanoïde, au cours de son animation, et s'applique à tout type d'environnement virtuel, quelle que soit la finalité de l'environnement virtuel : services, jeux, forums de discussion, réalité augmentée, personnes utilisant le langage des signes pour communiquer... ANNEXES ANNEXE 1 : Extrait de la norme H-Anim 200x : REVENDICATIONS ANNEXE 2 : Exemple de définition d'une- rotation sous forme d'angles d'Euler ANNEXE 3 : Exemple de définition d'une rotation sous forme de quaternions normalisés ANNEXE 4 : Exemple de définition d'une animation 1. Procédé d'animation temporelle d'un avatar tridimensionnel dans un environnement virtuel ou de réalité mixte d'une posture de départ (51) vers une posture d'arrivée (54), ledit avatar étant associé à une structure hiérarchique articulée comprenant au moins deux segments reliés par au moins une articulation, caractérisé en ce qu'il comprend une étape d'interpolation d'au moins une posture intermédiaire dudit avatar entre ladite posture de départ (51) et ladite posture d'arrivée (54) tenant compte d'au moins une différence par rapport à ladite posture de départ (51). 2. Procédé d'animation selon la revendication 1, caractérisé en ce que ladite étape d'interpolation tient compte d'au moins une posture imposée (52, 53) dudit avatar entre ladite posture de départ (51) et ladite posture d'arrivée (54), de façon qu'au moins une desdites posture intermédiaire correspond à ladite posture imposée à un instant donné. 3. Procédé d'animation selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ladite différence est exprimée sous la forme d'une variation d'au moins une valeur d'angle d'ouverture d'au moins une desdites articulation dudit avatar. 4. Procédé d'animation selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ladite interpolation appartient au groupe comprenant : une interpolation linéaire ; une interpolation accélérée ; - une interpolation décélérée. 5. Procédé d'animation selon la revendication 4, caractérisé en ce que, ladite interpolation étant de type accélérée ou décélérée, ledit procédé met en u̇vre une étape de détermination d'un coefficient d'interpolation permettant de fixer une force d'accélération ou de décélération de ladite interpolation en fonction d'au moins un critère de fluidité visuelle prédéterminé. 6. Procédé d'animation selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ladite posture intermédiaire de ladite animation dudit avatar tient compte d'au moins un des paramètres appartenant au groupe comprenant : - une posture précédant ladite posture intermédiaire dans ladite animation ; - une posture imposée ; - une instant courant de ladite animation ; - ladite posture d'arrivée ; - un mode d'interpolation ; - ledit coefficient d'interpolation. 7. Dispositif d'animation temporelle d'un avatar tridimensionnel dans un environnement virtuel ou de réalité mixte d'une posture de départ (51) vers une posture d'arrivée (54), ledit avatar étant associé à une structure hiérarchique articulée comprenant au moins deux segments reliés par au moins une articulation, caractérisé en ce qu'il comprend des moyens d'interpolation d'au moins une posture intermédiaire dudit avatar entre ladite posture de départ (51) et ladite posture d'arrivée (54) tenant compte d'au moins une différence par rapport à ladite posture de départ (51). 8. Programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé d'animation temporelle d'un avatar tridimensionnel dans un environnement virtuel ou de réalité mixte d'une posture de départ (51) vers une posture d'arrivée (54), selon l'une quelconque des revendications 1 à 6 lorsque ledit programme est exécuté sur un ordinateur. 9. Produit programme d'ordinateur comprenant des instructions de code de programme enregistré sur un support utilisable dans ou par un ordinateur, comprenant des moyens de programmation lisibles par ordinateur pour effectuer une étape d'interpolation d'au moins une posture intermédiaire d'un avatar tridimensionnel dans un environnement virtuel ou de réalité mixte entre une posture de départ (51) et une posture d'arrivée (54), ladite posture intermédiaire tenant compte d'au moins une différence par rapport à ladite posture de départ (51 ). 10. Support d'enregistrement contenant un fichier de données lisible par ordinateur, caractérisé en ce que ledit fichier de données contient une animation d'un avatar tridimensionnel dans un environnement virtuel ou de réalité mixte d'une posture de départ (51) vers une posture d'arrivée (54), ladite animation étant stockée dans ledit fichier de données sous la forme d'une liste comprenant au moins : ladite posture de départ ; ladite posture d'arrivée ; une posture intermédiaire entre ladite posture de départ (51) et ladite posture d'arrivée (54), obtenue par interpolation et tenant compte d'au moins une différence par rapport à ladite posture de départ (51), et en ce que pour chacune des postures de ladite animation à l'exception de ladite posture d'arrivée, ledit fichier de données contient : un marqueur de position de ladite posture sur une échelle temporelle ; des données de détermination d'une posture suivante de ladite animation comprenant au moins un mode d'interpolation et un coefficient d'interpolation associé.