FR 2898708 A1 20070921 FR 0650920 A 20060317 PROCEDE ET PLATE-FORME DE DEVELOPPEMENT D'APPLICATIONS MULTISENSORIELLES, PROGRAMME D'ORDINATEUR ASSOCIE La présente invention concerne le domaine du développement d'applications multi sensorielles. Une telle application est destinée à immerger l'utilisateur dans un monde virtuel, en faisant appel à plusieurs sens de l'utilisateur. Elle donne par exemple lieu à l'affichage d'images en 3 dimensions (3D), à une restitution sonore spatiale, à la reconnaissance vocale, à la diffusion d'odeurs, à une atmosphère en agissant sur la température, le vent, l'hydrométrie, à des sensations tactiles etc., par l'intermédiaire de techniques diverses et d'interfaces périphériques adaptées. Il existe des outils permettant de développer des applications multi sensorielles, par exemple l'outil Virtools (marque déposée). Un tel outil permet à un développeur d'applications de définir graphiquement des briques élémentaires ou encore Building blocks représentant des objets, techniques ou actions élémentaires, comportant des paramètres d'entrée et des paramètres de sortie. Par exemple, une brique peut définir les animations d'un personnage (courir, marcher, parler...). Une autre brique peut définir que le personnage est commandé par des appuis touches sur le clavier. Les paramètres d'entrée de certaines des briques peuvent être les paramètres de sortie d'autres briques et inversement. Puis à l'aide de l'outil de développement, par exemple Virtools (marque déposée), le développeur peut définir (souvent de manière graphique) des scripts, c'est-à-dire des entités regroupant plusieurs briques et définissant par exemple le comportement de personnages évoluant dans l'application, appelés clones, ou encore le contenu de scènes rencontrées dans le cours de l'application (par exemple, une scène peut être en partie définie par une entité comportementale Odeur de violette , qui correspond à la diffusion d'une odeur de violette, pendant un temps de 3 secondes, qui utilise l'odeur référencée xxx dans la base des odeurs et qui doit envoyer un message après une fois qu'une diffusion d'odeur a été effectuée)... On appellera entités comportementales ci-dessous ces scripts. 2 Ultérieurement, l'application définie en fonction de ces scripts et d'un scénario définissant un enchaînement de situations mettant en oeuvre les scripts, est exécutée. Les flux de données d'entrée et de sortie et la synchronisation entre les briques élémentaires d'un script, de même que les interactions entre les scripts, les calculs, la gestion de la mémoire, le pilotage des gestionnaires des interfaces périphériques sont alors gérés par un moteur comportemental adapté compris dans l'outil Virtools (marque déposée). Toutefois, à chaque nouveau développement d'application, des scripts créant et définissant des entités comportementales doivent être à nouveau définis par le développeur à l'aide de l'outil Virtools (marque déposée). Or, il s'agit d'un travail très coûteux en terme de temps. De plus, lorsqu'une erreur est détectée dans l'écriture des scripts, notamment dans la définition d'un paramètre d'entrée, la correction de l'erreur peut être assez malaisée car elle peut impliquer des modifications à plusieurs niveaux. Suivant un premier aspect, l'invention propose un procédé de développement d'une nouvelle application multi sensorielle à l'aide d'au moins un moteur adapté pour créer des entités comportementales et pour contribuer à gérer des flux de données entrant et sortant desdites entités lors de l'exécution de l'application, comprenant les étapes suivantes, des entités comportementales génériques ayant été préalablement définies en fonction au moins d'éléments de description et d'identifiants de paramètres respectifs associés, les valeurs desdits paramètres étant à renseigner ultérieurement : en phase de développement de la nouvelle application, présenter une liste d'identifiants d'entités comportementales génériques définies préalablement, et pour chaque entité générique, les identifiants des paramètres à renseigner associés ; recevoir et mémoriser des valeurs pour des paramètres à renseigner associés à au moins certaines entités génériques ; lors d'une exécution de la nouvelle application, commander au moteur la création d'entités comportementales en fonction d'éléments de description des entités comportementales génériques 3 pour lesquelles des valeurs ont été reçues et mémorisées, et en fonction desdites valeurs. Avantageusement, des entités comportementales génériques ont été définies pour les types d'entités comportementales les plus couramment utilisées dans le développement d'applications : les entités comportementales relatives aux clones, aux scènes, aux sons, aux transitions entre scènes etc. Un tel procédé permet un développement plus rapide que dans l'art antérieur et donc moins coûteux. Il permet notamment à un développeur de définir très rapidement des entités comportementales d'une même catégorie (de type diffusion d'odeurs), mais à paramètres différents (dans le cas des diffusions d'odeurs, avec par exemple des odeurs, des temps de diffusion etc respectifs). Ainsi le développeur n'a plus besoin de concevoir lui-même les entités comportementales qu'il souhaite utiliser. Il a seulement besoin d'en fournir les valeurs des paramètres, et la création des entités comportementales est ensuite effectuée automatiquement. La correction d'erreurs portant sur des valeurs de paramètres de définition des entités comportementales est également facilitée. Au lieu d'avoir à modifier l'erreur dans les scripts, le développeur peut corriger l'erreur en modifiant la valeur fournie pour le paramètre générique correspondant. La correction est donc simplifiée. Lors de la correction, le développeur n'a en outre pas besoin d'utiliser le kit de définition de scripts comprise dans le moteur comportemental, ni d'obtenir la licence correspondante. Dans un mode de réalisation de l'invention, le moteur comprend l'outil Virtools (marque déposée), qui permet la création dynamique des entités comportementales au lancement de l'exécution de l'application, puis la synchronisation des entrées/sorties de ces entités au long de l'exécution. Dans un mode de réalisation, les entités comportementales crées lors de l'exécution comportent des scripts générés automatiquement suite à l'interprétation d'un fichier extérieur au moteur comportemental et mémorisant les valeurs des paramètres. Avantageusement, la présentation des entités comportementales et la mémorisation des valeurs est effectuée par l'intermédiaire d'un fichier XML. Le développeur a donc pour principale interface de programmation ce fichier XML, qui lui fournit la liste des entités comportementales génériques existantes, et qui lui indique quels en sont les paramètres dont les valeurs sont à renseigner. Le développeur peut en outre faire figurer dans ce fichier la description de scripts spécifiques qu'il développe en complément, au cas où les entités comportementales génériques ne permettent pas de couvrir l'ensemble du besoin. Le développeur peut en outre définir des éléments du scénario de l'application au sein de ce fichier XML. La technologie XML présente l'avantage de disposer de moyens pour valider un fichier XML, ce qui procure des garanties supplémentaires de fiabilité. Suivant un second aspect, l'invention propose une plate-forme de développement d'applications multi sensorielles adaptée pour mettre en oeuvre un procédé suivant le premier aspect de l'invention. En particulier, la plate-forme de développement comporte des moyens, qui comprennent des éléments de description, définis en fonction au moins de paramètres à renseigner ultérieurement, d'entités comportementales. Les valeurs de ces paramètres sont fournies et mémorisées ultérieurement hors du moteur comportemental. Suivant un troisième aspect, l'invention propose un programme d'ordinateur à installer dans une plate-forme de développement d'applications multi sensorielles, et comprenant des instructions pour mettre en oeuvre les étapes d'un procédé suivant le premier aspect de l'invention lors d'une exécution du programme par des moyens de traitement de la plateforme. L'invention est décrite ici en référence à une plate-forme de développement intégrant l'outil Virtools (marque déposée). Il est bien entendu que l'invention peut être mise en oeuvre dans tout type d'environnement de développement d'applications multi sensorielles. D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celleci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels la figure unique représente schématiquement une plate-forme de développement et d'exécution d'applications multi sensorielles. En référence à la figure unique, une plate-forme de développement et d'exécution d'applications multi sensorielles 1 comporte des interfaces adaptées pour permettre des interactions avec un utilisateur. De telles interfaces comprennent par exemple tout ou partie parmi une interface de visualisation, par exemple un écran 2, une interface de rendu tactile 3 (par exemple un dispositif à retour d'effort donnant des sensations de forme, de poids, de texture), une interface de navigation et d'interaction 4 (par l'intermédiaire par exemple d'une souris ou d'un Joystick, de moyens de reconnaissance et commande vocales, de reconnaissance de mouvement, de capteurs de positionnement etc.), une interface de rendu sonore 5 ( par exemple des enceintes acoustiques), une interface permettant de restituer et/ou de détecter des odeurs 6 et une interface de rendu atmosphérique 7, permettant de provoquer des courants d'air et de modifier la température et l'humidité. La synchronisation entre ces différentes interfaces est pilotée par un moteur comportemental 8 de la plate-forme 1, qui par exemple dans le cas considéré, comprend le moteur Virtools (marque déposée). Le moteur comportemental 8 et les interfaces sensorielles sont connectées par l'intermédiaire d'un bus logiciel B . Le moteur comportemental 8 est adapté pour synchroniser la sollicitation des différents sens de l'utilisateur en fonction de la scène actuellement considérée vers laquelle l'ont mené les actions et déplacements effectués jusqu'alors. Par exemple, lorsqu'un parterre de roses apparaît sur l'écran 2, une odeur de roses est diffusée par l'interface de restitution olfactive 6. Ou encore, lorsque l'utilisateur fait apparaître sur l'écran 2 une scène comportant une grotte, l'interface de rendu atmosphérique 7 diffuse de l'humidité au fur et à mesure que l'on se rapproche de la grotte. L'exécution d'une application multi sensorielle met en oeuvre un scénario définissant des scènes composées d'objets divers éventuellement animés. Le scénario définit des successions possibles de scènes, les 6 animations ponctuellement mises en oeuvre dans les objets, des interactions entre ces objets, des interactions à destination et/ou en provenance de l'utilisateur de l'application. Le déroulement effectif du scénario lors d'une exécution d'une telle application varie d'une exécution à l'autre en fonction notamment de commandes en provenance de l'utilisateur. Par exemple, l'utilisateur peut souhaiter faire évoluer un personnage donné dans un des univers d'exploration possibles différent de celui choisi lors de la précédente exécution. La plate-forme 1 comporte en outre des bases de données diverses 9 des bases de données d'images, de sons, de voix, des dictionnaires... La plate-forme comprend également un fichier XML type 10 et un module d'interprétation 11. Le fichier XML type 10 est extérieur au moteur comportemental 8. En particulier, réaliser une modification dans le fichier ne nécessite pas l'outil de développement associé au moteur comportemental 8. Dans le mode de réalisation décrit, le développeur est nommé intégrateur, car il développe une application multi sensorielle notamment à partir d'éléments génériques déjà prédéterminés, comme cela est décrit par la suite. Le fichier XML type 10 est compris dans la plate-forme 1 et contient un certain nombre de sections. Parmi ces sections figurent par exemple notamment une section Clone List , une section Odor List une section Transition List , une section Scene List , une section Sound List , etc. Chaque section indique une entité comportementale générique. Le fichier XML type 10 indique dans chaque section un identifiant d'une 25 entité comportementale générique associée à un ensemble de paramètres à renseigner. Par exemple, dans la section Clone List , l'identifiant de l'entité comportementale générique 12 est GenericClone . Les paramètres dont les valeurs sont à renseigner sont dans le cas considéré le nom du clone (PI 1), un 30 booléen indiquant si une animation par défaut est souhaitée (P12) et dans le cas positif, l'identifiant d'une telle animation par défaut (P13), la liste des animations que le clone est susceptible de jouer (P14a, P14b, P14c etc.), la durée de chaque animation (Pl4ad, P14bd, P14cd etc.), la courbe à suivre lors 7 de l'animation par le clone (Pl4ac, P14bc, P14cc etc.), le guide vocal du clone (Pl4am, P14bm, P14cm etc.). Lorsque l'intégrateur commence son travail de développement d'une application, il initie un fichier XML 10', copie du fichier XML 10. Puis l'intégrateur affecte dans le fichier XML 10' des valeurs aux paramètres à renseigner associés à une entité comportementale générique, lorsqu'il souhaite faire figurer dans le scénario de l'application en cours de développement, une entité comportementale de ce type. Ces valeurs sont mémorisées au sein du fichier 10'. En particulier, l'intégrateur affecte N ensembles de valeurs à l'ensemble de paramètres associé à une même entité comportementale générique, lorsqu'il souhaite faire figurer dans le scénario de l'application en cours de développement, N entités comportementales de ce type. Ainsi, lorsque l'intégrateur souhaite créer 2 entités comportementales de type clone, par exemple un clone représentant une fillette et un clone représentant un jardinier, il va donc saisir dans le fichier XML 10' la valeur des paramètres à renseigner pour ces deux clones. Par exemple, les deux ensembles de paramètres fournis par l'intégrateur et enregistrés dans le fichier 10 sont : {P11= Clone fillette , P12=true, P13= AllerVersVasque , P14 = AllerVersCorridor , Pl4ad = 1 , P14ac= CloneCurve Fillette 01 AllerVasque , P14am= fillette3 } ; et {P11= Clone Jardinier , P12=true, P13= Biner , P14a = SortirDuCarré , P14b=EnL'AirParler, , Pl4ad = 1, Pl4bd=3, P14ac= CloneCurve_Fillette_01_AllerVasque , P14am= fillette3 , P14bc= CloneCurve_JardinierP14bm= jardinier1 }. Les valeurs des paramètres P13, P14a, P14b, P14ad, P14bd, P14ac, P14bc, P14am, Pl4bm sont des identifiants permettant de déterminer leur localisation dans des bases de données 14 locales ou distantes, associées à la plate-forme 1. La section ainsi renseignée par l'intégrateur permet de définir les paramètres des clones présents dans l'application avec leurs animations, leurs comportements, leurs guides vocaux. 8 De la même manière dans par exemple la section Odor List , l'identifiant de l'entité comportementale générique 13 est GenericOdor . Les paramètres dont les valeurs sont à renseigner sont dans le cas considéré le nom de l'entité comportementale (P21), le temps de diffusion de l'odeur (P22), un booléen (P23) indiquant s'il y a émission par l'entité comportementale d'un message après la diffusion. Lorsque l'intégrateur souhaite créer trois entités comportementales de type diffusion d'odeur, il va saisir dans le fichier XML 10' la valeur des paramètres à renseigner pour ces trois entités comportementales. Ces valeurs sont par exemple : {P21= poire , P22= 00minute03secondes00milliseconde , P23=True}, {P21= choux , P22= 00minute03secondes00milliseconde , P23=True}, et {P21= potiron , P22= 00minute03secondes00milliseconde , P23=True}. Cette section permet de définir les entités comportementales gérant la diffusion d'odeurs via les interfaces de rendu olfactif 6. Un message est envoyé après diffusion. Ainsi, dans le mode de réalisation considéré, au moins une partie du scénario correspondant notamment à la définition de certaines des entités comportementales, est inséré par l'intégrateur dans le fichier XML 10'. Ce scénario fait intervenir des entités comportementales telles que des scènes, des diffusions d'odeurs, des clones etc. Par ailleurs, au cours du développement de l'application, l'intégrateur peut en outre écrire des scripts spécifiques à l'aide du kit de développement de l'outil Virtools (marque déposée) et faire appel à ces scripts spécifiques dans le scénario. A chaque entité comportementale générique d'une section du fichier XML est associée un script générique stocké dans une mémoire 15 du moteur 8. Ce script comporte plusieurs briques élémentaires. Un certain nombre de paramètres nécessaires à l'exécution du script ne sont pas renseignés par des valeurs effectives, mais par des paramètres représentés par des identifiants et dont les valeurs ne sont donc pas renseignées. Par exemple, le script générique GenericScriptClone mémorisé dans la mémoire 15 du moteur comportemental 8 et associé à l'entité comportementale générique de type Clone ( GenericClone ) comprend une brique élémentaire de lancement d'une animation par défaut BB1, une brique de placement BB2, une brique d'expressions du clone BB3, une brique de comportement du clone BB4, une brique de lancementlarrêt de la parole BB5. Les paramètres à renseigner qui sont associés à ce script générique représentent le nom du clone (Pl1), un booléen (P12) indiquant si une animation par défaut est souhaitée et dans le cas positif, l'identifiant (P13) d'une telle animation par défaut, la liste des animations que le clone est susceptible de jouer (P14a, P14b, P14c etc), la durée de chaque animation (Pl4ad, P14bd, P14cd etc) la courbe à suivre lors de l'animation par le clone (Pl4ac, P14bc, P14cc etc), le guide vocal du clone (Pl4am, P14bm, P14cm etc). Lorsque le travail de développement de l'application est achevé, le lancement de l'exécution de l'application développée selon l'invention va provoquer la lecture du fichier XML 10' par la brique d'interprétation 11. En fonction de la partie de scénario décrite dans le fichier XML 10', la brique d'interprétation 11 adresse des messages au moteur comportemental 8 lui traduisant le contenu du scénario. Par ailleurs, lors de l'interprétation du fichier XML 10' par la brique d'interprétation 11, celle-ci envoie au moteur comportemental 8 des messages commandant la création par le moteur des entités comportementales correspondant à des entités comportementales génériques pour lesquelles des valeurs de paramètres ont été fournies par l'intégrateur. Pour cela, la brique d'interprétation 11 inclut dans ses messages de commande de la création de l'entité comportementale, par exemple l'entité comportementale Clone fillette , l'identifiant de l'entité comportementale générique (dans l'exemple considéré GenericClone ) et les valeurs des paramètres associés telles que renseignées dans le fichier XML 10' par l'intégrateur ({P11= Clone fillette , P12=true, P13= AllerVersVasque , P14 10 = AllerVersCorridor , Pl4ad = 1 , P14ac= CloneCurve_Fillette_01_AllerVasque , P14am= fillette3 } ). A réception de ce message, le moteur comportemental 8 crée l'entité comportementale commandée ( Clone_fillette ) en fonction des valeurs indiquées prises par les paramètres et en fonction du script générique ( GenericScriptClone ) stocké dans une mémoire du moteur 8 pour l'entité comportementale générique ( GenericClone ) identifiée dans le message. Puis le moteur 8 gère les flux de données entrant et sortant de cette entité comportementale, synchronise ces flux avec ceux relatifs aux autres entités comportementales mis en oeuvre dans la partie du scénario actuellement jouée. Ainsi les entités comportementales sont créées à partir d'entités comportementales génériques et gérées par le moteur comportemental uniquement lors de l'exécution d'une application qui fait appel à de telles entités comportementales, ce qui limite au strict nécessaire la consommation de ressources. En particulier, il n'y a jamais de ressources en terme d'entités comportementales, attribuées inutilement, ni de ressources manquantes, mais simplement les ressources exactement nécessaires, celles-ci pouvant varier d'une application à une autre, développées à l'aide de la plate-forme 1. Cette caractéristique permet en outre de gagner beaucoup de temps d'intégration lors de la mise au point de l'application. Les différentes étapes d'un procédé, dans un mode de réalisation de l'invention, sont mises en oeuvre suite à l'exécution, sur des moyens de traitement de la plate-forme 1, d'instructions contenues dans un programme informatique. Selon l'invention, l'intégrateur ne passe pas de temps à définir les entités comportementales des types les plus usuels à l'aide du kit de développement du moteur de recherche. Des scripts génériques ont été préalablement définis et sont mis à disposition de l'intégrateur au sein du moteur. L'intégrateur n'a qu'à fournir au sein du fichier XML les paramètres nécessaires à une définition complète des entités comportementales. Le gain de temps au niveau du développement est très important. REVENDICATIONS 1. Procédé de développement d'une nouvelle application multi sensorielle à l'aide d'au moins un moteur (8) adapté pour créer des entités comportementales et pour gérer les flux de données entrant et sortant desdites entités, comprenant les étapes suivantes, des entités comportementales génériques (12) ayant été préalablement définies en fonction au moins d'éléments de description (BB1, BB2) et d'identifiants de paramètres respectifs associés (P11, P12), les valeurs desdits paramètres étant à renseigner ultérieurement : en phase de développement de la nouvelle application, présenter une liste d'identifiants (GenericClone) d'entités comportementales génériques définies préalablement, et pour chaque entité générique, les identifiants (P11, P12) des paramètres à renseigner associés ; - recevoir et mémoriser des valeurs pour des paramètres à renseigner associés à au moins certaines entités génériques ; lors d'une exécution de la nouvelle application, commander au moteur la création d'entités comportementales en fonction d'éléments de description des entités comportementales génériques pour lesquelles des valeurs ont été reçues et mémorisées, et en fonction desdites valeurs. 2. Procédé de développement selon la revendication 1, selon lequel le moteur comprend l'outil de développement Virtools (marque déposée). 3. Procédé de développement selon la revendication 1 ou la revendication 2, selon lequel les entités comportementales créées lors de l'exécution comportent des scripts générés automatiquement suite à l'interprétation d'un fichier (10') externe au moteur et mémorisant les valeurs des paramètres. 4. Procédé selon l'une quelconque des revendications précédentes, selon lequel la présentation des entités comportementales et la mémorisation des valeurs est effectuée à l'aide d'un fichier XML(10'). 5. Plate-forme (1) de développement d'applications mufti sensorielles comprenant un moteur (8) adapté pour créer des entités comportementales et pour gérer les flux de données entrant et sortant desdites entités, 10 des moyens (15) comportant des éléments de description (B11, B12) d'entités comportementales génériques en fonction au moins de paramètres génériques respectifs associés, à renseigner ultérieurement ; un fichier (10') adapté pour présenter une liste d'identifiants (Generic 15 Clone) d'entités comportementales génériques définies préalablement , et pour présenter pour chaque entité générique identifiée, l'ensemble des paramètres (P11, P12) à renseigner associés en phase de développement d'une nouvelle application ; le fichier étant adapté pour recevoir et mémoriser des valeurs pour 20 l'ensemble de paramètres à renseigner d'au moins certaines entités génériques ; des moyens (11) pour, lors d'une exécution d'une application, commander au moteur la création d'entités comportementales en fonction d'éléments de description d'entités comportementales 25 génériques pour lesquelles des valeurs ont été reçues et mémorisées, et en fonction desdites valeurs. 6. Programme d'ordinateur à installer dans une plate-forme de développement d'applications multi sensorielles, ledit programme comprenant des 30 instructions pour mettre en oeuvre les étapes d'un procédé selon l'une des5revendications 1 à 4 lors d'une exécution du programme par des moyens de traitement de ladite plateforme.