Evolutions et interactions collaboratives dans un espace virtuel en 3D (Post-WIMP 2017-2018)

De Ensiwiki
Aller à : navigation, rechercher

Expert.png  Troisième Année 

Evolutions et interactions collaboratives dans un espace virtuel en 3D
Projet Projet d'interactions post-wimp
Année 2017-2018
Étudiants Loiodice Thomas

Moune Paul
Le Morvan Thomas
Bayet Théophile

Encadrant François Bérard


Introduction

Contexte et motivations

Ce projet vise à élaborer une solution de collaboration en espace 3D. Les interactions WIMP actuelles ne permettent pas un travail collaboratif de qualité, surtout dans la manipulation d’objets 3D, pour laquelle l’interaction WIMP est archaïque. Le projet POST-WIMP que nous souhaitons implémenter devrait non seulement permettre une manipulation plus adaptée d’objets 3D, en dépassant le cadre limité d’utilisation du WIMP, via l’utilisation d’outils de reconnaissance de mouvements et de projection 3D, mais aussi permettre une collaboration avec d’autres personnes lors de la manipulation de ces objets 3D, avec possibilité de synchroniser les vues entre les différentes personnes. Ces interactions devraient permettre par exemple l’aménagement d’espace de vie, mais d’autres utilisations sont possibles.

Objectif

Les premiers objectifs à atteindre sont de réussir à faire collaborer plusieurs personnes dans un même espace virtuel 3D. Ensuite, l'observation de la qualité des interactions selon les solutions proposées devraient apporter un apport intéressant à la possibilité d'interagir dans le futur dans des environnements virtuels, il faudra donc tester divers moyens d'interagir et différentes applications à celles-ci pour évaluer leur pertinence.

Matériel utilisé

Pour réaliser ce projet, nous avons eu besoin de 2 Occulus Rift et d’un système Leap Motion.

Un Occulus Rift est un casque de réalité virtuelle qui va nous permettre de visualiser l’environnement de développement dans lequel seront plongés les utilisateurs. L’avantage de ce casque est qu’il est facile de développer sa propre application de VR pour l’utiliser avec le casque. De plus, l’immersion visuelle de l’utilisateur est garantie. Ainsi, en combinant plusieurs casques Occulus, nous pouvons mettre en relation plusieurs utilisateurs pour qu’ils puissent collaborer dans un environnement immersif totalement en 3 dimensions pour plus de réalisme.

occulus
Occulus Rift


Le Leap Motion est un système permettant de détecter les mains de l’utilisateur et de les intégrer dans un espace de réalité virtuelle afin que ce dernier puisse interagir avec l’environnement sans passer par des manettes ou autre outil intermédiaire. Ainsi, l’intuitivité des gestes est garantie. Il suffit de se concentrer sur l’intuitivité des gestes pour des interactions plus complexes comme l’ouverture d’un catalogue par exemple.

leapMotion
Leap Motion

La combinaison Occulus Rift et Leap Motion semble donc pertinente pour ce projet d’aménagement d’espace 3D en collaboration, de par l’intuitivité de l’interaction pour l’utilisateur et de la facilité d’intégration de ces technologies.

Enfin, le développement se fait sur Unity pour l'ensemble du projet. C'est un outil de développement et moteur graphique populaire et puissant, et ce choix a deux raisons principales :

- Son utilisation répandue en fait un outil facile à prendre en main grâce à des tutoriels et des aides en ligne, forum et autres ...

- Le matériel que nous utilisons est compatible avec cet outil et possède des plug-in dédiés.

Unity
Unity

Description de la solution

Description générale

Nous souhaitons que notre système offre aux utilisateurs plusieurs services, que l’on peut placer dans 2 différentes catégories. D’une part les services propres à l’aménagement de l’espace et d’autre part, les services destinés à la collaboration entre utilisateurs.

Concernant l’aménagement, notre système pourrait proposer plusieurs services :

- La génération et modification de l’espace 3D de travail afin de pouvoir travailler dans un environnement aussi proche que possible de ce que souhaite l’utilisateur et permettre une projection plus simple.

- La génération de modèles et formes 3D afin de pouvoir les modifier et créer les objets que l’utilisateur souhaite voir dans son espace.

- Permettre à l’utilisateur un accès à un catalogue d’objets et de formes préexistantes pour lui permettre de remplir son espace facilement et rapidement.

