Partager via


Verrouillage mondial et ancres spatiales dans Unity

Image héros des outils de verrouillage mondial

L’obtention de vos hologrammes pour rester en place, se déplacer avec vous ou dans certains cas se positionner par rapport à d’autres hologrammes est une grande partie de la création d’applications de réalité mixte. Cet article vous guidera dans notre solution recommandée à l’aide de World Locking Tools, mais nous aborderons également la configuration manuelle des ancres spatiales dans vos projets Unity. Avant de passer à n’importe quel code, il est important de comprendre comment Unity gère l’espace de coordonnées et les ancres dans son propre moteur.

Systèmes de coordonnées à l’échelle mondiale

Aujourd’hui, lors de l’écriture de jeux, d’applications de visualisation de données ou d’applications de réalité virtuelle, l’approche classique consiste à établir un système de coordonnées mondial absolu auquel toutes les autres coordonnées peuvent être mappées de manière fiable. Dans cet environnement, vous pouvez toujours trouver une transformation stable qui définit une relation entre deux objets de ce monde. Si vous n’avez pas déplacé ces objets, leurs transformations relatives restent toujours identiques. Ce type de système de coordonnées global est facile à obtenir directement lors du rendu d’un monde purement virtuel où vous connaissez toute la géométrie à l’avance. Les applications VR à l’échelle de la salle établissent aujourd’hui généralement ce type de système de coordonnées à l’échelle de la salle absolue avec son origine sur le sol.

En revanche, un appareil de réalité mixte non attaché tel que HoloLens a une compréhension dynamique basée sur les capteurs du monde, en ajustant continuellement ses connaissances au fil du temps de l’environnement de l’utilisateur au fur et à mesure qu’il marche plusieurs mètres sur un étage entier d’un bâtiment. Dans une expérience à l’échelle mondiale, si vous avez placé tous vos hologrammes dans un système de coordonnées rigide naïve, ces hologrammes finiraient par dériver au fil du temps, soit en fonction du monde, soit par rapport à l’autre.

Par exemple, le casque peut croire actuellement deux emplacements dans le monde à 4 mètres d’écart, puis affiner ultérieurement cette compréhension, en apprenant que les emplacements sont en fait de 3,9 mètres à part. Si ces hologrammes avaient initialement été placés de 4 mètres à part dans un seul système de coordonnées rigides, l’un d’entre eux apparaît toujours 0,1 mètres de loin du monde réel.

Vous pouvez placer manuellement des ancres spatiales dans Unity pour maintenir la position d’un hologramme dans le monde physique lorsque l’utilisateur est mobile. Toutefois, cela sacrifie la cohérence de soi au sein du monde virtuel. Différentes ancres se déplacent constamment par rapport à l’autre, et passent également par l’espace de coordonnées global. Dans ce scénario, les tâches simples telles que la disposition deviennent difficiles. La simulation physique peut également poser problème.

World Locking Tools (WLT) vous permet de tirer le meilleur des deux mondes, en stabilisant un système de coordonnées rigide unique à l’aide d’une offre interne d’ancres spatiales réparties dans toute la scène virtuelle à mesure que l’utilisateur se déplace. WLT analyse les coordonnées de la caméra et de ces ancres spatiales chaque image. Au lieu de modifier les coordonnées de tout dans le monde pour compenser les corrections dans les coordonnées de la tête de l’utilisateur, WLT corrige simplement les coordonnées de la tête à la place.

Choisir votre approche de verrouillage mondial

Si possible, utilisez World Locking Tools pour le positionnement de l’hologramme.

World Locking Tools fournit un système de coordonnées stable qui réduit les incohérences visibles entre les marqueurs virtuels et réels. World Locking Tools verrouille la scène entière avec un pool partagé d’ancres, plutôt que de verrouiller chaque groupe d’objets avec la propre ancre individuelle du groupe.

World Locking Tools gère automatiquement la création et la gestion internes des ancres spatiales. Vous n’avez pas besoin d’interagir avec ARAnchorManager ou WorldAnchor pour conserver vos hologrammes verrouillés dans le monde.

  • Pour Unity 2019/2020 à l’aide d’OpenXR ou du plug-in Windows XR, utilisez ARAnchorManager.
  • Pour les anciennes versions d’Unity ou les projets WSA, utilisez WorldAnchor.

Configurer le verrouillage mondial

Pour commencer à utiliser World Locking Tools, téléchargez Mixed Reality Feature Tool. Pour en savoir plus sur les concepts de base, consultez la page de documentation principale des outils World Locking Tools pour obtenir des liens vers Vue d’ensemble, Démarrage rapide et autres rubriques utiles.

Installation automatisée

Lorsque votre projet est prêt à être exécuté, exécutez l’utilitaire de configuration de scène à partir de Mixed Reality > World Locking Tools :

Éditeur Unity avec le menu Mixed Reality Toolkit sélectionné

Important

L’utilitaire de configuration de scène peut être réexécuté à tout moment. Par exemple, il doit être réexécuté si la cible de réalité augmentée est passée de Hérité à XR SDK. Si la scène est déjà correctement configurée, l'exécution de l'utilitaire n'a aucun effet.

Visualiseurs

Au cours du développement précoce, l’ajout de visualiseurs peut être utile pour vous assurer que WLT est configuré et fonctionne correctement. Ils peuvent être supprimés pour des raisons de performance de production ou si, pour une raison quelconque, ils ne sont plus nécessaires, en utilisant l'utilitaire Remove visualizers. Vous trouverez plus d’informations sur les visualiseurs dans la documentation des outils.

Verrouillage du monde persistant

Les ancres spatiales enregistrent les hologrammes dans un espace réel entre les sessions d’application. Une fois enregistrés dans le magasin d’ancres HoloLens, les ancres spatiales sont trouvées et chargées dans différentes sessions et constituent un secours idéal en l’absence de connectivité Internet.

Important

Les ancres locales sont stockées sur l’appareil, alors que les ancres spatiales Azure sont stockées dans le cloud. Vous pouvez avoir des ancres locales et Azure dans le même projet sans conflit. Pour plus d’informations sur l’intégration de services cloud Azure pour stocker vos ancres, consultez Azure Spatial Anchors.

Par défaut, World Locking Tools restaure le système de coordonnées d’Unity par rapport au monde physique sur les sessions sur les appareils qui prennent en charge la persistance des ancres spatiales locales. Pour qu’un hologramme apparaisse dans le même endroit dans le monde physique après avoir quitté et réexécuté l’application, l’application doit uniquement restaurer la même pose sur l’hologramme.

Composant de contexte de verrouillage mondial dans l’inspecteur Unity

Si l’application a besoin d’un contrôle plus fin, vous pouvez désactiver l’enregistrement automatique et le chargement automatique dans l’inspecteur et gérer la persistance à partir d’un script. Pour plus d’informations, consultez Conserver les systèmes de coordonnées spatiales.

World Locking Tools prend en charge la persistance d’ancre locale uniquement sur les appareils HoloLens. Pour les appareils Android, iOS et HoloLens, intégrez Azure Spatial Anchors pour prendre en charge la persistance et le partage d’espaces de coordonnées entre les sessions et les appareils. Pour plus d’informations et d’exemples utilisant World Locking Tools avec Azure Spatial Anchors, consultez World Locking Tools (WLT) combiné à Azure Spatial Anchors (ASA).

Étapes suivantes

Partagez un espace de coordonnées verrouillé dans le monde :

En savoir plus sur le mappage spatial :

Revenez aux points de contrôle de développement Unity :

Voir aussi