Fallstudie: Verwenden von räumlichem Sound in roboraidCase study - Using spatial sound in RoboRaid

In diesem Artikel werden die Herausforderungen des Microsoft hololens-Teams bei der Erstellung von Audiodaten für die First-Person-Anwendung roboraid Mixed-Reality beschrieben.This article describes challenges the Microsoft HoloLens Experience Team faced while creating audio for the RoboRaid mixed-reality first-person shooter.

Die TechnologieThe tech

Räumlicher Sound ist eines der interessantesten Features von Microsoft hololens, mit dem Benutzer die möglichen Informationen erkennen können, wenn Objekte nicht in der Sicht enthalten sind.Spatial sound is one of the most exciting features of Microsoft HoloLens, letting users perceive what's going on around them when objects aren't in the line of sight.

In roboraid besteht die offensichtlichste und effektivste Verwendung des räumlichen Sounds darin, den Player vor der Peripherie Vision zu warnen.In RoboRaid, the most obvious and effective use of spatial sound is alerting the player to something happening outside of their peripheral vision. Beispielsweise kann der breacher von einem der überprüften Wände im Raum eingeben.For example, the Breacher can enter from any of the scanned walls in the room. Wenn Sie nicht mit dem Speicherort des Orts vertraut sind, können Sie ihn übersehen.If you're not facing the location where it's entering, you might miss it. Um Sie bei dieser Invasion zu warnen, hören Sie ein unterschiedliches Audiostück, von dem aus der breacher wechselt, sodass Sie schnell reagieren müssen, um es zu verhindern.To alert you to this invasion, you'll hear a distinct bit of audio coming from where the Breacher is entering, which lets you know you need to act quickly to stop it.

Abläufe im HintergrundBehind the scenes

Das Erstellen räumlicher Sounds für hololens-Apps ist so neu und einzigartig, dass Probleme schwer zu lösen sind, da keine früheren Projekte vorhanden sind, auf die verwiesen werden kann.Creating spatial sound for HoloLens apps is so new and unique that problems can be difficult to solve because there aren't any past projects to reference. Hoffentlich helfen Ihnen diese Beispiele für die audioherausforderungen bei der Erstellung von roboraid bei der Erstellung von Audiodaten für Ihre eigenen apps.Hopefully, these examples of the audio challenges we faced while making RoboRaid will help you as you create audio for your own apps.

Berücksichtigen der CPU-AuslastungBe mindful of taxing the CPU

Räumlicher Sound kann auf der CPU anspruchsvoll sein.Spatial sound can be demanding on the CPU. Für eine ausgelastete Umgebung wie roboraid war es entscheidend, die Anzahl räumlicher Sound Instanzen zu einem beliebigen Zeitpunkt unter acht zu halten.For a busy experience like RoboRaid, it was crucial to keep the number of spatial sound instances to under eight at any given time. In der Regel war es so einfach, das Limit von Instanzen für verschiedene Audioereignisse festzulegen.Usually, it was as easy as setting the limit of instances for different audio events. Alle Instanzen, die nach Erreichen des Limits auftreten, werden abgebrochen.Any instances that happen after the limit is reached are killed. Wenn beispielsweise Drohnen ausgegeben werden, sind Ihre Screams auf drei Instanzen zu einem beliebigen Zeitpunkt beschränkt.For example, when drones spawn, their screams are limited to three instances at any given time. Wenn nur ungefähr vier Drohnen gleichzeitig erzeugt werden können, sind drei scremes ausreichend, da das Gehirn nicht so viele ähnlich klingende Audioereignisse verfolgen kann.Considering only about four drones can spawn at once, three screams are plenty since there’s no way your brain can keep track of that many similar-sounding audio events. Dadurch wurden Ressourcen für andere räumliche Audioereignisse freigegeben, wie z. b. feindliche Explosionen oder Feinde, die sich auf das Schießen vorbereitenThis freed up resources for other spatial sound events, like enemy explosions or enemies preparing to shoot.

Belohnen eines erfolgreichen ausweichenRewarding a successful dodge

