Ce guide présente le développement avec Unity pour Android XR. Android XR fonctionne avec les outils et fonctionnalités que vous connaissez déjà dans Unity. Comme la compatibilité d'Unity avec Android XR repose sur OpenXR, de nombreuses fonctionnalités décrites dans la présentation d'OpenXR sont également compatibles avec Unity.
Ce guide vous explique :
- Prise en charge d'Android XR par Unity
- Principes de base d'Unity XR
- Développer et publier des applications pour Android XR
- Packages Unity pour Android XR
- Unity OpenXR : package Android XR
- Extensions Android XR pour Unity
- Éléments à prendre en compte concernant les fonctionnalités et la compatibilité
- Entrée et interaction
Compatibilité Unity avec Android XR
Lorsque vous créez des applications Unity pour Android XR, vous pouvez profiter des outils et des fonctionnalités de réalité mixte des dernières versions d'Unity 6. Cela inclut des modèles de réalité mixte qui utilisent XR Interaction Toolkit, AR Foundation et OpenXR Plugin pour vous aider à vous lancer rapidement. Lorsque vous créez des applications avec Unity pour Android XR, nous vous recommandons d'utiliser le pipeline de rendu universel (URP) comme pipeline de rendu et Vulkan comme API Graphics. Ces fonctionnalités vous permettent de profiter de certaines fonctionnalités graphiques d'Unity, qui ne sont compatibles qu'avec Vulkan. Pour savoir comment configurer ces paramètres, consultez le guide de configuration du projet.
Principes de base d'Unity XR
Si vous débutez avec Unity ou le développement XR, vous pouvez consulter le manuel XR d'Unity pour comprendre les concepts et les workflows XR de base. Le manuel XR contient des informations sur :
- Plug-ins de fournisseur XR, y compris Unity OpenXR : Android XR et les extensions Android XR pour Unity
- Packages d'assistance XR pour ajouter des fonctionnalités supplémentaires au niveau de l'application
- Un guide d'architecture XR qui décrit la pile technologique Unity XR et les sous-systèmes XR
- Configurer un projet XR
- Compiler et exécuter des applications XR
- Conseils sur les graphismes XR, y compris le pipeline de rendu universel, le rendu stéréoscopique, le rendu fovéal, les régions de rendu multivues et le timing des frames VR
- Guidage audio XR, y compris la compatibilité avec les spatialiseurs audio
Développer et publier des applications pour Android
Unity fournit une documentation détaillée sur le développement, la création et la publication pour Android, qui aborde des sujets tels que les autorisations Android dans Unity, les paramètres de compilation Android, la création de votre application pour Android et la distribution sur Google Play.
Packages Unity pour Android XR
Deux packages permettent de créer des applications Unity pour Android XR. Ces deux packages sont des plug-ins de fournisseur XR qui peuvent être activés via le package XR Plug-in Management d'Unity. Le gestionnaire de plug-ins XR ajoute des paramètres de projet pour gérer et aider à charger, initialiser, configurer et compiler les plug-ins XR. Pour permettre à votre application d'exécuter des fonctionnalités OpenXR au moment de l'exécution, le projet doit avoir ces fonctionnalités activées via le gestionnaire de plug-ins.
Cette image montre un exemple d'emplacement où vous pouvez activer ces groupes de fonctionnalités dans l'éditeur Unity.
Unity OpenXR Android XR
Le package Unity OpenXR Android XR est un plug-in XR permettant d'ajouter la compatibilité Android XR à Unity. Ce plug-in XR fournit la majorité de la compatibilité Android XR pour Unity et permet la compatibilité des appareils Android XR pour les projets AR Foundation. AR Foundation est conçu pour les développeurs qui souhaitent créer des expériences de RA ou de réalité mixte. Il fournit l'interface pour les fonctionnalités de RA, mais n'implémente aucune fonctionnalité lui-même. Le package Unity OpenXR Android XR fournit l'implémentation. Pour commencer à utiliser ce package, consultez le manuel du package, qui contient un guide de démarrage.
Extensions Android XR pour Unity
Les extensions Android XR pour Unity complètent le package Unity OpenXR Android XR et incluent des fonctionnalités supplémentaires pour vous aider à créer des expériences immersives. Il peut être utilisé seul ou avec le package Unity OpenXR Android XR.
Pour commencer à utiliser ce package, suivez notre guide de configuration de projet ou notre guide de démarrage rapide pour importer les extensions Android XR pour Unity.
Éléments à prendre en compte concernant les fonctionnalités et la compatibilité
Le tableau suivant décrit les fonctionnalités compatibles avec le package Unity OpenXR : Android XR et le package Android XR Extensions for Unity. Il peut être utilisé pour déterminer quel package contient les fonctionnalités dont vous avez besoin et les éventuelles considérations de compatibilité.
Fonctionnalité |
Unity OpenXR : chaîne de caractéristiques Android XR |
Chaîne de fonctionnalité des extensions Android XR pour Unity |
Cas d'utilisation et comportement attendu |
---|---|---|---|
Android XR : session AR
|
Android XR (extensions) : gestion des sessions
|
Pour utiliser les fonctionnalités de l'un ou l'autre package, vous devez activer la fonctionnalité AR Session pour ce package. Vous pouvez activer les deux ensembles de fonctionnalités en même temps. Les fonctionnalités individuelles géreront les conflits en conséquence. |
|
N/A |
N/A |
Le suivi de l'appareil permet de suivre sa position et sa rotation dans l'espace physique. L'GameObject XR Origin gère automatiquement le suivi des appareils et la transformation des éléments suivis en système de coordonnées Unity à l'aide de son composant XROrigin et de la hiérarchie GameObject avec une caméra et un TrackedPoseDriver. |
|
Android XR : caméra AR |
N/A |
Cette fonctionnalité permet l'estimation de la luminosité et la transmission en plein écran. |
|
Android XR : AR Plane |
Android XR (extensions) : plan |
Ces deux fonctionnalités sont identiques. Utilisez l'une ou l'autre. Android XR (Extensions) : le plan est inclus pour que les développeurs puissent utiliser les fonctionnalités Android XR (Extensions) : suivi d'objets et ancres persistantes sans avoir de dépendance vis-à-vis du package Unity OpenXR Android XR. À l'avenir, Android XR (Extensions) : Plane sera supprimé au profit d'Android XR : AR Anchor. |
|
N/A |
Android XR (extensions) : suivi des objets |
Cette fonctionnalité permet de détecter et de suivre des objets dans l'environnement physique, en combinaison avec une bibliothèque d'objets de référence. |
|
Android XR : AR Face
|
Android XR : suivi facial
|
La prise en charge des yeux des avatars est assurée par la fonctionnalité Android XR : AR Face. Accédez aux expressions faciales d'un utilisateur grâce à la fonctionnalité de suivi du visage d'Android XR. Ces deux fonctionnalités peuvent être utilisées ensemble. |
|
Android XR : AR Raycast
|
N/A |
Cette fonctionnalité vous permet de lancer un rayon et de calculer l'intersection entre ce rayon et les éléments trackables de plan ou de profondeur détectés dans l'environnement physique. |
|
Android XR : ancre AR |
Android XR (extensions) : ancrage
|
Les deux fonctionnalités sont compatibles avec les ancres spatiales et les ancres planes. Utilisez l'une ou l'autre. Pour les ancres persistantes, utilisez Android XR (Extensions) : Anchor. À l'avenir, Android XR (Extensions) : Ancrage sera supprimé et toutes les fonctionnalités d'ancrage seront disponibles dans Android XR : Ancrage AR. |
|
Android XR : occlusion de la RA
|
N/A |
L'occlusion permet au contenu de réalité mixte de votre application d'apparaître masqué ou partiellement masqué derrière des objets de l'environnement physique. |
|
Métriques de performances |
Métriques de performances Android XR |
N/A |
Utilisez cette fonctionnalité pour accéder aux métriques de performances des appareils Android XR. |
Compatibilité avec les calques de composition (le plug-in OpenXR et le calque de composition XR sont requis) |
Android XR : couche de composition Passthrough
|
Utilisez la fonctionnalité de prise en charge des calques de composition d'Unity pour créer des calques de composition de base (quad, cylindre, projection, etc.). Android XR : la couche de composition Passthrough peut être utilisée pour créer une couche Passthrough avec un maillage personnalisé, en lisant à partir de GameObject d'Unity. |
|
Rendu fovéal (plug-in OpenXR requis)
|
Fovéation (ancienne) |
Le rendu fovéal permet d'accélérer le rendu en diminuant la résolution des zones de la vision périphérique de l'utilisateur. La fonctionnalité de rendu fovéal d'Unity n'est compatible qu'avec les applications utilisant URP et Vulkan. L'ancienne fonctionnalité de fovéation des extensions Android XR pour Unity est également compatible avec le pipeline de rendu intégré et OpenGL ES. Nous vous recommandons d'utiliser la fonctionnalité de rendu fovéal d'Unity lorsque cela est possible. Notez que l'URP et Vulkan sont tous deux recommandés pour le développement sur Android XR. |
|
N/A |
Android XR : espace de référence illimité |
Cette fonctionnalité définit le mode d'origine du suivi XRInputSubsystem sur Unbounded. "Unbounded" indique que XRInputSubsystem suit tous les InputDevices par rapport à une ancre mondiale, qui peut changer. |
|
N/A |
Mode de fusion de l'environnement |
Cette fonctionnalité vous permet de définir le mode de fusion de l'environnement XR, qui contrôle la façon dont les images virtuelles se fondent dans l'environnement réel lorsque la vue traversante est activée. |
Entrée et interaction
Android XR est compatible avec les entrées naturelles multimodales.
En plus du suivi des mains et des yeux, les périphériques tels que les manettes 6DoF, la souris et le clavier physique sont également pris en charge. Cela signifie que les applications pour Android XR sont censées prendre en charge l'interaction manuelle, et qu'il ne faut pas supposer que tous les appareils seront fournis avec des manettes.
Profils d'interaction
Unity utilise un profil d'interaction pour gérer la façon dont votre application XR communique avec différents appareils et plates-formes XR. Ces profils établissent les entrées et sorties attendues pour différentes configurations matérielles, ce qui favorise la compatibilité et la cohérence des fonctionnalités sur différentes plates-formes. En activant les profils d'interaction, vous pouvez vous assurer que votre application XR fonctionne correctement avec différents appareils, qu'elle conserve une cartographie des entrées cohérente et qu'elle a accès à des fonctionnalités XR spécifiques. Pour définir un profil d'interaction :
- Ouvrez la fenêtre Project Settings (Paramètres du projet) (menu : Edit > Project Settings (Modifier > Paramètres du projet)).
- Cliquez sur XR Plug-in Management (Gestion des plug-ins XR) pour développer la section des plug-ins (si nécessaire).
- Sélectionnez OpenXR dans la liste des plug-ins XR.
- Dans la section Profils d'interaction, sélectionnez le bouton + pour ajouter un profil.
- Sélectionnez le profil à ajouter dans la liste.
Interaction avec les mains
L'interaction manuelle (XR_EXT_hand_interaction
) est fournie par le plug-in OpenXR. Vous pouvez exposer la disposition de l'appareil <HandInteraction>
dans le système d'entrée Unity en activant le profil d'interaction manuelle. Utilisez ce profil d'interaction pour la saisie manuelle compatible avec les quatre poses d'action définies par OpenXR : "pincer", "pointer", "viser" et "saisir". Si vous avez besoin de fonctionnalités supplémentaires d'interaction ou de suivi des mains, consultez XR Hands sur cette page.
Interaction par le regard
L'interaction par suivi du regard (XR_EXT_eye_gaze_interaction
) est fournie par le plug-in OpenXR. Vous pouvez utiliser cette mise en page pour récupérer les données de pose des yeux (position et rotation) renvoyées par l'extension. Pour en savoir plus sur l'interaction par le regard, consultez le guide d'entrée OpenXR.
Interaction avec la manette
Android XR est compatible avec le profil de la manette Oculus Touch pour les manettes à six degrés de liberté. Ces deux profils sont fournis par le plug-in OpenXR.
Interaction avec la souris
Le profil d'interaction de la souris Android XR (XR_ANDROID_mouse_interaction
)
est fourni par les extensions Android XR pour Unity. Il expose une mise en page de l'appareil <AndroidXRMouse>
dans le système d'entrée Unity.
Interaction avec la pose de la main
Le plug-in OpenXR est compatible avec l'interaction avec la pose de la paume (XR_EXT_palm_pose
), qui expose la mise en page <PalmPose>
dans l'Unity Input System.
La pose de la paume n'est pas destinée à remplacer les extensions ou les packages qui effectuent le suivi des mains pour des cas d'utilisation plus complexes. Elle peut plutôt être utilisée pour placer du contenu visuel spécifique à l'application, comme des visuels d'avatar. La pose de la main se compose à la fois de la position et de l'orientation de la paume.
XR Hands
Le package XR Hands vous permet d'accéder aux données de suivi des mains à l'aide de XR_EXT_hand_tracking
et XR_FB_hand_tracking_aim
, et fournit un wrapper pour convertir les données des articulations des mains du suivi des mains en poses d'entrée. Pour utiliser les fonctionnalités fournies par le package XR Hands, activez les fonctionnalités Hand Tracking Subsystem et Meta Hand Tracking Aim OpenXR.
Le package XR Hands peut être utile si vous avez besoin de données plus précises sur la pose ou les articulations des mains, ou lorsque vous devez travailler avec des gestes personnalisés.
Pour en savoir plus, consultez la documentation Unity sur la configuration de XR Hands dans votre projet.
Choisir une méthode pour afficher les mains
Android XR permet d'afficher les mains de deux manières : avec un maillage de main et avec un visualiseur de prefab.
Maillage de la main
Le package Android XR Unity contient une fonctionnalité de maillage de la main qui permet d'accéder à XR_ANDROID_hand_mesh extension
. La fonctionnalité Hand Mesh fournit des maillages pour les mains de l'utilisateur. Le maillage de la main contient les sommets des triangles qui représentent la géométrie d'une main. Cette fonctionnalité est destinée à fournir un maillage personnalisé représentant la géométrie réelle des mains de l'utilisateur pour la visualisation.
Prefab "XR Hands"
Le package XR Hands contient un exemple appelé Hands visualizer, qui contient des mains gauche et droite entièrement truquées pour afficher une représentation appropriée des mains de l'utilisateur en fonction du contexte.
Gestes système
Android XR inclut un geste système permettant aux utilisateurs d'ouvrir un menu pour revenir en arrière, ouvrir le lanceur d'applications ou obtenir un aperçu des applications en cours d'exécution. L'utilisateur peut activer ce menu système en pinçant l'écran avec sa main dominante.
Lorsque l'utilisateur interagit avec le menu de navigation du système, l'application ne répond qu'aux événements de suivi de la tête. Le package XR Hands peut détecter lorsqu'un utilisateur effectue des actions spécifiques, comme interagir avec ce menu de navigation système. Cocher les cases AimFlags
, SystemGesture
et DominantHand
vous permet de savoir quand cette action système est effectuée. Pour en savoir plus sur AimFlags
, consultez la documentation d'Unity sur Enum MetaAimFlags.
XR Interaction Toolkit
Le package XR Interaction Toolkit est un système d'interaction de haut niveau basé sur des composants permettant de créer des expériences de réalité virtuelle et augmentée. Il fournit un framework qui rend les interactions 3D et d'UI disponibles à partir des événements d'entrée Unity. Il est compatible avec les tâches d'interaction, y compris le retour haptique, le retour visuel et la locomotion.
OpenXR™ et le logo OpenXR sont des marques déposées appartenant à The Khronos Group Inc. et sont enregistrées en Chine, dans l'Union européenne, au Japon et au Royaume-Uni.