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.

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.

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 exempletargetdans une carte spatiale sparse etXR Origindans le motion tracking) peuvent en réalité se déplacer relativement dans l'espace virtuel. Dans ce cas, prendretargetcomme centre répond mieux aux besoins de création.Cas de plusieurs
targetsuivis 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, cestargetpeuvent 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, carXR Originest 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
targetcorrespondant, ou sous le nœudXR Originsi le contenu doit suivre le mouvement de XR Origin - ou aligner manuellement le contenu avec
targetouXR 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.