Table of Contents

Faire en sorte que les casques prennent en charge EasyAR

Cet article explique comment utiliser le modèle de package d'extension pour casque du plugin EasyAR Sense Unity pour développer un package d'extension EasyAR prenant en charge les appareils de type casque.

Avant de commencer

Avant de commencer le développement, il est nécessaire de comprendre comment utiliser le plugin EasyAR Sense Unity.

  • Démarrage rapide
  • Exécuter les exemples AR Session, ImageTracking_Targets (suivi d'image) et SpatialMap_Dense_BallGame (carte spatiale dense), dont les effets d'exécution sont similaires sur téléphone et sur casque.

Le développement de plugin pour casque implique certaines fonctionnalités de base qu'il convient de maîtriser :

De plus, il est nécessaire de se familiariser avec le développement d'un package Unity.

Préparer l'appareil pour AR/MR

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

    S'assurer que les erreurs de suivi de l'appareil sont contrôlées. Certaines fonctionnalités d'EasyAR comme Mega peuvent réduire dans une certaine mesure les erreurs cumulées de l'appareil, mais des erreurs locales importantes peuvent également rendre les algorithmes d'EasyAR instables. En général, on attend une dérive du VIO inférieure à 1‰.

  • Préparer le système d'affichage

    S'assurer que lorsqu'un objet virtuel de même taille et contour qu'un objet réel est placé dans le monde virtuel, et que sa transformation relative par rapport à la caméra virtuelle correspond à celle de l'objet réel par rapport à l'appareil, l'objet virtuel s'aligne correctement sur l'objet réel et que le déplacement de l'appareil ou la rotation de la tête ne brise pas l'effet d'affichage. On peut s'inspirer de l'effet du Vision Pro.

  • Préparer le SDK de l'appareil

    S'assurer que des API fournissent des données d'image d'entrée externes. Ces données doivent être générées à deux et seulement deux instants précis dans le système, et il faut garantir qu'il n'y a pas de désalignement des données.

Utiliser le modèle de package d'extension pour casque

Utiliser la fenêtre Package Manager d'Unity pour installer le plugin via un fichier tarball local et importer EasyAR Sense Unity Plugin (package com.easyar.sense). Décompresser le modèle d'extension pour casque (package com.easyar.sense.ext.hmdtemplate) dans le répertoire Packages du projet Unity, et renommer le dossier Samples~ en Samples.

La structure de répertoires devrait alors ressembler à ceci :

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

Si nécessaire, il est possible d'importer EasyAR Sense Unity Plugin et de placer le modèle d'extension pour casque en utilisant toute méthode autorisée par Unity.

Si le modèle n'est pas utilisé, se référer au guide Unity pour créer un package personnalisé pour créer un nouveau package.

Si le SDK de l'appareil n'est pas organisé sous forme de package Unity, décompresser le modèle d'extension pour casque dans le dossier Assets d'Unity, puis supprimer du dossier décompressé le fichier package.json ainsi que tout fichier portant l'extension .asmdef. Noter que dans ce mode d'utilisation, les utilisateurs combinant le SDK de l'appareil et EasyAR ne pourront pas bénéficier d'une gestion de dépendances de version appropriée.

Finaliser l'extension d'entrée runtime

Suivre la méthode Créer une extension d'entrée pour les données d'image et de mouvement d'appareil, modifier Runtime/HMDTemplateFrameSource.cs et finaliser l'extension d'entrée adaptée au casque. C'est le principal travail de développement du package d'extension.

Finaliser le menu de l'éditeur

Modifier la chaîne "HMD Template" dans la classe MenuItems pour qu'elle représente le nom de l'appareil. Si d'autres fonctionnalités personnalisées dans l'éditeur sont nécessaires, d'autres scripts peuvent être ajoutés.

Lorsque les développeurs sélectionnent AR Session (EasyAR) dans la vue Hierarchy et cliquent avec le bouton droit, ces éléments de menu apparaissent :

  • EasyAR Sense > Extensions > Frame Source : [Nom de l'appareil] : ajoute une source d'images pour cet appareil à la session actuelle.
  • EasyAR Sense > Extensions > Frame Source : [Nom de l'appareil (keep it only)] : ajoute et ne conserve qu'une seule source d'images pour cet appareil dans la session actuelle.

alt text

Finaliser l'exemple d'application

L'exemple se trouve dans Samples/Combination_BasedOn_HMD. Pour plus de simplicité, l'exemple modèle ne contient aucun code, toutes les fonctionnalités AR étant réalisées par le contenu et la configuration de la scène.

  1. Ajouter au contenu de la scène le support pour l'exécution sur l'appareil.

    Astuce

    Si nécessaire, il est possible d'opérer à l'inverse : utiliser une scène exécutable sur l'appareil, puis ajouter les composants EasyAR et les autres objets des exemples à la scène.

  2. Modifier les objets destinés à être placés sous l'origine de la session.

    Si une origine de session est définie dans la scène, déplacer EasyARPanda et UI sous le nœud d'origine.

    alt text

    EasyARPanda fournit une référence pour le comportement de suivi de mouvement de l'appareil, ce qui aide à diagnostiquer les instabilités de suivi.

    Le texte entre parenthèses dans les noms de ces objets est une indication pour les développeurs d'extensions 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. Configurer le comportement des boutons HUD.

    Définir la source de contrainte de UI sur la caméra virtuelle pour garantir que les boutons HUD fonctionnent comme prévu.

    alt text

  4. Configurer la fonction de raycast du Canvas.

    Modifier le Canvas sous le nœud UI pour s'assurer que le raycast fonctionne, garantissant ainsi que tous les boutons et interrupteurs UI répondent comme prévu.

    Le modèle pré-ajoute déjà un Tracked Device Graphic Raycaster du XR Interaction Toolkit sous le nœud Canvas, visible après importation du package correspondant.

    alt text

    Si XR Interaction Toolkit n'est pas utilisé lors de l'exécution sur l'appareil, un avertissement de script manquant similaire à ci-dessous apparaîtra. Il peut alors être supprimé et remplacé par le composant raycaster requis par l'appareil.

    alt text

Prochaines étapes

Sujets connexes