Diagnostic et résolution : Problème de contenu non affiché dans l'application
« Je vois le monde réel, mais le contenu virtuel n'apparaît pas. » C'est l'un des problèmes les plus courants dans le développement AR. Ce problème peut provenir de plusieurs étapes, depuis la localisation Mega elle-même jusqu'à votre logique de rendu.
Ce guide vous aidera à résoudre systématiquement ce problème.
Processus de dépannage : De l'externe vers l'interne
Suivez le principe « d'abord externe, puis interne » pour localiser efficacement le problème. Exécutez les étapes suivantes dans l'ordre :
Étape 1 : Valider l'état de la localisation Mega avec des outils externes (sans modification de code)
Avant d'examiner votre code d'application, confirmez d'abord que le service de localisation Mega lui-même fonctionne correctement. C'est l'étape la plus cruciale, car elle vous permet de déterminer si le problème vient de la localisation Mega ou de l'intégration dans votre application (comme le rendu).
Utiliser Mega Toolbox (application mobile)
- Installez l'application Mega Toolbox sur votre téléphone de test (si ce n'est pas déjà fait).
- Ouvrez l'application et accédez à la fonction « Test de localisation sur site » ou similaire.
- Connectez-vous avec votre compte et sélectionnez la même librairie de localisation que celle utilisée par votre application.
- Emmenez le téléphone exactement à l'emplacement où le contenu ne s'affiche pas dans votre application.
- Observez le résultat :
- Si Toolbox se localise avec succès (état affiché
Found) : Bravo ! Le service de localisation Mega fonctionne normalement. Le problème se situe à l'intérieur de votre application, en particulier dans la logique de rendu et d'affichage du contenu. Passez à l'étape 2. - Si Toolbox échoue à se localiser (état affiché
NotFoundou autre) : Le problème vient du service de localisation lui-même. Reportez-vous à la section suivante pour une analyse approfondie.
- Si Toolbox se localise avec succès (état affiché
Utiliser la simulation PC (si EIF a été collecté)
- Si vous avez enregistré des données EIF pour cette scène, vous pouvez les rejouer dans l'éditeur Unity sur PC en utilisant l'outil de validation
session. - Observez le résultat :
- Si la localisation réussit lors de la relecture (état affiché
Found) : Le problème vient de votre code d'application ou de l'environnement spécifique à l'appareil. - Si la localisation échoue lors de la relecture (état affiché
NotFoundou autre) : Le problème vient du service de localisation lui-même. Reportez-vous à la section suivante pour une analyse approfondie.
- Si la localisation réussit lors de la relecture (état affiché
- Si vous avez enregistré des données EIF pour cette scène, vous pouvez les rejouer dans l'éditeur Unity sur PC en utilisant l'outil de validation
Étape 2 : Vérifier la logique de rendu et de contenu à l'intérieur de l'application
Si l'étape 1 confirme que le service de localisation Mega fonctionne normalement, alors le problème se situe dans le code de votre application. Vérifiez les points suivants :
Le contenu est-il placé sous le nœud correct ? :
- Avez-vous correctement placé vos objets 3D sous les nœuds
MegaBlocks>Block_*générés automatiquement par l'outil ? - Vérifiez la hiérarchie entre le contenu et les nœuds Block pour vous assurer que le rendu du contenu virtuel est correctement positionné à l'exécution.
- Avez-vous correctement placé vos objets 3D sous les nœuds
Le Block Root du MegaTracker est-il correctement configuré ? :
- Développez
AR Sessionet vérifiez que leBlock RootdansMega Trackerpointe bien vers le nœudMegaBlocksgénéré par l'outil.
- Développez
Le nœud MegaBlocks a-t-il été modifié ? :
- Assurez-vous de ne pas avoir modifié le nom des nœuds
Block_*et de ne pas avoir changé les valeurs dans leurs propriétéslocal transform.
- Assurez-vous de ne pas avoir modifié le nom des nœuds
L'écoute des événements est-elle correcte ? :
- Avez-vous modifié la logique de gestion des rappels de localisation dans
MegaTracker? - Votre code instancie-t-il ou affiche-t-il le contenu virtuel uniquement après le déclenchement de l'événement signalant un état de localisation réussi ?
- Avez-vous modifié la logique de gestion des rappels de localisation dans
Rendu du casque et transparence :
- Votre objet virtuel est-il masqué par d'autres objets ? Vérifiez la file de rendu (rendering queue) et le Shader.
- Si vous utilisez un appareil VST (vidéo see-through), vérifiez que votre rendu est correctement superposé au flux vidéo.
- Si vous utilisez un appareil OST (optical see-through), vérifiez si le contenu est difficile à voir en raison d'un éclairage ambiant trop fort.
Problème avec le contenu lui-même :
- Le Prefab que vous instanciez a-t-il un problème ? Par exemple, modèle manquant, erreur de Shader, échelle à 0, etc. Essayez de placer manuellement le même objet dans la scène pour voir s'il s'affiche correctement.
Analyse des causes courantes d'échec de localisation et recommandations d'amélioration
Si vous avez constaté dans l'étape 1 que Mega Toolbox ne parvient pas non plus à se localiser, examinez et résolvez le problème de localisation. Voici les causes courantes et les solutions :
Cause 1 : La carte ne correspond pas à l'environnement
L'environnement réel a considérablement changé par rapport à celui capturé lors de la cartographie, ou la zone où se produit le problème n'était pas couverte lors de la capture, ou la carte elle-même est erronée.
Recommandations :- Assurez-vous que la carte chargée dans votre librairie de localisation correspond à l'espace physique actuel.
- Si l'environnement a été modifié (rénovation, changement de disposition), recapturez et régénérez la carte.
- Si la zone problématique n'était pas couverte lors de la capture initiale, régénérez la carte via une mise à jour complémentaire.
Cause 2 : Environnement d'initialisation médiocre
Lancement de l'application dans une zone pauvre en textures (mur uni, sol).
Recommandations :- Guidez les utilisateurs pour lancer l'application dans des zones riches en textures afin d'aider le système à effectuer la localisation initiale rapidement.
- Donnez des instructions claires dans l'UI de l'application, par exemple « Levez le téléphone et regardez autour de vous ».
Cause 3 : Problème réseau ou de service
La latence réseau provoque des délais d'expiration des requêtes vers le service de localisation, ou le service de localisation lui-même rencontre une panne, dépasse sa limite d'utilisation concurrente, etc. Pour ce dernier cas, contactez-nous rapidement.Cause 4 : Atteinte des limites de l'algorithme
La localisation Mega repose sur des algorithmes avancés de vision par ordinateur et d'IA, mais elle n'est pas infaillible et possède des limites. Si des échecs de localisation persistent dans certains scénarios ou emplacements, vous pouvez nous les signaler via des captures d'écran, des enregistrements de données EIF, etc., pour nous aider à améliorer et itérer continuellement l'algorithme.
De plus, il est important de noter que la localisation Mega prend du temps, généralement 1 à 2 secondes. Compte tenu de la complexité des scénarios réels (congestion réseau, forte concurrence, ralentissement dû à la chaleur du téléphone, etc.), ce délai peut être plus long. Par conséquent, concevez dans votre application une interface de chargement/attente claire, indiquant à l'utilisateur « Localisation en cours... », pour éviter qu'il ne pense que le service est hors ligne ou que la localisation est impossible.
Note
- La première localisation est généralement plus lente que les suivantes car le système doit charger le contenu correspondant après un succès initial. C'est normal.
- Déplacer rapidement l'appareil peut entraîner une perte de localisation. Guidez les utilisateurs à déplacer l'appareil de manière stable.
Résumé et meilleures pratiques
- Toujours valider d'abord avec des outils externes : C'est le moyen le plus rapide de circonscrire le problème à la « localisation » ou au « rendu ».
- Établir des attentes utilisateur raisonnables : Utilisez des invites UI pour informer l'utilisateur que la localisation prend du temps et guidez-le vers un environnement approprié.
- Porter une attention particulière à la logique de contenu : Assurez-vous que vos paramètres, comme le liage du contenu, sont corrects.
- Utiliser judicieusement les journaux : Afficher des journaux aux points clés (déclenchement d'événements, acquisition de la pose, état des réponses) peut vous aider à localiser rapidement les problèmes de logique dans votre code.
Grâce à ce dépannage systématique, vous devriez pouvoir résoudre la grande majorité des problèmes de « contenu non affiché ». Si le problème persiste, préparez les données EIF et les journaux, et soumettez un rapport détaillé via notre formulaire de Signalement de problème.