Der Dodging-Mechaniker ist eine der wichtigsten Spielmechanismen in roboraid, und auch etwas, das wir uns fühlen, war für die hololens-Umgebung wirklich einzigartig.The dodging mechanic is one of the most important gameplay mechanics in RoboRaid, and also something that we felt was truly unique to the HoloLens experience. Daher wollten wir die erfolgreichen Dodges für den Player sehr lohnend gestalten.As such, we wanted to make successful dodges very rewarding to the player. Wir haben den Doppler "Whizz-by" ("Whizz-by") in die Entwicklung gebracht.We got the Doppler "whizz-by" to sound compelling fairly early on in the development. Anfänglich war der Plan, eine Schleife zu verwenden und Sie in Echtzeit mithilfe von Volume, Tonhöhe und Filter zu manipulieren.Initially, my plan was to use a loop and manipulate it in real-time using volume, pitch, and filter. Die Implementierung hierfür war sehr aufwendig.The implementation for this was going to be very elaborate. Vor dem committen von Ressourcen für die Erstellung haben wir einen kostengünstigen Prototyp mit einem Asset erstelltBefore committing resources to build this we created a cheap prototype using an asset with the Doppler effect baked in just to find out how it felt. Unsere begabten Entwickler haben es so gestaltet, dass dieses Whizz-by-Asset genau 0,7 Sekunden wiedergegeben würde, bevor die Projekt Kachel vom Player gereicht wird und die Ergebnisse erstaunlich sind!Our talented dev made it so that this whizz-by asset would play back exactly 0.7 second before the projectile will have passed by the player’s ear and the results felt amazing! Natürlich haben wir die komplexere Lösung unterzogen und den Prototyp implementiert.Needless to say, we ditched the more complex solution and implemented the prototype.

(Weitere Informationen zum Erstellen eines audioassets mit dem integrierten Doppler-Effekt finden Sie unter 100 whooshes in 2 Minuten.) (For more information about creating an audio asset with the Doppler effect built in, see 100 Whooshes in 2 Minutes.)
Durch das erfolgreiche Dodging eines "projectile" eines Feindes wird der Spieler durch einen Sound zufriedenstellend.Successfully dodging an enemy's projectile rewards the player with a satisfying whizz-by sound.

Abrufen von ineffektiven SoundsDitching ineffective sounds

Ursprünglich wollten wir einen explodierenden Sound hinter dem Player abspielen, nachdem Sie den feindlichen projectile erfolgreich angedochelt haben, aber wir haben uns entschieden, dies aus verschiedenen Gründen zu verwerfen.Originally, we had wanted to play an explosion sound behind the player once they’ve successfully dodged the enemy projectile, but we decided to ditch this for several reasons. Erstens war das nicht so effektiv wie das von SFX, das wir für den Dodge verwendet haben.First, it didn’t feel as effective as the whizz-by SFX we used for the dodge. Zu dem Zeitpunkt, an dem die Projekt Kachel auf eine Wand hinter Ihnen stößt, wäre im Spiel etwas anderes passiert, das diesen Sound maskieren würde.By the time the projectile hits a wall behind you, something else would have happened in the game that would mask that sound. Zweitens haben wir keine Kollision im Boden gefunden, deshalb konnten wir die Explosion nicht wiedergeben, wenn die "projectile"-Kachel anstelle der Wände auf den Fußboden trifft.Second, we didn’t have collision on the floor, so we couldn’t get the explosion to play when the projectile hit the floor instead of the walls. Und schließlich gab es die CPU-Kosten des räumlichen Sounds.And finally, there was the CPU cost of spatial sound. Der Elite-Skorpion (einer, der sich innerhalb der Wand durchforsten kann) hat einen besonderen Angriff, der etwa acht Projekt Kacheln durchsucht.The Elite Scorpion enemy (one that can crawl inside the wall) has a special attack that shoots about eight projectiles. Dies führte nicht nur zu einem großen Chaos in der Mischung, sondern führte auch zu einer sehr großen Überlastung, da die CPU zu schwierig war.Not only did that make a huge mess in the mix, it also introduced awful crackling because it was hitting the CPU too hard.

