Table of Contents

Choisir le mode de centre approprié

Choisir le bon mode de centre est essentiel pour la création de contenu. Ce texte explique comment obtenir et modifier le mode de centre, ainsi que les conseils pour le choisir.

Avant de commencer

  • Consultez Introduction à AR Session pour comprendre les concepts de base, la composition et le flux de travail d'une session.
  • Consultez Mode de centre de AR Session pour comprendre le concept de mode de centre et son influence sur le mouvement des objets dans la scène.

Obtenir les modes de centre disponibles

Lorsque la session s'exécute, seuls les modes de centre disponibles pour cette session apparaissent dans la liste déroulante Center du panneau Inspector. Si la session n'est pas lancée, tous les modes de centre s'affichent.

alt text

Cette image montre les modes de centre disponibles pour une session utilisant CameraDeviceFrameSource dans l'éditeur.

Dans le code, après l'assemble réussi de la session, vous pouvez obtenir la liste des modes de centre disponibles via la propriété ARSession.AvailableCenterMode.

Par exemple, le code suivant montre comment vérifier si un mode de centre est disponible dans la session actuelle :

if (Session.AvailableCenterMode.Contains(mode))
{
    // mode est disponible dans la session actuelle
}

Modifier le mode de centre

Ouvrez le panneau Inspector et choisissez le mode de centre souhaité dans la liste déroulante Center.

alt text

Dans le code, vous pouvez modifier le mode de centre via la propriété ARSession.CenterMode.

Par exemple, le code suivant montre comment faire défiler les modes de centre disponibles :

while (true)
{
    Session.CenterMode = (ARSession.ARCenterMode)(((int)Session.CenterMode + 1) % Enum.GetValues(typeof(ARSession.ARCenterMode)).Length);
    if (Session.AvailableCenterMode.Contains(Session.CenterMode)) { break; }
}

À chaque mise à jour de la session, le système vérifie si le mode de centre actuel est valide. S'il l'est, la session essaie immédiatement d'utiliser le nouveau mode.

Dans la vidéo ci-dessus, la session utilise d'abord le mode FirstTarget, avec comme objet central l'arbre de Noël (nuage de points bleu clair). Ensuite, nous modifions manuellement le mode de centre en Camera, et l'objet central devient la caméra (cône bleu). Pour la description détaillée, voir Mode de centre de AR Session.

Si le mode de centre modifié est invalide dans la session actuelle, la propriété CenterMode est automatiquement réglée sur le premier mode disponible (généralement FirstTarget ou SessionOrigin) et une ligne d'avertissement est écrite dans le journal :

Center mode {Value} is unavailable in this session, reset to {NewValue}.

Comment choisir le mode de centre

L'alignement avec des objets du monde réel est au cœur de la création AR, et le mode de centre détermine quel objet sert de référence pour calculer la position et l'orientation des autres objets de la scène. Choisir le bon mode de centre est donc crucial.

Conseils généraux

Dans beaucoup de cas, utiliser FirstTarget ou SpecificTarget avec target comme centre est plus pratique pour la création de contenu. Les points de référence des contenus placés sous target restent alors stables et ne sont pas perturbés inutilement par le déplacement de XR Origin ou de camera (par exemple, pour le calcul du système physique). Cela n'est toutefois pas absolu :

  • Si vous ne savez pas quel mode choisir, utilisez la valeur par défaut, c'est-à-dire le centre FirstTarget.
    Comme la plupart des fonctions AR comportent des erreurs et corrigent continuellement ces erreurs en cours d'exécution, des objets qui semblent immobiles dans le monde réel (par exemple target dans une carte spatiale sparse et XR Origin dans le motion tracking) peuvent en réalité se déplacer relativement dans l'espace virtuel. Dans ce cas, prendre target comme centre répond mieux aux besoins de création.

  • Cas de plusieurs target suivis en même temps
    Dans ce cas, à cause des erreurs de calcul, même si les objets du monde réel sont immobiles les uns par rapport aux autres, ces target peuvent aussi présenter un mouvement relatif. Le choix du centre dépend alors des besoins réels ; en général, le mode FirstTarget est plus approprié.

  • Quand utiliser le mode SessionOrigin
    SessionOrigin convient aux scènes où seul le motion tracking est actif, car XR Origin est alors le seul point de référence. Il convient aussi à certains cas spéciaux : si le fabricant du casque n'a pas correctement implémenté le point de référence du motion tracking, il faut utiliser le centre du monde Unity pour forcer le mode SessionOrigin.

  • Scénarios d'utilisation du mode Camera
    Le mode Camera convient mieux aux scènes où la caméra physique ne bouge pas (par exemple un jeu AR de type cartes avec une caméra fixe). Dans ce cas, ce mode facilite la création de contenu.

Modes de centre courants selon les fonctions AR

Lorsqu'on utilise certaines fonctions AR séparément, certains modes de centre sont plus courants. Le tableau ci-dessous récapitule les modes fréquemment utilisés :

Fonction Mode de centre courant
Mega FirstTarget ou SpecificTarget
Motion tracking SessionOrigin
Plane detection SessionOrigin
Sparse spatial map FirstTarget ou SpecificTarget
Dense spatial map SessionOrigin
Surface tracking FirstTarget ou SpecificTarget
Image tracking FirstTarget, SpecificTarget ou Camera
Cloud image recognition FirstTarget, SpecificTarget ou Camera
Object tracking FirstTarget, SpecificTarget ou Camera

Points à prendre en compte pour le développement multi-appareils

Lors du développement d'une application AR multi-appareils, il faut tenir compte du support des différents appareils pour les modes de centre.

  • Si vous ne ciblez que les téléphones et tablettes, il n'y a généralement pas de problème. Si vous avez besoin de SessionOrigin, assurez-vous que le motion tracking peut fonctionner.
  • Si vous devez prendre en charge un casque, soyez particulièrement attentif :
    • Consultez Modes de centre valides pour savoir quels modes sont pris en charge par les appareils que vous utilisez. Si vous utilisez une extension tierce, vérifiez aussi le OriginType utilisé.
    • Avec les appareils Rokid, évitez autant que possible UXR. XRI permet de rendre disponibles la plupart des modes de centre.
    • Sur les casques qui ne prennent pas en charge FirstTarget et SpecificTarget, il faut noter que la plupart des contenus, comme Mega ou le suivi d'image, ne peuvent pas rester fixes par rapport au système de coordonnées du monde Unity.

Contenu correctement affiché avec chaque mode de centre

Avertissement

Dans Unity AR, tout objet placé dans le système de coordonnées du monde Unity et dont le transform n'a pas été ajusté selon les composants de la session peut ne pas s'afficher correctement.

Si des modèles sont placés dans le système de coordonnées du monde, leur position et leur orientation peuvent ne correspondre à aucun objet réel. Le résultat peut sembler correct par hasard, ou donner l'impression de flotter ou de bouger partout.

Pour que le contenu s'affiche correctement avec n'importe quel mode de centre, la bonne méthode est :

  • placer toujours le contenu à afficher sous le nœud target correspondant, ou sous le nœud XR Origin si le contenu doit suivre le mouvement de XR Origin
  • ou aligner manuellement le contenu avec target ou XR Origin, mais effectuer cette opération après l'événement ARSession.PostSessionUpdate
Note

Cela ne garantit pas que tous les éléments fonctionnent parfaitement, car certaines fonctions Unity ne fonctionnent que dans le système de coordonnées du monde (par exemple le système physique). Le choix du bon mode de centre reste important.

Sujets connexes