PROCEDE ET SYSTEME D'ANIMATION D'UN PERSONNAGE EN TROIS DIMENSIONSMETHOD AND SYSTEM FOR ANIMATING A THREE-DIMENSIONAL CHARACTER
La 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 applicatif, l'agent étant découpé par rapport au fond de l'interface graphique du programme dont il est indépendant.The present invention relates to a method of animation by a user of a three-dimensional character or 3D character, interactive, called an agent, suitable for being implemented during the course of an application program, the agent being cut out with respect to at the bottom of the graphical interface of the program from which it is independent.
Elle concerne également un système informatique mettant en œuvre un tel procédé.It also relates to a computer system implementing such a method.
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.It finds a particularly important, although not exclusive, application in the field of communication between a user and a computer program, for example to assist or entertain the user during the operation of the program, for example on the Internet.
On connaît déjà un procédé permettant de faire apparaître dans un programme applicatif, 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.A method is already known which makes it possible to make appear in an application program, cut out with respect to the graphical interface of said program, a character or character whose behavior changes according to predetermined parameters, such as for example the elapsed time or an action of the user on a software button, a mouse click etc.
Un tel procédé présente néanmoins des inconvénients .Such a method nevertheless has drawbacks.
En effet le personnage est peu expressif et la 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.
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.Indeed the character is not very expressive and the programming of his behavior requires the intervention of a computer specialist capable of programming, with fairly complex tools, different scenarios of the character. The present invention aims to provide a method and a system which meet the requirements of practice better than those previously known, in particular in that it allows, from a written or oral text generated by a user who is not a user. professional director, to animate an agent or character, in a particularly simple and lively way.
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 .Thanks to the invention, the user will therefore be able to stage, without any particular skill, a character, from the text that the latter can himself pronounce or edit, so that said character can move or move. animate at the right time, and this by introducing the commands for the animation of movement and / or modification of the intonation of the agent's voice in an appropriate manner.
Un agent mis en œuvre 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 l'écran sans gêner les éléments de l'interface.An agent implemented with the invention also appears on the screen without being contained in a window, which makes it possible to place it anywhere on the screen without disturbing the elements of the 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.Advantageously, it is linked to an interactive speech bubble allowing scrolling text to be displayed progressively, as well as interface elements such as actuator buttons, drop-down lists, 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.The methods of designing the agent itself are known. The character is indeed created by standard software such as for example the software marketed by the companies SOFTIMAGE, MAYA, 3D STUDIOMAX or 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.
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.This software is of the type used by graphic studios to produce cartoons, films or video games. They allow, as in the cinema, to bring characters to life in relation to a set, a camera and / or a play of light.
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 rapport au fond de l'interface graphique du programme dont il est indépendant, procédé dans lequel on crée un premier fichier 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 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.In order to overcome the drawbacks of the prior art, the present invention therefore proposes, and in particular, a method of animation by a user of an interactive 3D character, called an agent, suitable for being implemented during the progress of an application program, the agent being cut out from the background of the graphical interface of the program from which it is independent, process in which a first file is created comprising the data defining the agent and its animation algorithms so known in itself, said data comprising the parameters of colors, texture and mesh of the agent, characterized in that this first file is interpreted by calculating the behavior parameters of the agent in real time using a 3D engine based on recognition of keywords pronounced and / or written by the user, to automatically animate said agent according to predetermined criteria corresponding to said keywords é or a combination of said keywords. By keyword, we essentially mean a specific vocabulary word, a term of determined semantic meaning (family of words) a sign or several punctuation marks, a series of words without interruption of punctuation and / or an image or drawing.
Dans des modes de réalisation avantageux, on a de plus recours à l'une et/ou à l'autre des dispositions suivantes :
- 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 clé 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 ;In advantageous embodiments, use is made of one and / or the other of the following arrangements: - the first file is downloaded from at least one site on the Internet; the user interacts with the agent by filling in interactive bubbles; - the keywords are self generated at least in part by a behavioral intelligence engine based on a dynamic dictionary of words and word associations;
- on analyse le texte proposé par l'utilisateur 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 ;- we analyze the text proposed by the user to determine the moment or moments of insertion of commands from the agent, namely its animation, its displacement or the modification of the intonation of its voice, from the rhythm of the text , namely its general movement which results from the relative length of the members of the sentence and / or from the use of a tonic accent;
- 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 ;
- 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é ; - 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 de 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- the rhythm of the text comprises several parameters taken into account by the calculation, among the grammatical rhythm, the rhythm of meaning, punctuation and / or breathing; we analyze the rhythm of the sentences in the text used relative to the size of the paragraph of which they are a part, using one or more so-called fuzzy parameters; - the blurred parameter is taken from the following parameters: enhancement, paragraph length in relation to the rest of the text, liveliness, relation to screen space, type, relative length of a sentence, parentheses and / or commas; - A style parameter is assigned to the agent, namely a parameter depending on the means of expression of the language specific to said agent; - the style parameters used to define the animation are according to a predetermined intensity scale, and are taken from liveliness, calm or nervous state, mobility; - we decide when to insert or transmit a command and which command to transmit from the analysis of the text and style desired by the user; the analysis of the text and the sequence of paragraphs, and / or the analysis of each paragraph and the sequence of sentences weighting these values respectively to said paragraphs, and / or the analysis of the sentences and sequences of
• ponctuation à l'intérieur des phrases pondérant lesdites valeurs, respectivement aux dites phrases, initialise les valeurs utilisées pour déterminer le seuil au delà duquel la ou les commandes vont être transmises; • punctuation inside the sentences weighting said values, respectively said sentences, initializes the values used to determine the threshold beyond which the command or commands will be transmitted;
- les commandes sont choisies parmi les opérations suivantes : déplacer, montrer, modifier la voix, faire une pause, renvoyer, expliquer, interpeller, interroger.- the commands are chosen from the following operations: move, show, modify the voice, take a break, send back, explain, challenge, question.
L' invention propose également un système d'animation par un utilisateur d'un personnage 3D interactif mettant en œuvre le procédé décrit ci- avant .The invention also provides a system for animation by a user of an interactive 3D character implementing the method described above.
Egalement l'invention propose un systèmeAlso the invention provides a system
• 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
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érisé en ce • que il comprend : • animation by a user of an interactive 3D character, called an agent, for implementation during the course of an application program, said agent being cut out from the background of the graphical interface of said program from which it is independent , system comprising a first file comprising the data defining the agent and its animation algorithms in a manner known per se, said data comprising the color, texture and mesh parameters of said agent, characterized in that it includes:
- des moyens de stockage dudit premier fichier,means for storing said first file,
- 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,- means of research, calculation and analysis to interpret this first file by calculating the agent's behavior parameters in real time, said means comprising a 3D engine based on a recognition of key words spoken and / or written by the user, means for recognizing vocally and / or otherwise, for example via a written alphabet, said keywords by the user,
- 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- and display means arranged to, from said 3D engine, automatically animate said agent according to corresponding predetermined criteria
• aux dits mots clé ou à une combinaison desdits mots clé. • to said keywords or to a combination of said keywords.
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.Advantageously, the system comprises means of autogeneration, at least in part, of keywords, these means comprising a behavioral intelligence engine based on a dynamic dictionary of words and of association of words.
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
longueur relative des membres de la phrase et/ou de l'emploi d'un accent tonique.In an advantageous embodiment, the system includes means for analyzing the text proposed by the user to determine the moment or moments of insertion of the agent's command, namely its animation, its displacement or the modification of the intonation. of his voice from the rhythm of the text, namely its general movement which results from the relative length of phrase and / or use of a tonic accent.
L' invention sera mieux comprise à la lecture de la description des modes de réalisation donnés ci-après à titre d'exemples non limitatifs.The invention will be better understood on reading the description of the embodiments given below by way of nonlimiting examples.
Elle se réfère aux dessins qui l'accompagne dans lesquels :It refers to the accompanying drawings in which:
La figure 1 montre un écran comportant un agent animé selon un mode de réalisation du procédé • de l'invention.FIG. 1 shows a screen comprising an animated agent according to an embodiment of the method of the invention.
- Les figures 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.- Figures 2A and 2B are front views of a mouth for a character usable with the invention, respectively in the relaxed position and in the contracted position. - Figures 3A to 3D give schematic perspective views of a hand of an animated agent according to an embodiment of the invention.
- La figure 4 illustre l'action d'une commande sur un agent selon un mode de réalisation de l'invention.- Figure 4 illustrates the action of a command on an agent according to an embodiment of the invention.
La figure 5 est un schéma général de l'architecture logiciel du système et du procédé selon le mode de réalisation de l'invention plus - particulièrement décrit ici. - La figure 6 montre les différentes interactions entre les logiciels et les utilisateurs intervenant dans le procédé ou le système de la figure 5.FIG. 5 is a general diagram of the software architecture of the system and of the method according to the embodiment of the invention more - particularly described here. - Figure 6 shows the different interactions between the software and the users involved in the process or system of Figure 5.
La figure 7 est un schéma de l'éditeur correspondant au procédé mis en œuvre selon l' invention.
- La figure 8 est un schéma d'un banc de montage d'un agent animé selon un mode de réalisation du procédé de l'invention.FIG. 7 is a diagram of the editor corresponding to the method implemented according to the invention. - Figure 8 is a diagram of a mounting bench of an animated agent according to an embodiment of the method of the invention.
La figure 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 interactifs 3 permettant d' afficher du texte défilant 4. D' autres environnements tels que MAC, LINUX etc sont bien entendu possibles.FIG. 1 shows a screen 1 for viewing an application program, belonging to a PC computer (not shown) operating under Microsoft Windows, containing an agent 2 having an interactive dialog bubble 3 making it possible to display scrolling text 4. Other environments such as MAC, LINUX etc are of course possible.
L'agent 2 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 dimensions peuvent être agrandies ou réduites en fonction du souhait de l'utilisateur et comme cela sera décrit plus avant ci-après.Agent 2 can be moved via a mouse (not shown) from position 5 to position 6, by means of a function called "click and drag" in English terminology. Its dimensions can be enlarged or reduced according to the wishes of the user and as will be described further below.
Les figures 2A à 3D vont permettre de mieux faire comprendre les moyens utilisés de façon connue pour configurer l'agent et permettre sa mobilité notamment faciale 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 l(cf. également figure 4) . Plus précisément, un agent est composé d'un ensemble (« esh » 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. II est en effet également possible d' animer les couleurs et les textures.FIGS. 2A to 3D will make it possible to better understand the means used in a known manner to configure the agent and allow its mobility, in particular facial and / or at the level of its members in the case where the agent is a small character, for example dog 2 in figure l (see also figure 4). More specifically, an agent is composed of a set (“esh” in Anglo-Saxon terminology) of color, texture and bone (“bones” in Anglo-Saxon terminology), and posture animation algorithms and various movements. It is indeed also possible to animate colors and textures.
Sur l'exemple des figures 2A et 2B, représentant une bouche, des déformations du maillage 7 appelées
« 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 ...) .In the example of FIGS. 2A and 2B, representing a mouth, deformations of the mesh 7 called “Morphing” in Anglo-Saxon terminology, allow the mouth to pass from a smile conformation 8, to a rounded shape 9, not caused by the bones (bones), by displacements of the points of the mesh (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.Here, the software configured by the graphic designer calculates in a manner known per se, the linear interpolation of each point.
Les figures 3A à 3D donnent quant à elles et à titre d'exemple les étapes successives de la création d'une main 13 pour son animation.Figures 3A to 3D give for their part and by way of example the successive stages of the creation of a hand 13 for its animation.
La figure 3A montre le dessin maillé qui permet de dégrossir la forme.FIG. 3A shows the mesh drawing which makes it possible to rough the shape.
Le dessinateur dessine la main de face et de profil et donne des directions sur les couleurs.The designer draws the hand from the front and in profile and gives directions on the colors.
La création sous un logiciel d' images de synthèse de maillage en trois dimensions donne ainsi la mainThe creation under computer graphics of three-dimensional mesh images thus gives the hand
13, modélisée de façon primitive par le dessinateur, qui « tire » ou « enfonce » les mailles 14 jusqu'à _ obtenir le résultat voulu.13, modeled in a primitive way by the designer, who “pulls” or “pushes” the stitches 14 until _ obtaining the desired result.
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.FIG. 3B shows the hand covered with a material 15. Here, the color reacts to the locations of the lights previously arranged around the mesh. Different parameters corresponding to the material, then allow the chosen colors to react differently. A texture is also applied to the hand at this stage.
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.
Chaque point du maillage devra alors réagir en fonction des os les plus proches.With reference to FIG. 3C, the character's skin having been created, the designer then integrates a skeleton 16 in order to determine the articulations 17 at the desired locations of the mesh. Each point of the mesh will then have to react according to the closest bones.
Enfin (figure 3D) l'animation de la main du personnage est programmée avec une vitesse donnée, des clés d'animation et une vélocité déterminée, par le graphiste grâce au logiciel mis en œuvre, de type connu.Finally (Figure 3D) the animation of the character's hand is programmed with a given speed, animation keys and a determined velocity, by the graphic designer using the software implemented, of known type.
Le travail de configuration des personnages qui permet d'obtenir le personnage 18 de la figure 4 est 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 « morphing de mesh » etc... pour configurer les différentes expressions déterminant la personnalité du personnage. 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.The character configuration work which makes it possible to obtain the character 18 of FIG. 4 is then finished. All the data is stored in the form of a file, then separated to allow the character to be re-configured in real time, according to the invention, by creating a single character file (first file) but on which the creator (user) will be able to intervene both on the "mesh" as the colors, textures, animations, "mesh morphing" etc ... to configure the different expressions determining the character's personality. Referring now to FIG. 5, the file thus obtained is compressed into 20 to be stored. When it is desired to use it, it is decompressed at 21 so as to allow the obtaining of the internal file 22 or first file which will be able to be interpreted thanks to the 3D engine 23, and to the animation engine 24.
Ces données sont alors utilisé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 26 par l'utilisateur non spécialiste, selon l'invention étant possible grâce au module de dialogue 27.
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.These data are then used to generate, via an editor program 25 which will be specified below, the agent 26, the assembly of the possibilities of said agent 26 by the non-specialist user, according to the invention being possible thanks to the dialogue module 27 . The user (not shown), responsible for the design of the agent, can thus give life to his character in an extremely simple way. Scripting of an agent: In the following, we will generally use the same reference numbers, to designate the same elements in FIGS. 5, 6 and 7.
Le fichier généré par l'éditeur 25 est prévu pour être exploitable par un graphiste G, grâce aux librairies et aux documentations fournies par les sociétés fabricantes de logiciels d'animation telles que mentionnées ci-avant.The file generated by the editor 25 is intended to be usable by a graphic designer G, thanks to the libraries and documentation provided by the companies manufacturing animation software as mentioned above.
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.On the other hand, the staging of an agent 26 is not an easy task as soon as the director is non-specialist, in particular when this staging must allow interaction with the 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.Generally, this work is in fact done, in the world of video games, by specialized speakers called "Game designers" in Anglo-Saxon terminology.
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 .According to the embodiment of the invention more particularly described here, an additional module 27, for dialogue, is therefore provided to give the possibility to non-programmers to script an agent, as will now be described.
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 .
Le module 27 de dialogue est agencé pour écrire automatiquement le code en intégrant toutes les détections de navigateur, résolution d'écran, plate forme, synthèses vocales installées, etc du programme applicatif concerné.More precisely, the dialogue module 27 offers here the possibility for any user to stage his agent and to automatically adapt the game of the agent so that his behavior in the application program is natural, lively and consistent. The dialogue module 27 is arranged to automatically write the code by integrating all the browser detections, screen resolution, platform, installed speech synthesizers, etc. of the application program concerned.
Pour ce faire il met en scène un moteur dit « d' Intelligence comportementale » ou couche active 28.To do this, it stages a so-called "behavioral intelligence" engine or active layer 28.
Le moteur est basé sur une reconnaissance de mots clés dits ou écrits par l'utilisateur via par exemple une bulle de dialogue 29.The engine is based on recognition of keywords said or written by the user via, for example, a speech bubble 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 intégrés dans une base de données 31 serveur client.The scenario (or “script” in Anglo-Saxon language) 30 being conversational and therefore limited, certain words or events are first of all listed and integrated into a database 31 client server.
Il n' est pas nécessaire de comprendre le contenu réel de la conversation mais simplement de reconnaître certains mots et/ou certaines associations de mots liés à un client, pour trouver quel doit être le comportement de l'agent.It is not necessary to understand the actual content of the conversation but simply to recognize certain words and / or certain associations of words related to a client, to find out what the agent's behavior should be.
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 1 ' aurons » (bulle 29) . Selon le mode de réalisation de l'invention plus particulièrement décrit ici, la simple 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. Le personnage pendant qu'il parle n'est donc plus statique.
Exemple 2 : L'utilisateur fait répondre à l'agent une confirmation du genre : « J' ai trouvé le livre que vous recherchez , le voilà ! ».Example 1: The user asks his agent in 30 to say: "We no longer have this book in stock, I'm sorry, we will notify you as soon as we have it" (bubble 29). According to the embodiment of the invention more particularly described here, the simple recognition of the word “sorry” influences the way in which the agent 26 can behave and this, in real time while he is saying his text. The character while he is speaking is therefore no longer static. Example 2: The user sends the agent a confirmation of the kind: "I found the book you are looking for, here it is! ".
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'animation de l'agent 26 correspondant à la figure 4.From this statement linked to the exclamation mark, the behavioral intelligence engine 28 automatically generates via the animation engine 24 and the 3D engine 23, the animation of the agent 26 corresponding to FIG. 4.
Si l'utilisateur décide de diriger son acteur de façon plus précise, il peut également intervenir pour modifier le choix de son animation, qui autrement sera celle programmée par défaut.If the user decides to direct his actor more precisely, he can also intervene to modify the choice of his animation, which would otherwise be the one programmed by default.
Il est donc possible d'adapter ce procédé de reconnaissance à la force et à l'intensité des animations.It is therefore possible to adapt this recognition process to the strength and intensity of the 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.Similarly, the agent is animated more or less quickly, with more or less energy in the movement, depending on the content of the conversation, without the user having previously prepared different types of animation and / or just have to deal with it.
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 importante. 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é
par l'utilisateur/metteur en scène crée tout seul son jeu de scène.Surprisingly, it was indeed possible, apart from the animations specific to such a type of character, or those linked to a specific application, to develop sets of expressions that could correspond to any type of character and meet all the requests without having to build up a large database. With the invention, the personalized agent can therefore speak while having intelligent behavior, thus constituting an actor who, in view of the given text. by the user / director creates his own stage play.
On va maintenant préciser de façon non exhaustive les caractéristiques techniques de l'agent mis en œuvre selon le mode de réalisation de l'invention plus particulièrement décrit ici.We will now specify in a non-exhaustive manner the technical characteristics of the agent used according to the embodiment of the invention more particularly described here.
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) , regroupant toutes les fonctionnalités des jeux vidéos actuels (« morphing », « bones System », « antialiasing », « bump mapping », « lip sync », texturage) .Its production is based here on real-time 3D technology, of the type developed by the companies SILICON GRAPHICS (OpenGL®) or MICROSOFT (DirectX), bringing together all the functionalities of current video games ("morphing", "bones System", "antialiasing "," Bump mapping "," lip sync ", texturing).
Il met également en œuvre une technologie connue sous la dénomination « Technologie ActiveX® » 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).It also implements a technology known under the name “ActiveX® Technology” under Windows, allowing the agents to be used in any Windows application or from a browser, on the entire desktop of the user (adaptation to the user screen resolution).
Les autres paramètres de mise en oeuvre de l'agent sont donnés ci-après :The other parameters for implementing the agent are given below:
- Fichier "acteur" de l'agent [très léger ( ~30Ko à 150Ko) ] avec une partie en continu (« streaming » en langage anglo-saxon) .- Agent's "actor" file [very light (~ 30KB to 150KB)] with a continuous part ("streaming" in Anglo-Saxon language).
Agent non prisonnier d'une fenêtre : Le personnage est détouré.Agent not trapped in a window: The character is cut out.
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.
- Connexion avec des bases de données liées au opérations connues en langage anglo-saxon sous les noms de « Profiling », et « tracking », et/ou à un programme d'intelligence artificielle, et ce de façon connue .Fixed camera: Automatic orientation of the character according to its position on the screen. - Connection to speech synthesis and voice recognition systems compatible with Microsoft SAPI type software. - Connection with databases linked to operations known in Anglo-Saxon language under the names of "Profiling" and "tracking", and / or to an artificial intelligence program, in a known manner.
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. - Elé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, liste déroulante) .Possibility of interactive comic book style speech bubbles, displaying the text spoken by the actor. Choice of several types of bubbles "according to the state of the agent. - Elements of interfacing while residing in the memory and which are displayed on the screen by pressing a key (" pop up "in English) (button, dropdown list) .
Technologie fonctionnant sous Windows (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.Technology running under Windows (95/98 / nt4 / 2000 / Me and +) and under Mac (OS 8 and more). Advantageously, it is also provided for Unix, Playstation and other platforms.
- 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'à 20.000 polygones pour une vitesse d'exécution " d'au moins 15 images/seconde.- Compatible with products called IE4 and +, and Netscape Navigator 4 and +. - Display of polygonal 3D models. The engine is then and for example adapted to a 3D model up to 20,000 polygons for an execution speed " of at least 15 images / second.
- Système d' animation optimisé et automatisé dans certains états.- Optimized and automated animation system in certain states.
Système d' automatisation de scénarios (« scripts » en langage anglo-saxon) .Scenario automation system (“scripts” in Anglo-Saxon language).
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 .
Le moteur d'animation 3D 24 utilisable avec l'invention est construit quant à lui sur le moteur d'affichage 3D temps réel.Export system from software called Softimage 3D, 3DS Max and Maya. - Behavioral Intelligence engine based on a dynamic dictionary of words and word associations. The 3D animation engine 24 usable with the invention is built on the real time 3D display engine.
Ses caractéristiques sont les suivantes : - gestion de scènes ( objets, lumières, caméra)Its characteristics are as follows: - scene management (objects, lights, camera)
- « skin » ou peau : modèles hiérarchiques déformables- "skin" or skin: hierarchical deformable models
- Gestion des textures avec filtrage- Textures management with filtering
- Animation hiérarchique - cinématique inverse temps réel- Hierarchical animation - real time inverse kinematics
- système de contraintes temps réel- real time constraints system
- « morphing » additif : un « mesh » peut avoir plusieurs configurations en même temps, 'avec des pondérations différentes, le tout se rajoutant au système de peau.- additive "morphing": a "mesh" can have several configurations at the same time, 'with different weights, all adding to the skin system.
On va maintenant détailler ci-après les éléments mis en œuvre en faisant référence à la figure 6.We will now detail below the elements implemented with reference to FIG. 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.FIG. 6 shows four main software modules used with the embodiment of the invention more particularly described here, namely the animation engine 24, the dialogue module 27, an exporter module 32, and the editor module 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) .The animation engine 24 installed on the user's computer manages the behavior of the character controlled by scenario 30 (or 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. Il utilise les paramètres suivants : Les séquences (données et procédures) :
Une séquence est définie comme un objet qui regroupe des données et des procédures.It interprets the 3D data, the procedures - used, the events requested from the "mesh" as well as the management of its expressions and the more or less developed autonomy that it must have on the screen. It uses the following parameters: The sequences (data and procedures): A sequence is defined as an object that groups data and procedures.
Les données concernent l'animation 3D, l'acteur, les objets accessoires , les sons, les effets . spéciaux.The data concerns the 3D animation, the actor, the accessory objects, the sounds, the effects. special.
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éciaux, etc ».The procedures answer questions such as: "how the animation should be played, how to manage such an event, when and how the actor speaks, what the special effects do, 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.The intelligent part of the agent is located in the sequences. They are triggered either directly by scenario 30 (or 33), or by the motor 24 automatically during a time-out or event management.
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 enThe sequence manager 34 (see FIG. 5) controls the display engine 35 by transmitting to it animations or graphic scenes 36 and by
. 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.. controlling the running of these events (event sequencer 37). Also, it shows and hides the accessory objects that are used by certain animations.
Les événements :The events :
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).Events 38 (see Figure 5) come from user interactions with the agent (eg movement of the agent by movement of the mouse).
Une gestion de ces événements est donc nécessaire pour déclencher des animations spécifiques.Management of these events is therefore necessary to trigger specific events.
Afin d'augmenter la réalité de l'agent, on prévoit par exemple une gestion des zones de clic sur l'agent qui va réagir différemment suivant que l'on clique sur son œil ou sur son corps. Il faut donc que leIn order to increase the reality of the agent, provision is made, for example, for management of the click zones on the agent, which will react differently depending on whether one clicks on his eye or on his body. So the
- moteur 24 véhicule des informations sur l'objet 3D
cliqué dans la scène afin de savoir quelle zone a été touchée .- engine 24 conveys information about the 3D object clicked in the scene to find out which area was affected.
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 « lâcher » spéciale. Les expressions :For movement, there is also, for example, an animation that is triggered during the operation, with a special "release" management. The expressions :
La gestion des expressions met en œuvre un module qui va être implémenté en déclenchant un programme de formation ou un « morph » en terminologie anglo- saxonne, ou les « morphs » correspondants et il restera jusqu'à ce qu'une nouvelle commande de ce type arrive.The expression management implements a module which will be implemented by triggering a training program or a “morph” in English terminology, or the corresponding “morphs” and it will remain until a new command of this guy is coming.
L'Autonomie du personnage :Character autonomy:
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 .This part of the program occurs when the agent is not being attended to. The agent must always be active and do something, otherwise he does not seem alive anymore.
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 :In the embodiment of the present invention more particularly described here, the idle times are for example divided into three time zones:
10 secondes : l'acteur commence à faire 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.10 seconds: the actor begins to make small movements, of the head, the eyes, he changes the support foot, etc. 30 seconds: the actor begins to use accessory objects, he does sports, 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 aux différents niveaux de temps .1 minute: he yawns, he sleeps, he goes to bed, he rests, he's tired of being there doing nothing. In the agent editor, we then assign animations to the different time levels.
On peut ainsi programmer plusieurs animations par niveaux. Le programme choisira alors aléatoirement une des animations à jouer.
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.It is thus possible to program several animations per level. The program will then randomly choose one of the animations to play. The dialogue module 27 is in turn an interface dependent on the browser used as well as on the platform. A detection of the latter is therefore provided during the generation of the scenarios or “scripts” 33 in this module.
La connexion TTS 39 (initiales anglo-saxonnes de Text-To-Speech) :The TTS 39 connection (English initials of Text-To-Speech):
Sous Windows, il existe un programme intitulé SAPI, qui est une interface « COM » que les systèmes de synthèse de parole implémentent .Under Windows, there is a program called SAPI, which is a "COM" interface that speech synthesis systems implement.
Il suffit donc de se connecter à « SAPI » pour accéder à ces systèmes. Lorsque le scénario 33 demande à l'agent de parler avec la commande acteur . speak texte à dire ' , la connexion TTS va retransmettre les informations suivantes au système :It is therefore enough to connect to "SAPI" to access these systems. When scenario 33 asks the agent to speak with the actor command. speak text to say ', the TTS connection will retransmit the following information to the system:
- pointeur dans la mémoire tampon texte (« buffer en anglais)- pointer to the text buffer ("buffer en anglais")
- positions de la bouche.- positions of the mouth.
Le pointeur sur le texte permet alors de gérer le défilement du texte dans la bulle de dialogue.The pointer on the text then makes it possible to manage the scrolling of the text in the speech bubble.
Les positions de la bouche permettent la synchronisation des lèvres.The positions of the mouth allow synchronization of the lips.
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.When the TTS system is not installed, or there is no sound card, a system for simulating text scrolling and lip synchronization is provided.
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.
La bulle de dialogue 29 :This system scrolls the text at an adjustable “standard” speed. The mouth is made mobile by a random algorithm in a realistic way. Speech bubble 29:
La bulle constitue quant-à-elle une deuxième fenêtre qui vient se placer à coté ou au dessus deThe bubble constitutes a second window which is placed next to or above
1' acteur. 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 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é de l'agent.1 actor. It only appears when the actor is speaking. The text then scrolls inside like a ticker. All parameters (shape, background color, font, text color, etc.) are adjustable by scenario 33. The location where the window appears is decided by the system in real time and depends on the position of the agent at this time, the goal is to ensure that the bubble (interactive) is always completely inside the screen of the computer or desktop, and located above or next to the agent.
Le Scénario (30-33) :The Scenario (30-33):
Il n' y a rien de particulier à effectuer pour que le scénario fonctionne, ce dernier étant intégré et mettant en œuvre les commandes précisées ci-après. Les commandes: MoveTo :There is nothing special to do for the scenario to work, the latter being integrated and implementing the commands specified below. The commands: 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.The scenario gives a target position in absolute value. The system detects where the actor is at that moment and calculates the difference which gives the oriented vector of displacement.
Le système dispose d'animations où l'agent :The system has animations where the agent:
- réalise une marche sur place. Le découpage est alors le suivant : Il commence à marcher. L'acteur doit partir dans une des directions en 2D (droite, gauche) . Il se retrouve de coté. Il marche en boucle.
Il peut monter ou descendre. Il s'arrête.- performs a walk on the spot. The breakdown is then as follows: It begins to work. The actor must go in one of the directions in 2D (right, left). He finds himself on the side. He walks in a loop. It can go up or down. He stops.
Il se remet de face en position de repos.It goes back to the rest position.
- Saute au-dessus de lui. - Saute en dessous de lui.- Jump over him. - Jump below him.
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. 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.To this must be added the possibility of stopping walking at any time, especially when the distance to be covered is small. In this case, there may only be one step to take. The method and the system according to an embodiment of the invention also provide the possibility of deciding whether to move the agent by stairs for the ascent and the descent. Other choices exist. For example, it can: - Jump the entire height in one go and then move horizontally.
- Monter ou descendre progressivement ( escalier) .- Gradually ascend or descend (staircase).
LookAt : 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.LookAt: The scenario gives a target position in absolute value. The system detects where the actor is at this moment and calculates the difference which gives the angle of orientation of the head.
Le système dispose pour cela de quatre animations qui 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 .
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 inverse, la position du bras afin qu'il indique plus précisément la direction.The system has four animations for this which give the movements for the four directions (left, right, above, below). To give a more precise angle, we only change the rotation of the head within a determined range. GestureAt: The scenario always gives here a target position in absolute value. The system detects where the actor is at this moment and calculates the difference which gives the oriented vector of arm movement. As for the "lookAt" instructions, the prepared animations are "gestureLeft, right, up and down". In this case, the system will modify thanks to the inverse kinematics, the position of the arm so that it more precisely indicates the 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 . Les options sont par exemple et de façon non limitatives :If the end user moves the character while he is speaking in GestureAt position, the angles are recalculated and the position of the arm is changed. The options are for example and without limitation:
- choix du bras montrant (droit ou gauche si c'est un bipède)- choice of the showing arm (right or left if it is a biped)
- mixte d' animation entre les différents GestureAt !- mixed animation between the different GestureAt!
Click :Click:
Exemple : L' animateur prépare une animation où l'acteur se bouche l'œil droit avec ses deux mains. Lorsqu'on clique sur l'œil 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 :Example: The animator prepares an animation where the actor covers his right eye with both hands. When you click on the right eye, the system triggers this animation. A set of small animations of this kind contribute to improving the realism of the actor. One has the impression that he really lives. This configuration is carried out in the agent editor. 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. DoubleCli ck, Drag&Drop : Ces fonctions sont connues en elles-même.With this command, you manage in particular the triggering of a "pop up" menu containing the basic commands. These commands will call up previously scheduled animation sequences. DoubleCli ck, Drag & Drop: These functions are known in themselves.
On va maintenant décrire plus précisément les fonctions du module exportateur 32.
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 œuvre les données 3D 40 correspondant à ce qui va être animé avec le procédé selon l'invention plus particulièrement décrit ici.We will now describe more precisely the functions of the exporting module 32. The data of an agent are indeed and first of all exported by various 3D creation software, to configure and implement the 3D data 40 corresponding to what will be animated with the method according to the invention more particularly described here. .
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. Il s'agit de la position dite « sprite » de l'agent.First, we export a so-called basic scene, which includes the agent in said scene, with the right camera framing and the right lights. This is the agent's "sprite" position.
On exporte ensuite une scène spéciale dite « morphs » qui ne comporte que les différentes clés de « morphing » pour les expressions et les bouches.We then export a special scene called "morphs" which includes only the different "morphing" keys for expressions and mouths.
Le tableau N°l 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.Table No. 1 below, for example, represents the data that the graphic designer will prepare. The numbers correspond to the frame or "frame" numbers in the 3D creation software.
TABLEAU N°lTABLE N ° l
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. The program of the exporter module will detect here the vertices that have moved and export only those. Finally, we read the animation files.
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. Plus précisément l'éditeur 25 exporte trois types de fichiers :The editor module 25, also shown in FIG. 7, makes it possible to recover the 3D data 40 and to prepare all the settings specific to the agent 26. More precisely, the editor 25 exports three types of files:
Le fichier agent compressé 20 qui va être utilisé par le moteur 24.The compressed agent file 20 which will be used by the engine 24.
Un fichier projet 41 qui va contenir des pointeurs vers les fichiers sources utilisés et les différents réglages .A project file 41 which will contain pointers to the source files used and the various settings.
Un fichier 42 texte de description des animations à l'attention de l'utilisateur 43 (voir figure 6) qui va animer l'agent via l'interface 44. Le module éditeur 25 met en oeuvre :A file 42 text description of the animations for the attention of the user 43 (see FIG. 6) which will animate the agent via the interface 44. The editor module 25 implements:
- Les informations et réglages généraux concernant l'agent (nom, langue, taille, TTS, etc..) .- General information and settings concerning the agent (name, language, size, TTS, etc.).
- Les séquences (bouclage, son, ...) .- The sequences (looping, sound, ...).
Les « morphs » ( visualisation et tests) (bouches, expressions) .The "morphs" (visualization and tests) (mouths, expressions).
- Le réglage des déplacements.- Adjustment of displacements.
- Les réglages des temps morts.- Dead time settings.
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.Finally, the dialogue module 27 is composed of an editing bench 50 (see FIG. 8), oriented for non-linear use of the sequences.
Le banc de montage 50 est ainsi décomposé en plusieurs pistes, par exemple en sept pistes, 51, 52,
53, 54, 55, 56 et 57 s' intéressant aux différentes parties d'une séquence.The assembly bench 50 is thus broken down into several tracks, for example into seven tracks, 51, 52, 53, 54, 55, 56 and 57 being interested in the different parts of a sequence.
On va maintenant décrire un exemple de création de séquence : - 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,We will now describe an example of creating a sequence: - We define a new sequence to which we give a name. This sequence falls into one of the predefined sequence types: (show / hide, speak,
...)...)
- On importe les données 3D depuis un fichier 40 précédemment exporté.- We import 3D data from a file 40 previously exported.
On découpe l'animation en plusieurs partiesWe cut the animation into several parts
(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 l'échelle figure en ligne 1).(Part 1, Part 2, Part n ...) that we name and whose entry and exit points are determined (see Figures 52 and 53 carried over in time, the scale of which is shown in line 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) .From there we have the necessary elements for editing (speech 54, output connection 55, sounds 56, special effects 57).
On joue alors les différentes parties. Par 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.We then play the different parts. For example, we ask to play the first part twice upside down, then to play the third part upside down and finally to play the second part in ping-pong.
Lorsque l'animation s'y prête, une des parties sera sélectionnée pour la parole.When the animation is suitable, one of the parts will be selected for the speech.
Enfin on définit également ce que l'agent doit faire lorsqu' on interrompt la séquence en plein milieu.Finally, we also define what the agent should do when we interrupt the sequence in the middle.
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.
Il 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.We will now describe the principle used in the embodiment of the invention more particularly described here, concerning the triggering "keyword". There are indeed two possible directions for analyzing a text, either you have to understand the meaning of the text, or you have to find the rhythm of the text.
Dans un mode de réalisation préféré, on analyse le rythme du texte.In a preferred embodiment, the rhythm of the text is analyzed.
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 .Rhythm is a general movement (of the sentence, of the poem, of the stanza, of a verse) which results from the relative length of the members of the sentence, from the use of the tonic accent, the rejections, etc. A sentence is broken down into rhythmic groups.
Les groupes rythmiques ne sont pas déterminés au hasard: ils sont imposés par les groupes syntaxiquesRhythm groups are not determined at random: they are imposed by syntactic groups
(rythme grammatical) , par les liens sémantiques(grammatical rhythm), by semantic links
(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) .(rhythm of meaning), by punctuation (dots, commas ...) and by breathing (long sentence without punctuation that forces the speaker to catch his breath).
Il y a donc quatre paramètres qui donnent le rythme d'un texte, les groupes syntaxiques, les liens 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.There are therefore four parameters which give the rhythm of a text, the syntactic groups, the semantic links, the punctuation and the breathing. Grammar is as difficult to analyze as meaning and to split a sentence that is too long, you also need to know the meaning of the sentence (you can't cut anywhere). In an advantageous embodiment, therefore, the punctuation present will rather be used.
Celle-ci présente en effet des avantages.This indeed has advantages.
Toutes les langues basées sur un alphabet utilisent pratiquement la même ponctuation. II n'y a que quelques symboles de ponctuation, donc pas de gros dictionnaire.All languages based on an alphabet use almost the same punctuation. There are only a few punctuation symbols, so no big dictionary.
Chaque symbole a un sens bien défini.
Une séquence de symboles de ponctuation peut ainsi donner des indications sur le style que l'utilisateur a voulu donner à son texte.Each symbol has a well-defined meaning. A sequence of punctuation symbols can thus give indications on the style that the user wanted to give to his text.
Par exemple quand on trouve un point d'interrogation on joue l'animation « indécis », quand on trouve un point on se déplace etc.For example when we find a question mark we play the animation "undecided", when we find a point we move etc.
Sur un texte de vingt phrases il va ainsi et par exemple y avoir vingt déplacements, et trois « indécis ». L'utilisation de l'unique paramètre « ponctuation » peut donc ne pas être suffisant.On a text of twenty sentences it will thus and for example be twenty displacements, and three "undecided". The use of the single “punctuation” parameter may therefore not be sufficient.
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.Anyway by using the rhythm of the text and, according to this rhythm and the user choice (choice of a style), by placing and parameterizing commands, one obtains astonishingly an excellent result of 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 ».In a preferred case, the analysis of the text makes it possible to detect the punctuation elements and the breakdown of the text (paragraphs, sentences ...). Thereafter, this text will be called the "descriptive text".
L' analyse du texte descriptif permet de dégager un rythme, par exemple « phrase longue, phrase courte interrogative, phrase courte impérative ... phrase longue ».Analysis of the descriptive text reveals a rhythm, for example "long sentence, interrogative short sentence, imperative short sentence ... long sentence".
On qualifie les résultats de cette analyse avec des termes comme « court » ou « très court » ouWe qualify the results of this analysis with terms like "short" or "very short" or
« interrogatif ». Ce sont des valeurs relatives, par exemple la notion « phrase courte » est relative à la taille du paragraphe dont elle fait partie."Interrogative". These are relative values, for example the notion "short sentence" is relative to the size of the paragraph of which it is a part.
On définit ainsi ce qu'on appelle le texte flou.
Ainsi, en demandant à l'utilisateur de choisir un style de prestation pour son agent, cela permet de mieux cadrer sa demande.We thus define what is called fuzzy text. Thus, by asking the user to choose a delivery style for his agent, this helps to better frame his request.
Chaque style correspond à une liste de paramètre * que l'on appelle paramètres de style.Each style corresponds to a list of parameters * which are called style parameters.
L'outil selon l'invention va donc avantageusement intégrer une base de connaissance que l'on appelle référence de style.The tool according to the invention will therefore advantageously integrate a knowledge base which is called style reference.
Les choix de commandes et les moments d' insertion des dites commandes sont alors faites par un programme appelé cerveau. C'est le cerveau qui donne sa tonalité à la performance de l'agent.The choices of commands and the moments of insertion of said commands are then made by a program called brain. It is the brain that sets the agent's performance.
Si la base de règles est suffisamment définie, l'agent va donc réagir en fonction du style de rédaction de l'utilisateur.If the rule base is sufficiently defined, the agent will therefore react according to the writing style of the user.
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. On mentionnera ainsi un style clair, précis, élégant, un style obscur, ampoulé, un style burlesque, oratoire, lyrique ou encore un style administratif, juridique.Recall the definition of style. A style is a way of using the means of expression of language, specific to an author, a literary genre, etc. We will thus mention a clear, precise, elegant style, an obscure, bombastic style, a burlesque, oratory, lyrical style or even an administrative, legal style.
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.In one embodiment of the invention, punctuation is used to determine the majority of the places where an action of the actor can be inserted.
Plus précisément :More precisely :
. Le point : Le point indique la fin d'une phrase.. The period: The period indicates the end of a sentence.
Il marque une descente complète de la voix et une 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
relation étroite avec celle exprimée dans la phrase précédente.It marks a complete descent of the voice and an important pause before the voice goes up for another sentence. Most often we use the dot when expressing a new idea that has no close relationship with that expressed in the previous sentence.
. 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 conjonction de coordination. ' . Le point virgule : Le point virgule sépare deux propositions. Le plus souvent, les deux propositions ont entre elles une relation logique.. The comma: The comma can be used to separate different elements of the sentence; it pauses without the voice dropping. The comma allows you to insert information, marks the detachment, allows you to give a chronology to events or not to repeat the coordination conjunction. '. The semicolon: The semicolon separates two propositions. Most often, the two propositions have a logical relationship between them.
Il indique que l'on marque une pause plus importante qu'avec la 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.It indicates that there is a greater pause than with the comma. . The colon: The colon has several uses. They allow you to list the elements, to quote or relate someone's words, to express an explanation.
. Le point d'exclamation : Il se place à la fin d'une phrase dans laquelle celui qui parle ou écrit exprime un ordre, un souhait, la surprise, l'exaspération, l'admiration, etc.. The exclamation mark: It is placed at the end of a sentence in which the one who speaks or writes expresses an order, a wish, the surprise, the exasperation, the admiration, etc.
. Le point d' interrogation : Il se place à la fin. The question mark: It is placed at the end
' 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 à propos de tel ou tel passage de la phrase.'of an interrogative sentence. . Parentheses: They are used to isolate information within a sentence. The group of words or the sentence in parentheses has no syntactic link with the rest of the sentence. It is often a reflection made by the one who reads about such or such passage of the sentence.
. 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.
Les 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 écrit) veut sous-entendre une suite.. The quotes: They surround a sentence or a group of words which do not belong to the one who writes, but which are borrowed from another person. The ellipsis: They can have several values. They intervene in an enumeration that one does not want to extend. They intervene when the person who speaks (or who writes) wants to imply a continuation.
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 ponctuation.The comma is the most common punctuation element and the most difficult to interpret. This is why the study of the punctuation of a text must highlight sequences of element of punctuation.
Selon des modes de réalisation de l' invention, on va également utiliser la mise en page, i.e, le passage à la ligne, le texte descriptif (qui représente le découpage du texte en éléments • simples) , pour insérer des actions, ou encore la notion de texte flou.According to embodiments of the invention, there will also use the layout, ie, the passage to the line, the descriptive text (which represents the division of the text elements • Simple) to insert action, or the concept of blurred text.
Pour que le cerveau puisse déterminer à quel moment il faut insérer une commande et quelle commande insérer, il faut en effet remplir une liste de paramètres que le cerveau va comprendre.So that the brain can determine when to insert a command and which command to insert, it is indeed necessary to fill in a list of parameters that the brain will understand.
Or, on ne peut pas se baser sur une forme prédéfinie 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 particularités.However, one cannot base oneself on a predefined form of text and seek the common points between a reference text and the text to be analyzed. Each text will indeed be different and will have its particularities.
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.We must therefore find parameters that adapt to the text. For this it is necessary to take the text studied as an analysis reference, as a benchmark.
C'est ce que fait l'invention dans un de ses modes de réalisations en utilisant des paramètres « flous ».This is what the invention does in one of its embodiments using “fuzzy” parameters.
L'avantage d'un paramètre flou c'est qu'il a une signification précise pour le cerveau indépendamment
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.The advantage of a fuzzy parameter is that it has a precise meaning for the brain independently content. For example we want to know the length of a paragraph of a text because if a paragraph is "short" we will make the agent move while he recites the paragraph. What interests is the change of pace.
La liste de paramètre flou doit être vérifiée et réglée empiriquement.The fuzzy parameter list must be checked and adjusted empirically.
Chaque paramètre flou a différentes valeurs que l'on note de deux façons. Une façon linguistique et une façon mathématique.Each fuzzy parameter has different values which are noted in two ways. A linguistic way and a mathematical way.
La façon linguistique permet de comprendre intuitivement .The linguistic way makes it possible to understand intuitively.
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.For example it is better to indicate that the paragraph is long rather than to indicate that the paragraph has a length of 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.The value 0.8 will be used by the brain inside an equation but for the adjustment it is better to reveal the linguistic notion.
Chaque paramètre flou aura une valeur minimale, un • ensemble de valeurs intermédiaires et une valeur maximale .Each fuzzy parameter will have a minimum value, a set of • intermediate values and a maximum value.
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.According to one embodiment of the invention, the minimum value is chosen to be greater than zero and the maximum value less than 1, to avoid effects of the multiplication by zero type.
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 :Defining the fuzzy parameters of the text allows you to create a reference. These are for example the following parameters:
- Il y a un paragraphe : On agit alors en fonction du nombre de phrases.- There is a paragraph: We then act according to the number of sentences.
Il y a une phrase. Présentation très très courte. . Il y a deux phrases. Présentation très courte.
Il y a trois phrases ou plus. Présentation courte .There is a sentence. Very very short presentation. . There are two sentences. Very short presentation. There are three or more sentences. Short presentation.
- Il y a deux paragraphes : En fonction du nombre de phrases par paragraphe. . Il y a une phrase. Présentation très courte . Il y a deux phrases. Présentation courte.- There are two paragraphs: Depending on the number of sentences per paragraph. . There is a sentence. Very short presentation. There are two sentences. Short presentation.
Il y a trois phrases ou plus. Présentation moyenne .There are three or more sentences. Average presentation.
- Il y a trois paragraphes ou plus : On agit en fonction du nombre de phrases par paragraphe.- There are three or more paragraphs: We act according to the number of sentences per paragraph.
. 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) :. There is a sentence. Average presentation. . There are two sentences. Long presentation. . There are three or more sentences. Very long presentation. - Relation to space (screen space):
On effectue une étude du rapport entre ce qui est dit et l'écran suivant les choix de l'utilisateur.We study the relationship between what is said and the screen according to the user's choices.
. Aucun : l'utilisateur n'a pas défini de place. . Petit : l'utilisateur a défini une place pour une partie du texte.. None: the user has not defined a place. . Small: the user has defined a place for part of the text.
Grand : l'utilisateur a défini une place pour tout le texte. . Très grand : l'utilisateur a plusieurs places.Large: the user has defined a place for all the text. . Very large: the user has several places.
Les paramètres flous d'un paragraphe sont par ailleurs et par exemple les suivants :The fuzzy parameters of a paragraph are, for example, the following:
- Mise en valeur : La mise en valeur étudie l'espacement (nombre de retour à la ligne) entre deux paragraphes.- Enhancement: Enhancement studies the spacing (number of line breaks) between two paragraphs.
N= nombre de retour à la ligne moyen du texte.
P= nombre de retour à la ligne avec le paragraphe précédent.N = number of line breaks in the text. P = number of line breaks with the previous paragraph.
S= nombre de retour à la ligne avec le paragraphe suivant .S = number of line breaks with the following paragraph.
Pas de mise en valeur : (S=P et P<=N) ou (S>P et S<=N)No enhancement: (S = P and P <= N) or (S> P and S <= N)
Faible S<P et P<=N Forte S !=P et (PetS)>N Très forte S=P et P>NWeak S <P and P <= N Strong S! = P and (PetS)> N Very strong S = P and P> N
- Longueur :- Length:
Etude de longueur relative du paragraphe par rapport au texte et aux autres paragraphes (en nombre de mots) .Study of the relative length of the paragraph compared to the text and the other paragraphs (in number of words).
N= nombre de mot moyen des paragraphes. n= nombre de mot du paragraphe étudié.N = average word number of the paragraphs. n = number of words in the paragraph studied.
Très court : n<N*0.25 Court : N*0.25<n<N*0.5 Moyen : N*0.5<n<N*l .5 Long : N*1.5<n<N*4 Très long : N*4<nVery short: n <N * 0.25 Short: N * 0.25 <n <N * 0.5 Medium: N * 0.5 <n <N * l .5 Long: N * 1.5 <n <N * 4 Very long: N * 4 < not
- Vivacité :- Vivacity:
On réalise une étude de la taille moyenne des phrases du paragraphe par rapport à une taille moyenne des phrases du texte.We carry out a study of the average size of the sentences of the paragraph compared to an average size of the sentences of the text.
T=taille moyenne des phrases du texte. t=taille moyenne des phrases du paragraphe.T = average size of the text sentences. t = average size of the sentences in the paragraph.
Pas vif : t>T*2Not alive: t> T * 2
Moyennement vif : T/2<t<T*2
Vif : T/4<t<T/2Medium sharp: T / 2 <t <T * 2 Vivid: T / 4 <t <T / 2
Très vif . : t<T/4Very lively . : 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'utilisateur. Aucun : l'utilisateur n'a pas définit de place. Petit : l'utilisateur à définit une place pour une partie du paragraphe. Grand : l'utilisateur à définit une place pour tout le paragraphe.- Relation to space (screen space): We carry out a study of the relationship between what is said and the screen according to the user's choices. None: the user has not defined a place. Small: the user has defined a place for part of the paragraph. Large: the user has defined a place for the whole paragraph.
Très grand : l'utilisateur à plusieurs places.Very large: the user has several places.
Les paramètres flous d'une phrase sont quant à eux et par exemple les suivants :The fuzzy parameters of a sentence are, for example, the following:
- Type .- 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 Enumératif. La phrase se termine par \..' . o Descriptif. La phrase se termine par λ :' .The type is defined in relation to the first sentence ending sign, ie Λ . ' or Λ : 'or;' or ! ' or ?' or Λ ... 'o Normal. The sentence ends with λ . '. o Imperative. The sentence ends with Λ ! ' . o Interrogative. The sentence ends with? ' . o Enumerative. The sentence ends with \ .. '. o Description. The sentence ends with λ : '.
- Longueur :- Length:
On effectue l'étude de longueur relative d'une phrase par rapport aux autres phrase du paragraphes (en nombre de mots) .One studies the relative length of a sentence compared to the other sentences of the paragraphs (in number of words).
N= nombre de mots moyen des phrase. n= nombre de mots de la phrase étudiée.
Très court n<N*0.25 Court N*0.25<n<N*0.5 Moyen N*0.5<n<N*1.5 Long N*1.5<n<N*4 Très long N*4<nN = average number of words in sentences. n = number of words in the sentence studied. Very short n <N * 0.25 Short N * 0.25 <n <N * 0.5 Medium N * 0.5 <n <N * 1.5 Long N * 1.5 <n <N * 4 Very long N * 4 <n
- Parenthèses- Parentheses
Liste de descriptif de parenthèse. Type de parenthèse et longueur de la parenthèse.List of parenthesis description. Type of parenthesis and length of the parenthesis.
Type simple : contient une série de mots sans ponctuation .Simple type: contains a series of words without punctuation.
Type complexe : contient des ponctuations .Complex type: contains punctuations.
Longueur.Length.
- Les virgules- Commas
Liste de longueur qui séparent les virgules entre elles .List of lengths which separate the commas between them.
On utilise également avantageusement les paramètres de styles.The style parameters are also advantageously used.
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.We define the style parameters and give a name to this style (for example serious, comic ...). The parameters describe the reality of the style. We can thus give the possibility to the user to define his own 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.Concerning the animations, we fill the categories with animations by giving them a weight. An animation can also be described as a succession of animations.
Concernant les paramètres de style, les valeurs vont être comprises entre 0.1 et 0.9.Regarding the style parameters, the values will be between 0.1 and 0.9.
. Vivacité : tranquille (0.1) vif (0.9).
Ce paramètre va déterminer si l'acteur a des actions plus ou moins imprévisibles.. Vivacity: calm (0.1) lively (0.9). This parameter will determine if the actor has more or less unpredictable actions.
. Etat : calme (0.1) nerveux (0.9).. State: calm (0.1) nervous (0.9).
Ce paramètre va jouer principalement sur la vitesse d'animation.This parameter will mainly play on the animation speed.
. Mobilité : Statique (0.1) mobile (0.9).. Mobility: Static (0.1) mobile (0.9).
Ce paramètre va jouer sur le nombre de déplacement de l'acteur.This parameter will affect the number of movements of the actor.
Le cerveau décide le moment exact pour transmettre une commande et quelle commande exacte.The brain decides when and where to send an order.
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. 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.For this it is necessary, for each location where you can send an order, determine a set of values indicating the interest of sending an order and which is the best order to send. A “threshold of interest” is also determined and, each time the interest exceeds the threshold, the command defined for this interest is transmitted.
L' analyse du texte et le style voulu par l'utilisateur vont déterminer le nombre de commande que l'on va transmettre.The analysis of the text and the style desired by the user will determine the number of commands that we will transmit.
L' analyse du texte et de la séquence des paragraphes va initialiser l'ensemble des valeurs.Analysis of the text and the sequence of paragraphs will initialize the set of values.
L' analyse de chaque paragraphe et de la séquence des phrases va rajouter ou enlever du poids aux valeurs, respectivement aux paragraphes.The analysis of each paragraph and the sequence of sentences will add or remove weight to the values, respectively to the paragraphs.
L'analyse des phrases et des séquences de ponctuation à l'intérieur des phrases va rajouter du poids aux valeurs, respectivement aux phrases.The analysis of sentences and punctuation sequences within sentences will add weight to the values, respectively to the sentences.
Une fois tous les poids remplis, on détermine le seuil de manière à transmettre le nombre de commande voulu, (ou le nombre le plus proche) .
- Lieux où on peut transmettre une commande.Once all the weights have been filled, the threshold is determined so as to transmit the desired number of commands (or the closest number). - Places where you can send an order.
On associe un poids à chaque endroit du texte où l'on peut transmettre une commande. Par exemple : - En début de texte,We associate a weight with each place of the text where we can transmit an order. For example: - At the beginning of the text,
- En fin de texte, etc.- At the end of the text, etc.
- Liste des commandes que l'on peut transmettre. Avantageusement on peut transmettre neuf types de commandes : Déplacement, montrer, modification de la voix, pause, réflexion, explication, interpellation, interrogation, divers.- List of commands that can be transmitted. Advantageously, there are nine types of commands that can be transmitted: Displacement, showing, modification of the voice, pause, reflection, explanation, questioning, interrogation, various.
En plus du poids associé à chaque endroit où on peut transmettre une commande, on donne un poids pour chaque type de commande.In addition to the weight associated with each place where an order can be transmitted, a weight is given for each type of order.
Si on doit transmettre une commande, on choisira une commande faisant partie du type ayant le plus grand poids .If an order must be transmitted, an order belonging to the type having the greatest weight will be chosen.
On associe aussi un poids à chaque élément de chaque catégorie.We also associate a weight with each element of each category.
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 existe cinq animations dans la catégorie « interrogation ».This weight will be used to define which element to choose once the type of order is determined. For example, we have determined that we must launch an “interrogation” command and there are five animations in the “interrogation” category.
Plus la demande sera interrogative plus on choisira une animation ayant un poids fort.The more interrogative the request, the more important an animation will be chosen.
Pour déterminer « le taux d' interrogativité » on regarde alors le poids associé aux autres commandes, et plus le poids des autres commandes est faible par rapport au poids associé à la partie interrogative plus le « taux d' interrogativité » sera fort.
Les animations sont rangées dans cinq catégories (le ' nombre de catégories pourra être modifié 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.To determine "the interrogativity rate", we then look at the weight associated with the other commands, and the lower the weight of the other commands compared to the weight associated with the interrogative part, the higher the "interrogativity rate". The animations are arranged in five categories (the ' number of categories can be modified when adjusting the tool) reflection, explanation, questioning, questioning, various. An agent therefore has a set of basic animations, which is for example stored in the system hard disk, each animation being weighted.
Lorsque l'on définit un style on range alors manuellement les animations dans les différentes catégories en leurs associant également un poids.When defining a style, then manually organize the animations in the different categories by also associating a weight.
Lorsque l'utilisateur choisit un style, on fabrique les catégories qui seront utilisées par le système en ixant les animations de base avec les animations 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.When the user chooses a style, we create the categories that will be used by the system by fixing the basic animations with the animations of the style, the style being preferred. If an animation is both present in a tool category and in the same style category, the one defined in the style will be taken into account.
On peut également modifier la vitesse d'animation. La vitesse d'animation varie entre un minimum et un maximum. Pour choisir, la vitesse, on combine les information de vivacité et de nervosité du style et le poids associé à la commande.You can also change the animation speed. The animation speed varies between a minimum and a maximum. To choose the speed, we combine the information of liveliness and nervousness of the style and the weight associated with the order.
Plus le poids de la commande est élevé, plus l'animation sera lente.The higher the weight of the command, the slower the animation.
. Plus le style est nerveux plus l'animation sera rapide .. The more nervous the style, the faster the animation.
Plus le style est vif plus l'animation 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 :
. Plus le poids de la commande est élevé, plus la pause sera longue.The livelier the style, the faster the animation. A break is characterized by its duration. The duration of the break is defined by the weight of the order and by the style: . The higher the weight of the command, the longer the break.
Plus le style est nerveux plus la pause sera courte . . Plus le style est vif plus la pause sera courte. On prévoit également plusieurs types de déplacement .The more nervous the style, the shorter the break. . The livelier the style, the shorter the break. Several types of travel are also planned.
Par exemple, déplacement sans but, équivalent d'une pause, d'une réflexion. (Définition de places 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.For example, aimless movement, equivalent to a pause, a reflection. (Definition of places by the brain). Aimless movement while speaking, (Definition of place by the brain). Travel with purpose without speaking, (Use of a place defined by the user), etc.
L'action « montrer » utilise quant-à-elle les places définies par l'utilisateur. Si aucune place n'a été définie cette action ne sera jamais utilisée. Pour réaliser l'analyse du texte flou on pratique de la façon suivante.The “show” action uses the places defined by the user. If no space has been defined this action will never be used. To carry out the analysis of the fuzzy text, we practice in the following way.
Lorsque le cerveau analyse le texte flou, il modifie chaque poids à tous les endroits où l'on peut insérer une commande. Il 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 pouvoir 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...
L' analyse proposée doit être réglée de manière empirique et n'est pas exhaustive ! Nombre de commandes :When the brain analyzes the fuzzy text, it changes each weight in all the places where you can insert a command. It modifies the main weight (whether or not you have to insert an order here) and the nine order choice weights. The order weight can only be increased while the order choice weights can be increased or decreased (this is to favor one order over another and, as the difference in weight between the various orders is important , you must be able to increase and decrease). The analysis is hierarchical. When we work on the text we modify all the weights of the text, when we work on a paragraph we modify all the weights of the paragraph ... The proposed analysis must be adjusted empirically and is not exhaustive! Number of orders:
Le nombre de commandes est déterminé par le style 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 . ' Analyse de la longueur du texte et du styleThe number of commands is determined by the actor's style and the length of the text. The sharper the style, the more commands there will be, in proportion to the length of the text. This amounts to giving a filling rate in number of orders. '' Text length and style analysis
Plus le texte est court plus on insère des commandes .The shorter the text, the more commands are inserted.
Nombre de commandes= nombre de commandes possibles* (1-longueur du texte) * (vivacité) . - A chaque endroit où on peut insérer une commande on initialise les poids : Valeur d' intérêt=0Number of commands = number of possible commands * (1-length of the text) * (liveliness). - At each place where a command can be inserted, the weights are initialized: Interest value = 0
Déplacement= rapport a l'espace * mobilité + vivacité . Montrer= rapport * mobilité + état Modification de la voix= 0 Pause= 1-état Réflexion= Explication=0 . lnterpellation=0 lnterrogation=0 Divers=0Displacement = relationship to space * mobility + liveliness. Show = report * mobility + state Voice modification = 0 Pause = 1-state Reflection = Explanation = 0. lnterpellation = 0 lnterrogation = 0 Miscellaneous = 0
- Début de texte- Beginning of text
- Valeur d' intérêt+=10 . Déplacement+= longueur du texte . Interpellation+=l- Interest value + = 10. Move + = length of the text. Inquiry + = l
- Fin de texte- End of text
- Valeur d' intérêt+=10
. Déplacements 1-longeur du texte . Divers+= vivacité- Interest value + = 10 . 1-length moves of the text. Miscellaneous + = liveliness
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 .Analysis of the paragraph sequence. We analyze the length differences between the paragraphs and add a number to each value of interest.
- 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 actuel | ( valeur absolue) .- For all the values of the first paragraph value of interest + = 1. - For each intermediate paragraph value of interest + = (0.6) + | length of previous paragraph - length of current paragraph | ( absolute value) .
- Pour le dernier paragraphe valeur d'intérêt +=1.- For the last paragraph value of interest + = 1.
Analyse de chaque paragrapheAnalysis of each paragraph
- Début de paragraphe- Beginning of paragraph
. 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. Interest value + = enhancement. Displacement + = ratio to space + length. Show + = relation to space + (1 - length). Pause + = length * liveliness of the paragraph
Réflexion += (1-longueur) * vivacité du paragraphe Interpellation += (1-longueur) * mise en valeurReflection + = (1-length) * liveliness of the paragraph Interpellation + = (1-length) * enhancement
. Divers += (random entre 0 et 0.2). Miscellaneous + = (random between 0 and 0.2)
- Fin de paragraphe- End of paragraph
. Valeur d'intérêt += mise en valeur/2 . Pause += mise en valeur /2 . Divers += (random entre 0 et 0.5)
Analyse de la séquence des phrases d' un paragraphe. Value of interest + = development / 2. Pause + = enhancement / 2. Miscellaneous + = (random between 0 and 0.5) Analysis of the sequence of sentences in a paragraph
On analyse ici les différences de longueur entre les phrases et on ajoute un nombre à chaque valeur d' intérêt . - Pour toutes les valeur de la première phraseWe analyze here the differences in length between the sentences and add a number to each value of interest. - For all values of the first sentence
" valeur d'intérêt += 1. " value of interest + = 1.
Pour chaque phrase intermédiaire valeur d'intérêt += (0.6) + | longueur de la phrase précédente - longueur de la phrase actuelle | ( valeur absolue)For each intermediate sentence value of interest + = (0.6) + | length of previous sentence - length of current sentence | ( absolute value)
- Pour la dernière phrase valeur d'intérêt +=1.- For the last sentence value of interest + = 1.
On rajoute en plus, si les phrases sont typées (type différent de normal, par exemple interrogatif) : - Valeur d' intérêt += valeur du type+ valeur du type de la phrase précédente.We add in addition, if the sentences are typed (type different from normal, for example interrogative): - Value of interest + = value of the type + value of the type of the preceding sentence.
Analyse de la phrase.Analysis of the sentence.
- Début de phrase :- Beginning of sentence:
- Valeur d' intérêt += l*type+longueur ' - Déplacement += longueur de la phrase- Value of interest + = l * type + length ' - Displacement + = length of the sentence
- Montrer += longueur de la phrase- Show + = length of the sentence
- Pause += 1-longueur- Pause + = 1-length
- Réflexion += longueur + type- Reflection + = length + type
- Explication = 2*type - Interpellation = 2*type- Explanation = 2 * type - Interpellation = 2 * type
- Interrogation = 2*type- Query = 2 * type
- Divers= random- Miscellaneous = random
- Fin de phrase :- End of sentence:
- Valeur d' intérêt += longueur - Déplacement += longueur- Interest value + = length - Displacement + = length
- Montrer += longueur- Show + = length
- Pause += longueur- Pause + = length
- Pour des parenthèses:
. Valeur d'intérêt +=10- For parentheses: . Interest value + = 10
Modification de la voix += 1-longueur de la parenthèseChange of voice + = 1-length of the parenthesis
. Explication += longueur de la parenthèse - Pour des guillemets : . Valeur d' intérêt +=10. Explanation + = length of the parenthesis - For quotes:. Interest value + = 10
Modification de la voix += 1-longueur des guillemetsChange voice + = 1-length quotes
. Interpellation +=longueur des guillemets. - Séquence de virgule :. Interpellation + = length of quotes. - Comma sequence:
. Valeur d'intérêt += (nombre de virgules - numéro de la virgule) + longueur. Value of interest + = (number of commas - decimal number) + length
Déplacement += rapport à l'espace/ n° de la virgule . Montrer += rapport à l'espace/ (nombre de virgule -n° de la virgule)Displacement + = ratio to space / decimal point. Show + = relation to space / (number of decimal points - decimal point)
. Interpellation += 1-longueur . Interrogation += l-longueur/2 +type - Point virgule : . Valeur d' intérêt += longueur de la phrase après le point virgule. Interpellation + = 1-length. Query + = l-length / 2 + type - Semicolon:. Value of interest + = length of the sentence after the semicolon
Déplacement= rapport a l'espace * mobilité + vivacitéDisplacement = relation to space * mobility + alertness
. Montrer= rapport * mobilité + état ' . Modification de la voix= 0 . Pause= 1-état . Réflexion= . Explication=0 . lnterpellation=0 . Interrogation=0 . Divers=0. Show = report * mobility + state '. Voice modification = 0. Pause = 1-state. Reflection =. Explanation = 0. lnterpellation = 0. Query = 0. Other = 0
La présente invention permet de faire le lien entre un texte quelconque et un jeu d'agent, en
transformant le texte en paramètres flous puis enThe present invention makes it possible to make the link between any text and an agent set, by transforming the text into fuzzy parameters and then into
• plaçant des poids à tous les endroits où l'on peut insérer une action de l'agent.• placing weights in all the places where an agent action can be inserted.
Ce remplissage se fait grâce à des équations qui tiennent compte des paramètres flou et du style d'agent que l'utilisateur 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 paragraphe donné complètent les poids du dit paragraphe, ainsi de suite ...This filling is done using equations which take into account the fuzzy parameters and the style of agent that the user will have chosen. The filling acts additively. The equations, relating to the whole text, initialize the set of weights. Then the equations relating to a given paragraph complete the weights of said paragraph, and so on ...
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 auAs is obvious and as also follows from the above, the present invention is not limited to the embodiments more particularly described. She embraces
• contraire toutes les variantes.
• contrary to all variants.