Tutoriel : Partager des ancres spatiales entre plusieurs sessions et appareils

Azure Spatial Anchors est un service de développement multiplateforme avec lequel vous pouvez créer des expériences de réalité mixte en utilisant des objets qui conservent leur emplacement sur les appareils dans le temps.

Dans ce tutoriel, vous allez utiliser Azure Spatial Anchors pour créer des ancres au cours d’une session et les localiser ensuite sur le même appareil ou sur un autre. Les mêmes ancres peuvent aussi être localisées par plusieurs appareils à un même emplacement et à un même moment.

Animation showing spatial anchors that are created with a mobile device and used with a different device over the course of days.

Ce didacticiel vous montre comment effectuer les opérations suivantes :

  • Déployer une application web ASP.NET Core dans Azure permettant de partager des ancres et de les stocker en mémoire pendant une période spécifiée.
  • Configurer la scène AzureSpatialAnchorsLocalSharedDemo dans l’exemple Unity de nos guides de démarrage rapide pour tirer parti de l’application web de partage d’ancres.
  • Déployer et exécuter les ancres sur un ou plusieurs appareils.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Prérequis

Avant de commencer ce tutoriel, veillez à respecter les prérequis suivants :

Notes

Vous allez utiliser Unity et une application web ASP.NET Core dans ce tutoriel, mais l’idée ici est seulement de donner un exemple de la manière dont sont partagés les identificateurs Azure Spatial Anchors avec d’autres appareils. Vous pouvez utiliser d’autres langages et technologies back-end pour atteindre le même objectif.

Créer une ressource Spatial Anchors

Accédez au portail Azure.

Dans le volet de gauche, sélectionnez Créer une ressource.

Utilisez la zone de recherche pour rechercher Spatial Anchors.

Screenshot showing the results of a search for Spatial Anchors.

Sélectionnez Spatial Anchors, puis Créer.

Dans le volet Spatial Anchors Account (compte Spatial Anchors), procédez comme suit :

  • Entrez un nom de ressource unique, en utilisant des caractères alphanumériques normaux.

  • Sélectionnez l’abonnement auquel attacher la ressource.

  • Créer un groupe de ressources en sélectionnant Créer. Nommez-le myResourceGroup, puis sélectionnez OK.

    Un groupe de ressources est un conteneur logique dans lequel les ressources Azure, comme les applications web, les bases de données et les comptes de stockage, sont déployées et managées. Par exemple, vous pouvez choisir de supprimer le groupe de ressources complet ultérieurement en une seule étape.

  • Sélectionnez un emplacement (région) où placer la ressource.

  • Sélectionnez Créer pour commencer à créer la ressource.

Screenshot of the Spatial Anchors pane for creating a resource.

Une fois la ressource créée, le portail Azure indique que votre déploiement est terminé.

Screenshot showing that the resource deployment is complete.

Sélectionnez Accéder à la ressource. Vous pouvez à présent afficher les propriétés de la ressource.

Copiez la valeur ID de compte de la ressource dans un éditeur de texte en vue d’une utilisation ultérieure.

Screenshot of the resource properties pane.

Copiez également le Domaine du compte de la ressource dans un éditeur de texte en vue d’une utilisation ultérieure.

Screenshot showing the resource's account domain value.

Sous Paramètres, sélectionnez Clé d’accès. Copiez la valeur de Clé primaire, Clé de compte, dans un éditeur de texte en vue d’une utilisation ultérieure.

Screenshot of the Keys pane for the account.

Télécharger l’exemple de projet et importer le SDK

Cloner le dépôt d’exemples

Clonez le dépôt d’exemples en exécutant les commandes suivantes :

git clone https://github.com/Azure/azure-spatial-anchors-samples.git
cd ./azure-spatial-anchors-samples

Importer le SDK Azure Spatial Anchors

Suivez les instructions fournies ici pour télécharger et importer les packages du SDK ASA nécessaires pour la plateforme HoloLens.

Déployer le service de partage d’ancres

Notes

Dans ce tutoriel, nous allons utiliser le niveau gratuit du Azure App Service. Le niveau gratuit expire après 20 min d’inactivité et réinitialise le cache de mémoire.

Après avoir ouvert Visual Studio, ouvrez le projet dans le dossier Sharing\SharingServiceSample.

Ouvrir l’Assistant de publication

Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet SharingService, puis sélectionnez Publier...

