Nous continuons la série d'articles sur Windows Mixed Reality et développons à partir de zéro une application de réalité mixte Unity au format de travail de laboratoire. Vous pouvez vous-même, parallèlement à la publication d'articles, créer une telle application. Aujourd'hui, nous allons parler du son spatial et de la façon de créer le sentiment d'être dans une réalité différente.

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 .
Son spatial
L'enceinte est prête, essayez maintenant de démarrer et d'arrêter la lecture du son spatial. Dans cette section, nous ajouterons une source sonore et des commandes de lecture audio.
Étant donné que certaines des tâches qui nous attendent sont similaires à celles effectuées précédemment, nous donnerons des instructions sous forme de listes pour accélérer le processus.
Vérifiez vos actions avec les captures d'écran qui se trouvent à la fin de chaque grande étape et consultez les liens supplémentaires pour obtenir des instructions dans les instructions.
Ajout d'une source sonore
Pour lire le son d'un haut-parleur, vous devez lui ajouter le composant Unity
AudioSource .
- Sélectionnez l'objet Haut-parleur dans la scène et cliquez sur Ajouter un composant -> Audio -> Source audio.
- Cliquez sur la petite icône en forme de croix à droite de la propriété Clip audio du composant Source audio et sélectionnez Chill Blue Lagoon.
- Décochez la case Play On Awake, car nous contrôlerons la lecture à l'aide des boutons. Nous modifierons les paramètres de prise en charge du son spatial plus tard.

Ajout de commandes de lecture au haut-parleur
Pour ajouter un bouton de lecture au haut-parleur, procédez comme suit:
1. Dans le panneau Projet, recherchez le préfabriqué CircleButton dans le dossier Assets -> HoloToolkit -> UX -> Prefabs -> Buttons (Resources -> HoloToolkit -> UX -> Prefabs -> Buttons) et faites-le glisser vers le panneau Hiérarchie en ajoutant ce préfabriqué à la scène en tant qu'enfant de l'objet Speaker.
2. Donnez au bouton ajouté le nom PlayButton.

3. Augmentez la taille du PlayButton en définissant sa propriété Transform Scale sur (90, 90, 90).
4. Après avoir sélectionné l'objet PlayButton, cliquez sur Ajouter un composant -> Événement -> Déclencheur d'événement (Ajouter un composant -> Événement -> Déclencheur d'événement).
5. Cliquez sur Ajouter un nouveau type d'événement -> Cliquez sur le pointeur.
6. Cliquez sur le bouton + en bas de la liste d'événements vide.
7. Faites glisser l'objet Haut-parleur du panneau Hiérarchie vers le champ pour supprimer les événements étiquetés Aucun (Objet).
8. Dans la liste déroulante Aucune fonction, sélectionnez AudioSource-> Play ().

Pour ajouter un bouton de pause au haut-parleur, procédez comme suit:
1. Dupliquez le PlayButton en appuyant sur Ctrl + D ou en cliquant avec le bouton droit sur une ressource dans le panneau Hiérarchie et en sélectionnant Duplicate, puis renommez-le PauseButton.
2. Pour la fonction Event Trigger de l'objet PauseButton, définissez la valeur sur AudioSource-> Pause ().

Maintenant, ces boutons devraient fonctionner, mais il est difficile de les utiliser, car ils se chevauchent. Autre problème - l'utilisateur ne les voit pas lorsque l'enceinte est tournée sur le côté. Pour résoudre ce problème, procédez comme suit:
1. Définissez la propriété Transform Position du PlayButton sur (-6, 18, 0).
2. Pour la propriété Transform Position de PauseButton, définissez les valeurs (6, 18, 0).
3. Dans le panneau Hiérarchie, cliquez avec le bouton droit sur l'objet Haut-parleur et sélectionnez Créer vide pour créer un objet enfant vide. Renommez le GameObject ajouté en ButtonBillboard. Pour renommer un objet, cliquez dessus avec le bouton droit et sélectionnez Renommer.
4. Faites glisser les deux boutons sur l'objet ButtonBillboard, ce qui en fait des objets enfants de cet objet.
5. Avec l'objet ButtonBillboard sélectionné dans l'inspecteur, cliquez sur Ajouter un composant -> Billboard. Le composant Billboard peut être trouvé à l'aide de la barre de recherche. Le script Billboard du Mixed Reality Toolkit fait que l'objet fait constamment face à la caméra et est souvent utilisé pour les éléments de l'interface utilisateur.
6. Vous devez obtenir la structure suivante pour le panneau d'affichage:

Pour rendre les boutons de lecture et de pause plus faciles à distinguer, vous pouvez remplacer leurs icônes standard par d'autres. Cela peut se faire de plusieurs manières, mais nous utiliserons la plus simple, compte tenu de la taille de notre projet.
1. Avec un bouton PlayButton sélectionné, faites défiler l'inspecteur jusqu'au composant Icône de bouton composé.
2. Cochez la case Override Icon.
3. Faites glisser l'image-objet Démarrer du dossier Assets -> Textures vers la propriété Icon Override du composant Icon du bouton composé.
4. Répétez ces étapes pour l'objet PauseButton à l'aide de l'image-objet Pause.

Ajout d'un son surround
Nous avons maintenant un haut-parleur qui peut être allumé, éteint et déplacé dans le salon virtuel. Cependant, nous n'avons pas de son spatial qui améliore l'effet de présence dans notre application.
Dans Unity, le son spatial est implémenté à l'aide du plug-in Spatializer. Les fichiers de plug-in font partie d'Unity, il est donc facile d'implémenter le son spatial.
1. Allez dans la section Édition -> Paramètres du projet -> Audio (Édition -> Paramètres du projet -> Son).
2. Pour le paramètre Spatializer Plugin, remplacez la valeur None par MS HRTF Spatializer.
Étant donné que le système de son surround de Microsoft ne prend actuellement en charge qu'une fréquence d'échantillonnage de 48 000 Hz, la fréquence d'échantillonnage du système doit également être définie sur 48 000 (si ce n'est pas déjà fait) pour éviter que le HRTF n'échoue.

