Wir setzen die Artikelserie zu Windows Mixed Reality fort und entwickeln von Grund auf eine Unity Mixed Reality-Anwendung im Laborarbeitsformat. Sie können selbst parallel zur Veröffentlichung von Artikeln eine solche Anwendung erstellen. Heute werden wir über räumlichen Klang sprechen und wie man das Gefühl schafft, in einer anderen Realität zu sein.

Die gesamte Anleitung besteht aus 5 Teilen. Es wird jede Woche aufgefüllt. Unten können Sie zu dem Teil gehen, den Sie benötigen.
Teil 1: Exportieren der UWP-Anwendung für Windows Mixed Reality aus Unity ;
Teil 2: Einrichten der Umgebung (VR) ;
Teil 3: Controller ;
Teil 4: Raumklang ;
Teil 5: HoloLens und Grafik .
Raumklang
Der Lautsprecher ist bereit. Versuchen Sie nun, die Wiedergabe von räumlichem Klang zu starten und zu stoppen. In diesem Abschnitt fügen wir eine Tonquelle und Steuerelemente für die Audiowiedergabe hinzu.
Da einige der Aufgaben, mit denen wir konfrontiert sind, denen ähneln, die zuvor erledigt wurden, geben wir Anweisungen in Form von Listen, um den Prozess zu beschleunigen.
Überprüfen Sie Ihre Aktionen anhand der Screenshots am Ende jeder großen Phase. Anweisungen finden Sie in den Anweisungen unter den zusätzlichen Links.
Hinzufügen einer Tonquelle
Um Ton über einen Lautsprecher
wiederzugeben , müssen Sie die Unity
AudioSource- Komponente hinzufügen.
- Wählen Sie das Lautsprecherobjekt in der Szene aus und klicken Sie auf Komponente hinzufügen -> Audio -> Audioquelle.
- Klicken Sie auf das kleine Fadenkreuz rechts neben der Audio-Clip-Eigenschaft der Audio Source-Komponente und wählen Sie Chill Blue Lagoon aus.
- Deaktivieren Sie das Kontrollkästchen Play On Awake, da wir die Wiedergabe über die Schaltflächen steuern. Wir werden die Einstellungen für die räumliche Klangunterstützung später ändern.

Hinzufügen von Wiedergabesteuerungen zum Lautsprecher
Gehen Sie folgendermaßen vor, um dem Lautsprecher eine Wiedergabetaste hinzuzufügen:
1. Suchen Sie im Projektfenster das CircleButton-Prefab im Ordner Assets -> HoloToolkit -> UX -> Prefabs -> Buttons (Ressourcen -> HoloToolkit -> UX -> Prefabs -> Buttons) und ziehen Sie es in das Hierarchiefenster indem Sie dieses Fertighaus als untergeordnetes Element des Speaker-Objekts zur Szene hinzufügen.
2. Geben Sie der hinzugefügten Schaltfläche den Namen PlayButton.

3. Erhöhen Sie die Größe des PlayButton, indem Sie seine Transform Scale-Eigenschaft auf (90, 90, 90) setzen.
4. Klicken Sie nach Auswahl des PlayButton-Objekts auf Komponente hinzufügen -> Ereignis -> Ereignisauslöser (Komponente hinzufügen -> Ereignis -> Ereignisauslöser).
5. Klicken Sie auf Neuen Ereignistyp hinzufügen -> Zeiger.
6. Klicken Sie unten in der leeren Ereignisliste auf die Schaltfläche +.
7. Ziehen Sie das Speaker-Objekt aus dem Hierarchiefenster auf das Feld, um Ereignisse mit der Bezeichnung None (Object) zu verwerfen.
8. Wählen Sie in der Dropdown-Liste Keine Funktion AudioSource-> Wiedergabe ().

Gehen Sie folgendermaßen vor, um dem Lautsprecher eine Pause-Taste hinzuzufügen:
1. Duplizieren Sie den PlayButton, indem Sie Strg + D drücken oder im Hierarchiefenster mit der rechten Maustaste auf eine Ressource klicken und Duplizieren auswählen, und benennen Sie ihn dann in PauseButton um.
2. Setzen Sie für die Ereignisauslöserfunktion des PauseButton-Objekts den Wert auf AudioSource-> Pause ().

Jetzt sollten diese Schaltflächen funktionieren, aber es ist schwierig, sie zu verwenden, da sie sich überlappen. Ein weiteres Problem - der Benutzer sieht sie nicht, wenn der Lautsprecher zur Seite gedreht wird. Gehen Sie wie folgt vor, um dieses Problem zu beheben:
1. Setzen Sie die Eigenschaft Transform Position des PlayButton auf (-6, 18, 0).
2. Legen Sie für die Eigenschaft Position transformieren des PauseButton die Werte (6, 18, 0) fest.
3. Klicken Sie im Hierarchiefenster mit der rechten Maustaste auf das Lautsprecherobjekt und wählen Sie Leer erstellen, um ein leeres untergeordnetes Objekt zu erstellen. Benennen Sie das hinzugefügte GameObject in ButtonBillboard um. Um ein Objekt umzubenennen, klicken Sie mit der rechten Maustaste darauf und wählen Sie Umbenennen.
4. Ziehen Sie beide Schaltflächen auf das ButtonBillboard-Objekt und machen Sie sie zu untergeordneten Objekten dieses Objekts.
5. Klicken Sie bei ausgewähltem ButtonBillboard-Objekt im Inspektor auf Komponente hinzufügen -> Werbetafel. Die Billboard-Komponente kann über die Suchleiste gefunden werden. Das Billboard-Skript aus dem Mixed Reality Toolkit macht das Objekt ständig zur Kamera gerichtet und wird häufig für Elemente der Benutzeroberfläche verwendet.
6. Sie benötigen die folgende Struktur für die Werbetafel:

