ARCore pour Jetpack XR

Intégrez des contenus numériques dans le monde réel grâce aux fonctionnalités de perception.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
12 décembre 2024 - - - 1.0.0-alpha01

Déclarer des dépendances

Pour ajouter une dépendance à ARCore pour Jetpack XR, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez le dépôt Maven de Google.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha01")
}

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.0

Version 1.0.0-alpha01

12 décembre 2024

Publication d'androidx.xr.arcore:arcore-* 1.0.0-alpha01.

Fonctionnalités de la version initiale

Inspirée de la bibliothèque ARCore existante, la bibliothèque ARCore pour Jetpack XR permet d'intégrer du contenu numérique au monde réel. Cette bibliothèque inclut le suivi des mouvements, les ancrages persistants, les tests de détection de collision et l'identification des plans avec un libellé sémantique (par exemple, sol, murs et dessus de table). Consultez le guide du développeur pour en savoir plus sur l'utilisation d'ARCore pour Jetpack XR.

  • Session: ARCore pour Jetpack XR utilise Jetpack XR Runtime en interne pour alimenter ses fonctionnalités. Vous utiliserez une session pour interagir avec la plupart des API ARCore pour Jetpack XR. Veuillez donc consulter sa documentation.

  • Plane: utiliser des plans pour comprendre le monde qui vous entoure. Chaque plan est associé à un Label qui le décrit sémantiquement. Vous pouvez utiliser subscribe pour être averti des derniers avions détectés ou state pour être averti des modifications apportées à un avion spécifique.

  • Anchor: lien entre un objet virtuel et un emplacement réel. Les ancrages peuvent être associés à un emplacement spécifique dans l'espace (à l'aide de create) ou à un Trackable (à l'aide de createAnchor).

    • Les ancres peuvent être réutilisées d'une session à l'autre. Vous pouvez utiliser persist pour les stocker, getPersistedAnchorUuids pour les énumérer et load pour les récupérer. Assurez-vous de les unpersist une fois qu'elles ne sont plus utilisées.

    • Les ancrages sont interopérables entre ARCore pour Jetpack XR et Jetpack SceneCore. Vous pouvez créer un AnchorEntity à l'aide d'une ancre ou, si vous disposez d'un AnchorEntity existant, vous pouvez utiliser getAnchor pour récupérer son ancre de référence.

    • Proposez des interactions naturelles avec l'utilisateur à l'aide de hitTest. Un hitTest utilise un Ray pour déterminer les contenus avec lesquels il intersecte et pour créer un Anchor à partir de cet emplacement. Envisagez de réaliser un hitTest à partir d'un InputEvent.

Problèmes connus

  • Il peut s'écouler un certain temps entre l'appel de unpersist et la suppression de son UUID des résultats renvoyés par getPersistedAnchorUuids.

  • create ne vérifie pas que le système dispose de suffisamment de ressources pour renvoyer de nouveaux ancrages. Créer un nombre excessif d'ancrages peut entraîner un plantage.

  • Il n'est actuellement pas possible de persister une ancre qui était précédemment persistante et non persistante.

  • L'utilisation dans l'émulateur est prise en charge, mais le comportement peut ne pas être aussi stable que lors de l'exécution sur un appareil réel. En particulier, les appels à create peuvent échouer en raison d'une erreur de code natif et arrêter immédiatement l'activité.

  • Dans certains cas, une RuntimeException peut être générée par erreur lors de l'appel de persist avec le message "L'ancre n'a pas été conservée". Dans ce cas, la fonction aboutit toujours et l'ancre est conservée. Pour contourner le problème, nous vous recommandons d'encapsuler l'appel à persist dans un bloc try.