- Fournir divers outils de manipulation à l’utilisateur pour qu’il puisse facilement organiser son espace. Par exemple : Agrandir ou rétrécir un objet, le déplacer, le supprimer, l’orienter, modifier la couleur ou encore appliquer des textures.


Concernant la partie collaboration qu’offrirait notre système, plusieurs services seront disponibles pour optimiser le travail des collaborateurs :

- Permettre aux utilisateurs de travailler sur le même espace sans être physiquement au même endroit

- Permettre aux collaborateurs de discuter pour faciliter la collaboration et la création d’objets 3D

- Permettre aux collaborateurs de manipuler un même objet en même temps

- Fournir des outils pour la collaboration comme par exemple un pointeur lumineux pour montrer des choses aux collaborateurs

Spécifications techniques & Architecture

La conception d’un système dans son intégralité n’étant pas à l’ordre du jour, nous allons nous aider de systèmes de capture d’information et de projection VR existants afin de parvenir à nos fins : Un occulus Rift pour la visualisation de l’espace 3D la technologie Leap motion pour tracker les mouvements des mains

Ces technologies fournissent chacunes des output qui seront traités par un système développé par nos soins afin de synchroniser ces sorties, comme présenté sur le schéma ci-dessous :

Schema1incoming.png

Nous récupérons donc les output du leap motion et de l’occulus et les utilisons en tant qu’input pour un traitement avant renvoi de ces informations vers l’occulus.

Les interactions entre les technologies décrites précédemment sont illustrées par le graphique ci-dessous :

Schema2incoming.png


Les Input du Leap Motion et de l’occulus sont récupérées et traitées pour identifier ce qui doit être affiché sur l’occulus. Ensuite, ces informations sont transmises au système d’affichage de l’occulus pour que les modifications apparaissent à l’écran.

Organisation du travail

L’implémentation de la technologie Leap Motion et son intégration sur le système de l’occulus est au soin de LOIODICE Thomas.

L’implémentation de l’environnement collaboratif et de la liaison entre les occulus est au soin de LE MORVAN Thomas et de MOUNE Paul.

L’implémentation de l’interface pour interagir avec le système est au soin de BAYET Théophile.

Implémentations et contraintes

L'implémentation a été sujette à différents problèmes qui seront énumérés dans cette partie, en plus des détails de l’implémentation.

Interface

L’interface a été entièrement implémentée sous Unity. Le choix de type d’interface a été sujet à débat, mais nous avons fini par choisir de nous diriger vers des markings menus. Ces menus permettent une utilisation optimisée à long terme.

En pratique, l'implémentation en marking menu est partielle : on nécessite plusieurs clics précis et non pas un seul clic continu pour sélectionner nos options.


exInterface
Illustration de l'interface

L'interface est minimaliste : un simple bouton interface, qui permet de sélectionner la forme que l'on souhaite créer, en faisant apparaitre des boutons spécifies autour du premier. Ces boutons spécifiques à la génération de formes disparaissent après un court instant, ce qui peut désarçonner l'utilisateur débutant, mais rendra son utilisation plus dynamique à la longue.

Cette implémentation est spécifique à la souris ; pour pouvoir spécifier cette interface à l'utilisation de Leap Motion, il faut d'abord réussir l'intégration des inputs du Leap Motion dans unity.

Interactions Leap Motion

Le Leap Motion met a disposition un ensemble de librairies comprenant :

-ressources de base

-rendu graphique,

-moteur d'interaction,

-module main,

Dont la prise en main via Unity est bien documentée. Elle permet à un novice de mettre en place une interaction virtuelle en une heure environ.

L'affichage des mains dans un moteur unity et supporté par l'occulus marche, mais l'interaction avec les objets 3D générés est encore difficile.

Dans le cadre de notre projet, nous souhaitions aussi intégrer de nouvelles interactions. Cependant les librairies fournies permettent un nombre limité d'interactions pré-définies. D'autre part, la mise en place de nouvelles interactions via ce matériel n'est pas, ou peu documentée à notre connaissance.

Nous avons tout de même essayé de nous approprier les sources fournies et trouver où intégrer de nouvelles interactions. Mais nous n'avons pas abouti, l'intégration avec le reste du système et notamment avec l'interface n'a pas pu avoir lieu.

Espace collaboratif & liaison des Occulus