Um die Wiedergabe- und Pause-Schaltflächen leichter unterscheiden zu können, können Sie ihre Standardsymbole durch andere ersetzen. Dies kann auf verschiedene Arten geschehen, aber wir werden angesichts der Größe unseres Projekts die einfachste verwenden.
1. Scrollen Sie bei ausgewähltem PlayButton im Inspektor nach unten zur Compound Button Icon-Komponente.
2. Aktivieren Sie das Kontrollkästchen Symbol überschreiben.
3. Ziehen Sie das Start-Sprite aus dem Ordner "Assets -> Textures" auf die Icon Override-Eigenschaft der Compound Button Icon-Komponente.
4. Wiederholen Sie diese Schritte für das PauseButton-Objekt mit dem Pause-Sprite.

Surround Sound hinzufügen
Jetzt haben wir einen Lautsprecher, der ein- und ausgeschaltet und im virtuellen Wohnzimmer bewegt werden kann. Wir haben jedoch keinen räumlichen Klang, der den Präsenz-Effekt in unserer Anwendung verstärkt.
In Unity wird räumlicher Sound mithilfe des Spatializer-Plug-Ins implementiert. Plug-in-Dateien sind Teil von Unity, daher ist es einfach, räumlichen Sound zu implementieren.
1. Gehen Sie zum Abschnitt Bearbeiten -> Projekteinstellungen -> Audio (Bearbeiten -> Projekteinstellungen -> Ton).
2. Ändern Sie für den Parameter Spatializer Plugin den Wert von None in MS HRTF Spatializer.
Da das Surround-Sound-System von Microsoft derzeit nur eine Abtastrate von 48.000 Hz unterstützt, sollte die System-Abtastrate ebenfalls auf 48.000 eingestellt werden (falls noch nicht geschehen), um zu verhindern, dass die HRTF ausfällt.

Jetzt müssen Sie die Einstellungen für den Soundclip selbst vornehmen.
1. Wählen Sie im Hierarchiefenster das Lautsprecherobjekt aus.
2. Scrollen Sie zur Audioquellenkomponente des Inspektorfensters und aktivieren Sie das Kontrollkästchen Spatialize.
3. Wählen Sie für den Parameter Spatial Blend 3D aus (der numerische Wert ist 1).
4. Erweitern Sie das Menü 3D-Toneinstellungen.
5. Um die optimalen 3D-Soundeinstellungen für unsere Anwendung festzulegen, stellen Sie den logarithmischen Rolloff-Wert für den Parameter Volume Rolloff und den Parameter Min Distance auf 3 ein.
6. Klicken Sie bei ausgewähltem Lautsprecher auf Komponente hinzufügen -> Audio-Emitter. Dies ist eine Klasse im Mixed Reality Toolkit, die die verbundene AudioSource-Komponente und die Unity-Soundfilter-Teilmenge verwendet, um Soundeffekte wie die Absorption anzuwenden und zu steuern.

Speichern und ausführen
Jetzt ist unser Lautsprecher komplett fertig. Lassen Sie es uns in ein Fertighaus verwandeln.
1. Ziehen Sie das Speaker-Objekt in den Ordner Assets -> Prefabs, um es in ein Prefab zu verwandeln.
Wenn wir den Lautsprecher in ein Fertighaus verwandeln, machen wir daraus ein Objekt, das wiederverwendet werden kann. Danach können wir eine beliebige Anzahl von Sprecherinstanzen für unsere Szene oder andere Szenen dieses Projekts erstellen.
Speichern Sie nun die Szene (durch Drücken von Strg + S) und führen Sie sie aus, um die Ergebnisse unserer Arbeit anzuzeigen.
Jetzt können wir viele interessante Dinge tun:
- spielen und stoppen Sie den Ton;
- Stellen Sie den Lautsprecher näher an sich heran und bemerken Sie, dass der Klang lauter und klarer wird.
- Bewegen Sie den Lautsprecher weiter von sich weg und stellen Sie fest, dass die Lautstärke verringert ist.
Vergessen Sie nicht, dass Sie sich zu verschiedenen Punkten im Raum teleportieren können, indem Sie die Taste „Vorwärts“ am Sprungstock drücken und den Punkt auf dem Boden auswählen, zu dem Sie gehen möchten. Auf diese Weise können Sie sich weiter vom Lautsprecher entfernen.
Das OriginalAutoren: Eric Ahlstrom, cbarkerms, Madison Hight