HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

0 Shares

Bei einer überzeugenden Mixed-Reality-Erfahrung ist die Berücksichtigung von Audio ein Muss. Hervorragendes Audio kann den HoloLens-Träger an einen anderen Ort oder zu einer anderen Zeit transportieren, beim Navigieren in 3D-Schnittstellen helfen oder die Linien dessen, was real ist und was ein Hologramm ist, verwischen. Mit einem ortsbezogenen Trigger (Hotspot) werden wir ein unterhaltsames Beispiel dafür finden, wie gut räumlicher Klang mit der HoloLens funktioniert.

In diesem Tutorial erstellen wir ein räumliches Audioobjekt, das sich um ein Zielobjekt dreht. Sie können sitzen bleiben und zuhören, während das Hologramm den Raum um Sie herum durchquert, oder sich frei bewegen und das sich ändernde Audio frei erkunden.

Um direkt einzusteigen, müssen Sie zuerst das Lernprogramm für Benutzerstandort-Hotspots abschließen. Für dieses Tutorial muss außerdem eine HoloToolkit-Version verwendet werden, die die Benutzereingabemodule enthält (ich verwende eine Version, die im April 2017 von GitHub abgerufen wurde).

Muss gelesen werden: So erstellen Sie Benutzerstandort-Hotspots, um Ereignisse mit der HoloLens auszulösen

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Wo wir mit unserem Hotspots-Tutorial aufgehört haben.

Okay, wir haben den routinemäßigen Papierkram aus dem Weg geräumt. Fangen wir an zu bauen!

Schritt 1: Einrichten der Grundlagen

Beginnen wir mit dem Ziehen der InputManager Fertighaus aus HoloToolkit -> Eingang -> Fertighäuser Ordner im Projektfenster in der obersten Ebene des Hierarchiefensters. Machen wir dasselbe auch für den Cursor, indem wir den ziehen DefaultCursor gefunden in der HoloToolkit -> Eingang -> Fertighäuser -> Mauszeiger Mappe. Durch das Hinzufügen dieser beiden Fertighäuser wird unsere App schnell für Gesten vorbereitet.

Eine kurze Randnotiz: Wenn Sie den Holographic Remoting Player verwenden, um in Unity eine Remote-Verbindung zu Ihrer HoloLens herzustellen (ich hoffe, Sie sind es!), Müssen Sie das Kontrollkästchen HDR zulassen in der Kamerakomponente des HoloLensCamera GameObject aktivieren. Andernfalls wird auf Ihrer HoloLens ein leerer Bildschirm angezeigt, wenn Sie die Szene in Unity abspielen.

Schritt 2: Ändern Sie den vorhandenen Hotspot

Idealerweise möchten wir unseren Hotspot mit der Tap-and-Hold-Geste verschieben können. Wir wollen jedoch, dass dies nur geschieht, wenn wir den Würfel betrachten. nicht sein übergroßer Hotspot-Collider. Wir müssen einige Änderungen vornehmen, um dies zu erreichen.

Markieren Sie den Würfel und deaktivieren Sie im Inspektor die Option Mesh Renderer Komponente. Verwenden Sie die Schicht Dropdown und wählen Sie “Raycast ignorieren”. Da dieses unsichtbare Objekt jetzt nur zum Auslösen von Ereignissen verwendet wird, möchten wir nicht, dass unser Blick von seinem Kollider abgefangen wird. Dies ist nicht nur verwirrend für den Benutzer, sondern sabotiert auch unsere Gestenaktion, die wir später in diesem Schritt erstellen.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Als nächstes erstellen Sie eine 3D-Objekt -> Würfel. Benennen Sie diesen “Griff” um. Machen Sie dieses Objekt in der Hierarchie zu einem untergeordneten Objekt des vorhandenen Cube-Objekts. Wählen Sie Griff und verwenden Sie das Zahnradmenü, um die Transformation zurückzusetzen. Stellen Sie auch sicher, dass es Schicht ist immer noch auf “Standard” eingestellt.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Hängen Sie die HoloToolkit-Skriptkomponente “HandDraggable” an unser Handle an. Klicken Sie dazu auf “Komponente hinzufügen”, während Sie unseren Griff überprüfen. Geben Sie “drag” ein und drücken Sie die Eingabetaste. Wenn wir jetzt testen würden, hätten wir das Problem, dass sich der Griff bewegt, aber unser Elternteil und sein Collider bleiben stehen. Das macht den Zweck irgendwie zunichte.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Aber das Wiedersehen von Mutter und Kind ist nur ein Drehbuch entfernt.

