Dans le premier billet de cette série, nous avons expliqué à quel point Vuforia est génial pour la création d'expériences de réalité augmentée. Nous sommes maintenant prêts à mettre en pratique ces concepts dans une application réelle. Dans ce didacticiel, nous allons commencer à jouer avec la réalité augmentée à l'aide de Vuforia sur Unity 3D. Nous allons apprendre à configurer Vuforia et à commencer à développer un jeu de RA à partir de rien, en adoptant une logique similaire à celle utilisée sur Pokémon GO!
Il ne sera pas nécessaire d'avoir une expérience préalable sur Unity ou Vuforia pour suivre ce tutoriel..
Si vous souhaitez aller plus loin, pourquoi ne pas vous familiariser avec l'un des concepts les plus fondamentaux de la RA, les marqueurs, dans notre cours succinct:
Vuforia utilise l'alimentation de la caméra de l'appareil, associée aux données de l'accéléromètre et du gyroscope, pour examiner le monde. Vuforia utilise la vision par ordinateur pour comprendre ce qu'il "voit" sur l'appareil photo afin de créer un modèle de l'environnement. Après traitement des données, le système peut se situer grossièrement dans le monde, en connaissant ses coordonnées: où se trouvent le haut, le bas, la gauche, la droite, etc..
Si vous ne savez pas de quoi parle Vuforia, jetez un coup d'œil au premier billet de cette série..
Ce tutoriel est divisé en deux parties. Dans celui-ci, nous verrons certaines des particularités de Vuforia sur Unity 3D, nous apprendrons à configurer l'environnement et nous commencerons également à développer un petit jeu de RA appelé Shoot the Cubes. Nous porterons une attention particulière à la ARCamera Prefab, une des parties les plus importantes de Vuforia dans Unity.
Dans la deuxième partie, nous continuerons à développer le jeu Shoot the Cubes, en ajoutant de l’interactivité et en le rendant plus intéressant. Cette section ne va pas trop insister sur les particularités de Vuforia, car il s'agira d'explorer les possibilités offertes par Unity pour créer une expérience de réalité augmentée attrayante..
Unity est un moteur de jeu populaire et puissant, facile à utiliser et capable de compiler des jeux pour plusieurs plates-formes. Utiliser Unity pour créer des expériences de RA avec Vuforia présente certains avantages. Il est possible de cibler tous les systèmes pris en charge par Vuforia, y compris les lunettes intelligentes. Son utilisation est plus simple, grâce aux Prefabs fournis par le SDK de Vuforia. En utilisant uniquement Unity, il est possible d'accéder à toutes les fonctionnalités disponibles sur Vuforia.
Vous pouvez accéder à toutes les fonctionnalités de Vuforia sur Unity à l’aide des préfabriqués de Vuforia. Tout ce que vous avez à faire est de faire glisser l'objet sur la scène et de le configurer. Comme leur nom l'indique, les préfabriqués sont comme des modèles de création et de clonage d'objets Unity complets avec des composants et des propriétés. Par exemple, le ImageTarget représente des images pouvant être utilisées comme cibles. Jetons un coup d'œil aux préfabriqués Vuforia disponibles sur Unity:
Le jeu que nous allons développer est simple, mais il illustre bien les principes de la réalité augmentée et nous en apprendra davantage sur les principes fondamentaux de Vuforia. L'objectif du jeu est de trouver et de tirer des cubes qui volent autour de la salle. Le joueur recherchera les cubes à l'aide de son appareil et «tapera» pour tirer sur les boîtes. Nous ne nous intéresserons pas au score, au niveau ou à quoi que ce soit d'autre, mais vous pouvez facilement développer vous-même ces aspects du jeu..
Avant de commencer à jouer, nous devrons préparer Unity pour Vuforia. Le processus est assez simple et nous avons essentiellement besoin d’importer le package SDK de Vuforia et d’ajouter un fichier. ARCamera préfabriqué à notre projet.
Il est temps de vérifier si l'environnement fonctionne correctement.
Si vous avez une webcam sur votre ordinateur, vous pouvez appuyer sur le bouton de lecture de Unity pour vérifier si le ARCamera travaille. Il sera possible de reconnaître des cibles en utilisant la webcam; Cependant, il ne sera pas possible d'utiliser des données de capteur pour tester votre expérience de RA. Si le flux de la caméra ne montre pas le Jeu fenêtre, il est possible que votre appareil photo ne soit pas compatible avec le profil de webcam fourni par ARCamera.
Le meilleur moyen de tester votre application Vuforia est directement sur l'appareil. Nous compilerons le projet pour Android, mais les mêmes étapes s'appliqueraient aux appareils iOS..
Après la construction, l'application sera installée sur votre appareil. Pour l'instant, tout ce que vous devez attendre est de voir la caméra se nourrir sur votre appareil sans aucune erreur. Si vous avez ça, tout a bien fonctionné.
L'objectif du jeu Shoot the Cubes est de rechercher et de tirer des cubes en vol à l'aide de la caméra et des capteurs de l'appareil. Cette approche est similaire à celle utilisée sur Pokémon GO. Pour ce faire, il suffit d’utiliser le Vuforia ARCamera préfabriqué.
Il y a beaucoup de scripts attachés à la ARCamera. Pour le moment, le seul que vous aurez besoin de comprendre est le Comportement de Vuforia scénario. Jetons un coup d'oeil à ses options:
Pour le moment, tout ce que vous devrez changer dans le ARCamera est le Mode Centre Word. Clique sur le ARCamera élément dans la hiérarchie et dans la Inspecteur volet, changez le Mode Centre mondial à DEVICE_TRACKING.
Ajoutons un cube à la scène et testons si ARCamera fonctionne correctement.
Vous devrez regarder autour de vous en faisant pivoter votre appareil pour trouver le cube. Vous remarquerez que l'objet reste toujours au même endroit, même après que vous l'ayez fait pivoter. C'est comme si le cube "existait" dans le monde réel, mais ne pouvait être vu qu'avec la caméra du périphérique.
Le premier problème avec notre application jusqu'ici est que le cube peut apparaître n'importe où et que l'utilisateur devra regarder autour de lui pour le trouver. Comme le centre du monde est défini en fonction des capteurs de l'appareil, nous ne pouvons être certains de la position réelle des éléments. Cela est dû au fait que l'utilisateur peut démarrer avec le périphérique dans n'importe quelle orientation et que la façon dont la rotation est mesurée varie d'un périphérique à l'autre..
Afin de s’assurer que les entités AR commencent par la vue de l’utilisateur, la solution la plus simple consiste à attendre que Vuforia définisse le centre du monde et trouve le ARCamera rotation et ensuite pour organiser l'emplacement de départ des éléments en fonction de cette orientation.
Nous allons créer un Gestionnaire Spawn définir la position des cubes à engendrer. Le gestionnaire définira sa position en fonction des ARCamera rotation. Il attendra que la rotation soit définie, puis passera de 10 unités à l'avant de la caméra.
Ajoutons d'abord le paquet Vuforia.
utiliser UnityEngine; using System.Collections; // Nous devrons utiliser le paquet Vuforia pour // nous assurer que tout fonctionne avec Vuforia; Classe publique SpawnScript: MonoBehaviour
Accéder ARCamera, utilisation Camera.main
. Créons une fonction pour obtenir la position de la caméra et définissons le cube à générer 10 unités à partir de ce point.
Classe publique SpawnScript: MonoBehaviour // Définit la position si l'objet // selon la position ARCamera private bool SetPosition () // récupère la position de la caméra Transform cam = Camera.main.transform; // définit la position 10 unités en avant à partir de la position de la caméra transform.position = cam.forward * 10; retourne vrai;
Nous changerons la position une seule fois de la Début
une fonction. Changer de position
est une coroutine qui attendra un peu de temps avant de définir la position.
bool privé mPositionSet; void Start () // Définition de la position de ponte StartCoroutine (ChangePosition ()); // Nous utiliserons une Coroutine pour accorder un // petit délai avant de définir la position private IEnumerator ChangePosition () return return new WaitForSeconds (0.2f); // Définit la position de Spawn une seule fois si (! MPositionSet) // ne modifie la position que si Vuforia est actif if (VuforiaBehaviour.Instance.enabled) SetPosition ();
Testons le script:
Les éléments commencent par se chevaucher; Cependant, une fois que vous avez créé et exécuté l'application sur un périphérique, vous verrez que le _SpawnController et sa sphère apparaîtra devant la caméra, et le cube sera à un autre endroit. Allez-y et testez-le! Assurez-vous que vous regardez bien l'appareil au démarrage de l'application.
Félicitations, vous avez créé votre première expérience de réalité augmentée. Oui, c'est un peu dur, mais ça marche! Dans ce tutoriel, vous avez appris à utiliser le préfabriqué principal de Vuforia dans Unity, le ARCamera. Vous avez également appris à le configurer et à utiliser les capteurs de l'appareil pour créer l'illusion qu'un objet virtuel est inséré dans le monde..
Dans le prochain tutoriel, nous allons améliorer ce principe pour créer un vrai jeu et une expérience plus attrayante. Nous continuerons à développer le jeu Shoot the Cubes, en ajoutant de l'interactivité et en explorant les possibilités de Unity pour créer un jeu AR intéressant. Nous allons faire en sorte que les cubes apparaissent et volent, et nous laisserons le joueur les rechercher et les détruire en tirant un laser hors de l'appareil.
À bientôt!
Un merci spécial pour le vecteur de l'image conçu par Freepik, sous licence Creative Commons CC BY-SA.