Ancres spatiales locales dans UnrealLocal Spatial Anchors in Unreal

Les ancres spatiales enregistrent les hologrammes en place dans l’espace réel entre les sessions d’application comme des ARPins.Spatial anchors save holograms in real-world space between application sessions as ARPin s. Une fois enregistrés dans le magasin d’ancres HoloLens, les ARPins peuvent être chargés dans de futures sessions et constituent une option de secours idéale en l’absence de connectivité Internet.Once saved in the HoloLens' anchor store, ARPin's can be loaded in future sessions and are an ideal fallback option when there's no internet connectivity.

Notes

Les fonctions des ancres d’UE 4.25 sont obsolètes dans 4.26 et doivent être remplacées par des fonctions plus récentes.Anchor functions from UE 4.25 are obsolete in 4.26 and should be replaced with newer ones.

Important

Les ancres locales sont stockées sur l’appareil, alors que les ancres spatiales Azure sont stockées dans le cloud.Local anchors are stored on device, while Azure Spatial Anchors are stored in the cloud. Si vous envisagez d’utiliser les services cloud Azure pour stocker vos ancres, nous avons créé un guide qui vous aidera à intégrer Azure Spatial Anchors.If you're looking to use Azure cloud services to store your anchors, we have a document that can walk you through integrating Azure Spatial Anchors. Notez que vous pouvez avoir des ancres locales et Azure dans le même projet sans conflit.Note that you can have local and Azure anchors in the same project without conflict.

Vérification du magasin d’ancresChecking the anchor store

Avant d’enregistrer ou de charger des ancres, vous avez besoin de vérifier si le magasin d’ancres est prêt.Before saving or loading anchors, you need to check if the anchor store is ready. Tout appel d’une des fonctions d’ancrage HoloLens échoue si le magasin d’ancres n’est pas prêt.Calling any of the HoloLens anchor functions before the anchor store is ready won't succeed.

Enregistrement des ancresSaving anchors

Quand l’application a un composant que vous avez besoin de relier au monde réel, ce composant peut être enregistré dans le magasin d’ancres avec la séquence suivante :Once the application has a component you need to pin to the world, it can be saved to the anchor store with the following sequence:

Décomposons cette séquence :Breaking this down:

  1. Générez un acteur à un emplacement connu.Spawn an actor at a known location.

  2. Créez un ARPin avec cet emplacement et un nom basé sur la classe de l’acteur.Create an ARPin with that location and a name based on the actor’s class.

  3. Ajoutez l’acteur au ARPin et enregistrez le repère dans le magasin d’ancres HoloLens.Add the actor to the ARPin and save the pin to the HoloLens anchor store.

    • Le nom d’ancre que vous choisissez doit être unique. Dans cet exemple, il s’agit de l’horodatage actuel.The anchor name you choose must be unique, which in this example is the current timestamp.
  4. Si l’ancre est correctement enregistrée dans le magasin d’ancres, vous pouvez la voir dans le portail d’appareil HoloLens sous System > Map Manager > Anchor Files Saved On Device.If the anchor is successfully saved to the anchor store, you can see it in the HoloLens device portal under System > Map manager > Anchor Files Saved On Device.

Chargement des ancresLoading anchors

Au démarrage d’une application, vous pouvez utiliser le blueprint ci-dessous pour rétablir les composants à leurs positions d’ancrage :When an application starts, you can use the following blueprint to restore components to their anchor locations:

Décomposons cette séquence :Breaking this down:

  1. Effectuez une itération sur toutes les ancres du magasin d’ancres.Iterate over all of the anchors in the anchor store.

  2. Générez un acteur au niveau de l’identité.Spawn an actor at identity.

  3. Épinglez cet acteur au ARPin à partir du magasin d’ancres.Pin that actor to the ARPin from the anchor store.

    • Il est important de générer l’acteur au niveau de l’identité, car l’ancre est chargée de repositionner l’hologramme dans l’environnement selon l’emplacement auquel il a été enregistré.It's important to spawn the actor at identity since the anchor is responsible for repositioning the hologram in the world based on where it was saved. Toute transformation ajoutée ici va ajouter un décalage à l’ancre.Any transform added here will add an offset to the anchor.

L’ID de l’ancre est également demandé afin que différents acteurs puissent être générés en fonction du nom enregistré de l’ancre.The anchor ID is also queried so that different actors can be spawned depending on the anchor’s saved name.

Suppression des ancresRemoving anchors

Lorsque vous n’avez plus besoin d’une ancre, vous pouvez l’effacer individuellement ou effacer la totalité du magasin d’ancres avec les composants Remove ARPin from WMRAnchor Store et Remove All ARPins from WMRAnchor Store.When you're done with an anchor, you can clear individual anchors or the entire anchor store with the Remove ARPin from WMRAnchor Store and Remove All ARPins from WMRAnchor Store components.

Notes

N’oubliez pas que les ancres spatiales sont encore en version bêta, donc n’hésitez pas à vous tenir au courant des dernières informations et fonctionnalités.Bear in mind that Spatial Anchors are still in Beta, so be sure to check back for updated information and features.

Point de contrôle de développement suivantNext Development Checkpoint

Si vous suivez le parcours de développement Unreal que nous avons mis en place, vous explorez actuellement les composants de base du MRTK.If you're following the Unreal development journey we've laid out, you're in the midst of exploring the MRTK core building blocks. À partir d’ici, vous pouvez passer au composant suivant :From here, you can continue to the next building block:

Ou accéder aux API et fonctionnalités de la plateforme Mixed Reality :Or jump to Mixed Reality platform capabilities and APIs:

Vous pouvez revenir aux points de contrôle de développement Unreal à tout moment.You can always go back to the Unreal development checkpoints at any time.

Voir aussiSee also