Eine nette Funktion des Skripts ist, dass es uns bereits eine Möglichkeit bietet, die Eltern und nicht nur unser Kind zu bewegen. Wenn Handle ausgewählt ist, müssen wir einfach das übergeordnete GameObject aus der Hierarchie in den leeren Bereich “Host Transform” ziehen Hand ziehbar Komponente.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Es gibt noch eine Sache, die wir ansprechen müssen. Unity löst den “OnTriggerEnter” des Elternteils aus, selbst wenn der Collider des Kindes ausgelöst wird. Dies ist eine Funktion zum Erstellen von zusammengesetzten Collidern. Wir möchten dieses Verhalten jedoch nicht, da es dazu führt, dass unsere Triggerereignisse zweimal ausgelöst werden. Um dies zu lösen, fügen wir unserem Griff einen starren Körper hinzu. Wählen Ist kinematisch und abwählen Verwenden Sie die Schwerkraft.

Das Problem ist nun, dass der untergeordnete Collider mit dem übergeordneten Collider “kollidiert”, sobald die Szene beginnt. Um dies zu beheben, fügen wir eine einfache bedingte Anweisung hinzu, in der wir unser Ereignis aufrufen.

Wenn Sie sich an das vorherige Tutorial erinnern, haben wir Ereignisse zum Auslösen unserer Hotspots verwendet. Ereignisse bieten eine nützliche Möglichkeit, Abonnenten darüber zu informieren, dass etwas passiert ist, das uns wichtig ist. Wir deklarieren diese Ereignisse mithilfe von Delegierten.

Holen Sie sich den Code hier oder öffnen Sie das “Hotspot” -Skript und aktualisieren Sie die “If” -Anweisung in unserer “OnTriggerEnter” -Funktion auf:

if (OnEntered! = null && other.CompareTag (“MainCamera”))

Machen Sie dasselbe für die Funktion “OnTriggerExit”. Es sollte so aussehen:

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Jetzt ist ein guter Zeitpunkt, um zu testen, ob unser Hotspot wie erwartet funktioniert. Spielen Sie die Szene ab und überprüfen Sie, ob der Würfel (übergeordnetes Element) und sein Collider beim Griff (untergeordnetes Element) verbleiben. Stellen Sie außerdem sicher, dass der Cursor nur auf den Griff “trifft” und den übergroßen Collider ignoriert.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Schritt 3: Räumliche Audiokonfiguration

Nachdem wir die Objekte in unserer Szene installiert haben, konzentrieren wir uns auf die Konfiguration von Audio für die Verwendung mit HoloLens. Öffnen Sie den Audio Manager, indem Sie auf gehen Bearbeiten -> Projekt Einstellungen -> Audio.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Stellen Sie die Spatializer Plugin zu “MS HRTF Spatializer”.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Schritt 4: Audiodateien herunterladen und Komponente einrichten

Hier sind wir! Wir sind bereit, etwas Audio hinzuzufügen. Für dieses Tutorial können Sie alle kompatiblen Dateien verwenden, die Sie möchten. Ich empfehle jedoch dringend, die drei Dateien herunterzuladen, die ich für Sie kuratiert habe. Die Dauer, Vielfalt und Qualität passen gut zu unserer Demonstration. Außerdem sind sie bei Freesound kostenlos. Wenn Sie noch kein Konto haben, dauert das Erstellen und Verwenden eines Kontos ungefähr eine Minute und es werden nur sehr wenige Informationen benötigt.

Folgen Sie den Links und laden Sie die folgenden Audiodateien herunter:

Suchen Sie, wo Sie die Dateien heruntergeladen haben, und benennen Sie sie in “Hubschrauber”, “Scifi” bzw. “CreepyVoice” um. Erstellen Sie in Unity im Projektfenster einen Ordner mit dem Namen “Sounds”. Ziehen Sie die drei neu umbenannten Audiodateien in diesen Ordner.

Wählen Sie im Projektfenster nacheinander jede Audiodatei aus und wählen Sie im Inspektor die aus Force To Mono Kästchen und klicken Sie auf “Übernehmen”. Wenn Sie Spatial Audio verwenden, möchten Sie, dass Ihre Dateien in Mono vorliegen. Stereodateien werden nicht richtig verarbeitet und trüben die Illusion räumlicher Klänge erheblich.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Markieren Sie im Hierarchiefenster das Sphere GameObject. Klicken Sie auf “Komponente hinzufügen” und fügen Sie eine “Audioquelle” -Komponente hinzu. Gehen Sie wie folgt vor, um die Audioquelle zu konfigurieren:

    Prüfen Spatialisieren Box. Prüfen Schleife Box (da wir möchten, dass unsere Sounds fortgesetzt werden, bis wir sie manuell stoppen). einstellen Räumliche Mischung auf 1. einstellen Volumen-Rolloff zu “Custom Rolloff”. einstellen Maximale Entfernung bis 5 (um den Effekt der Klangplatzierung hervorzuheben).
HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Schritt 5: Skripten des Audios

Zeit, das schwere Heben des räumlichen Hologramm-Audios zu codieren. Erstellen Sie eine neue Skriptkomponente auf unserer Sphere und nennen Sie sie “HotspotAudioCue”. Fügen Sie den hier gefundenen Code ein und speichern Sie die Datei.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Wir haben zuerst eine öffentliche Reihe von Audioclips erstellt. Bei der “Start” -Methode erhalten wir die AudioSource-Komponente. Anschließend abonnieren (und kündigen) wir das Ereignis “Hotspot.OnEntered”.