L’Assistant de publication démarre.

  1. Sélectionnez Cible > Azure>Suivant.
  2. Sélectionnez Cible spécifique > Azure App Service (Windows)>Suivant
  3. Connectez-vous au portail Azure.
  4. Sélectionnez le « + » vert pour Créer une instance d’Azure App Service

Paramètres d’App Service

Paramètre Valeur suggérée Description
Nom myASASharingService Donnez un nom unique à votre service
Nom de l’abonnement Sélectionnez votre abonnement Azure préféré
Groupe de ressources myResourceGroup ou sélectionnez-en un existant Un groupe de ressources est un conteneur logique dans lequel les ressources Azure, comme les applications web, les bases de données et les comptes de stockage, sont déployées et managées. Par exemple, vous pouvez choisir de supprimer le groupe de ressources complet ultérieurement en une seule étape.
Plan d’hébergement Sélectionnez Nouveau... et consultez le tableau ci-dessous Un plan App Service spécifie l’emplacement, la taille et les fonctionnalités de la batterie de serveurs web qui héberge votre application. Vous pouvez économiser de l’argent quand vous hébergez plusieurs applications en configurant les applications web pour partager un plan App Service. Les plans App Service définissent les éléments suivants :
  • Région (par exemple : Europe Nord, USA Est ou Asie Sud-Est)
  • Taille d’instance (petit, moyen ou grand)
  • Étendue de la mise à l’échelle (1 à 20 instances)
  • Référence (SKU) (Gratuit, Partagé, De base, Standard ou Premium)

Paramètres des plans d’hébergement

Paramètre Valeur suggérée Description
Plan d’hébergement MySharingServicePlan Donner un nom unique à votre plan d’hébergement
Emplacement USA Ouest Centre de données dans lequel l’application web est hébergée. Choisissez un emplacement le plus proche possible de l’emplacement physique qui sera utilisé par votre application
Taille Gratuit Niveau tarifaire déterminant les fonctionnalités d’hébergement
  1. Sélectionnez Créer pour créer le service App Service
  2. Une fois que le service d’application est créé, sélectionnez-le dans la liste « Instances App Service », puis sélectionnez Terminer
  3. Sous l’onglet SharingService : Publier, sélectionnez Publier

Une fois l’application web ASP.NET Core publiée sur Azure, vous pouvez accéder https://<your_app_name>.azurewebsites.net ou cliquer sur le lien en regard de Site : sous l’onglet SharingService : Publier. Copiez cette URL dans un éditeur de texte en vue de l’utiliser ultérieurement.

Screenshot of a published ASP.NET web app in Azure.

Configurer et déployer l’exemple d’application

Ouvrir un projet

Dans Unity, ouvrez le projet dans le dossier Unity. Il se peut qu’Unity signale une différence entre la version du projet et la version installée sur votre ordinateur. Cet avertissement ne pose pas de problème tant que votre version de l’éditeur Unity est plus récente que celle avec laquelle le projet a été créé. Si votre version est plus récente, sélectionnez Continuer. Si votre version est plus ancienne que celle dont le projet a besoin, cliquez sur Quitter, puis mettez à niveau votre éditeur Unity.

Screenshot of the Unity pane.

Configurer les paramètres de build

Ouvrez Build Settings (Paramètres de build) en sélectionnant File (Fichier)>Build Settings (Paramètres de build).

Dans la section Platform (Plateforme), sélectionnez Universal Windows Platform (Plateforme Windows universelle). Remplacez Target Device (Appareil cible) par HoloLens.

Sélectionnez Switch Platform (Changer de plateforme) pour passer à la plateforme Universal Windows Platform (Plateforme Windows universelle). Unity peut vous demander d’installer des composants de prise en charge UWP s’ils sont manquants.

Screenshot of the Unity Build Settings pane - HoloLens

Fermez la fenêtre Build Settings.

Configurer les informations de compte

L’étape suivante consiste à configurer l’application pour qu’elle utilise vos informations de compte. Vous avez copié les valeurs Clé de compte, ID de compte et Domaine de compte vers un éditeur de texte précédemment, dans la section Créer une ressource Spatial Anchors.

Dans le volet Projet, accédez à Assets\AzureSpatialAnchors.SDK\Resources.

Sélectionnez SpatialAnchorConfig. Dans le volet Inspecteur, entrez Account Key comme valeur de Clé de compte Spatial Anchors, Account ID comme valeur d’ID de compte Spatial Anchors, et Account Domain comme valeur de Domaine de compte Spatial Anchors.

