FR 3164047 A1 20260102 FR 2407053 A 20240628 Procédé et dispositif de guidage d’un utilisateur dans un environnement virtuel L’invention concerne un procédé de guidage d’un utilisateur (USR) dans un environnement virtuel, ce procédé comportant la génération(E15) d’un indicateur (IND) d’une direction d’un mouvement que doit effectuer ledit utilisateur pour apercevoir au moins partiellement au moins un objet virtuel (OVi) détecté comme entièrement en dehors du champ visuel (FOV) de l’utilisateur (USR), dit objet virtuel invisible, ledit indicateur (IND) étant apte à être reproduit à destination de l’utilisateur. Figure pour l’abrégé : Fig 9 Procédé et dispositif de guidage d’un utilisateur dans un environnement virtuel La présente invention se rapporte au domaine général de la réalité augmentée ou virtuelle. Dans cette divulgation, le terme « réalité virtuelle » couvre ces deux notions. L’invention concerne plus particulièrement la gestion de l’interface d’un utilisateur, cette interface comportant des fenêtres applicatives dans un environnement virtuel. Au sens de cette divulgation, ces fenêtres applicatives sont est à comprendre au sens large. Elles peuvent par être des fenêtres dans lesquelles s’exécutent des processus ou des applications informatiques, par exemple des applications bureautiques, des applications de calcul, de applications de simulation, des navigateurs Internet, ou dans un autre exemple toujours non limitatif, des fenêtres de saisie d’informations ou d’affichage de résultats. De façon connue, l’ouverture, le redimensionnement, le positionnement et la destruction de telles fenêtres sont généralement grées par des primitives du système d’exploitation de l’ordinateur sur lequel s’exécute ces applications. Il est usuel qu’un utilisateur aient plusieurs applications actives et donc de nombreuses fenêtres actives dans son environnement. Lorsque l’utilisateur évolue dans un monde réel, il est fréquent que l’utilisateur utilise plusieurs écrans pour faciliter son interaction avec ces fenêtres. Lorsque l’utilisateur évolue dans un environnement virtuel, ces fenêtres ne sont plus affichées sur un écran physique mais présentées dans un environnement virtuel perceptible de l’utilisateur grâce à un dispositif approprié. La manipulation de ces fenêtres peut être réalisée par l’utilisateur en détectant le déplacement d’un pointeur (par exemple un objet dédié, comme un stylet, ou une partie du corps de l’utilisateur, par exemple ses doigts, ses yeux, …). Dans un scénario envisageable dans le contexte de l’invention, l’utilisateur peut par exemple ouvrir une fenêtre virtuelle au-dessus de son clavier réel, puis la manipuler avec un ou plusieurs doigts pour la déplacer ou la redimensionner. Ces fenêtres peuvent alors sortir du champ de vision de l’utilisateur. Ceci d’autant plus que l’utilisateur peut par ailleurs bouger la tête ou se déplacer. Dans de telles circonstances, il est fréquent que l’utilisateur ait des difficultés à retrouver une fenêtre active et que l’utilisateur soit amené à ouvrir une nouvelle fenêtre pour la même application. La multiplication des fenêtres impacte les performances du système informatique sur lequel elles s’exécutent et ce n’est pas souhaitable. Ce problème est particulièrement sensible pour les fenêtres applicatives mais se pose de la même façon pout tout autre type d’objet virtuel. La présente divulgation propose un procédé et un dispositif qui visent à réduire ces inconvénients. A cette fin, la présente divulgation concerne un procédé de guidage d’un utilisateur dans un environnement virtuel, ce procédé comportant la génération d’un indicateur d’une direction d’un mouvement que doit effectuer ledit utilisateur pour apercevoir au moins partiellement au moins un objet virtuel détecté comme entièrement en dehors d’un champ visuel de l’utilisateur, dit objet virtuel invisible, cet indicateur étant apte à être reproduit à destination de l’utilisateur. Ainsi, et d’une façon générale, la présente divulgation propose de présenter à l’utilisateur un indicateur pour le guider vers les objets virtuels invisibles, autrement dit vers ceux qu’il ne peut plus percevoir, même partiellement. Dans un mode particulier de réalisation, le procédé de guidage comporte la détection du ou des objets virtuels invisibles. Dans un mode particulier de réalisation, le procédé de guidage comporte la reproduction du ou des indicateurs à destination de l’utilisateur. Dans un mode de réalisation, l’indicateur indicateur est un indicateur graphique. En variante, il pourrait s’agir d’un indicateur sonore ou d’un indicateur sensoriel. Dans un mode de réalisation dans lequel l’indicateur est graphique, celui-ci est placé en lisière du champ visuel. Dans un mode de réalisation, cet indicateur graphique est aligné sur une droite passant par : (i) le centre de la projection, sur un écran d’un casque de réalité virtuel porté par l’utilisateur, d’une base délimitant le champ de vision et par (ii) un centre de l’objet invisible, ledit indicateur pointant vers l’objet invisible. Dans un mode de réalisation, l’objet invisible est une fenêtre applicative. Le procédé de guidage évite ainsi à l’utilisateur de créer de nouvelles fenêtres applicatives, lorsqu’elles celles-ci existent mais sont hors de son champ de vision. Corrélativement, la présente divulgation concerne un dispositif de guidage d’un utilisateur dans un environnement virtuel, ce dispositif comportantun module de génération d’un indicateur d’une direction d’un mouvement que doit effectuer ledit utilisateur pour apercevoir au moins partiellement au moins un objet virtuel détecté comme entièrement en dehors du champ visuel, dit objet virtuel invisible, ledit indicateur étant apte à être reproduit à destination de l’utilisateur. La présente divulgation concerne également un système de réalité virtuelle comportant : - un système de suivi de la position et de l’orientation d’un casque de réalité virtuelle d’utilisateur ; - un module de localisation d’objets virtuels dans un environnement virtuel de l’utilisateur, et - un dispositif de guidage tel que mentionné ci-dessus. L’invention concerne aussi un programme d’ordinateur sur un support de données et chargeable dans la mémoire d’un ordinateur, comprenant des instructions de code de programme destinées à commander l’exécution des étapes du procédé de guidage tel que décrit précédemment, lorsque le programme est exécuté sur ledit ordinateur. L’invention concerne également un support de données dans lequel est enregistré le programme précédent. Brève description des figures D'autres caractéristiques et avantages de la présente invention seront mieux compris de la description détaillée et des figures annexées parmi lesquels : FIG. 1 représente un utilisateur dans un environnement virtuel ; FIG. 2 représente un système de réalité virtuelle, selon un exemple de réalisation ; FIG. 3 illustre un système de coordonnées sphériques; FIG. 4 illustre un champ de vision ; FIG. 5 est une représentation schématique d’un dispositif de guidage d’un objet virtuel, selon un exemple de réalisation ; FIG. 6 représente des objets visibles et des objets invisibles ; FIG. 7 représente des indicateurs dans un mode de réalisation ; FIG. 8 représente des indicateurs dans un autre mode de réalisation ; FIG. 9 représente des étapes d’un procédé de guidage dans un mode de réalisation ; FIG. 10 représente l’architecture matérielle d’un dispositif de guidage dans un mode de réalisation. Description détaillée La FIG. 1 représente un utilisateur USR en train de de vivre une expérience immersive dans un environnement virtuel généré par un système de réalité virtuelle SYS décrit ci-après en référence à la FIG. 2 . Cet utilisateur USR possède un casque de réalité virtuelle H muni d’un écran SCR. On note sur cette figure POS HD et OR HD la position et l’orientation du casque H. Dans l’exemple de réalisation décrit ici, et comme représenté à la FIG. 2 , le système SYS de réalité virtuelle comporte notamment : - le casque de réalité virtuelle H ; - un système SSH de suivi de la position et de l’orientation du casque de réalité virtuelle H ; - un module MLO de localisation des objets virtuels OVi dans l’environnement virtuel ; et - éventuellement un ou plusieurs des contrôleurs CRV de réalité virtuelle ; - un module MSC de suivi des contrôleurs CRV de réalité virtuelle ; et -un module MRO de restitution des objets virtuels OVi. Le système SSH de suivi de la position POS HD et de l’orientation OR HD du casque de réalité virtuelle H permet de déterminer, à chaque instant, où se trouve l’utilisateur USR et dans quelle direction il regarde. Le système SSH comporte par exemple : - des capteurs inertiels (accéléromètres, gyroscopes, magnétomètres, …) intégrés dans le casque pour mesurer les mouvements et l'orientation du casque ; - des caméras placées dans la pièce pour suivre des marqueurs placés sur le casque ; et/ou ; - des caméras intégrées dans le casque pour analyser l'environnement et déterminer la position et l'orientation du casque par rapport à des repères dans la pièce. Le module MLO de localisation des objets virtuels est configuré pour localiser et synchroniser en permanence les objets virtuels OVi avec la position et l’orientation de l’utilisateur USR. Le module MLO est notamment configuré pour déterminer une position initiale de référence du casque de réalité virtuelle H dans le monde réel, qui correspond à une position de départ dans l’environnement virtuel ENV. Les objets virtuels OVi sont positionnés dans un système de coordonnées synchronisé avec la position et l'orientation de l'utilisateur. Ainsi, pendant que l'utilisateur se déplace, le système SYS met à jour en temps réel la position et l'orientation du casque, ajustant les positions des objets virtuels OVi en conséquence. Dans l’exemple de réalisation décrit ici, et comme représenté en référence à la FIG. 3 , on supposera pour simplification que la position d’un point Pi d’un objet virtuel OVi est exprimée par des coordonnées sphériques dans un repère (O, X, Y, Z) lié au casque H de l’utilisateur, dans lesquelles : - représente la distance radiale entre le point Pi et l'origine O du repère, cette origine correspondant par exemple à un point fictif placé sensiblement entre les yeux de l’utilisateur ; - représente l'angle azimutal dans le plan horizontal, par exemple mesuré par rapport à l’axe X ;.- représente l'angle d'élévation, par exemple mesuré par rapport au plan horizontal (O, X, Y). Les contrôleurs de réalité virtuelle CRV (par exemple des manettes, un pointeur, une souris, …) et/ou les gestes de la main de l’utilisateur USR sont suivis par le module MSC pour permettre l’interaction avec les objets virtuels OVi. Le module MSC utilise par exemple les mêmes techniques de suivi que pour le casque H pour localiser les contrôleurs CRV dans l'espace et des algorithmes de vision par ordinateur pour détecter les mouvements des mains et du corps et du corps de l’utilisateur USR. Sur la FIG. 3 , on a représenté le champ visuel de l’utilisateur FOV sous forme d’une pyramide à base carrée dont le sommet (point de vue) est par exemple centré sur l’origine O du repère. Par exemple, le champ de vision FOV d'un utilisateur est une pyramide à base carrée (de hauteur infinie) dont l’angle au sommet est égal à 110 degrés, offrant une vision de 55 degrés à gauche, à droite, en haut et en bas (voir FIG. 4 ). Ce point de vue de l’utilisateur définit une caméra virtuelle qui simule le fonctionnement d’une caméra réelle en termes de captation de l’image d’une scène dans laquelle seraient présents des objets virtuels. Le module MRO de restitution des objets virtuels OVi est configuré pour projeter ces objets virtuels sur un écran du casque H en tenant compte de ce champ de vision. A cet effet, les coordonnées sphériques des objets virtuels OVi sont transformées en coordonnées 2D sur l’écran du casque par un mécanisme de projection qui utilise une matrice de projection tenant compte du champ de vison FOV et de la distance focale. Les coordonnées projetées sont converties en coordonnées d’écran en fonction de la résolution du casque. Ainsi, le système SYS de la réalité virtuelle, est configuré pour suivre le déplacement de l’utilisateur USR, y compris les rotations de sa tête pour ajuster la position et l’orientation de la caméra virtuelle, recalculer la projection des objets virtuels en fonction de cette position et de cette orientation mises à jour, les objets ou parties d’objets qui sortent du champ de vision FOV de l’utilisateur n’étant plus projetées sur l’écran du casque H, donnant l’impression qu’ils sortent de sa vue. Le système SYS est remarquable en ce qu’il comporte un dispositif de guidage DG qui va maintenant être décrit en référence à la FIG. 5 . D’une façon générale, ce dispositif assiste l’utilisateur USR pour retrouver des objets virtuels OVi qui ne sont plus dans son champ de vision FOV, même partiellement, autrement dit qui sont invisibles. Dans la description qui va suivre, on suppose que ces objets virtuels OVi sont des fenêtres d’applications informatiques. Sur la FIG. 6 , on a représenté schématiquement : - le champ FOV de l’utilisateur ; - une fenêtre OV 1 entièrement dans ce champ visuel ; - une fenêtre OV 2 partiellement dans ce champ visuel ; - deux fenêtres OV 3 et OV 4 entièrement en dehors de ce champ visuel. Les fenêtres OV 1 et OV 2 sont visibles et les fenêtres OV 3 et OV 4 sont invisibles. Elles peuvent par exemple être invisibles soit parce que l’utilisateur a décidé de les créer ou de les déplacer en dehors de son champ de vision FOV soit parce que l’utilisateur s’est déplacé ou a tourné la tête. Le dispositif de guidage DG comporte un module MDET pour détecter si un objet virtuel est invisible. Dans le mode de réalisation décrit ici, chaque fenêtre est définie par ces 4 coins et les coordonnées sphériques dans le repère (O, X, Y, Z) lié au casque H de l’utilisateur sont calculées en permanence par le module MLO de localisation des objets virtuels. Dans le mode de réalisation décrit ici, une fenêtre est invisible dès lors que, pour chacun de ces coins : - son angle azimutal est supérieur à 55 degrés et - son angle d’élévation est supérieur à 55 degrés. Le dispositif de guidage DG comporte un module MGEN pour générer un indicateur IND et un module MIND pour présenter cet indicateur IND dans l’environnement virtuel de l’utilisateur, cet indicateur IND indiquant une direction d’un mouvement que doit effectuer l’utilisateur pour apercevoir au moins partiellement un objet virtuel invisible. Comme représenté à la FIG. 7 , cet indicateur IND est par exemple représenté par une flèche représentée en limite du champ de vision FOV, alignée sur une droite (non représentée) passant par le centre C de la projection sur un écran du casque H de la base carrée délimitant le champ de vision FOV et par le centre de l’objet invisible, cet indicateur pointant vers l’objet invisible. Dans ce mode de réalisation, les indicateurs IND se déplacent le long de la périphérie du champ de vision en fonction de l’orientation du casque de réalité virtuelle et de la localisation des objets invisibles. Dans un mode particulier de réalisation, l’indicateur IND possède une propriété (taille, opacité, …) qui dépend de la distance entre les bords parallèles de l’objet invisible et du champ de vision les plus proches l’un de l’autre. L’utilisateur comprend donc dans quelle direction et avec quelle amplitude il doit se déplacer pour apercevoir un objet invisible. Dans un mode de réalisation illustré à la FIG. 8 , si plusieurs fenêtres invisibles sont situées dans une même direction ou dans une direction proche, l’indicateur comporte un nombre qui indique le nombre de ces fenêtres. Les différents éléments du système de réalité virtuelles sont reliés entre eux par des moyens de communication qui peuvent être de nature quelconque. Les étapes d’un procédé de guidage vont maintenant être décrites en relation avec la FIG. 9 . Dans l’exemple de réalisation décrit ici, ce procédé exécuté une boucle qui comporte : - une étape E10 de détection ; -une étape E15 de génération ; et - une étape E20 de présentation, les étapes E15 et E20 étant mises en œuvre ou non en fonction du résultat de l’étape E10 de détection. Au cours de l’étape E10 ; on détecte si à l’instant courant, au moins un objet virtuel est invisible. Dans le mode de réalisation décrit ici, cette étape comporte notamment la détermination de la position des objets virtuels un repère attaché au casque de réalité virtuelle de l’utilisateur et une étape consistant à vérifier si au moins un de ces objets est intégralement hors du champ de vision FOV de l’utilisateur. Lorsqu’au moins un objet virtuel est invisible, le procédé comporte une étape E15 de génération de l’indicateur, et une étape E20 de présentation de cet indicateur dans l’environnement virtuel de l’uilisateur. Cet indicateur IND indique une direction d’un mouvement que doit effectuer l’utilisateur pour apercevoir au moins partiellement ledit au moins un objet virtuel invisible. Cette étape peut consister à présenter un indicateur IND tel que présenté aux figures 7 et 8. La FIG. 10 représente de façon schématique l’architecture matérielle d’un dispositif de guidage DG conforme à l’invention. Dans le mode de réalisation décrit ici, ce dispositif de guidage a l’architecture matérielle d’un ordinateur. Il comporte notamment un processeur 10, une mémoire morte de type ROM 11, une mémoire vice de type RAM 12. Ces moyens définissent les modules de détection DET et de présentation d’indicateur IND décrits en référence à la FIG. 5 . La mémoire morte 11 constitue un support d’enregistrement. Elle comporte un programme d’ordinateur P. Ce programme P comporte des instructions qui lorsqu’elles sont exécutées par le processeur 10, mettent en œuvre les étapes du procédé de guidage décrit précédemment en référence à la FIG. 9 . Procédé de guidage d’un utilisateur (USR) dans un environnement virtuel, ce procédé comportant la génération(E15) d’un indicateur (IND) d’une direction d’un mouvement que doit effectuer ledit utilisateur pour apercevoir au moins partiellement au moins un objet virtuel (OVi) détecté comme entièrement en dehors d’un champ visuel (FOV) de l’utilisateur (USR), dit objet virtuel invisible, ledit indicateur (IND) étant apte à être reproduit à destination de l’utilisateur. Procédé de guidage selon la revendication 1 comportant la détection (E10) dudit au moins un objet virtuel (OV i ) invisible. Procédé de guidage selon l’une des revendications 1 ou 2 comportant la reproduction (E20) dudit indicateur (IND) de direction à destination de l’utilisateur. Procédé de guidage selon l’une quelconque des revendications 1 à 3 dans lequel ledit indicateur (IND) est un indicateur graphique. Procédé de guidage selon la revendication 4 dans lequel ledit indicateur graphique est placé en lisière du champ visuel (FOV). Procédé de guidage selon la revendication 4 ou 5 dans lequel ledit indicateur graphique est aligné sur une droite passant par le centre de la projection, sur un écran d’un casque de réalité virtuel porté par l’utilisateur, d’une base délimitant ledit champ de vision (FOV) et par un centre de l’objet invisible, ledit indicateur pointant vers l’objet invisible. Procédé de guidage selon l’une quelconque des revendications 1 à 6 dans lequel ledit objet invisible est une fenêtre applicative. Dispositif de guidage d’un utilisateur dans un environnement virtuel, ce dispositif comportant un module (MGEN) de génération d’un indicateur (MIND) d’une direction d’un mouvement que doit effectuer ledit utilisateur pour apercevoir au moins partiellement au moins un objet virtuel (OVi) détecté comme entièrement en dehors du champ visuel (FOV), dit objet virtuel invisible, ledit indicateur (IND) étant apte à être reproduit à destination de l’utilisateur. Système (SYS) de réalité virtuelle comportant - un système (SSH) de suivi de la position et de l’orientation d’un casque (H) de réalité virtuelle d’utilisateur ; - un module (MLO) de localisation d’objets virtuels (OVi) dans un environnement virtuel de l’utilisateur, et - un dispositif de guidage selon la revendication 8. Programme d’ordinateur (P) sur un support de données (11) et chargeable dans la mémoire d’un ordinateur, comprenant des instructions de code de programme destinées à commander l’exécution des étapes du procédé de guidage selon l’une des revendications 1 à 7, lorsque le programme est exécuté sur ledit ordinateur. Support (11) de données dans lequel est enregistré le programme selon la revendication 10.