Note: Descriptions are shown in the official language in which they were submitted.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
1
PROCEDE ET SYSTEME D'ANIMATION D'UN PERSONNAGE EN
TROIS DIMENSIONS
Za présente invention concerne un procédé
d'animation par un utilisateur d'un personnage en
trois dimensions ou personnage 3D, interactif, appelé
agent, propre à être mis en oeuvre pendant le
déroulement d'un programme applïcatif, l'agent étant
découpé par rapport au fond de l'interface graphique
l0 du programme dont il est indépendant.
Elle concerne également un système informatique
mettant en oeuvre un tel procédé.
Elle trouve une application particulièrement
importante, bien que non exclusive, dans le domaine
de la communication entre un utilisateur et un
programme informatique, par exemple pour assister ou
divertir l'utilisateur pendant le fonctionnement du
programme par exemple sur le réseau Internet.
On connaît déjà un procédé permettant de faire
2o apparaître dans un programme applïcatif, découpé par
rapport à l'interface graphique dudit programme, un
personnage ou caractère dont le comportement se
modifie en fonction de paramètres prédéterminés,
comme par exemple le temps écoulé ou encore une
action de l'utilisateur sur un bouton logiciel, un
click de souris etc.
Un tel procédé présente néanmoins des
inconvénients.
En effet le personnage est peu expressif et la
3o programmation de son comportement nécessite
l'intervention d'un spécialiste en informatique
capable de programmer, avec des outils assez
complexes, différents scénarios du personnage.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
2
La présente invention vise à fournir un procédé et
un système répondant mieux que ceux antérieurement
connus aux exigences de la pratique, notamment en ce
qu'elle permet, à partir d'un texte écrit ou oral
généré par un utilisateur qui n'est pas un metteur en
scène professionnel, d'animer un agent ou caractère,
de façon particulièrement simple et vivante.
Grâce à l'invention l'utilisateur va donc pouvoir
mettre en scène, sans compétence particulière, un
personnage, à partir du texte que ce dernier peut
lui-même prononcer ou éditer, de façon à ce que ledit
personnage puisse se mouvoir ou s'animer au bon
moment, et ce en introduisant les commandes de
l'animation de déplacement et/ou de modification de
l'intonation de la voix de l'agent de façon
appropriée.
Un agent mis en oeuvre avec l'invention apparaît
par ailleurs à l'écran sans être contenu dans une
fenêtre, ce qui permet de le placer n'importe où sur
2o l'écran sans gêner les éléments de l'interface.
Avantageusement il est relié à une bulle de
dialogues interactive permettant d'afficher du texte
défilant, au fur et à mesure, ainsi que des éléments
d'interface comme des boutons actionneurs, des listes
déroulantes, etc.
Les modalités de conception de l'agent lui-même
sont connues. Le personnage est en effet créé par un
logiciel standard comme par exemple les logiciels
commercialisés par les sociétés SOFTIMAGE, MAYA, 3D
STUDIOMAX ou LIGHT WAVE.
Ces logiciels sont du type de ceux utilisés par
les studios graphiques pour réaliser des dessins
animés, des films ou des jeux vidéo.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
3
Ils permettent, comme au cinéma, de faire vivre
des personnages par rapport à un décor, une caméra
et/ou un jeu de lumière.
' Dans le but de pallier les inconvénients de l'art
antérieur, la présente invention propose donc, et
notamment, un procédé d' animation par un utilisateur
d'un personnage 3D, interactif, appelé agent, propre
à être mis en oeuvre pendant le déroulement d'un
programme applicatif, l'agent étant découpé par
1o rapport au fond de l'interface graphique du programme
dont il est indépendant, procédé dans lequel on crée
un premier fïchier comportant les données définissant
l'agent et ses algorithmes d'animation de façon
connue en elle même, lesdites données comportant les
paramètres de couleurs, de texture et de maillage de
l' agent,
caractérisé en ce que on interprète ce premier
fichier en calculant en temps réel les paramètres de
comportement de l'agent grâce à un moteur 3D basé sur
2o une reconnaissance de mots clé prononcés et/ou écrits
par l'utilisateur, pour animer automatiquement ledit
agent en fonction de critères prédéterminés
correspondant aux dits mots clé ou à une combinaison
desdits mots clé.
Par mot clé, il faut entendre essentiellement un
mot de vocabulaire déterminé, un terme de
signification sémantique déterminée (famille de mots)
un signe ou plusieurs signes de ponctuation, une
suite de mots sans interruption de ponctuation et/ou
une image ou dessin.
Dans des modes de réalisation avantageux, on a de
plus recours à l'une et/ou à l'autre des dispositions
suivantes .
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
4
- le premier fichier est téléchargé à partir d'au
moins un site présent sur Internet ;
- l'utilisateur interagit avec l'agent par le
biais du remplissage de bulles interactives ;
- les mots olé sont auto générés au moins en
partie par un moteur d'intelligence comportementale
basé sur un dictionnaire dynamique de mots et
d'associations de mots ;
' - on analyse le texte proposé par l'utilisateur
l0 pour déterminer le ou les moments d'insertion de
commandes de l'agent, à savoir son animation, son
déplacement ou la modification de l'intonation de sa
voix, à partir du rythme du texte, à savoir son
mouvement général qui résulte de la longueur relative
des membres de la phrase et/ou de l'emploi d'un
accent tonique ;
- le rythme du texte comporte plusieurs paramètres
pris en compte par le calcul, parmi le rythme
grammatical, le rythme du sens, la ponctuation et/ou
la respiration ;
- on analyse le rythme des phrases du texte
utilisé relativement à la taille du paragraphe dont
' elles font partie, en utilisant un ou plusieurs
paramètres dits flous ;
- le paramètre flou est pris parmi les paramètres
suivants . mise en valeur, longueur du paragraphe par
rapport au reste du texte, vivacité, rapport à
l'espace de l'écran, type, longueur relative d'une
phrase, parenthèses et/ou virgules ;
- on affecte à l'agent un paramètre de style, à
savoir un paramètre dépendant des moyens d'expression
du langage propre audit agent ;
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
- les paramètres de style utilisés pour définir
l'animation le sont selon une échelle d'intensité
prédéterminée, et sont pris parmi la vivacité, l'état
calme ou nerveux, la mobilité ;
5 - on décide du moment pour insérer ou transmettre
une commande et quelle commande transmettre à partir
de l'analyse du texte et du style voulus par
l'utilisateur ;
- l'analyse du texte et de la séquence c~e
1o paragraphes, et/ou encore l'analyse de chaque
paragraphe et de la séquence des phrases pondërant
ces valeurs respectivement aux dits paragraphes,
et/ou l'analyse des phrases et des séquences de
ponctuation à l'intérieur des phrases pondérant
lesdites valeurs, respectivement aux dites phrases,
initialise les valeurs utilisées pour déterminer 1e
seuil au delà duquel la ou les commandes vont être
transmises;
- les commandes sont choisies parmi les opérations
2o suivantes . déplacer, montrer, modifier la voix,
faire une pause, renvoyer, expliquer, interpeller,
interroger.
(,'invention propose également un système
d'animation par un utilisateur d'un personnage 3D
interactif mettant en ceuvre le procédé décrit cl
avant.
Également l'invention propose un système
' d'animation par un utilisateur d'un personnage 3D,
interactif, appelé agent, pour mise en oeuvre pendant
le déroulement d'un programme applicatif, ledit agent
étant découpé par rapport au fond de l'interface
graphique dudit programme dont il est indépendant,
système comprenant un premier fichier comportant les
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
6
données définissant l'agent et ses algorithmes
d'animation de façon connue en elle même, lesdites
données comportant les paramètres de couleurs, de
texture et de maillage dudit agent, caractérïsé en ce
~ que il comprend .
- des moyens de stockage dudit premier fichier,
- des moyens de recherche, de calcul et d' analyse
pour interpréter ce premier fichier en calculant en
temps réel les paramètres de comportement de l'agent,
lesdits moyens comprenant un moteur 3D basé sur une
.reconnaissance de mots clé prononcés et/ou écrits par
l'utilisateur,
- des moyens pour reconnaître vocalement et/ou
autrement, par exemple via un alphabet de l'écrit,
lesdits mots clé par l'utilisateur,
- et des moyens d'affichage agencés pour, à partir
dudit moteur 3D, animer automatiquement ledit agent
en fonction de critères prédéterminés correspondant
aux dits mots clé ou à une combinaison desdits mots
clé.
Avantageusement le système comporte des moyens
d'autogénération, au moins en partie, de mots clés,
ces moyens comprenant un moteur d'intelligence
comportementale basé sur un dictionnaire dynamique de
mots et d'association de mots.
Dans un mode avantageux de réalisation le système
comprend des moyens d'analyse du texte proposé par
l'utilisateur pour déterminer le ou les moments
d'insertion de commande de l'agent à savoir son
animation, son déplacement ou la modification de
l'intonation de sa voix à partir du rythme du texte,
à savoir son mouvement général qui résulte de la
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
7
longueur relative des membres de la phrase et/ou de
l'emploi d'un accent tonique.
L'invention sera mieux comprise à la lecture de la
descrïption des modes de réalisation donnés ci-après
à titre d'exemples non limitatifs.
Elle se réfère aux dessins qui l'accompagne dans
lesquels .
- La figure 1 montre un écran comportant un
agent animé selon un mode de réalisation du procédé
l0 . de l' invention.
- Les fïgures 2A et 2B sont des vues de face
d'une bouche pour personnage utilisable avec
l'invention, respectivement en position détendue et
en position contractée.
- Les figures 3A à 3D donnent des vues
schématiques en perspective d'une main d'un agent
animë selon un mode de réalisation de l'invention.
- La figure 4 illustre l'action d'une commande
sur un agent selon un mode de réalisation de
2o l'invention.
- La fïgure 5 est un schëma général de
l'architecture logiciel du système et du procédé
selon le mode de réalisatïon de l'ïnvention plus
- particulièrement décrit ici.
- La figure 6 montre les différentes
interactions entre les logiciels et les utilïsateurs
intervenant dans le procédé ou le système de 1a
figure 5.
- La figure 7 est un schéma de l'éditeur
3o correspondant au procédé mis en ceuvre selon
l'invention.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
8
- La figure 8 est un schéma d'un banc de montage
d'un agent animé selon un mode de réalisatïon du
procédé de l'invention.
La fïgure 1 montre un écran 1 de visualisation
d'un programme applicatif, appartenant à un
ordinateur PC (non représenté) fonctionnant sous
Windows de Microsoft, contenant un agent 2 possédant
une bulle de dialogues ïnteractifs 3 permettant
d'afficher du texte défilant 4. D'autres
environnements tels que MAC, LINUX etc sont bien
entendu possibles.
L'agent ~ peut être déplacé par l'intermédiaire
d'une souris (non représentée) d'une position 5 à une
position 6, par le biais d'une fonction dite « click
. and drag » en terminologie anglo-saxonne. Ses
dïmensions peuvent être agrandies ou réduites en
fonction du souhait de l'utilisateur et comme cela
sera décrit plus avant ci-après.
Les figures 2A à 3D vont permettre de mieux faire
2o comprendre les moyens utilisés de façon connue pour
configurer l'agent et permettre sa mobilité notamment
facialé et/ou au niveau de ses membres dans le cas ou
l'agent est un petit personnage, par exemple le chien
2 de la figure 1(cf. également figure 4).
Plus précisément, un agent est composé d'un
ensemble (« mesh » en terminologie anglo-saxonne) de
couleur, de texture et d'os (« bones » en
terminologie anglo-saxonne), et d'algorithmes
. d'animations de postures et de mouvements divers.
I1 est en effet également possible d'animer les
couleurs et les textures.
Sur l'exemple des figures 2A et 2B, représentant
une bouche, des déformations du maillage 7 appelée s
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
9
« morphing » en terminologie anglo-saxonne,
permettent à la bouche de passer d'une conformation
en sourire 8, à une forme arrondie 9, non provoquées
par les os (bones), par des déplacements des points
du maillage (10, 11, 12 ...) .
Ici, le logiciel paramétré par le graphiste
calcule de façon connue en elle même, l'interpolation
linéaire de chaque point.
Les figures 3A à 3D donnent quant à elles et à
l0 titre d'exemple les étapes successives de la création
d'une main 13 pour son animation.
La figure 3A montre le dessin maillé qui permet de
dégrossir la forme.
Le dessinateur dessine la main de face et de
profil et donne des dïrections sur les couleurs.
La création sous un logiciel d'images de synthèse
de maillage en trois dimensions donne ainsi la main
13, modélisée de façon primitive par le dessinateur,
qui « tire » ou « enfonce >a les mailles 14 jusqu'à
2o obtenir le résultat voulu.
La figure 3B montre la main recouverte d'un
matériau 15. Ici, la couleur réagit aux emplacements
des lumiéres disposées préalablement autour du
maillage.
Différents paramètres correspondant au matériau,
permettent alors aux couleurs choisies de réagir
différemment. Une texture est également appliquée sur
la main à cette étape.
En référence à la figure 3C, la peau du personnage
ayant été créée, le dessinateur intègre ensuite un
squelette 16 afin de déterminer les articulations 17
aux endroits voulus du maillage.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
Chaque point du maillage devra alors réagir en
fonction des os les plus proches.
Enfin (figure 3D) l'animation de la main du
personnage est programmée avec une vitesse donnée,
5 des clés d'animation et une vélocité déterminée, par
le graphiste grâce au logiciel mis en oruvre, de type
connu.
Le travail de configuration des personnages qui
permet d'obtenir le personnage 18 de la figure 4 est
lo alors terminé. Toutes les données sont stockées sous
forme d'un fichier, puis séparées pour permettre de
reparamétrer le personnage en temps réel, selon
l'invention, en créant un fichier personnage (premier
fichier) unique mais sur lequel le créateur
(utilisateur) va pouvoir intervenir tant sur le.
« mesh » que les couleurs, les textures, les
animations, les e< morphïng de mesh » etc... pour
configurer les différentes expressions déterminant la
personnalité du personnage.
2o En faisant maintenant référence à la figure 5, le
fichier ainsi obtenu est compressé en 20 pour être
stocké. Lorsqu'on souhaite l'utiliser, il est
décompressé en 21 de façon à permettre l'obtention du
fichier interne 22 ou premier fichier qui va pouvoir
être interprété grâce au moteur 3D 23, et au moteur
d' animation 24 .
Ces données sont alors utilïsëes pour générer, via
un programme éditeur 25 qui sera précisé plus loin,
l'agent 26, le montage des possibilités dudit agent.
3o 26 par l'utilisateur non spécialiste, selon
l'invention étant possible grâce au module de
dialogue 27.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
11
L'utilisateur (non représenté), chargé de la
conception de l'agent, peut ainsi donner la vie à son
personnage de façon extrêmement simple.
Scénarisation d'un agent
Dans la suite, on utiliserai en général les mêmes
numéros de référence, pour désigner les mêmes
éléments sur les figures 5, 6 et 7.
Le fichier généré par l'éditeur 25 est prévu pour
être exploitable par un graphiste G, grâce aux
1o librairies et aux documentations fournies par les
sociétés fabricantes de logiciels d'animation telles
que mentionnées ci-avant.
Par contre la mise la mise en scène d'un agent 26
n'est pas une tâche aisée dès que le réalisateur est
non spécialiste, en particulier lorsque cette mise en
scène doit permettre une interaction avec l'agent.
Généralement ce travail est en effet fait, dans
l'univers du jeu vidéo, par des intervenants
spécialisés dénommés « Game designers » en
terminologie anglo-saxonne.
Selon le mode de réalisation de l'invention plus
particulièrement décrit ici, un module 27
supplémentaire, de dialogue, est donc prévu pour
donner la possibilité à des non programmeurs de
scénariser un agent, comme cela va maintenant être
décrit.
Plus précisément le module 27 de dialogue offre
ici la possibilité à tout utilisateur de mettre en
scène son agent et d'adapter automatiquement le jeu
de l'agent pour que son comportement dans le
programme applicatif soit naturel, vivant et
cohérent.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
12
Le module 27 de dialogue est agencé pour écrire
automatiquement le code en intégrant toutes les
détections de navïgateur, résolution d'écran, plate
forme, synthèses vocales installées, etc du programme
applicatif concerné.
Pour ce faire il met en scène un moteur dit
« d'Intelligence comportementale » ou couche active
28.
Le moteur est basé sur une reconnaissance de mots
Zo clés dits ou écrits par l'utilisateur via par exemple
une bulle de dialogue 29.
Le scénario (ou « script » en langage anglo-saxon)
30 étant conversationnel donc limité, certains mots
ou évènements sont tout d'abord répertoriés et
Z5 intégrés dans une base de données 31 serveur client.
I1 n'est pas nëcessaire de comprendre le contenu
réel de 1a conversation mais simplement de
reconnaître certains mots et/ou certaines
associations de mots liés à un client, pour trouver
20 quel doit être le comportement de l'agent.
Exemple 1 . L'utilisateur demande en 30 à son
agent de dire . « Nous n'avons plus ce livre en
stock, je suis désolé, nous vous préviendrons dès que
nous l'aurons » (bulle 29) .
25 Selon le mode de réalisation de l'inventïon plus
particulièrement décrït ici, la sïmple reconnaissance
du mot « désolé » influe sur la façon dont l'agent 26
peut se comporter et ce, en temps réel pendant qu'il
dit son texte.
30 Le personnage pendant qu'il parle n'est donc plus
statique.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
13
Exemple 2 . L'utilisateur fait répondre à l'agent
une confirmation du genre . « J'ai trouvé le livre
que vous recherchez, le voilà ! a>.
A partir de cette affirmation liée au point
d'exclamation, le moteur d'intelligence
comportementale 28 génère automatiquement via le
moteur d'animation 24 et le moteur 3D 23, l'animatïon
de l'agent 26 correspondant à la fïgure 4.
Si l'utilisateur décide de diriger son acteur de
1o façon plus précise, il peut également ïntervenir pour
modifier le choix de son animation, qui autrement
sera celle programmée par défaut.
Il est donc possible d'adapter ce procédé de
reconnaissance à la force et à l'intensité des
animations.
De même l'agent est animé plus ou moins
rapidement, avec plus ou moins d'énergie dans le
mouvement, suivant le contenu de la conversation et
ce, sans que l'utilisateur n'ait au préalable préparé
différents types d'animation et/ou n'ait tout
simplement à s'en occuper.
De façon surprenante, il a en effet été possible,
hormis les animations spécifiques à tel type de
personnage, ou celles liées à une application
prëcise, d'élaborer des ensembles d'expressions
pouvant correspondre à tout type de personnage et
répondant à toutes les requêtes sans avoir à
constituer une base de données de dimension
ïmportante.
3o Avec l'invention, l'agent personnalisé peut donc
parler tout en ayant un comportement intelligent,
constituant ainsi un acteur qui au vu du texte donné
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
14
par l'utilïsateur/metteur en scène crée tout seul son
jeu de scène.
On va mainténant préciser de façon non exhaustive
les caractéristiques techniques de l'agent mis en
oûuvre selon le mode de réalisation de l'invention
plus particulièrement décrit ici.
Sa réalisation est ici basêe sur une technologie
3D temps réel, du type élaboré par les sociétés
SILICON GRAPHICS (OpenGL~) ou MICROSOFT (DirectX),
1o regroupant toutes les fonctïonnalités des jeux vidéos
actuels (<e morphing », « bones system »,
« antialiasing », « bump mapping », « lip sync »,
texturage).
I1 met également en ouvre une technologie connue
sous la dénomination <e Technologie ActïveX~ » sous
Windows, permettant d'utiliser les agents dans
n'importe quelle application Windows ou depuis un
navigateur, sur la totalité du bureau de
l'utilisateur (adaptation à la résolution écran de
l'utilisateur).
Les autres paramètres de mise en oeuvre de l'agent
sont donnés ei-après .
- Fichier "acteur" de l'agent [très léger ( ~30Ko
à 150Ko)] avec une partie en continu (« streamïng »
en langage anglo-saxon).
- Agent non prisonnier d'une fenêtre . Le
personnage est détouré.
- Caméra fixe . Orientation automatique du
personnage en fonction de sa position à l'écran.
- Connexion aux systèmes de synthèse de parole et
de reconnaissance vocale compatibles avec un logiciel
type SAPI de Microsoft.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
- Connexion avec des bases de données liées au
opérations connues en langage anglo-saxon sous les
noms de « Profïling », et « tracking », et/ou à un
programme d'intellïgence artifïoielle, et ce de façon
5 connue.
- Possibilité de bulles de dialogue de style
bandes dessinées interactives, affichant le texte dit
par l'acteur. Choix de plusieurs types de bulles
' suivant l'état de l'agent.
10 - Éléments d'interfaçage en résidant dans la
mémoire et qui s'affichent sur l'écran en pressant
une touche (« pop up » en anglais) (bouton, lïste
déroulante).
- Technologie fonctionnant sous Windows
15 (95/98/nt4/2000/Me et +) et sous Mac (OS 8 et plus).
Avantageusement elle est également prévue pour les
plate-formes Unix, Playstation et autres.
- Compatible avec les produits dits IE4 et +, et
Netscape Navigator 4 et +.
- Affichage de modèles 3D polygonaux. Le moteur
est alors et par exemple adapté à un modèle 3D
jusqu'à X0.000 polygones pour une vitesse d'exécution
' d'au moins l5 images/seconde.
- Système d'animation optimisé et automatisé dans
certains états.
- Système d'automatisation de scénarios
(« scripts » en langage anglo-saxon).
- Système d'exportation à partir des logiciels
intitulés Softimage 3D, 3DS Max et Maya.
- Moteur d'Intelligence comportementale basé sur
un dictionnaire dynamique de mots et d'association de
mots.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
16
Le moteur d'animation 3D 24 utilisable avec
l'invention est construit quant à lui sur le moteur
d'affichage 3D temps réel.
Ses caractéristiques sont les suivantes .
- gestion de scènes ( objets, lumières, caméra)
- « skin » ou peau . modèles hiérarchiques
déformables
- Gestion des textures avec filtrage
- Animation hiérarchique
l0 - cinématique inverse temps réel
- système de contraintes temps réel
- « morphing >a additif . un e< mesh » peut avoir
plusieurs configurations en même temps, 'avec des
pondérations différentes, le tout se rajoutant au
système de peau.
On va maintenant détailler ci-après les éléments
mis en oeuvre en faisant référence à la figure 6.
La figure 6 montre quatre modules logiciels
principaux utilisés avec le mode de réalisation de
l'invention plus particulièrement décrit ici, à
savoir le moteur d'animation 24, le module 27 de
dialogue, un module exportateur 32, et le module
éditeur 25.
Le moteur d'animation 24 installé sur l'ordinateur
de l'utilisateur gère le comportement du personnage
commandé par le scénario 30 (ou 33).
Il interprète les données 3D, les procédures
utilisées, les évènements demandés au « mesh » ainsi
que la gestion de ses expressions et l'autonomie plus
ou moins développée qu'il doit avoir à l'écran.
I1 utilise les paramètres suivants .
Les séquences (données et procédures)
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
17
Une séquence est définie comme un objet qui
regroupe des données et des procédures.
Les données concernent l'anïmation 3D, l'acteur,
les objets accessoires , les sons, les effets
. spéciaux.
Les procédures répondent quant à elles à des
questions du type . « comment l'animation doit elle
être jouée, comment gérer tel événement, quand et
comment parle l'acteur, que font les effets spécïaux,
l0 etc ».
La partie intelligente de l'agent se situe dans
les séquences. Elles sont déclenchées soit
directement par le scénario 30 (ou 33), soit par le
moteur 24 en automatique lors d'une gestion de temps
mort ou d'un événement.
Le gestionnaire de séquences 34 (voir figure 5)
commande le moteur d'affichage 35 en lui transmettant
des animations ou scènes graphiques 36 et en
. commandant le déroulement de ces animations
(séquenceur d'animations 37). Egalement, il montre et
cache les objets accessoires qui sont utilisés par
certaines animations.
Les évènements
Les évènements 38 (voir figure 5) proviennent des
interactions de l'utilisateur avec l'agent (ex .
déplacement de l'agent par mouvement de la souris).
Une gestion de ces évènements est donc nécessaire
pour déclencher des animations spécifiques.
Afin d'augmenter la réalité de l'agent, on prévoit
3o par exemple une gestion des zones de clic sur l'agent
qui va réagir différemment suivant que l'on clique
sur son mil ou sur son corps. I1 faut donc que le
moteur 24 véhicule des informations sur l'objet 3D
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
18
cliqué dans la scène afin de savoir quelle zone a été
touchée.
Pour le déplacement, il y a également et par
exemple une animation qui se déclenche pendant
l'opération, avec une gestion de <e lâcher » spécïale.
Les expressions
La gestion des expressions met en ouvre un module
qui va être implémenté en déclenchant un programme de
formation ou un « morph » en terminologie anglo-
l0 . saxonne, ou les « morphs » correspondants et il
restera jusqu'à ce qu'une nouvelle commande de ce
type arrive.
L'Autonomie du personnage
Cette partie du programme intervient lorsqu'on ne
s'occupe pas de l'agent. L'agent doit en effet
toujours être actif et faire quelque chose, sinon il
ne paraît plus vivant.
Dans le mode de réalisation de la présente
invention plus particulièrement décrit ici, les temps
morts sont par exemple découpés en trois zones de
temps .
10 secondes . l'acteur commence à faïre des petits
mouvements, de la tête, des yeux, il change de pied
. d'appui, etc.
30 secondes . l'acteur commence à utiliser des
objets accessoires, il fait du sport, etc.
1 minute . il baille, il dort, il se couche, il se
repose, il en a assez d'être là à ne rien faire. Dans
l'éditeur d'agent, on attribut alors des animations
3o aux différents niveaux de temps .
On peut ainsi programmer plusieurs animations par
niveaux. Le programme choisira alors aléatoirement
une des animations à jouer.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
19
_ Le module de dialogue 27 est quant-à-lui une
interface dépendante du navigateur utilisé ainsi que
de la plate-forme. Une détection de ces derniers est
donc prévue lors de la génération des scénarios ou
« scripts » 33 dans ce module.
La connexion TTS 39 (initiales anglo-saxonnes de
Text-To-Speech)
Sous Windows, il existe un programme intitulé
SAPI, qui est une ïnterfaoe « COM » que les systèmes
de synthèse de parole implémentent.
I1 suffit donc de se connecter à e< SAPI » pour
accéder à ces systèmes. Lorsque le scënario 33
demande à l'agent de parler avec la commande
aeteur.speak ' texte à dire' , la connexion TTS va
, retransmettre les informations suivantes au système .
- pointeur dans la mémoire tampon texte
(« buffer en anglais)
- positions de la bouche.
Le pointeur sur le texte permet alors de gérer le
2o défilement du texte dans la bulle de dialogue.
Les positions de la bouche permettent la
synchronisation des lèvres.
Lorsque le système TTS n'est pas installé, ou
qu'il n'y a pas de carte son, un système de
simulation de défilement de texte et de
synchronisation des lèvres, est prévu.
Ce système fait défiler le texte à une vitesse
« standard » réglable. La bouche est quant à elle
. rendue mobile par un algorithme aléatoire d'une façon
réaliste.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
La bulle de dialogue 29
La bulle constitue quant-à-elle une deuxième
fenêtre qui vient se placer à cotë ou au dessus de
l'acteur.
5 Elle apparaît seulement lorsque l'acteur parle. Le
texte dëfile alors à l'intërieur à la manière d'un
tëléscripteur. Tous les paramètres (forme, couleur de
fond, fonte, couleur de texte, etc.) sont rëglables
par le scénario 33. L'endroit où apparaît la fenêtre
l0 est décidé par le système en temps réel et dépend de
la position de l' agent à ce moment là, le but étant
de faire en sorte que la bulle (interactive) soit
toujours complètement à l'intërieur de l'écran de
l'ordinateur ou bureau, et situé au dessus ou à coté
15 de l'agent.
Le Scënario (30-33)
Il n'y a rien de particulier à effectuer pour que
le scénario fonctionne, ce dernier ëtant intëgré et
mettant en ceuvre les commandes précisëes ci-après.
20 Les commandes:
MoveTo
Le scënario donne une position cible en valeur
absolue. Le système dëtecte où se trouve l'acteur à
ce moment là et calcule la différence ce qui donne le
vecteur orienté de dëplacement.
Le système dispose d'animations où l'agent .
- rëalise une marche sur place. Le dëcoupage
est alors le suivant .
I1 commence à marcher.
3o L'acteur doit partir dans une des directions
en 2D (droite, gauche).
Il se retrouve de coté.
I1 marche en boucle.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
21
I1 peut monter ou descendre.
Il s' arrête .
Il se remet de face en position de repos.
- Saute au-dessus de lui.
- Saute en dessous de lui.
Il faut ajouter à cela la possibilité
d'interrompre la marche à tout moment, en particulier
lorsque la distance à parcourir est petite. Dans ce
cas, il peut n'y avoir qu'un pas à faire.
l0 Le procédé et le système selon un mode de
réalisation de l'invention prévoient également la
possibilité de décider si on déplace l'agent par
escaliers pour la montée et la descente. D'autres
choix existent. Par exemple, il peut .
- Sauter toute la hauteur d'un seul coup et
ensuite se déplacer.horizontalement.
- Monter ou descendre progressivement
escalier).
ZookAt .
Le scénario donne une position cible en valeur
absolue. Le système détecte où se trouve l'acteur à
ce moment là et calcule la différence ce qui donne
l'angle d'orientation de la tête.
Le système dispose pour cela de quatre animations
, quï donnent les mouvements pour les quatre directions
(gauche, droite, dessus, dessous). Pour donner un
angle plus précis, on change uniquement la rotation
de la tête dans une fourchette déterminée.
GestureAt .
Le scénario donne toujours ici une position cible
en valeur absolue. Le système détecte où se trouve
l'acteur à ce moment là et calcule la différence ce
qui donne le vecteur orienté de déplacement du bras.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
22
Comme pour les instructions « lookAt », les
animations préparées sont « gestureLeft, right, up et
down ». Dans ce cas, le système va modifier grâce à
la cinématique ïnverse, la positïon du bras afin
qu'il indique plus précisément la direction.
Si l'utilisateur final déplace le personnage.
pendant qu'il parle en position de GestureAt, on
recalcule les angles et on modifie la position du
bras.
l0 Les options sont par exemple et de façon non
limitatives .
- choix du bras montrant (droit ou gauche si
c'est un bipède)
- mixte d'animation entre les différents
GestureAt !
Click .
Exemple . L'animateur prépare une animation où
l'acteur se bouche l'ail droit avec ses deux mains.
Lorsqu'on clique sur l'~ïl droit, le système
déclenche cette animation. Un ensemble de petites.
animations de la sorte contribuent à l'amélioration
du réalisme de l' acteur. On a l' impression qu' il vit
réellement. Cette configuration est effectuée dans
l'éditeur 25 d'agent.
RightClick
Avec cette commande, on gère notamment le
déclenchement d'un menu « pop up » contenant les
commandes de base. Ces commandes appelleront des
séquences d'animations prévues préalablement.
_ DoubleClick, Drag&Drop . Ces fonctions sont
connues en elles-même.
On va maintenant décrire plus précisément les
fonctions du module exportateur 32.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
23
Les données d'un agent sont en effet et tout
d'abord exportées par différents logiciels de
création 3D, pour paramétrer et mettre en oeuvre les
données 3D 40 correspondant à ce qui va être animé
avec le procëdé selon l'invention plus
particulièrement décrit ici.
En premier lieu, on exporte une scène dite de
base, qui comporte l'agent dans ladite scène, avec le
bon cadrage caméra et les bonnes lumières. I1 s'agit
lo de la position dïte e< sprite » de l'agent.
On exporte ensuïte une scène spéciale dite
« morphs » qui ne comporte que les différentes clés
de ee morphing » pour les expressïons et les bouches.
Le tableau N°1 ci-après, représente par exemple
les données que le graphiste va préparer. Les numéros
correspondent au numéros de cadre ou de « frame »
dans le logiciel de création 3D.
TABLEAU N°1
numro contenu
0 Forme par dfaut
1 Bouche ferme
2 Bouche demi ouverte
3 Bouche grande ouverte
4 Ehhh
5 Ooooh
6 Souriant
7 Triste
8 Fch
9 Surpris
10 Circonspect
11 Paupire gauche ferme
12 Paupire droite ferme
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
24
Le programme du module exportateur va détecter ici
les vertices qui ont bougé et exporter uniquement
celles ci.
Enfin, on lit les fichiers d'animations.
Le module éditeur 25, également représenté sur la
figure 7, permet quant-à-lui de récupérer les données
3D 40 et de prëparer tous les réglages propres à
l'agent 26.
1o Plus précisément l'éditeur 25 exporte trois types
de fichiers .
Le fichier agent compressé 20 qui va être utilisé
par le moteur 24.
Un fichier projet 41 qui va contenir des pointeurs
vers les fichiers sources utilisés et les différents
réglages.
Un fichier 42 texte de description des animatïons
à l'attention de l'utilisateur 43 (voïr figure 6) qui
va animer l'agent via l'interface 44.
2o Le module éditeur 25 met en oeuvre .
- Les informations et réglages généraux concernant
l' agent (nom, langue, taille, TTS, etc...) .
- Les séquences (bouclage, son, ...) .
- Les « morphs » ( visualisation et tests)
(bouches, expressions).
- Le réglage des déplacements.
- Les réglages des temps morts.
Enfin le module 27 de dialogue est composé d'un
banc de montage 50 (cf figure 8), orienté pour une
utilisation non linéaire des séquences.
Le banc de montage 50 est ainsi dëcomposé en
plusieurs pistes, par exemple en sept pistes, 51, 52,
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
53, 54, 55, 56 et 57 s'intéressant aux différentes
parties d'une séquence.
On va maintenant décrire un exemple de création de
séquence
5 - On définit une nouvelle séquence à laquelle on
donne un nom. Cette séquence entre dans un des types
de séquence prédéfinis . (montrer/cacher, parler,
- On importe les données 3D depuis un fichier 40
1o précédemment exporté.
- On découpe l'animation en plusieurs parties
(Part 1, Part 2, Part n ...) que l' on nomme et dont on
détermine les points d'entrées et de sortie (cf
figures 52 et 53 reportées dans le temps dont
15 l' échelle figure en ligne 1) .
A partir de là on dispose des éléments nécessaires
au montage (parole 54, branchement sortie 55, sons
56, effets spéciaux 57).
On joue alors les différentes parties. Par
2o exemple, on demande de jouer deux fois la première
partie à l'endroit, ensuite de jouer la troisième
partie à l'envers et enfin de jouer la deuxième
partie en ping-pong.
Lorsque l'animation s'y prête, une des parties
25 sera sëlectionnée pour la parole.
Enfin on définit également ce que l'agent doit
faire lorsqu'on interrompt la séquence en plein
milieu.
On va maintenant décrire le principe utilisé dans
le mode de réalisation de l'invention plus
particulièrement décrit ici, concernant le « mot
clé » déclenchant.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
26
I1 y a en effet deux directions possibles pour
analyser un texte, soit il faut comprendre le sens du
texte, soit il faut trouver le rythme du texte.
Dans un mode de réalisation préféré, on analyse le
rythme du texte.
Le rythme est un mouvement général (de la phrase,
du poème, de la strophe, d'un vers) qui résulte de la
longueur relative des membres de la phrase, de
l'emploi de l'accent tonique, des rejets, etc.
Une phrase est décomposée en groupes rythmiques.
Les groupes rythmiques ne sont pas déterminés au
hasard: ils sont imposés par les groupes syntaxiques
(rythme grammatical), par les liens sémantiques
(rythme du sens), par la ponctuation (les points, les
virgules ...) et par la respiration (phrase longue
sans ponctuation qui oblige le locuteur à reprendre
son souffle).
I1 y a donc quatre paramètres qui donnent le
rythme d'un texte, les groupes syntaxiques, les liens
2o sémantiques, la ponctuation et la respiration. La
grammaire est aussi difficile à analyser que le sens
et pour scinder une phrase trop longue, il faut
ëgalement connaître le sens de la phrase (on ne peut
pas couper n'importe où).
Dans un mode de réalisation avantageux on
utilisera donc plutôt la ponctuation présente.
Celle-ci présente en effet des avantages.
Toutes les langues basées sur un alphabet
utilisent pratiquement la même ponctuation.
Il n'y a que quelques symboles de ponctuation,
donc pas de gros dictionnaire.
Chaque symbole a un sens bien défini.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
27
Une sëquence de symboles de ponctuation peut ainsi
donner des indications sur le style que l'utilïsateur
a voulu donner à son texte.
Par exemple quand on trouve un point
d'interrogatïon on joue l'animation « indécis »,
quand on trouve un point on se déplace etc.
Sur un texte de vingt phrases il va ainsi et par
exemple y avoir vingt déplacements, et trois
« indécis ».
1o L'utilisation de l'unique paramètre
« ponctuatïon » peut donc ne pas être suffisant.
Quoiqu' il en soit en utilisant le rythme du texte
et, suivant ce rythme et le choix utilisateur (choix
d'un style), en plaçant et paramétrant des commandes,
on obtient de façon étonnante un excellent résultat
d'animation.
Dans un cas préféré, l'analyse du texte permet de
détecter les éléments de ponctuation et le découpage
du texte ( paragraphes, phrases ...) .
Par la suite on appellera ce texte le « texte
descriptif ».
L'analyse du texte descriptif permet de dégager un
rythme, par exemple « phrase longue, phrase courte
interrogative, phrase courte impérative ... phrase
longue ».
On qualifie les résultats de cette analyse avec
des termes comme « court » ou « très court » ou
« interrogatif ». Ce sont des valeurs relatives, par
exemple la notion « phrase courte » est relative à la
3o taille du paragraphe dont elle fait partie.
On définit ainsi ce qu'on appelle le texte flou.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
28
Ainsi, en demandant à l'utilisateur de choisir un
style de prestation pour son agent, cela permet de
mieux cadrer sa demande.
Chaque style correspond à une liste de paramètre
' que l'on appelle paramètres de style.
L'outil selon l'invention va donc avantageusement
intégrer une base de connaissance que l'on appelle
référence de style.
Les choix de commandes et les moments d' insertion
l0 des dites commandes sont alors faites par un
programme appelé cerveau. C'est le cerveau qui donne
sa tonalité à la performance de l'agent.
Si la base de règles est suffisamment définie,
l'agent va donc réagir en fonctïon du style de
rédaction de l'utilïsateur.
Rappelons la définition du style. Un style est une
manière d'utiliser les moyens d'expression du
langage, propre à un auteur, à un genre littéraire,
etc. Qn mentionnera ainsi un style clair, précis,
2o élégant, un style obscur, ampoulé, un style
burlesque, oratoire, lyrique ou encore un style
administratif, juridique.
Dans un mode de réalisation de l'invention, on
utilise la ponctuation pour déterminer la majorité
des endroits où l'on peut insérer une action de
l'acteur.
Plus précisément .
. Le point . Le point indique la fin d'une phrase.
Il marque une descente complète de la voix et une
3o pause importante avant que la voix ne remonte pour
une autre phrase. Le plus souvent on utilise le point
lorsqu'on exprime une idée nouvelle qui n'a pas de
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
29
relation étroite avec celle exprimée dans la phrase
précédente.
. La virgule . La virgule peut être utilisée pour
séparer différents éléments de la phrase ; elle
marque une pause sans que la voix baisse. La virgule
permet d'insérer des informations, marque le
détachement, permet de donner une chronologie à des
évènements ou de ne pas répéter la conjonctïon de
coordination.
l0 ' . Le point virgule . Le point virgule sépare deux
propositions. Le plus souvent, les deux propositions
ont entre elles une relation logique.
I1 indique que l'on marque une pause plus
importante qu'avec 1a virgule.
. Les deux points . Les deux points ont plusieurs
utilisations. Ils permettent de lister les éléments,
de citer ou de rapporter les paroles de quelqu'un,
d'exprimer une explication.
. Le point d'exclamation . Il se place à 1a fin
2o d'une phrase dans laquelle celui qui parle ou écrit
exprime un ordre, un souhait, la surprise,
l'exaspération, l'admiration, etc.
. Le point d'interrogation . Il se place à la fin
' d'une phrase interrogative.
. Les parenthèses . Elles servent à isoler une
information à l' intérieur d' une phrase. Le groupe de
mots ou la phrase entre parenthèses n'a aucun lien
syntaxique avec le reste de la phrase. Il s'agit
souvent d'une réflexion que fait celui qui lit à
3o propos de tel ou tel passage de la phrase.
Les guillemets . Ils encadrent une phrase ou un
groupe de mots qui n'appartiennent pas à celui qui
écrit, mais qui sont empruntés à une autre personne.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
Zes points de suspension . Ils peuvent avoir
plusieurs valeurs. Ils interviennent dans une
énumération que l'on ne veut peut pas allonger. Ils
interviennent lorsque la personne qui parle (ou qui
5 écrit) veut sous-entendre une suite.
La virgule est l'élément de ponctuation le plus
présent et le plus difficile à interpréter. C'est
pourquoi l'étude de la ponctuation d'un texte doit
mettre en ëvidence des séquences d'élément de
1o ponctuation.
Selon des modes de réalisation de l'invention, on
va également utilïser la mise en page, i.e, le
passage à la ligne, le texte descriptif (qui
représente le découpage du texte en éléments
z5 ~ simples), pour insérer des actions, ou encore la
notion de texte flou.
Pour que le cerveau puïsse dëterminer à quel
moment il faut insérer une commande et quelle
commande insérer, il faut en effet remplir une liste
2o de paramètres que le cerveau va comprendre.
Or, on ne peut pas se baser sur une forme
prédéfinïe de texte et chercher les points communs
entre un texte de référence et le texte à analyser.
Chaque texte sera en effet différent et aura ses
25 particularités.
Il faut donc trouver des paramètres qui s'adaptent
au texte. Pour cela il faut prendre le texte étudié
comme référence d'analyse, comme repère.
C'est ce que fait l'invention dans un de ses modes
30 de réalisations en utilisant des paramètres
« flous ».
L'avantage d'un paramètre flou c'est qu'il a une
signification précise pour le cerveau indépendamment
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
31
du contenu. Par exemple on veut connaître la longueur
d'un paragraphe d'un texte car si un paragraphe est
« court » on va faire se déplacer l'agent pendant
qu'il récitera le paragraphe.
Ce qui intéresse c'est le changement de rythme.
La liste de paramètre flou doit être vérifiée et
réglée empiriquement.
Chaque paramètre flou a différentes valeurs que
l'on note de deux façons. Une façon lïnguistique et
1o une façon mathématique.
La façon linguistique permet de comprendre
intuitivement.
Par exemple il vaut mieux indiquer que le
paragraphe est long plutôt que d'indiquer que le
paragraphe a une longueur de 0.8.
La valeur 0.8 sera utilisée par le cerveau à
l'intérieur d'une équation mais pour le réglage il
vaut mieux faire apparaître la notion linguistique.
Chaque paramètre flou aura une valeur minimale, un
~ ensemble de valeurs intermédiaïres et une valeur
maximale.
Selon un mode de réalisation de l'invention la
valeur minimale est choisie supérieure à zéro et la
valeur maximale inférieure à 1, pour éviter les
effets du type multiplication par zëro.
La définition des paramètres flous du texte permet
de créer une rëférence. Il s'agit par exemple des
paramètres suivants .
- I1 y a un paragraphe .
3o On agit alors en fonction du nombre de phrases.
Il y a une phrase. Présentation très très
courte.
. I1 y a deux phrases. Présentation très courte.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
32
Il y a trois phrases ou plus. Présentation'
courte.
- Il y a deux paragraphes . En fonctïon du nombre
de phrases par paragraphe.
. Il y a une phrase. Présentation très courte
. Il y a deux phrases. Présentation courte.
Il y a trois phrases ou plus. Présentation
moyenne.
- Il y a trois paragraphes ou plus . On agït en
1o fonction du nombre de phrases par paragraphe.
. Il y a une phrase. Présentation moyenne.
. Il y a deux phrases. Présentation longue.
. Il y a trois phrases ou plus. Présentation très
longue.
- Rapport à l'espace (l'espace écran) . '
On effectue une étude du rapport entre ce qui est
dit et l'écran suivant les choix de l'utilisateur.
. Aucun . l'utilisateur n'a pas défini de place.
. Petit . l'utilisateur a défini une place pour
une partie du texte.
Grand . l'utilisateur a défini une place pour
tout le texte.
. Très grand . l'utilisateur a plusieurs places.
Les paramètres flous d'un paragraphe sont par
ailleurs et par exemple les suivants .
- Mise en valeur
3o La mise en valeur étudie l'espacement (nombre de
retour à la ligne) entre deux paragraphes.
N= nombre de retour à la ligne moyen du texte.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
33
P= nombre de retour à la ligne avec le paragraphe
précédent.
S= nombre de retour à la ligne avec le paragraphe
suivant.
Pas de mise en valeur . (S=P et P<=N) ou (S>P et
S<=N)
Faible . S<P et P<=N
Forte . S !=P et (Pets)>N
1o Très forte . S=P et P>N
- Longueur
Etude de longueur relative du paragraphe par
rapport au texte et aux autres paragraphes (en nombre
de mots).
N= nombre de mot moyen des paragraphes.
n= nombre de mot du paragraphe étudié.
Très court . n<N*0.25
2o Court . N*0.25<n<N*0.5
Moyen . N*0.5<n<N*1.5
Zong . N*1.5<n<N*4
Très long . N*4<n
- Vivacité
On réalise une étude de la taille moyenne des
phrases du paragraphe par rapport à une taille
moyenne des phrases du texte.
T=taille moyenne des phrases du texte.
. t=taille moyenne des phrases du paragraphe.
Pas vif . t>T*2
Moyennement vif . T/2<t<T*2
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
34
Vïf . T/4<t<T/2
Très vif . t<T/4
- Rapport à l'espace (l'espace écran)
On réalise une étude du rapport entre ce qui est
dit et l'écran suivant les choix de l'utilïsateur.
Aucun . l'utilisateur n'a pas définit de place.
Petit . l'utilisateur à définit une place pour une
partie du paragraphe.
1o Grand . l'utilisateur à définit une place pour
tout le paragraphe.
Très grand . l'utilisateur à plusieurs places.
Les paramètres flous d'une phrase sont quant à eux
et par exemple les suivants .
- TYpe.
Le type est défini par rapport au premier signe de
terminaison de phrase, c'est à dire '.' ou ' :' ou
' ; ' ou ' ! ' ou ' ?' ou '...'
o Normal. La phrase se termine par ' .'.
o Impératif. La phrase se termine par ' !'.
o Interrogatif. La phrase se termine par ' ?'.
o Énumératif. La phrase se termine par '...'.
o Descriptif. La phrase se termïne par ' :'.
- Longueur
On effectue l'étude de longueur relative d'une
phrase par rapport aux autres phrase du paragraphes
3o (en nombre de mots).
N= nombre de mots moyen des phrase.
n= nombre de mots de la phrase étudiée.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
Très court . n<N*0.25
Court . N*0.~5<n<N*0.5
Moyen . N*0.5<n<N*1.5
Long . N*1.5<n<N*4
5 Très long . N*4<n
- Parenthèses
Liste de descriptif de parenthèse. Type de
10 parenthèse et longueur de la parenthèse.
Type simple . contient une série de mots sans
. ponctuation.
Type complexe . contient des ponctuations.
Longueur.
- Les virgules
Liste de longueur qui séparent les virgules entre
elles.
2o On utilise également avantageusement les
paramètres de styles.
On définit les paramètres de style et on donne un
nom à ce style (par exemple sérieux, comique ...) . Les
paramètres décrivent la réalité du style. On peut
ainsi donner la possibilité à l'utilisateur de
. définir ses propres styles.
Concernant les animations, on remplit les
catégories avec des animations en leur donnant un
poids. Une animation peut par ailleurs être décrite
comme une succession d'animations.
Concernant les paramètres de style, les valeurs
vont être comprises entre 0.1 et 0.9.
. Vivacité . tranquille (0.1)--- vif(0.9).
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
36
Ce paramètre va déterminer si l'acteur a des
actions plus ou moins imprévisibles.
. Etat :calme(0.1) --- nerveux (0.9).
Ce paramètre va jouer principalement sur la
vitesse d'animation.
. Mobilité :Statique(0.1) --- mobile (0.9).
Ce paramètre va jouer sur le nombre de déplacement
de l'acteur.
Le cerveau décide le moment exact pour transmettre
l0 une commande et quelle commande exacte.
Pour cela il faut, pour chaque emplacement où l'on
peut envoyer une commande, déterminer un ensemble de
valeurs indiquant l'intérêt d'envoyer une commande et
quelle est la meilleure commande à envoyer.
l5 On détermine également un « seuil d'intérêt » et,
à chaque fois que l'intérêt dépasse le seuil, on
transmet la commande définie pour cet intérêt.
L'analyse du texte et le style voulu par
l'utilisateur vont déterminer le nombre de commande
2o que l'on va transmettre.
L'analyse du texte et de la séquence des.
paragraphes va initialiser l'ensemble des valeurs.
L'analyse de chaque paragraphe et de la séquence des
phrases va rajouter ou enlever du poids aux valeurs,
25 respectivement aux paragraphes.
L'analyse des phrases et des séquences de
ponctuation à l'intérieur des phrases va rajouter du
poids aux valeurs, respectivement aux phrases.
Une fois tous les poids remplis, on détermine le
3o seuil de manière à transmettre le nombre de commande
voulu, (ou le nombre le plus proche).
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
37
- Lieux où on peut transmettre une commande.
On associe un poids à chaque endroit du texte où
l'on peut transmettre une commande.
Par exemple .
- En début de texte,
- En fin de texte, etc.
- Liste des commandes que l'on peut transmettre.
Avantageusement on peut transmettre neuf types de
commandes .
lo Déplacement, montrer, modification de la voix,
pause, réflexion, explïcation, interpellation,
interrogation, divers.
En plus du poids associé à chaque endroit où on
peut transmettre une commande, on donne un poids pour
l5 chaque type de commande.
Si on doit transmettre une commande, on choisira
une commande faisant partie du type ayant le plus
grand poids.
On associe aussi un poids à chaque élément de
2o chaque catégorie.
Ce poids va servir à dëfinir quel élément choisir
une fois que le type de commande sera déterminé. Par
exemple, on a déterminé qu'il faut lancer une
commande « interrogation » et il exïste cinq
25 animations dans la catégorie « interrogation ».
Plus la demande sera interrogative plus on.
choisira une animation ayant un poids fort.
Pour déterminer « le taux d'interrogativité » on
regarde alors le poids associé aux autres commandes,
3o et plus le poids des autres commandes est faible par
rapport au poids associé à la partie interrogative
plus le e< taux d'interrogativité » sera fort.
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
38
Les animatïons sont rangées dans cinq catégories
(le 'nombre de catégories pourra être modïfié au
moment des réglages de l'outil) réflexion,
explication, interpellation, interrogation, divers.
Un agent possède donc un ensemble d'animations de
base, qui est par exemple stocké dans le disque dur
du système, chaque animations étant pondérée.
Lorsque l'on définit un style on range alors
manuellement les animations dans les différentes
1o catégories en leurs associant également un poids.
Lorsque l'utilisateur choisit un style, on
fabrique les catégories qui seront utilisées par le
système en mixant les animations de base avec les
animatïons du style, le style étant privilégié. Si
une animation est à la fois présente dans une
catégorie de l'outil et dans la même catégorie du
style, c'est celle définie dans le style qui sera
prise en compte.
On peut également modïfier la vitesse d'animation.
La vitesse d'animation varie entre un minimum et un
maximum. Pour choisir. la vitesse, on combine les
ïnformation de vivacité et de nervosité du style et
le poids associé à la commande.
Plus le poids de la commande est élevé, plus
l'animation sera lente.
. Plus le style est nerveux plus l'animation sera
rapide.
Plus le style est vif plus l'animatïon sera
rapide.
Une pause est caractérisée par sa durée . La durée
de la pause est définie par le poids de la commande
et par le style .
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
39
. Plus le poids de la commande est élevé, plus la
pause sera longue.
Plus le style est nerveux plus la pause sera
courte.
~ . Plus 1e style est vïf plus la pause sera courte.
On prévoit également plusieurs types de
déplacement.
Par exemple, déplacement sans but, équivalent
d'une pause, d'une réflexion. (Définition de places
1o par le cerveau). Déplacement sans but en parlant,
(Définition de place par le cerveau). Déplacement
avec but sans parler, (Utilisation d'une place
définie par l'utilisateur), etc.
L'action e< montrer » utilise quant-à-elle les
places défïnies par l'utilisateur. Si aucune place
n'a été définïe cette action ne sera jamais utilisée.
Pour réaliser l'analyse du texte flou on pratique
de la façon suivante.
Lorsque 1e cerveau analyse le texte flou, il
modifie chaque poïds à tous les endroits où l'on peut
insérer une commande. I1 modifie le poids principal
doit t'on ou non insërer une commande à cet endroit)
et les neufs poids .de choix de commande . Le poids de
commande ne peut être qu'augmenté alors que les poids
de choix de commande peuvent êtres augmentés ou
diminués ( il s'agit de favoriser une commande par
rapport à une autre et, comme la différence de poids
entre les divers commandes est importante, il faut
pouvoïr augmenter et diminuer).
L'analyse est hiérarchique. Lorsque l'on travaille
sur le texte on modifie tous les poids du texte,
lorsqu'on travaille sur un paragraphe on modifie tous
les poids du paragraphe...
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
L'analyse proposée doit être réglée de manière
empirique et n'est pas exhaustive !
Nombre de commandes .
Le nombre de commandes est déterminé par le style
5 de l'acteur et la longueur du texte. Plus le style
est vif, plus il y aura de commandes,
proportionnellement à la longueur du texte. Cela
revient à donner un taux de remplissage en nombre de
commande.
1o ~ Analyse de la longueur du texte et du style
Plus le texte est court plus on insère des
commandes.
- Nombre de commandes= nombre de commandes
possibles* (1-longueur du texte)*(vivacité).
15 - A chaque endroit où on peut insérer une commande
on initialise les poids .
. Valeur d'intérêt=0
. Dëplacement= rapport a l'espace * mobilité +
vivacité
20 . Montrer= rapport * mobilité + état
. Modification de la voix= 0
. Pause= 1-état
. Rëflexion=
. Explication=0
25 . Interpellation=0
. Interrogation=0
. Divers=0
- Début de texte
- Valeur d'intérêt+=10
30 . Déplacement+= longueur du texte
. Interpellation+=1
- Fin de texte
- Valeur d'intérêt+=10
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
41
. Déplacement+= 1-longeur du texte
. Divers+= vïvacité
Analyse de la séquence des paragraphes.
On analyse les différences de longueur entre les
paragraphes et on ajoute un nombre à chaque valeur
d'intérêt.
- Pour toutes les valeur du premier paragraphe
valeur d'intérêt += 1.
- Pour chaque paragraphe intermédiaire valeur
d'intérêt +_ (0.6) + ~ longueur du paragraphe
précédent - longueur du paragraphe actuels ( valeur
absolue).
- Pour le dernier paragraphe valeur d'intérêt +=1.
Analyse de chaque paragraphe
- Début de paragraphe
. Valeur d'intérêt += mise en valeur
. Déplacement += rapport a l'espace + longueur
. Montrer += rapport à l'espace + (1 - longueur)
. Pause += longueur * vivacité du paragraphe
Réflexïon +_ (1-longueur) * vivacité du
paragraphe
Interpellation +_ (1-longueur) * mise en
valeur
. Divers +_ (random entre 0 et 0.2)
- Fin de paragraphe
. Valeur d'intérêt += mise en valeur/2
. Pause += mise en valeur /2
. Divers +_ (random entre 0 et 0.5)
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
42
Analyse de la squence des phrases d'un paragraphe
On analyse ici les diffrences de longueu r entre
les phrases et on ajoute un nombre chaque valeur
d'intrt.
- Pour toutes les valeur de la premire phrase
valeur d'intrt += 1.
- Pour chaque phrase intermdiaire valeur
d'intrt +_ (0.6) + ~ longueur de la phrase
prcdente - longueur de la phrase actuelle) ( valeur
l0absolue)
- Pour la dernire phrase valeur d'intrt +=1.
On rajoute en plus, si les phrases sont types
(type diffrent de normal, par exemple
interrogatif) .
l5- Valeur d'intrt += valeur du type+ va leur
du
type de la phrase prcdente.
Analyse de la phrase.
- Dbut de phrase .
- Valeur d'intrt += 1*type+longueur
20- Dplacement += longueur de la phrase
'
- Montrer += longueur de la phrase
- Pause += 1-longueur
- Rflexion += longueur + type
- Explication = logoty
25- Tnterpellation = 2*type
- Tnterrogation = 2*type
- Divers= random
- Fin de phrase .
- Valeur d'intrt += longueur
30- Dplacement += longueur
- Montrer += longueur
- Pause += longueur
- Pour des parenthses:
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
43
Valeur d' intérêt +=10
Modification de la voix += 1-longueur de la
parenthèse
. Explication += longueur de la parenthèse
- Pour des guillemets .
. Valeur d'intérêt +=10
Modification de la voix += 1-longueur des
guillemets
. Interpellation +=longueur des guillemets.
1o - Séquence de virgule .
. Valeur d'intérêt +_ (nombre de virgules - numéro
de la virgule) + longueur
Déplacement += rapport à l'espace/ n° de la
virgule
. Montrer += rapport à l'espace/ (nombre de
virgule -n° de la virgule)
. Interpellation += 1-longueur
Interrogation += 1-longueur/2 +type
- Point virgule .
. Valeur d' intérêt += longueur de la phrase après
le point virgule
Déplacement= rapport a l'espace * mobilité +
vivacité
. Montrer= rapport * mobilité + état
' . Modification de la voix= 0
. Pause= 1-état
. Réflexion=
. Explication=0
. Interpellation=0
. Interrogation=0
. Divers=0
La présente invention permet de faire le lien
entre un texte quelconque et un jeu d'agent, en
CA 02444255 2003-10-09
WO 02/084597 PCT/FR02/01285
44
transformant le texte en paramètres flous puis en
plaçant des poids à tous les endroits où l'on peut
insérer une action de l'agent.
Ce remplissage se fait grâce à des équations qui
tiennent compte des paramètres flou et du style
d'agent que l'utïlisateur aura choisit. Le
remplissage agit de manière additive. Les équations,
ayant trait au texte entier, initialisent l'ensemble
des poids. Puis les équations se rapportant à un
1o paragraphe donné complètent les poids du dit
paragraphe, ainsi de suite ...
Comme il va de soi et comme il résulte également
de ce qui précède, la présente invention n'est pas
limitée aux modes de réalisation plus
particulièrement décrits. Elle en embrasse au
contraire toutes les variantes.