Ouvrez la scène appelée AzureSpatialAnchorsLocalSharedDemo se trouvant dans Assets/AzureSpatialAnchors.Examples/Scenes/AzureSpatialAnchorsLocalSharedDemo en double-cliquant dessus dans le volet du projet

Dans le volet Projet, accédez à Assets\AzureSpatialAnchors.Examples\Resources.

Sélectionnez SpatialAnchorSamplesConfig. Ensuite, dans le volet Inspector (Inspecteur), entrez l’URL Sharing Anchors Service (à partir du déploiement Azure de votre application web ASP.NET) comme valeur pour Base Sharing Url. Ajoutez à l’URL avec /swagger/api/anchors. Ce que vous obtenez doit ressembler à ceci : https://<your_app_name>.azurewebsites.net/swagger/api/anchors.

Enregistrez la scène en sélectionnant File>Save.

Exporter et déployer l’application HoloLens

Ouvrez Build Settings (Paramètres de build) en sélectionnant File (Fichier)>Build Settings (Paramètres de build).

Sous Scenes In Build (Scènes dans la build), assurez-vous que toutes les scènes ont une coche à côté d’elles.

Sélectionnez Build. Dans la boîte de dialogue, sélectionnez un dossier où exporter le projet HoloLens Visual Studio.

À l’issue de l’exportation, un dossier avec le projet HoloLens exporté s’affiche.

Dans le dossier, double-cliquez sur HelloAR U3D.sln pour ouvrir le projet dans Visual Studio.

Remplacez Configuration de la solution par Mise en production, Plateforme de solution par x86, puis sélectionnez Appareil dans les options de cible de déploiement.

Si vous utilisez HoloLens 2, utilisez ARM64 comme plateforme de solution au lieu de x86.

Visual Studio configuration

Allumez l’appareil HoloLens, connectez-vous, puis connectez l’appareil au PC au moyen d’un câble USB.

Sélectionnez Déboguer>Démarrer le débogage pour déployer votre application et commencer le débogage.

Exécution de l’application

Dans l’application, sélectionnez LocalSharedDemo en utilisant les flèches, puis appuyez sur le bouton OK pour exécuter la démonstration. Suivez les instructions dans l’application pour placer et rappeler une ancre.

Avec Create & Share Anchor (Créer et partager une ancre), vous pouvez créer une ancre et l’enregistrer dans votre service de partage. En retour, vous obtenez pour celle-ci un identificateur que vous pouvez utiliser pour la récupérer à partir du service de partage. Vous pouvez ensuite exécuter le deuxième scénario, Localiser l’ancre partagée, à partir de votre appareil ou d’un autre.

Avec Localiser l’ancre partagée, vous pouvez localiser des ancres partagées précédemment en entrant l’identificateur mentionné plus tôt. Après avoir choisi votre scénario, l’application vous guide avec des instructions supplémentaires. Par exemple, vous serez invité à déplacer votre appareil pour collecter des informations sur l’environnement. Par la suite vous allez placer une ancre dans le monde, attendre son enregistrement, démarrer une nouvelle session, puis la localiser.

Nettoyer les ressources

Au cours des étapes précédentes, vous avez créé des ressources Azure au sein d’un groupe de ressources. Si vous ne pensez pas avoir besoin de ces ressources à l’avenir, vous pouvez les supprimer en supprimant le groupe de ressources.

Dans le menu ou la page d’accueil du portail Azure, sélectionnez Groupes de ressources. Ensuite, dans la page Groupes de ressources, sélectionnez myResourceGroup.

Dans la page myResourceGroup, assurez-vous que les ressources répertoriées sont bien celles que vous souhaitez supprimer.

Sélectionnez Supprimer le groupe de ressources, tapez myResourceGroup dans la zone de texte pour confirmer, puis sélectionnez Supprimer.

Étapes suivantes

Dans ce tutoriel, vous avez déployé une application web ASP.NET Core dans Azure, puis configuré et déployé une application Unity. Vous avez créé des ancres spatiales avec l’application et les avez partagées avec d’autres appareils en utilisant votre application web ASP.NET Core.

Vous pouvez améliorer votre application web ASP.NET Core afin qu’elle utilise Azure Cosmos DB pour rendre le stockage des identificateurs de vos ancres spatiales partagées permanent. En ajoutant la prise en charge d’Azure Cosmos DB, vous pouvez dès aujourd’hui créer une ancre avec votre application web ASP.NET Core. Ensuite, à partir de l’identificateur d’ancre stocké dans votre application web, vous pouvez faire en sorte que l’application relocalise l’ancre quelques jours plus tard.