Table of Contents

Faire en sorte que le casque prenne en charge EasyAR

Cet article explique comment utiliser le modèle de paquet d’extension pour casque d’EasyAR Sense Unity Plugin afin de développer un paquet d’extension EasyAR compatible avec les appareils de type casque.

Avant de commencer

Avant d’entrer dans le développement, il faut d’abord comprendre comment utiliser EasyAR Sense Unity Plugin.

  • Démarrage rapide
  • Exécutez l’exemple AR Session, l’exemple de suivi d’image ImageTracking_Targets et l’exemple de carte spatiale dense SpatialMap_Dense_BallGame ; leur fonctionnement sur téléphone et sur casque est similaire.

Le développement du plugin pour casque impliquera des fonctions de base ; il faut donc d’abord connaître ces éléments :

Par ailleurs, il faut aussi être familier avec le développement d’un package Unity.

Préparer l’appareil pour l’AR/MR

  • Préparer le système de suivi de mouvement/VIO

    Assurez-vous que l’erreur de suivi de l’appareil reste maîtrisée. Certaines fonctions EasyAR, comme Mega, peuvent dans une certaine mesure réduire l’erreur accumulée de l’appareil, mais une forte erreur locale rendra aussi les algorithmes EasyAR instables. En général, nous attendons une dérive VIO inférieure à 1‰.

  • Préparer le système d’affichage

    Assurez-vous que lorsqu’un objet virtuel ayant la même taille et le même contour qu’un objet réel est placé dans le monde virtuel, et que la relation de transformation relative entre lui et la caméra virtuelle est identique à la relation de transformation entre l’objet réel correspondant et l’appareil dans le monde réel, l’objet virtuel puisse être affiché de manière alignée sur l’objet réel et que le déplacement de l’appareil ou le fait de tourner la tête ne rompe pas l’effet d’affichage. Vous pouvez vous référer à l’effet de Vision Pro.

  • Préparer le SDK de l’appareil

    Assurez-vous qu’il existe déjà une API capable de fournir des données de trames d’entrée externes. Ces données doivent être produites par deux, et seulement deux, instants dans le système, et il faut s’assurer qu’aucune situation ne survienne où les données ne peuvent pas être alignées.

Utiliser le modèle d’extension pour casque

Importez EasyAR Sense Unity Plugin (package com.easyar.sense) via la fenêtre Package Manager de Unity, en utilisant l’installation depuis un fichier tarball local. Décompressez le modèle d’extension pour casque (package com.easyar.sense.ext.hmdtemplate) dans le répertoire Packages du projet Unity, puis renommez le dossier Samples~ en Samples.

Vous devriez alors voir une structure de répertoires comme celle-ci :

.
├── Assets
└── Packages
    └── com.easyar.sense.ext.hmdtemplate
        ├── CHANGELOG.md
        ├── Documentation~
        ├── Editor
        ├── LICENSE.md
        ├── package.json
        ├── Runtime
        └── Samples
            └── Combination_BasedOn_HMD
Astuce

Si nécessaire, vous pouvez utiliser n’importe quelle méthode autorisée par Unity pour importer EasyAR Sense Unity Plugin et héberger le modèle d’extension pour casque.

Si vous n’utilisez pas le modèle, vous pouvez aussi consulter le guide Unity pour créer des packages personnalisés afin de créer un nouveau package.

Si le SDK de l’appareil n’est pas organisé sous forme de package Unity, vous devez décompresser le modèle d’extension pour casque dans le dossier Assets du projet Unity, puis supprimer du contenu extrait le fichier package.json ainsi que tout fichier portant l’extension .asmdef. Notez que, dans ce mode d’utilisation, les utilisateurs qui combinent le SDK de l’appareil avec EasyAR ne pourront pas obtenir une dépendance de version raisonnable.

Compléter l’extension d’entrée à l’exécution

En suivant la méthode de création d’une extension d’entrée pour des données de mouvement d’appareil et d’image, modifiez Runtime/HMDTemplateFrameSource.cs et complétez l’extension d’entrée adaptée au casque. C’est le principal travail de développement du paquet d’extension.

Compléter le menu de l’éditeur

Modifiez la chaîne "HMD Template" dans la classe MenuItems pour qu’elle corresponde au nom de l’appareil. Si vous avez besoin d’autres fonctions personnalisées de l’éditeur, vous pouvez aussi ajouter d’autres scripts.

Lorsque le développeur sélectionne AR Session (EasyAR) dans la vue Hierarchy et fait un clic droit, ces éléments de menu apparaissent :

  • EasyAR Sense > Extensions > Frame Source : [Device Name] : ajoute une source de trames de cet appareil à la session actuelle.
  • EasyAR Sense > Extensions > Frame Source : [Device Name (keep it only)] : ajoute une source de trames de cet appareil à la session actuelle et n’en conserve qu’une seule.

alt text

Compléter l’exemple d’application

L’exemple se trouve dans Samples/Combination_BasedOn_HMD. Pour simplifier, le modèle d’exemple ne contient pas de code ; toutes les fonctions AR peuvent être réalisées uniquement avec le contenu de la scène et la configuration.

  1. Ajoutez à la scène du contenu compatible avec l’exécution sur l’appareil.

    Astuce

    Si nécessaire, vous pouvez aussi procéder dans l’autre sens : utiliser une scène qui peut s’exécuter sur l’appareil, puis y ajouter les composants EasyAR et les autres objets de la scène d’exemple.

  2. Modifiez les objets conçus pour être placés sous l’origine de la session.

    Si la scène définit une origine de session, déplacez EasyARPanda et UI sous le nœud d’origine.

    alt text

    EasyARPanda fournira une référence du comportement de suivi du mouvement de l’appareil, ce qui aide à identifier la cause lorsque le suivi est instable.

    Le texte entre parenthèses dans le nom de ces objets est un indice destiné au développeur de l’extension et peut être supprimé :

    • (Move into Origin if there is any)
    • (Move into Origin if there is any, set constraint source to your rendering camera)
  3. Configurez le comportement du bouton HUD.

    Définissez la constraint source de UI sur la caméra virtuelle afin de garantir que les boutons du HUD fonctionnent comme prévu.

    alt text

  4. Configurez la fonction de raycast de Canvas.

    Modifiez le Canvas sous le nœud UI pour vous assurer que le raycast fonctionne et que tous les boutons et interrupteurs de l’interface fonctionnent comme prévu.

    Le modèle ajoute déjà à l’avance le Tracked Device Graphic Raycaster du XR Interaction Toolkit sous le nœud Canvas ; après import du package correspondant, vous pouvez le voir.

    alt text

    Si, lors de l’exécution sur l’appareil, vous n’utilisez pas le XR Interaction Toolkit, vous verrez un avertissement similaire à celui ci-dessous concernant un script manquant ; vous pouvez le supprimer et ajouter le composant raycaster requis par l’appareil.

    alt text

Étapes suivantes

Sujets connexes