Porter des applications VR vers Windows Mixed Reality
Windows 10 prend en charge les casques immersifs et holographiques. D’autres appareils comme Oculus Rift ou HTC Vive ont des dépendances sur les bibliothèques qui existent au-dessus de l’API de plateforme du système d’exploitation. Pour que les applications VR Win32 Unity existantes Windows Mixed Reality, vous devez recibler l’utilisation du SDK VR propre au fournisseur vers les API et plug-ins vr inter-fournisseurs d’Unity.
Le portage d’applications VR vers Windows Mixed Reality nécessite les processus généraux suivants :
- Assurez-vous que votre PC exécute le Windows 10, version 1709 (la mise à jour du créateur d’automne) ou plus récente, ou Windows 11.
- Effectuez une mise à niveau vers la dernière version de votre moteur graphique ou de jeu. Les moteurs de jeu doivent prendre en charge le SDK Windows 10 version 10.0.15063.0 ou ultérieure.
- Mettez à niveau les intergiciels, les plug-ins et les composants. Si votre application contient des composants, effectuez une mise à niveau vers les dernières versions.
- Ciblez la dernière version d’Unity et le plug-in OpenXR. Supprimez les dépendances sur les kits SDK en double. Selon l’appareil ciblé par votre contenu, supprimez ou compilez de manière conditionnelle ce KIT de développement logiciel (SDK).
- Résoudre les problèmes de génération spécifiques à votre application, à votre moteur et à vos dépendances de composants.
Étapes de portage courantes
Commencez par les étapes de portage courantes suivantes :
Vérifiez que vous disposez du matériel de développement approprié. Le guide des passionnés de réalité virtuelle répertorie le matériel de développement recommandé.
Effectuez une mise à niveau vers la dernière version d’Windows 10.
- Installer le Windows 10 Creators Update
- Rejoignez le programme Windows Insider.
- Activer le mode développeur
- Basculez vers les versions d’évaluation rapides de Windows Insider via la mise à jour des paramètres > & section Sécurité.
Notes
La plateforme Windows Mixed Reality est toujours en cours de développement. Rejoignez le programme Windows Insider pour accéder à la version d’évaluation rapide de Windows Insider. N’obtenez pas de builds en préversion à partir de l’anneau Insider Skip Ahead, car ces builds ne sont pas les plus stables pour le développement de réalité mixte.
Si vous utilisez Visual Studio, effectuez une mise à niveau vers la build la plus récente. Consultez Installer les outils sous Visual Studio 2022. Veillez à installer la charge de travail Développement de jeux avec Unity .
Étapes de portage Unity
Passez en revue les étapes courantes pour vous assurer que votre environnement de développement est correctement configuré. Pour porter votre contenu Unity existant, procédez comme suit :
1. Mise à niveau vers la dernière version publique d’Unity avec prise en charge de Windows MR
- Enregistrez une copie de votre projet avant de commencer.
- Téléchargez la dernière version publique recommandée d’Unity avec Windows Mixed Reality prise en charge.
- Si votre projet a été créé sur une version antérieure d’Unity, consultez les Guides de mise à niveau Unity.
- Suivez les instructions d’utilisation de la mise à jour automatique de l’API Unity.
- Vérifiez si vous devez apporter d’autres modifications pour exécuter votre projet et résoudre les erreurs et les avertissements éventuels.
2. Mettre à niveau votre intergiciel vers les dernières versions
Avec n’importe quelle mise à jour Unity, vous devrez peut-être mettre à jour un ou plusieurs packages d’intergiciels dont dépend votre jeu ou votre application. La mise à jour vers le dernier intergiciel augmente la probabilité de réussite tout au long du processus de portage.
3. Ciblez votre application pour qu’elle s’exécute sur Win32
À partir de votre application Unity :
- Accédez àParamètres de génération de fichiers>.
- Sélectionnez PC, Mac, Linux autonome.
- Définissez la plateforme cible sur Windows.
- Définissez architecture sur x86.
- Sélectionnez Changer de plateforme.
Notes
Si votre application a des dépendances sur des services spécifiques à l’appareil, tels que la création de correspondance à partir de Steam, désactivez-les maintenant. Vous pourrez raccorder les services équivalents Windows ultérieurement.
4. Ajouter la prise en charge du plug-in OpenXR Mixed Reality
Choisissez et installez une version Unity et un plug-in XR. Bien que unity 2020.3 LTS avec le plug-in OpenXR Mixed Reality soit idéal pour le développement Mixed Reality, vous pouvez également créer des applications avec d’autres configurations Unity.
Supprimez ou compilez de manière conditionnelle toute prise en charge de bibliothèque spécifique à un autre SDK VR. Ces ressources peuvent modifier les paramètres et les propriétés de votre projet d’une manière incompatible avec Windows Mixed Reality.
Par exemple, si votre projet fait référence au Kit de développement logiciel (SDK) SteamVR, mettez à jour votre projet pour utiliser plutôt les API VR courantes d’Unity, qui prennent en charge à la fois Windows Mixed Reality et SteamVR.
Dans votre projet Unity, ciblez le Kit de développement logiciel (SDK) Windows 10.
Pour chaque scène, configurez la caméra.
5. Configurer votre matériel Windows Mixed Reality
- Passez en revue les étapes de la configuration du casque immersif.
- Découvrez comment utiliser le simulateur de Windows Mixed Reality et Naviguer dans le Windows Mixed Reality accueil.
6. Utiliser la phase pour placer du contenu sur le plancher
Vous pouvez créer des expériences Mixed Reality sur un large éventail d’échelles d’expérience. Si vous portez une expérience d’échelle assise, assurez-vous qu’Unity est défini sur le type d’espace de suivi stationnaire :
XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);
Ce code définit le système de coordonnées mondiales d’Unity pour suivre le cadre de référence stationnaire. En mode de suivi stationnaire, le contenu que vous placez dans l’éditeur juste devant l’emplacement par défaut de l’appareil photo (avant est -Z) s’affiche devant l’utilisateur au lancement de l’application. Pour recentr l’origine assise de l’utilisateur, vous pouvez appeler le XR d’Unity . Méthode InputTracking.Recenter .
Si vous portez une expérience à l’échelle de la salle ou une expérience à l’échelle de la salle, vous placez le contenu par rapport à l’étage. Vous raisonnerez l’étage de l’utilisateur à l’aide de l’étape spatiale, qui représente l’origine au niveau de l’étage définie de l’utilisateur. La phase spatiale peut inclure une limite de salle facultative que vous avez configurée lors de la première exécution.
Pour ces expériences, assurez-vous qu’Unity est défini sur le type d’espace de suivi RoomScale . RoomScale est la valeur par défaut, mais définissez-la explicitement et veillez à récupérer true
. Cette pratique intercepte les situations où l’utilisateur a déplacé son ordinateur loin de la pièce qu’il a étalonnée.
if (XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale))
{
// RoomScale mode was set successfully. App can now assume that y=0 in Unity world coordinate represents the floor.
}
else
{
// RoomScale mode was not set successfully. App can't make assumptions about where the floor plane is.
}
Une fois que votre application a correctement définit le type d’espace de suivi RoomScale, le contenu placé sur le plan y=0 s’affiche au sol. L’origine à (0, 0, 0) est l’emplacement spécifique sur l’étage où l’utilisateur s’est tenu pendant la configuration de la salle, avec -Z représentant la direction vers l’avant qu’il ait été confronté pendant l’installation.
Dans le code de script, vous pouvez ensuite appeler la TryGetGeometry
méthode sur le UnityEngine.Experimental.XR.Boundary
type pour obtenir un polygone de limite, en spécifiant un type de limite de TrackedArea
. Si l’utilisateur a défini une limite, vous obtenez une liste de sommets. Vous pouvez ensuite fournir une expérience à l’échelle de la salle à l’utilisateur, où il peut parcourir la scène que vous créez.
Le système restitue automatiquement la limite lorsque l’utilisateur l’approche. Votre application n’a pas besoin d’utiliser ce polygone pour afficher la limite elle-même.
Exemple de résultats :
Pour plus d’informations, consultez Systèmes de coordonnées dans Unity.
7. Utiliser votre modèle d’entrée
Chaque jeu ou application qui cible un affichage monté en tête (HMD) existant a un ensemble d’entrées qu’il gère, les types d’entrées dont il a besoin pour l’expérience et les API spécifiques qu’il appelle pour obtenir ces entrées. Il est simple et simple de tirer parti des entrées disponibles dans Windows Mixed Reality.
Consultez le guide de portage d’entrée pour Unity pour plus d’informations sur la façon dont Windows Mixed Reality expose l’entrée et comment l’entrée est mappée à ce que fait maintenant votre application.
Important
Si vous utilisez des contrôleurs HP Reverb G2, consultez Contrôleurs HP Reverb G2 dans Unity pour obtenir d’autres instructions de mappage d’entrée.
8. Tester et régler les performances
Windows Mixed Reality est disponible sur de nombreux appareils, allant des PC de jeu haut de gamme aux PC grand public. Ces appareils ont des budgets de calcul et graphiques considérablement différents disponibles pour votre application.
Si vous avez porté votre application à l’aide d’un PC Premium avec des budgets de calcul et graphiques importants, veillez à tester et à profiler votre application sur du matériel qui représente votre marché cible. Pour plus d’informations, consultez Windows Mixed Reality recommandations minimales en matière de compatibilité matérielle des PC.
Unity et Visual Studio incluent des profileurs de performances, et Microsoft et Intel publient des instructions sur le profilage et l’optimisation des performances.
Pour obtenir une description détaillée des performances, consultez Comprendre les performances des Mixed Reality. Pour plus d’informations sur Unity, consultez Recommandations en matière de performances pour Unity.
Mappage d’entrées
Pour obtenir des informations et des instructions sur le mappage d’entrée, consultez Guide de portage d’entrée pour Unity.
Important
Si vous utilisez des contrôleurs HP Reverb G2, consultez Contrôleurs HP Reverb G2 dans Unity pour obtenir d’autres instructions de mappage d’entrée.