Vous devez maintenant définir les paramètres du clip audio lui-même.
1. Dans le panneau Hiérarchie, sélectionnez l'objet Haut-parleur.
2. Faites défiler jusqu'au composant Source audio du panneau Inspecteur et cochez la case Spatialiser.
3. Pour le paramètre Spatial Blend, sélectionnez 3D (la valeur numérique est 1).
4. Développez le menu Paramètres du son 3D.
5. Pour définir les paramètres de son 3D optimaux pour notre application, définissez la valeur Logarithmic Rolloff pour le paramètre Volume Rolloff et définissez le paramètre Min Distance sur 3.
6. Avec le haut-parleur sélectionné, cliquez sur Ajouter un composant -> Émetteur audio. Il s'agit d'une classe du Mixed Reality Toolkit qui utilise le composant AudioSource connecté et le sous-ensemble de filtres sonores Unity pour appliquer et contrôler les effets sonores, tels que l'absorption.

Enregistrer et exécuter
Maintenant, notre conférencier est complètement prêt. Transformons-le en un préfabriqué.
1. Faites glisser l'objet Haut-parleur vers le dossier Assets -> Prefabs pour le transformer en préfabriqué.
En transformant l'enceinte en un préfabriqué, nous en ferons un objet qui pourra être réutilisé. Après cela, nous serons en mesure de créer un nombre illimité d'instances de haut-parleurs pour notre scène ou d'autres scènes de ce projet.
Maintenant, sauvegardons la scène (en appuyant sur Ctrl + S) et exécutons-la pour voir les résultats de notre travail.
Maintenant, nous pouvons faire beaucoup de choses intéressantes:
- jouer et arrĂŞter le son;
- rapprochez l'enceinte de vous-mĂŞme, en remarquant que le son devient plus fort et plus clair;
- éloignez le haut-parleur de vous, en remarquant que le volume sonore est réduit.
N'oubliez pas que vous pouvez vous téléporter à différents points de la pièce en appuyant sur le bouton «Avancer» du joystick et en sélectionnant le point du sol où vous souhaitez vous rendre. De cette façon, vous pouvez vous éloigner davantage du haut-parleur.
L'originalAuteurs: Eric Ahlstrom, cbarkerms, Madison Hight