Kommunizieren eines TrefferCommunicating a hit

Ein interessantes Problem in den hololens war, wie schwierig es war, effektiv zu kommunizieren, dass ein Spieler getroffen wurde.An interesting issue we ran into on the HoloLens was how difficult it was to effectively communicate that a player had been hit. Eine gemischte Realität führt zu einer erfolgreichen Darstellung der Geschichte.What makes a mixed reality experience successful is the feeling that the story is happening to you. Dies bedeutet, dass Sie glauben müssen, dass Sie eine fremde Roboter-Invasion in Ihrem eigenen Wohn Raum bekämpfen.That means you have to believe YOU are fighting an alien robot invasion in your own living room.

Spieler fühlen sich offensichtlich nichts, wenn Sie auf Sie stoßen. Daher mussten wir eine Möglichkeit finden, den Player zu überzeugen, dass etwas Böses passiert ist.Players obviously won't feel anything when they get hit, so we had to find a way to convince the player that something bad happened to them. In herkömmlichen spielen wird möglicherweise eine Animation angezeigt, mit der Sie wissen, dass Ihr Zeichen einen Treffer ausgelöst hat, oder der Bildschirm ist rot, und Ihr Zeichen ist möglicherweise ein wenig.In conventional games, you might see an animation that lets you know your character has taken a hit, or the screen might flash red and your character might grunt a little. Da diese Arten von Hinweisen nicht in gemischter Realität funktionieren, haben wir uns entschieden, den visuellen Hinweis mit einem übertriebenen Sound zu kombinieren, der angibt, dass Sie Schäden verursacht haben.Since these types of cues don't work in a mixed reality experience, we decided to combine the visual cue with an exaggerated sound that indicates you've taken damage. Ich habe einen großen Sound erstellt und ihn so hervorgehoben, dass er in der Mischung alles hervorgehoben hat.I created a big sound, and made it so prominent in the mix that it ducked everything down. Um den Code noch weiter zu machen, haben wir eine kurze Warnmeldung mit dem Hinweis hinzugefügt, dass eine atomarische Untermenge nicht versinkt.Then, to make it stand out even more, we added a short warning sound as if a nuclear sub was sinking.
Wenn ein Player in roboraid erreicht wird, sehen Sie einen visuellen Hinweis, Sie erhalten aber auch einen übertriebenen audiohinweis, der Sie darüber informiert, dass Sie Schaden anrichten.When a player gets hit in RoboRaid, they see a visual cue, but also get an exaggerated audio cue that tells them they've taken damage.

Holen Sie sich einen großen Sound von kleinen ReferentenGetting big sound from small speakers

Hololens-Sprecher sind klein und leicht, um den Anforderungen des Geräts gerecht zu werden, sodass Sie nicht zu viel tiefstschluss erwarten.HoloLens speakers are small and light to suit the needs of the device, so you can’t expect to hear too much low-end. Ähnlich wie bei der Entwicklung für Smartphones oder Hand Held Spielgeräte müssen Sounddesigner und-Komponisten den Frequenz Inhalt Ihrer Audiodaten berücksichtigen.Similar to developing for smart phones or handheld gaming devices, sound designers and composers have to be mindful of the frequency content of their audio. Ich erstelle immer Sounds oder schreibe Musik mit vollständigem Frequenzbereich, da das Übertragen von Kopfhörern eine Option für die Benutzer ist.I always design sounds or write music with full frequency range because wearing headphones is an option for the users. Um jedoch die Kompatibilität mit den Referenten von hololens sicherzustellen, führe ich gelegentlich einen Test durch, indem ich einen EQ in den Master einer beliebigen DAW Stelle setze, in der ich arbeite.However, to ensure compatibility with HoloLens speakers, I run a test occasionally by putting an EQ in the master of any DAW I happen to be working in. Die EQ-Einstellung besteht aus einem High-Pass-Filter zwischen 600 Hz und 700 Hz (nicht zu steil) und einem Tiefpass Filter bei ungefähr 10K (steil).The EQ setting consists of a high-pass filter around 600 Hz to 700 Hz (not too steep) and low-pass filter at around 10K (steep). Dadurch erhalten Sie eine ungefähre Vorstellung von der Wiedergabe ihrer Sounds auf dem Gerät.That should give you an approximate idea of how your sounds will play back on the device.

