Bonjour, Habr! Aujourd'hui, nous commençons une série d'articles sur Windows Mixed Reality. Dans ce cadre, nous développerons une application de réalité mixte sur Unity à partir de zéro. Soit dit en passant, tout cela aura lieu dans le format travail de laboratoire (travail de laboratoire), c'est-à-dire que vous pouvez vous-même, parallèlement à la publication d'articles, créer une telle application. Rejoignez-nous maintenant!

Le guide complet comprendra 5 parties. Il sera réapprovisionné chaque semaine. Ci-dessous, vous pouvez accéder à la pièce dont vous avez besoin.
Partie 1: Exporter l'application UWP pour Windows Mixed Reality depuis Unity ;
Partie 2: Configuration de l'environnement (VR) ;
Partie 3: Contrôleurs ;
Partie 4: Son spatial ;
Partie 5: HoloLens et graphiques .
La réalité mixte est une combinaison du monde réel avec du contenu virtuel, un environnement hybride dans lequel les objets physiques et numériques existent ensemble et interagissent les uns avec les autres.
Dans ce didacticiel, vous allez créer une application pour les casques immersifs de réalité mixte Windows (VR) et les appareils Microsoft HoloLens (AR). Avec Unity, vous allez créer une salle virtuelle dans laquelle les utilisateurs interagissent avec un haut-parleur qui reproduit le son spatial. Les utilisateurs entendront le son en se téléportant vers divers points de la pièce ou en déplaçant le haut-parleur lui-même dans la pièce.
L'application sera créée à l'aide de la
boîte à
outils de réalité mixte pour une compatibilité maximale avec HoloLens. Vers la fin de la leçon, vous apporterez quelques modifications à l'application pour rendre l'expérience optimisée pour l'appareil HoloLens à partir de l'application de réalité virtuelle.
Après avoir terminé la leçon, vous:
- apprendre à créer des applications de réalité virtuelle à l'aide d'Unity et consolider ces connaissances;
- Découvrez comment configurer Unity pour créer des applications UWP pour la réalité mixte.
- Apprenez à utiliser les fonctionnalités standard de réalité mixte (MR), telles que les paramètres de la caméra, le traitement d'entrée (contrôle du regard, contrôleurs de mouvement et de gestes) et la reproduction spatiale du son dans les applications MR;
- Apprenez à créer des applications de réalité mixte adaptées aux lunettes VR et aux HoloLens.
Configuration matérielle requise
- Ordinateur compatible MR
- [Facultatif] Casque de réalité mixte Windows immersif avec contrôleurs de mouvement
- [Facultatif] Appareil HoloLens
Remarque Si vous n'avez pas accès à un casque immersif ou à un appareil HoloLens, vous pouvez voir comment fonctionne votre application dans le simulateur de réalité mixte ou l'émulateur HoloLens. Voir les liens ci-dessous.Configuration logicielle
•
Visual Studio 2017 . N'importe quelle édition fera l'affaire, y compris l'édition communautaire gratuite. Lors de l'installation, les composants et charges de travail suivants doivent être sélectionnés:
Remarque Dans Visual Studio, l'accès à divers kits d'outils peut être obtenu à l'aide du menu Outils -> Obtenir des outils et des fonctionnalités (Outils -> Obtenir des outils et des composants).•
Unity 2017.4.3 (lors du choix des composants lors de l'installation, vous devez ajouter le backend de script .Net);
• Mise à jour OS Windows 10 Fall Creators (ou ultérieure);
- Pour activer le mode développeur, accédez à Paramètres -> Mise à jour et sécurité -> Pour les développeurs.
• [Facultatif]
Emulator HoloLens ou
simulateur Mixed Reality .
Exporter l'application UWP Windows Mixed Reality depuis Unity
1. Créez un projet Unity et importez des ressources
Pour cette pratique, nous devons importer certaines ressources nécessaires. Téléchargez ces deux packages Unity et enregistrez-les sur votre ordinateur.
- Holotoolkit.Unitypackage
Il s'agit d'un instantané de Microsoft Mixed Reality Toolkit , un ensemble de scripts et de composants qui accélère le développement d'applications pour Microsoft HoloLens et de casques qui prennent en charge Windows Mixed Reality. - SpatialSoundLab.Unitypackage
Un package spécial préparé pour cette leçon pratique. Contient des ressources (modèles, matériaux et extraits sonores) qui seront utilisées pour travailler avec le son spatial.
Après avoir reçu les fichiers de ressources, nous pouvons créer un projet Unity.
1. Ouvrez l'éditeur Unity et cliquez sur Nouveau.
2. Sélectionnez un nom pour le projet (par exemple, SpeakerPlacement).
3. Activez 3D pour le modèle, désactivez l'analyse et cliquez sur
Create project
.
4. Pour importer des packages Unity, sélectionnez Actifs -> Importer un package -> Package personnalisé dans le menu et accédez au package Holotoolkit.unitypackage précédemment enregistré.

5. Ne désélectionnez pas les éléments pour importer tous les fichiers. Cliquez sur
Import
.

Le processus d'importation comprend plusieurs étapes et peut prendre plusieurs minutes. Si l'importation du package réussit, un dossier nommé Holotoolkit apparaît dans la fenêtre de projet sous le dossier Assets.

6. Importez également le fichier SpatialSoundLab.UnityPackage en répétant les étapes ci-dessus.
7. Le dossier Assets doit maintenant contenir les deux packages.

2. Application des paramètres du projet
Ensuite, nous devons configurer notre projet Unity pour créer une application pour Windows Mixed Reality. Cette tâche nous aidera à compléter la boîte à outils de réalité mixte.
1. Dans le menu supérieur, accédez à la section Mixed Reality Toolkit -> Configurer (Mixed Reality Toolkit -> Settings) et sélectionnez Appliquer les paramètres du projet Mixed Reality.

2. Cochez la case Utiliser les axes InputManager spécifiques à Toolkit et cliquez sur le bouton Appliquer.

À titre de référence, nous donnons une description de chacun des paramètres:
- Windows UWP universel cible (Build for Windows Universal UWP) - Spécifie la plate-forme cible pour Unity. D'autres options pour la plate-forme cible peuvent être consultées en sélectionnant Fichier -> Paramètres de construction.
- Build for Direct3D: définit la valeur D3D pour le paramètre Build Type dans la section Build Settings. Pour les applications de réalité mixte conçues pour les casques fermés, XAML n'est pas pris en charge.
- La définition du paramètre Activer XR est identique à la définition du paramètre Prise en charge de la réalité virtuelle dans la section Paramètres du lecteur -> Paramètres XR.
- Définir Activer les scripts .NET équivaut à définir .NET pour les paramètres du lecteur -> Autres paramètres -> Backend de script (Paramètres du lecteur -> Autres paramètres -> Plate-forme de script). L'option IL2CPP fonctionnerait également, mais pour des raisons de cohérence dans ce laboratoire, nous vous recommandons d'utiliser la variante .NET.
- Le paramètre Utiliser l'outil InputManager spécifique à Toolkit modifie les axes de la section Edition -> Paramètres du projet -> Input Manager pour permettre la prise en charge de tous les axes utilisés dans la boîte à outils. . En d'autres termes, il inclut la prise en charge de la manette de jeu Xbox et des contrôleurs pour la réalité mixte.
- Si vous créez des applications uniquement pour les casques immersifs, vous pouvez cocher la case Périphériques occlus cible. Étant donné que nous allons transférer notre application sur l'appareil HoloLens, nous ne cocherons pas cette case.
Nous avons pris en charge la réalité mixte, mais il y a quelques autres paramètres qui doivent être définis pour la plate-forme Windows universelle.
3. Dans le menu supérieur, accédez à la section Boîte à outils de réalité mixte -> Configurer (Boîte à outils de réalité mixte -> Paramètres) et sélectionnez Appliquer les paramètres de capacité UWP.

4. Cochez la case Perception spatiale si vous avez l'intention de transférer cette application vers un appareil HoloLens. Cela nous permettra de cartographier l'environnement et de trouver les surfaces pour accueillir les enceintes.
5. Cliquez sur le bouton
Apply
pour enregistrer vos modifications.
6. Ensuite, ouvrez la boîte de dialogue Fichier -> Paramètres de construction à l'aide du raccourci clavier Ctrl + Maj + B, sélectionnez Plate-forme Windows universelle, puis cliquez sur Changer de plate-forme. Ajoutez une scène ouverte à l'assemblage en cochant la case en regard du nom de la scène et en cliquant sur le bouton Ajouter des scènes ouvertes. Confirmez l'offre pour enregistrer la scène et sélectionnez un nom approprié pour celle-ci. Nous avons appelé notre scène Main.
3. Appliquer les paramètres de scène et ajouter des objets de réalité mixte
Maintenant, nous devons mettre en place la scène. Ajoutons des objets qui gèreront le mouvement de la caméra et les signaux du contrôleur.
1. Dans le menu supérieur, accédez à la section Mixed Reality Toolkit -> Configurer (Mixed Reality Toolkit -> Settings) et sélectionnez Appliquer les paramètres du projet Mixed Reality.

2. Laissez tous les paramètres par défaut sélectionnés et cliquez sur le bouton Appliquer.

À titre de référence, nous fournissons une description de tous ces paramètres:
- Le préfabriqué MixedRealityCameraParent est ajouté à la scène. Ce préfabriqué ajoute une caméra standard (principale) à l'origine (0,0,0) et ajoute également la prise en charge des contrôleurs de mouvement et de bordure.
- Le InputManager préfabriqué est ajouté à la scène. Il fournit un support d'entrée (regard, contrôle gestuel, entrée tactile ou une manette de jeu Xbox).
- Le préfabriqué DefaultCursor est ajouté à la scène.
Tous les objets ajoutés seront visibles dans le panneau Hiérarchie Unity.
Ceci termine la configuration et la préparation du projet et la scène pour la création de l'application UWP pour MR.
Enregistrez la scène et le design.
3. Cliquez sur Fichier -> Enregistrer les scènes. Lorsque vous êtes invité à choisir un nom pour la scène, nommez-la Main (ou proposez un autre nom approprié).
4. Cliquez sur Fichier -> Enregistrer le projet.
Remarque Pour une description détaillée de tous les paramètres utilisés ici, consultez ce guide de configuration du projet Mixed Reality.4. Déploiement d'applications sur des casques
Maintenant, vous n'avez pas besoin de le faire, mais si vous décidez de créer un projet, utilisez les instructions suivantes pour le lancer.
Déployer un projet sur un casque immersif1. Accédez à la Boîte à outils de réalité mixte -> Fenêtre de construction (Boîte à outils de réalité mixte -> Fenêtre de construction).
2. Cliquez sur
Open in Visual Studio
. Cette action prendra plusieurs minutes - pendant ce temps, toutes les ressources seront compilées et une solution pour Visual Studio sera créée ou mise à jour.
Remarque Si un message apparaît dans Unity qu'il n'y a pas de solution ouverte pour le projet et que l'on vous demande si vous devez terminer l'assemblage, sélectionnez Oui, Générer.3. Une fois la génération terminée, Unity démarre Visual Studio.
4. Dans la barre d'outils Visual Studio standard, changez la plate-forme de solution active d'ARM en x64. Pour la cible de déploiement, vous devez sélectionner Machine locale.

Si vous ne déboguez pas, nous vous recommandons de changer également le type de build de Debug à Release, car les builds de débogage Unity sont le plus souvent plus lents.
5. Lancez l'application en appuyant sur le bouton de lecture.
Déployer un projet sur un appareil HoloLensLa procédure de déploiement d'un projet sur un appareil HoloLens est très similaire à la procédure ci-dessus pour les casques immersifs à la seule exception dont vous avez besoin pour sélectionner un autre appareil cible et sélectionner x86 comme plate-forme.
1. Accédez à la Boîte à outils de réalité mixte -> Fenêtre de construction (Boîte à outils de réalité mixte -> Fenêtre de construction).
2. Cliquez sur
Open in Visual Studio
. Cette action prendra plusieurs minutes - pendant ce temps, toutes les ressources seront compilées et une solution pour Visual Studio sera créée ou mise à jour.
Remarque Si un message apparaît dans Unity qu'il n'y a pas de solution ouverte pour le projet et que l'on vous demande si vous devez terminer l'assemblage, sélectionnez Oui, Générer.3. Une fois la génération terminée, Unity démarre Visual Studio.
4. Dans la barre d'outils Visual Studio standard, changez la plate-forme de solution active d'ARM en x86 et sélectionnez la cible appropriée pour le déploiement:
- si le déploiement se fait via USB, sélectionnez Appareil;
- si le déploiement se fait via Wi-Fi, sélectionnez Machine distante et configurez l'ordinateur distant.

Si vous ne déboguez pas, nous vous recommandons de changer également le type de build de Debug à Release, car les builds de débogage Unity sont le plus souvent plus lents.
5. Lancez l'application en appuyant sur le bouton de lecture.
Pour plus d'informations sur la publication d'applications sur le Microsoft Store, consultez le
site des développeurs Windows .
Application de placement des haut-parleurs
Dans notre application de placement d'enceintes pour placer des enceintes, l'utilisateur aura les options suivantes:
- en utilisant des contrôleurs de mouvement, l'utilisateur peut se téléporter vers divers points du salon virtuel ou se déplacer autour de lui;
- Vous pouvez également sélectionner des haut-parleurs, les déplacer, les faire pivoter, les allumer et les éteindre et écouter le son spatial dans toute la pièce.
Vous trouverez ci-dessous une liste de nos modèles et ressources musicales.
- Prefabs -> RoomPrefab.prefab - un salon virtuel pour un casque immersif.
- Modèles -> Speaker.3DS - un modèle de nos haut-parleurs, que nous transformerons en un préfabriqué fonctionnel.
- Audio -> ChillBlueLagoon.mp3 - fichier musical (vous pouvez utiliser n'importe quel fichier au format MP3, OGG, WAV ou AIFF).
D'autres fonctionnalités seront mises en œuvre à l'aide de la boîte à outils de réalité mixte. Les composants de ce kit seront utilisés pour ajouter l'interopérabilité.
L'originalAuteurs: Eric Ahlstrom, cbarkerms, Madison Hight