La liaison en local de plusieurs Occulus requiert autant d'ordinateur que d'Occulus. Il est très facile de gérer le multijoueur dans d'application de réalité virtuelle grâce à Unity. Cependant, le réseau de l'Ensimag n'autorise vraisemblablement pas les connections en LAN. En effet, lorsque qu'un de nos Occulus lançait l'application en tant qu'hôte et qu'un deuxième Occulus essayait de se connecter, un message d'erreur indiquant que la connexion était impossible apparaissait. N'ayant pas beaucoup de choix pour résoudre ce problème, nous nous sommes arrêtés là pour la liaison entre Occulus, même si nous sommes confiants vis-à-vis du fait que la liaison serait possible sur un réseau adéquat.

L'espace collaboratif en local marche, on peut voir deux points de vues et les actions faites par chacun ; néanmoins, il est impossible de connecter deux occulus à un même ordinateur.

Nos efforts pour pouvoir collaborer dans la même scène avec deux occulus se sont donc arrêtés à ce stade .

Test et Évaluation du dispositif

Ci-dessous sont décrites les procédures de test prévues une fois l’implémentation complète et satisfaisante :

Procédures de Test

Nous souhaitons procéder à deux types de test :

- tests sans connexion à plusieurs ( pas d’interactions entre les deux occulus )

- tests avec connexion des deux occulus( interactions entre les deux occulus)


Pour chacun de ces tests, nous souhaitons procéder à trois types d'interactions :

- avec la souris et l'occulus

- avec le Leap Motion et l'occulus

- avec le Leap Motion et l'écran simplement


Dans le premier test, le sujet apprenait à se servir de la solution. Cela comprenait plusieurs parties :

- 1a. début avec des gestes simples à réaliser ( regarder dans différentes directions, fermer la main droite ou la gauche, synchronisation des mouvements )

- 1b. interaction avec l’interface ( ouverture, fermeture, navigation dans les menus )

- 1c. interaction avec l’environnement ( génération de différentes formes, modifications des objets, empilement d’objets )


Ces tests permettent notamment de s’essayer à la manipulation, à s’habituer à l’environnement, et de permettre des tests plus rapides dans le cas de connexions à plusieurs.


Dans le second test, où deux personnes interagissent en même temps sur la même scène , nous testons plusieurs scénarios :

- 2a. construction complémentaire : génération d’objets tour à tour

- 2b. jeux compétitif : devoir empiler le plus vite possible trois objets, en ayant le droit de détruire la construction de l’autre

- 2c. devinette : chacun leur tour, ils doivent faire une construction, et l’autre doit deviner ce que c’est.


Ces tests permettent de tester réellement la côté pratique de l’interaction à plusieurs dans un environnement virtuel partagé, et différentes applications possibles dans ce genre d’environnement partagé. De plus , le défi de travailler en collaboration ou au contraire contre l’autre sujet mettra en évidence le rapport du sujet à l’interface et aux choix du groupe pour ce projet.


Évaluation

L'évaluation de ces tests est basé sur plusieurs critères :

- le retour de l'utilisateur, après chaque test, avec plusieurs critères : le côté pratique (précision, rapidité, .. ) ,le confort d'utilisation(fatigue physique, mal aux yeux, .. ) , maniabilité de l'interface ,et le fun procuré .

- les données récupérées sur le test : temps d'exécution, temps passé dans l'interface, temps passé à générer des objets.


Ces évaluations permettront de récupérer un maximum d'informations pour pouvoir comparer les différents types d'interactions proposés durant les tests.

Pour chaque sujet et interaction, on pourra donc construire un tableau pour comparer les résultats :

Tests Praticité Confort Interface Fun Temps d'exécution Temps Interface Temps génération objets
1a
1b
1c
2a
2b
2c

Conclusion

Nous n'avons malheureusement pas réussi à mener le projet à bien. L'intégration des différentes technologies dans un seul système s'est révélée plus ardue et moins documentée que prévue. Les complications rencontrées dans les différentes phases d'implémentation et l'absence du professeur encadrant pour nous donner son avis sur la poursuite du projet nous ont découragé pour la reprise de celui-ci sous un nouvel angle.

L'implémentation étant incomplète, aucun test significatif ne peut être mené à bien. Une connexion entre Occulus Rift autorisée à l'ENSIMAG nous aurait permis de tester au minimum l'utilisation de l'interface à la souris avec deux utilisateurs, mais ceci n'a malheureusement pas été possible.

Il est à noter néanmoins que ce genre d'interaction devient de plus en plus accessible et populaire ( les interactions par VR partagée se multiplient dans le domaine vidéo-ludique), les différentes interactions que nous voulions tester auraient pu apporter un nouvel éclairage sur la possibilité d'étendre ce genre de technologies au grand public.