Wenn Sie sich auf den Bass verlassen, um den Eindruck zu gewinnen, dass Sie sich in ihrer Musik ändern, werden Sie möglicherweise feststellen, dass Ihre Musik den Grund für den Stamm verliert, wenn Sie diese EQ-Einstellung anwenden.If you're relying on bass to give the sense of chord changing in your music, you may find that your music completely loses the sense of root when you apply this EQ setting. Um dieses Problem zu beheben, habe ich dem Bass eine andere Ebene hinzugefügt, die eine Oktave höher (mit einigen umfangreichen Harmonisierungen) ist, und Sie gemischt, um den Grund für den Stamm wieder zu verstehen.To remedy this, I added another layer to the bass that is one octave higher (with some rich harmonics) and mixed it to get the sense of root back. Manchmal wird durch die Verwendung von Verzerrung zum Einrichten der Harmonisierungen ausreichend Häufigkeits Inhalt im oberen Bereich angezeigt, damit das Gehirn der Ansicht ist, dass es etwas darunter gibt.Sometimes using distortion to amp up the harmonics will give enough frequency content in the upper range to make our brain think that there’s something underneath it. Dies gilt für SFX, wie z. b. Auswirkungen, Explosionen oder Sounds, wie z. b. die Super-Angriffe eines Chefs.This is true for SFX like impacts, explosions, or sounds for special moments, such as a boss' super attacks. Sie können sich nicht auf das niedrige Ende verlassen, um dem Player einen Eindruck von Auswirkung oder Gewichtung zu verschaffen.You really can’t rely on the low-end to give the player a sense of impact or weight. Wie bei Musik ist die Verwendung von "Verzerrung", um etwas zu erreichen, definitiv hilfreich.As with music, using distortion to give some crunch definitely helped.

Stellen Sie Ihre Audiohinweise bereitMaking your audio cues stand out

Natürlich wünschte sich jede Person im Team bombastische Musik, laute Gewehre und verrückte Explosionen. Sie wollten aber auch in der Lage sein, VoiceOver oder andere Spiel kritische Audiohinweise zu hören.Naturally, everyone on the team wanted bombastic music, loud guns, and crazy explosions; but they also wanted to be able to hear voiceover or any other game-critical audio cues.

Bei einem Konsolenspiel mit vollständigem Frequenzbereich haben Sie mehr Optionen, um die Häufigkeit abhängig von der Bedeutung des Sounds zu unterteilen.On a console game with full range of frequency, you have more options to divide frequencies up depending on the importance of the sound. Für roboraid war ich auf die Anzahl der Häufigkeits Bereiche beschränkt, die ich aus Sounds herausfiltern konnte.For RoboRaid, I was limited in the number of ranges of frequencies I could curve out from sounds. Wenn Sie einen Tiefpass-Filter verwenden und sich am oberen Ende des Spektrums zu stark auslagern, haben Sie im Sound keine weiteren Informationen, da es nicht viel zu niedrig ist.If you use low-pass filter and curve out too much from the higher end of the spectrum, you won’t have anything left on the sound because there’s not much low-end.

Um roboraid so groß wie möglich auf dem Gerät zu machen, mussten wir den dynamischen Bereich der gesamten Umgebung verringern und eine umfassende Verwendung von Ducking durchführen, indem wir eine klare Hierarchie von Wichtigkeit für verschiedene Arten von Sounds erstellt haben.To make RoboRaid sound as big as it can on the device, we had to lower the dynamic range of the whole experience and made extensive use of ducking by creating a clear hierarchy of importance for different types of sounds. Abhängig von der Wichtigkeit wird das Ducking von-2 dB auf-6 dB festgelegt.I set the ducking from -2 dB to -6 dB depending on the importance. Ich persönlich weiß nicht, dass ich mich in spielen in spielen, also habe ich viel Zeit damit verbracht, die Einblend-/Ausgabezeit und den Umfang der volumedämpfung zu optimieren.I personally don’t like obvious ducking in games, so I spent a lot of time tuning the fade in/out timing and the amount of volume attenuation. Wir richten separate Busse für räumliche Audiodaten, nicht räumliche Sounds, VO und Dry Bus ein, ohne für Musik zu Hall.We set up separate busses for spatial sound, non-spatial sound, VO, and dry bus without reverb for music. Anschließend haben wir hohe Prioritäts-, kritische und nicht kritische Busse erstellt, sodass die Assets so eingerichtet wurden, dass Sie in die entsprechenden Busse gelangen.Then, we created high priority, critical, and non-critical busses so the assets were set up to go to their appropriate busses.

