AMÉLIORATION DU PROTOTYPE
Mhikes
L’application Mhikes a été sélectionnée car elle utilise grandement le GPS durant les parcours. En effet, elle comprend énormément de contenu sur les objets avoisinants et vise à instruire l’utilisateur.
De plus, des questions peuvent être posées sur certains parcours ce qui ressemble grandement aux désirs du CREPA. Cependant il faut télécharger les parcours à l’avance et ils peuvent être plus ou moins lourds. En effet, les trajets peuvent contenir énormément de points d’intérêts qui sont des images, des vidéos et des contenus audios. Le fait de devoir télécharger un parcours peut donc prendre du temps et de la place. Une fois le trajet téléchargé la connexion internet n’est plus nécessaire ce qui reste un plus. Cette application ne contient malheureusement pas de réalité augmentée.
ViewRanger Skyline
ViewRanger Skyline a été choisie pour sa grande utilisation de la réalité augmentée et du GPS. En effet, tout ce qui se fait sur Skyline est en réalité augmentée et permet une immersion totale des utilisateurs dans l’environnement avoisinant. Le système de guidage correspond parfaitement au souhait du CREPA de pouvoir trouver le début des sentiers en réalité augmentée. De plus, l’ajout d’informations sur le panorama permet aux utilisateurs curieux d’en apprendre plus et de découvrir de nouveaux endroits. Cependant, l’application est faite pour des utilisateurs adultes ou jeunes adultes car assez complexe et avec du contenu payant. De plus, aucun « jeu » n’est proposé ; l’application apporte simplement des connaissances supplémentaires. La possibilité de pouvoir créer son parcours est intéressante, mais inutile pour le projet « Charlotte la Marmotte ». De plus, comme pour Mhikes, il faut télécharger son parcours à l’avance (qui peut être payant).
PokémonGo
PokémonGo est l’inverse des applications sélectionnées plus haut. C’est un jeu qui permet à ses utilisateurs d’agir à la fois dans le monde réel et dans le monde virtuel. Il n’a pas pour but d’apprendre ou de développer des connaissances, mais simplement de divertir ses utilisateurs. Il a été choisi car il est l’un des jeux qui à faire connaitre la réalité augmentée. Il utilise des notifications GPS, ce qui est en accord avec les envies du CREPA de ne pas toujours avoir son téléphone dans la main. En effet, la notification permet d’utiliser son téléphone ou de le regarder seulement à un endroit du parcours.
ARCore
ARCore est la plateforme de Google pour intégrer la réalité virtuelle dans des applications Android principalement. ARCore permet à votre téléphone de comprendre le monde qui l’entoure et d’interagir avec les informations reçues de celui-ci. Trois capacités sont utilisées pour intégrer du contenu virtuel au monde réel : le suivi de mouvement, la compréhension de l’environnement et l’estimation de la lumière. (Google, 2018)
Le suivi de mouvement permet au téléphone de comprendre et de suivre sa propre position. ARCore utilise un processus appelé odométrie et cartographie simultanée, pour comprendre où se situe le téléphone par rapport au monde réel. (Google, 2018)
La compréhension de l’environnement donne la capacité au téléphone de détecter la taille et l’emplacement des surfaces qui l’entourent (surfaces horizontales, verticales et inclinées, telles que
le sol, les tables ou les murs). (Google, 2018)
L’estimation de la lumière va permettre au téléphone d’estimer les conditions d’éclairage actuelles de son environnement. Grace à cette capacité, ARCore va pouvoir fournir la correction moyenne d’intensité et de couleur d’une image. Les objets virtuels pourront être éclairés dans les mêmes conditions que les objets réels. (Google, 2018)
ARKit
ARKit est la plateforme d’Apple pour intégrer de la réalité augmentée au sein des applications IOS.
Elle permet de mélanger les objets numériques et l’information avec l’environnement qui nous entoure (Apple Inc., s.d. 2018). ARKit est le ARCore d’Apple. Trois caractéristiques sont importantes pour cette solution :
I. La caméra
Elle va permettre un suivi de visage robuste dans les applications de réalité augmentée. L’application arrive à détecter la position, la topologie et l’expression du visage de l’utilisateur. (Apple Inc., s.d. 2018)
II. L’odométrie visuelle inertielle
ARKit utilise l’odométrie visuelle inertielle pour suivre avec précision le monde qui l’entoure. Cet outil fusionne les données des capteurs de caméra et les données de mouvements de base. Ces deux fonctions permettent de suivre le déplacement de l’appareil à travers l’espace. (Apple Inc., s.d. 2018)
III. Compréhension de la scène et estimation de l’éclairage
Cet outil utilise les mêmes technologies que ARCore. Des optimisations pour ARCore et ARkit sont disponibles sur des logiciels tels que Unity ou Unreal Engine.
Xamarin
Xamarin est une technologie fournissant des outils de développement d’applications mobiles multiplateformes. Elle est née d’une compagnie créée en 2011 aux Etats-Unis qui se fait racheter en 2016 par Microsoft. Cette technologie permet la création d’applications Android, IOS ou Windows Phone natives à leur système d’exploitation, avec toutes les particularités de celui-ci. Le développement de telles applications se fait donc en une fois, ce qui constitue un gain de temp nonnégligeable. (LavishT@TWC, 2017)
Les outils Xamarin sont une extension de Visual Studio, qui est un IDE pour le .Net et C#. Les développeurs utilisent du C# pour coder les applications, ce qui est un avantage car ils n’ont pas besoin d’apprendre du JAVA, Objective-C ou Swift pour construire leur application ; seul un langage
est nécessaire. En effet, pour développer une application Android, il nous faut savoir le JAVA, pour une application Apple (IOS) c’est le Swift qui est requis et pour Windows Phone il nous faut connaitre de l’Objective–C. Xamarin nous permet de développer sur ces trois plateformes en connaissant seulement un langage. L’outil offre un gain de temps et de ressources considérable. (LavishT@TWC,2017).
Unity
Unity est la plateforme numéro une dans le monde du jeu vidéo, étant la plateforme de développement la plus populaire. Unity est en pleine croissance et énormément de développeurs se tournent vers celle-ci pour créer leurs applications. Parmi ses clients, on compte : Cartoon Network, Coca-Cola, Disney, Electronic Arts, LEGO, etc. (Unity Technologies, s.d. 2018)
Cette plateforme permet de créer des jeux vidéo et des applications en 2D, 3D, RV (réalité virtuelle) et RA (réalité augmentée). De plus, tout le contenu de Unity est multiplateforme, la réalité augmentée également. (Unity Technologies, s.d. 2018)
Unity offre aussi des tutoriel gratuits, efficaces pour les débutants ou les plus avancés. Des formations en ligne ou en direct sont disponibles sur la plateforme. De plus, un catalogue «d’assets»,
des objets 3D indispensables pour les jeux, est disponible dans le programme ; certains sont gratuits et d’autres payants. Les assets sont téléchargeables et intégrables directement dans Unity, ce qui ne nécessite aucune transformation de la part du développeur. (Unity Technologies, s.d. 2018)
Les tutoriels et les Assets intégrés sont un énorme plus pour la plateforme, car cela permet un gain de temps inimaginable pour les développeurs. En effet, pas besoin de créer ses propres assets, de « perdre » du temps à transformer certains formats ou de passer par un logiciel tiers pour avoir la capacité d’utiliser des objets 3D.
Le plateforme Unity fonctionne avec un éditeur de scènes graphiques. Les scènes sont des objets qui contiennent l’environnement et les menus de notre application. Chaque scène est un niveau à travers notre solution. Chacune est différente et peut contenir : des menus, des objets 3D, de la réalité augmentée, du texte, etc.
La partie logique de Unity se fait sur Visual Studio en C#. Les scripts sont créés sur la partie graphique de Unity et sont éditables sur Visual Studio.
Choix technologiques
Après étude des différentes technologies et discussion avec des personnes connaissant la réalité augmentée, dont mon professeur M. Antoine Widmer, il en résulte ceci :
Xamarin est une technologie performante pour les applications multiplateformes mais permet une intégration de la réalité augmentée plus difficile ou du moins qui prend plus de temps. De plus, la gestion des objets 3D n’est pas intégrée à Xamarin et il faudrait utiliser des logiciels tiers pour les rendre accessibles.
Unity est fait pour la réalité augmentée et le multiplateforme ce qui facilite grandement l’intégration de celle-ci au sein de l’application. L’application sera orientée vers le jeu et moins vers une application d’information. La gestion des menus est plus compliquée et le « material design » difficilement intégrable. Grace à son « Asset Store », l’acquisition d’objets 3D et l’intégration de ceux-ci est grandement simplifiée !
Nous avons donc choisi la combinaison Unity – Vuforia pour la création de ce projet. Ce qui permet une grande maniabilité dans le multiplateforme.
Développement de l’outil
Le prototype proposé en Xamarin a donc été mis de côté et tout a été recommencé sur Unity. Les idées ont bien entendu été gardées. L’application a été créée sur Unity, toute la partie visuelle se trouve sur ce programme et toute la partie logique se situe sur Visual Studio. Tous les éléments sont accessibles depuis Unity.
Un guide technique pour la configuration de Vuforia est disponible en annexe. Il permet une meilleure compréhension du développement ainsi qu’une approche plus tutoriel.
Termes techniques :
Les Scènes contiennent les environnements et les menus de l’application. Une scène contient la logique qui est stockée sous forme de script en C# et la vue qui est sous forme d’Asset dans l’éditeur Unity. Les scènes sont les objets principaux de Unity. (Unity Technologies, 2018)
Les Canvas sont des zones qui contiennent tous les éléments de l’interface. Ces éléments tels que
les boutons, les textes, les images etc. doivent être des enfants d’un Canvas. Les Canvas facilitent le placement de ces différents éléments au sein de leurs zones. (Unity Technologies, 2018)
Les Panels sont des panneaux auxquels il est possible de modifier la taille, le fond, la transparence, leur contenant etc. Ils sont modulables à souhait pour permettre une souplesse à l’interface.
Les Scripts sont des fichiers en C# qui contiennent tout l’aspect logique.
Les Loops (boucles) permettent de répéter une suite d’instructions, tant qu’une condition n’est pas respectée. Il en existe plusieurs types tel que la boucle « for » qui est la plus utilisée dans Charlotte la Marmotte.
Les Quaternions permettent de représenter l’orientation ou la rotation au sein de Unity. Cette représentation interne se compose de quatre nombres référencés dans Unity comme x, y, z et w.(Unity Technologies, 2018)
Les Préfabriqués sont des modèles d’objets. Afin d’éviter de dupliquer des objets qui seront modifiables indépendamment, Unity donne la possibilité de créer son propre modèle d’objets. Le préfabriqué (« prefabs » dans Unity) agit comme un modèle à partir duquel il est possible de créer de nouvelles instances d’objets dans la scène. Toutes les modifications apportées à un bien préfabriqué sont immédiatement reflétées dans toutes les instances produites à partir de celui-ci, mais Il est également possible de remplacer les composants et les paramètres de chaque instance individuellement. (Unity Technologies, 2018)
L’Object pooling permet de réutiliser des objets déjà créés à la place de les détruire et de les recréer. Ce script permet de pré-instancier tous les objets voulus avant le démarrage du jeu. (Geig,
s.d. 2018)
Les Image Targets représente des images que Vuforia peut détecter et suivre. Vuforia va analyser la cible est la comparer à la base de données liée à notre projet, afin d’y faire l’action qui lui est attribuée. Grâce à ce procédé, il est possible à travers l’appareil photo de notre téléphone de déclencher une action, telle que l’affichage d’un animal sur un panneau. Le fonctionnement est le même que les QR codes cependant, les images Targets n’ont pas besoin de régions ou de codes en noir et blanc spéciaux pour être reconnues. (PTC Inc, s.d. 2018)
Le Bearing est la direction de la boussole depuis la position actuelle jusqu’à la destination voulue.
Le Slerp est l’interpolation sphérique entre un point a et un point b. (Unity Technologies, 2018)
Le Lerp est aussi l’interpolation sphérique entre un point a et un point b. Cependant l’interpolation est plus rapide ce qui peux donner un moins bon effet sur des objets éloigné l’un de l’autre. (Unity Technologies, 2018)
Les Frame représentent la mise à jour d’un écran.
La Coroutine est une fonction qui a la capacité de mettre en pause l’exécution et de renvoyer le contrôle à Unity. (Unity Technologies, 2018).
|
Table des matières
INTRODUCTION
CONTEXT
1.1. LE CREPA
1.2. CHARLOTTE LA MARMOTTE
1.2.1. Les sentiers
1. ETAT DE L’ART
1.1. PROBLÉMATIQUE
1.1.1. Les enfants
1.1.2. Disponibilités
1.1.3. Innovation
1.2. LES SOLUTIONS EXISTANTES SUR LE MARCHÉ
1.2.1. Mhikes
1.2.2. ViewRanger Skyline
1.2.3. Pokémon Go
1.3. DISCUSSION DE L’ÉTAT DE L’ART
1.3.1. Mhikes
1.3.2. ViewRanger Skyline
1.3.3. PokémonGo
1.3.4. Tableau récapitulatif
2. TECHNOLOGIES
2.1. ARCORE & ARKIT
2.1.1. ARCore
2.1.2. ARKit
2.2. XAMARIN
2.2.1. Réalité augmentée
2.2.2. Prototype de l’application proposé par Data Sementics Lab
2.3. UNITY
2.3.1. Réalité augmentée
2.4. CHOIX TECHNOLOGIQUES
3. DÉVELOPPEMENT DE L’OUTIL
3.1. ARCHITECTURE INTERNE
3.2. PERSISTENT
3.3. MAIN MENU
3.3.1. MainMenuCanvas
3.4. FINDSENTIERSTART
3.5. FOULY GAMES
3.5.1. Le loup
3.5.2. La prise de photo
3.5.3. Les images prennent vies
3.5.4. Le Quizz
3.6. MULTIPLATEFORME
4. PROBLÈMES RENCONTRÉS
4.1. NOTIFICATION GPS
5. AMÉLIORATION DU PROTOTYPE
6. EVALUATION DE L’APPLICATION
7. PLANIFICATION
8. CONCLUSION
8.1. FEEDBACK PERSONNEL
9. RÉFÉRENCES ET SOURCES
10. ANNEXE I : CONFIGURATION DE VUFORIA
11. ANNEXE II : PLANIFICATION
12. ANNEXE III : CAHIER DES CHARGES
12.1. INTRODUCTION
12.2. PROBLEMATIQUE
12.3. LES ENFANTS
12.4. DISPONIBILITÉS
12.5. INNOVATION
12.6. ETAPES DE REALISATION ENVISAGEES
12.6.1. Analyse de l’état de l’art
12.6.2. Choix technologique
12.6.3. Implémentation / validation
12.7. PLANIFICATION
Télécharger le rapport complet