Partager via


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 Win32 Unity VR existantes Windows Mixed Reality, vous devez recibler l’utilisation du SDK VR propre au fournisseur vers les API et plug-ins VR multi-fournisseurs d’Unity.

Le portage d’applications VR vers Windows Mixed Reality nécessite les processus généraux suivants :

  1. Vérifiez que votre PC exécute la Windows 10, version 1709 (la mise à jour de Fall Creator) ou plus récente, ou Windows 11.
  2. Effectuez une mise à niveau vers la dernière version de votre moteur graphique ou de jeu. Les moteurs de jeu doivent prendre en charge Windows 10 SDK version 10.0.15063.0 ou ultérieure.
  3. 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.
  4. Ciblez la dernière version d’Unity et le plug-in OpenXR. Supprimez les dépendances sur les kits SDK en double. En fonction de l’appareil ciblé par votre contenu, supprimez ou compilez de manière conditionnelle ce KIT de développement logiciel (SDK).
  5. 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 :

  1. 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é.

  2. Effectuez une mise à niveau vers la dernière version d’Windows 10.

    1. Installer le Windows 10 Creators Update
    2. Rejoignez le programme Windows Insider.
    3. Activer le mode développeur
    4. Basculez vers les versions d’évaluation rapides windows Insider via la mise à jour des paramètres > & section Sécurité.

    Remarque

    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. Ne recevez pas les 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.

  3. 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

  1. Enregistrez une copie de votre projet avant de commencer.
  2. Téléchargez la dernière build publique recommandée d’Unity avec Windows Mixed Reality prise en charge.
  3. Si votre projet a été créé sur une version antérieure d’Unity, passez en revue les guides de mise à niveau Unity.
  4. Suivez les instructions relatives à l’utilisation de la mise à jour automatique de l’API d’Unity.
  5. Vérifiez si vous devez apporter d’autres modifications pour exécuter votre projet et résoudre les erreurs et avertissements éventuels.

2. Mettre à niveau votre intergiciel (middleware) vers les dernières versions

Avec une 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 middleware augmente les chances de réussite tout au long du processus de portage.

3. Cibler votre application pour qu’elle s’exécute sur Win32

À partir de votre application Unity :

  1. Accédez àParamètres de génération defichiers>.
  2. Sélectionnez PC, Mac, Linux autonome.
  3. Définissez la plateforme cible sur Windows.
  4. Définissez l’architecture sur x86.
  5. Sélectionnez Changer de plateforme.

Remarque

Si votre application a des dépendances vis-à-vis 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 Mixed Reality OpenXR

  1. Choisissez et installez une version Unity et un plug-in XR. Bien que unity 2020.3 LTS avec le plug-in Mixed Reality OpenXR soit idéal pour le développement Mixed Reality, vous pouvez également créer des applications avec d’autres configurations Unity.

  2. 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 à la place les API VR communes d’Unity, qui prennent en charge Windows Mixed Reality et SteamVR.

  3. Dans votre projet Unity, ciblez le SDK Windows 10.

  4. Pour chaque scène, configurez la caméra.

5. Configurer votre matériel Windows Mixed Reality

  1. Passez en revue les étapes de configuration du casque immersif.
  2. Découvrez comment utiliser le simulateur Windows Mixed Reality et Naviguer dans l’Windows Mixed Reality accueil.

6. Utiliser la phase pour placer du contenu sur le sol

Vous pouvez créer des expériences Mixed Reality sur un large éventail d’échelles d’expérience. Si vous portez une expérience de mise à l’échelle assise, vérifiez que 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 monde 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 la caméra (avant est -Z) apparaît devant l’utilisateur au lancement de l’application. Pour recentrer 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 debout ou à l’échelle de la salle, vous placez le contenu par rapport à l’étage. Vous raisonnez l’étage de l’utilisateur à l’aide de la phase spatiale, qui représente l’origine au niveau du sol définie par l’utilisateur. L’étape spatiale peut inclure une limite de salle facultative que vous avez configurée lors de la première exécution.

Pour ces expériences, vérifiez que 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 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 sur le sol. L’origine à (0, 0, 0) est l’emplacement spécifique sur le sol où l’utilisateur se trouvait pendant la configuration de la salle, avec -Z représentant la direction vers l’avant qu’il a rencontré pendant la configuration.

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 :

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 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 les entrées et comment l’entrée est mappée à ce que fait votre application maintenant.

Importante

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 disposent de budgets graphiques et de calcul considérablement différents pour votre application.

Si vous avez porté votre application à l’aide d’un PC Premium avec des budgets de calcul et de 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 instructions de compatibilité matérielle minimale des PC.

Unity et Visual Studio incluent des profils 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ée

Pour obtenir des informations et des instructions sur le mappage d’entrée, consultez Guide de portage d’entrée pour Unity.

Importante

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.

Voir aussi