Ich hoffe, dass Audiofachleute es so viel Spaß machen und mit der Arbeit an Ihren eigenen apps arbeiten, da ich mich an roboraid gearbeitet habe.I hope audio professionals out there will have as much fun and excitement working on their own apps as I did working on RoboRaid. Ich kann nicht abwarten (und hören!), was die talentierten Menschen außerhalb von Microsoft für hololens finden.I can’t wait to see (and hear!) what the talented folks outside Microsoft will come up with for HoloLens.

Aufzeichnung in EigenregieDo it yourself

Ein von mir ermittelter Trick, mit dem bestimmte Ereignisse (z. b. Explosionen) "größer" sind – wie Sie den Raum Auffüllen – bestand darin, ein Mono-Medienobjekt für den räumlichen Ton zu erstellen und es mit einem 2D-Stereo Asset zu mischen, das in 3D wiedergegeben werden sollte.One trick I discovered to make certain events (such as explosions) sound "bigger"—like they're filling up the room—was to create a mono asset for the spatial sound and mix it with a 2D stereo asset, to be played back in 3D. Es wird eine gewisse Optimierung durchführen, da zu viele Informationen in den Stereo Inhalten die Direktionalität der Mono-Assets verringern werden.It does take some tuning, since having too much information in the stereo content will lessen the directionality of the mono assets. Allerdings führt das Erreichen des Saldo Recht zu sehr großen Sounds, mit denen sich die Spieler in der richtigen Richtung drehen können.However, getting the balance right will result in huge sounds that will get players to turn their heads in the right direction.

Sie können große Sounds selbst ausprobieren, indem Sie die folgenden Audioressourcen verwenden:You can try out big sounds yourself using the audio assets below:

Szenario 1Scenario 1

  1. Laden Sie roboraid_enemy_explo_mono. wav herunter, und legen Sie fest, dass Sie den räumlichen Sound wiedergeben und einem Ereignis zuweisen.Download roboraid_enemy_explo_mono.wav and set to play back through spatial sound and assign it to an event.
  2. Laden Sie roboraid_enemy_explo_stereo. wav herunter, und legen Sie für die Wiedergabe in 2D Stereo fest, und weisen Sie dem gleichen Ereignis wie oben zu.Download roboraid_enemy_explo_stereo.wav and set to play back in 2D stereo and assign to the same event as above. Da diese Assets in Unity normalisiert werden, können Sie die Menge beider Assets dämpfen, damit Sie nicht abruft.Because these assets are normalized to Unity, attenuate volume of both assets so that it doesn’t clip.
  3. Wiedergeben beide Sounds.Play both sounds together. Bewegen Sie sich den Kopf, um zu erfahren, wie räumliche IT klingen.Move your head around to feel how spatial it sounds.

Szenario 2Scenario 2

  1. Laden Sie roboraid_enemy_explo_summed. wav herunter, und legen Sie fest, dass Sie den räumlichen Sound wiedergeben und einem Ereignis zuweisen.Download roboraid_enemy_explo_summed.wav and set to play back through spatial sound and assign to an event.
  2. Diese Ressource selbst wiedergeben und dann mit dem Ereignis aus Szenario 1 vergleichen.Play this asset by itself then compare it to the event from Scenario 1.
  3. Probieren Sie ein anderes Gleichgewicht von Mono-und Stereo Dateien aus.Try different balance of mono and stereo files.

Weitere InformationenSee also