Wenn das Ereignis ausgelöst wird, generieren wir eine Zufallszahl, um einen unserer abzuspielenden Audioclips auszuwählen. Wir weisen diesen Clip unserer AudioSource-Komponente zu und rufen die “Play” -Methode auf.

Wir sind fast bereit zum Testen. Als letztes müssen wir dem Array im Inspector unsere eigentlichen Audioclips hinzufügen. Schauen Sie sich bei hervorgehobener Sphäre die an Hotspot Audio Cue Komponente. Hier können wir einstellen Größe des Clips bis 3. Drücken Sie die Eingabetaste.

Ein Dropdown-Menü mit drei zuweisbaren Elementen wird angezeigt. Ziehen Sie jeden Audioclip aus Ihrem Sound-Ordner in ein leeres Feld Element Feld.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Speichern und spielen Sie die Szene ab und fahren Sie dann mit der Kamera über den Hotspot. Der Ton sollte aufleuchten. Verlassen Sie den Hotspot vollständig (vollständig vom übergroßen Collider der Eltern) und geben Sie ihn erneut ein. Bei jedem erneuten Eintritt in den Hotspot sollte von Anfang an ein Clip abgespielt werden. Während die Clips mit nur drei Clips zufällig ausgewählt werden, wundern Sie sich nicht, wenn Sie den gleichen mehrmals hintereinander auswählen.

Schritt 6: Lass es uns Spaß machen

Wir haben alle Teile für räumliche Güte an Ort und Stelle. Lass uns etwas Spaß damit machen!

Durch Ändern des Codes in unserem “HotspotAudioCue” -Skript erstellen wir einen einfachen Effekt eines Objekts mit Ton, der um den Hotspot kreist. Dies wird hoffentlich als Katalysator dienen, um einige kreative Ideen für Ihre eigenen Projekte hervorzubringen.

Fügen Sie den vollständigen Code ein, den Sie hier finden.

HoloLens Dev 101: Wie Sie die Leistungsfähigkeit von räumlichem Audio mithilfe von Hotspots erkunden

Nehmen wir uns eine Minute Zeit, um die Änderungen zu überprüfen. Unser Ziel ist es, die Werte für die integrierte Funktion “RotateAround” in der Methode “Update” einzugeben. Während wir der Einfachheit halber die “Update” -Methode verwenden, würde ich es normalerweise vorziehen, diese mit einer Coroutine zu implementieren.

Wenn “OnHotspotEnter” aufgerufen wird, schalten wir den aktuellen aktiven Status um und entscheiden, was zu tun ist. Wenn es jetzt inaktiv ist, stoppen wir einfach unseren Clip. Wenn es aktiv ist, nehmen wir die Länge des zufällig ausgewählten Clips und dividieren 360 (Grad) durch diese. Dies bedeutet, dass das umlaufende Objekt eine volle Umdrehung pro Schleife des Clips ausführt. Wir wollen auch die Drehrichtung randomisieren, um sie interessant zu machen. Beachten Sie, dass der Wert für die y-Achse auf 1 gesetzt ist. Dadurch wird verhindert, dass unser Objekt stillsteht, wenn alle drei Vector3-Werte eine 0 zeichnen.

Für jeden Frame, der “isActive” ist, werfen wir unsere Werte in die Funktion “RotateAround” und lassen unser Sphere-Hologramm um unser “objectToOrbit” treiben. Apropos, das Letzte, was wir tun müssen, ist, unseren Cube-Hotspot aus der Hierarchie in den leeren zu ziehen Objekt zum Orbit Steckplatz im Inspektor.

Speichern, spielen und testen Sie die Szene. Wenn Sie zum ersten Mal über den Hotspot fahren, sollte unser Audio starten und die Kugel sollte ihre Revolution beginnen. Verlassen Sie den Hotspot und geben Sie ihn erneut ein. Unser Clip sollte anhalten und unsere Kugel sollte einfrieren. Wiederholen Sie dies einige Male, um sicherzustellen, dass alles in Ordnung ist. Wenn ja, bauen Sie auf Ihre HoloLens und genießen Sie alles, was räumliches Audio ist!

Die Bedeutung von gut implementiertem Audio für Atmosphäre, Führung oder Emotion kann nicht genug betont werden. Ein Großteil davon, wie unser Geist die Welt um uns herum verarbeitet, betrifft unsere Ohren. Wenn wir uns eingehender mit der gemischten Realität befassen, wird die Nutzung dieser Möglichkeiten einen großen Beitrag zur Erstellung überzeugender Apps leisten.

Wir würden gerne sehen, wie Sie räumliches Audio in Ihren Projekten verwenden. Bitte teilen Sie uns in den Kommentaren unten Fragen, Feedback oder Entwicklungsprobleme mit, über die Sie mehr erfahren möchten. Prost!

Verpassen Sie nicht: So fügen Sie Ihrem Vuforia ImageTarget holographische Effekte hinzu

0 Shares