ケーススタディ-RoboRaid での空間サウンドの使用Case study - Using spatial sound in RoboRaid

Microsoft HoloLens エクスペリエンスチームのオーディオリーダーであるチャールズ Sinex は、 RoboRaidのオーディオを作成するときに発生した固有の課題について話しています。これは、mixed reality first person shooter です。Charles Sinex, audio lead on the Microsoft HoloLens Experience Team, talks about the unique challenges he encountered when creating audio for RoboRaid, a mixed reality first-person shooter.

技術The tech

空間サウンドは、Microsoft HoloLens の最も魅力的な機能の1つであり、オブジェクトが見えなくなったときに、ユーザーが何をしているのかを認識する手段を提供します。Spatial sound is one of the most exciting features of Microsoft HoloLens, providing a way for users to perceive what's going on around them when objects are out of the line of sight.

RoboRaid では、空間サウンドの最も明白で効果的な使用方法は、ユーザーの周辺の構想の外部で発生していることをプレーヤーに通知することです。In RoboRaid, the most obvious and effective use of spatial sound is to alert the player to something happening outside of the user's peripheral vision. たとえば、部屋でスキャンされた任意の壁面から入力できますが、入力した場所に接続していない場合は、それを見逃してしまう可能性があります。For example, the Breacher can enter from any of the scanned walls in the room, but if you're not facing the location where it's entering, you might miss it. この侵害についての通知を受け取るために、入力されている場所からのオーディオの音が聞こえます。これにより、簡単に処理を停止する必要があることがわかります。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 that you need to act quickly to stop it.

しくみBehind the scenes

HoloLens アプリ用の空間サウンドを作成するプロセスは、新たに一意であり、参照に使用する過去のプロジェクトがないと、問題が発生したときに多数のヘッド初歩が発生する可能性があります。The process of creating spatial sound for HoloLens apps is so new and unique and the lack of past projects to use for reference can lead to a lot of head scratching when you run into a problem. RoboRaid を作成するときに発生するオーディオの課題の例は、自分のアプリ用にオーディオを作成する際に役立ちます。Hopefully, these examples of the audio challenges we faced while making RoboRaid will help you as you create audio for your own apps.

CPU の消費に注意してくださいBe mindful of taxing the CPU

空間サウンドが CPU で要求している可能性があります。Spatial sound can be demanding on the CPU. RoboRaid のようなビジーエクスペリエンスでは、特定の時点で空間サウンドのインスタンスを8未満に保つことが重要でした。For a busy experience like RoboRaid it was crucial to keep the instances of spatial sound to under eight at any given time. ほとんどの場合、この制限に達した後に発生するすべてのインスタンスが強制終了されるように、さまざまなオーディオイベントのインスタンスの制限を設定するのは簡単でした。For the most part, it was as easy as setting the limit of instances of different audio events so that any instances that happen after the limit is reached are killed. たとえば、ドローンを起動すると、その screams は特定の時点の3つのインスタンスに制限されます。For example, when drones spawn, their screams are limited to three instances at any given time. 約4つのドローンを一度に発生させることができます。このような音声イベントの多くは、脳で追跡することができないため、3つの screams は十分です。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. これにより、敵爆発や敵の撮影準備など、他の空間サウンドイベントのリソースが解放されます。This freed up resources for other spatial sound events, like enemy explosions or enemies preparing to shoot.

覆い焼きを成功させるRewarding a successful dodge

Dodging 整備士は、RoboRaid のゲームプレイの最も重要な側面の1つであり、さらに HoloLens のエクスペリエンスに対して真に固有のものです。The dodging mechanic is one of the most important aspects of gameplay in RoboRaid, and also something that we felt was truly unique to the HoloLens experience. このように、dodges を成功させるには、windows media player を使用する必要がありました。As such, we wanted to make successful dodges very rewarding to the player. 開発の早い段階では、"whizz by" が非常に優れています。We got the Doppler "whizz-by" to sound compelling fairly early on in the development. 最初の計画では、ループを使用し、ボリューム、ピッチ、フィルターを使用してリアルタイムで操作しました。Initially, my plan was to use a loop and manipulate it in real-time using volume, pitch, and filter. この実装は非常に複雑になります。したがって、実際にビルドするためにリソースをコミットする前に、アセットを使用して安価なプロトタイプを作成しました。これは、その意味を理解するためだけに組み込まれています。The implementation for this was going to be very elaborate, so before committing resources to actually build this we created a cheap prototype using an asset with the Doppler effect baked in just to find out how it felt*. 非常に優れた開発者が、このようにしています。これは、選手がプレーヤーの耳によって完成するまでの時間がちょうど0.7 秒前に再生されるようにしました。結果は本当にすばらしいものでした。Our talented dev made it so that this whizz-by asset would play back exactly 0.7 seconds before the projectile will have passed by the player’s ear and the results felt really amazing! 言うまでもありませんが、より複雑なソリューションを刷新、プロトタイプを実装しています。Needless to say, we ditched the more complex solution and implemented the prototype.

* * (組み込みのドップラー効果を使用してオーディオ資産を作成する方法の詳細については、サウンドデザイナーの記事「 2 分で 100 Whooshesと呼ばれます)」を参照してください。***(If you'd like more information about creating an audio asset with the Doppler effect built in, check out an article by sound designer Charles Deenan called 100 Whooshes in 2 Minutes.) *
、敵の dodging が正常に完了したら、プレーヤーはゲームに満足しています。Successfully dodging an enemy's projectile rewards the player with a satisfying whizz-by sound.

決別効果のないサウンドDitching ineffective sounds

最初は、敵の dodged タイルが正常に再生された後に、プレーヤーの爆発音を再生することにしましたが、いくつかの理由でこれを溝することにしました。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. まず、SFX に使用したのと同じように感じていませんでした。First, it didn’t feel as effective as the whizz-by SFX we used for the dodge. このゲームでは、他のユーザーが壁の後ろに壁を置いたときに、そのサウンドをかなりマスクしてしまうことがありました。By the time the projectile hits a wall behind you, something else would have happened in the game that would pretty much mask that sound. 次に、床で衝突が発生していないので、元のタイルが壁ではなくフロアに達したときに、爆発する爆発を得ることができませんでした。Secondly, 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. 最後に、空間サウンドの CPU コストが発生しました。And finally, there was the CPU cost of spatial sound. エリートスコーピオンの敵 (壁内でのクロールによって) は、8つの projectiles を受ける特別な攻撃を受けています。The Elite Scorpion enemy (one that can crawl inside the wall) has a special attack that shoots about eight projectiles. このような組み合わせで大きな混乱が発生しただけでなく、CPU の消費が困難になったため、非常に屋内にもなりました。Not only did that make a huge mess in the mix, it also introduced awful crackling because it was hitting the CPU too hard.

ヒットの通知Communicating a hit

私たちは HoloLens エクスペリエンスに固有の問題であり、ヒットしたプレーヤーと効果的に通信することは困難でした。An interesting issue we ran into, which we felt was unique to the HoloLens experience, was the difficulty of effectively communicating to the players that they have been hit. Mixed reality エクスペリエンスを成功させるには、ストーリーが発生していると感じます。What makes a mixed reality experience successful is the feeling that the story is happening to you. つまり、宇宙人ロボットが自分の生きた部屋に進攻していると信じなければなりません。That means that you have to believe that YOU are fighting an alien robot invasion in your own living room.

選手は、ヒットしたときに何も感じられないので、問題が発生したことをプレーヤーに納得させる方法を happed 必要がありました。Players obviously won't feel anything when they get hit, so we had to find a way to really convince the player that something bad had happed to them. 従来のゲームでは、文字がヒットしたことを知らせるアニメーションが表示されたり、画面が赤で点滅したり、文字が少し grunt したりする可能性があります。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. これらの種類のキューは、mixed reality エクスペリエンスでは動作しないため、ビジュアルキューと、破損が発生したことを示す非常に誇張されたサウンドを組み合わせることにしました。Since these types of cues don't work in a mixed reality experience, we decided to combine the visual cue with a really exaggerated sound that indicates you've taken damage. 大きなサウンドを作成しました。このようにして、すべてをまとめたミックスで目立つようにしました。I created a big sound, and made it so prominent in the mix that it ducked everything down. さらに、さらに多くのことを実現するために、核となる部分がシンクだったかのような短い警告音を追加しました。Then, to make it stand out even more, we added a short warning sound as if a nuclear sub was sinking.
RoboRaid でプレーヤーがヒットしたときには、視覚的な合図が表示されますが、破損していることを示す、誇張されたオーディオキューをます。 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.

小さいスピーカーからの大きな音の取得Getting big sound from small speakers

HoloLens スピーカーは、デバイスのニーズに合わせて小さく、光をすることができないので、あまりに多くのことを知りません。HoloLens speakers are small and light to suit the needs of the device, so you can’t expect to hear too much low-end. スマートフォンまたはハンドヘルドゲームデバイス向けの開発と同様に、サウンドデザイナーや作曲者は、オーディオの頻度のコンテンツに注意する必要があります。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. 常にサウンドをデザインするか、完全な周波数で音楽を書き込むことができます。これは、ユーザーのためのオプションであるためです。I always design sounds or write music with full frequency range because wearing headphones is an option for the users. ただし、HoloLens スピーカーとの互換性を確保するために、使用する必要がある DAW のマスターに EQ を配置することで、ときどきテストを実行します。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. EQ 設定は、600 ~ 700 Hz を中心とした高パスのフィルター (あまりにも早すぎません) と低パスのフィルターで構成されます (非常に急な速度)。The EQ setting consists of a high-pass filter around 600 to 700 Hz (not too steep) and low-pass filter at around 10K (very steep). これにより、サウンドがデバイスでどのように再生されるかをおおよそに把握できるはずです。That should give you a ballpark idea of how your sounds will playback on the device.

低音に依存してコード変更の意味を与える場合、この EQ 設定を適用すると、音楽がルートの意味を完全に失うことがあります。If you are 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. これを解決するには、1オクターブ以上 (豊富な高周波を使用) の低音に別のレイヤーを追加し、それを組み合わせてルートバックの意味を理解しました。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. 場合によっては、ディストーションを使用して高周波を分割することで、上限の範囲内に十分な頻度のコンテンツが提供され、その下に何かがあることをブレインで考えることができます。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. これは、上司のスーパー攻撃など、特殊な時間の影響、爆発、サウンドなどの SFX に当てはまります。This is true for SFX like impacts, explosions, or sounds for special moments, such as a boss' super attacks. このような場合、低いエンドツーエンドでは、プレーヤーが影響や重み付けを把握することはできません。You really can’t rely on the low-end to give the player a sense of impact or weight. 音楽の場合と同様に、ひずみを使用して、少し高速処理に役立っています。As with music, using distortion to give a little bit of crunch definitely helped.

オーディオキューを目立たせるMaking your audio cues stand out

当然ながら、チームの全員が bombastic 音楽、大きな機関銃、爆発した爆発を望んでいました。しかし、voiceover またはその他のゲームに不可欠なオーディオキューについても聞くことを望んでいました。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.

すべての周波数を持つコンソールゲームでは、サウンドの重要度に応じて、周波数を分割するオプションが増えます。On a console game with full range of frequency you have more options to divide frequencies up depending on the importance of the sound. しかし、RoboRaid では、私は音から出てくる周波数の範囲の数が制限されていました。For RoboRaid, however, I was limited in the number of ranges of frequencies I could curve out from sounds. たとえば、低パスのフィルターを使用していて、スペクトルの上限よりも多くの曲線を使用している場合は、それほど少ないので、サウンドには何も残っていません。For instance, 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.

RoboRaid サウンドをデバイス上で可能な限り大きくするには、さまざまな種類のサウンドに対して重要度の明確な階層を作成することによって、全体的なエクスペリエンスの動的な範囲を下げ、ducking を広範囲にわたって使用する必要がありました。In order 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. 重要度に応じて、ducking dB から-6 dB に設定します。I set the ducking from -2 to -6 dB depending on the importance. 私は、ゲームの ducking をはっきりとしていないので、フェードイン/アウトタイミングとボリュームの減衰量の調整に多くの時間を費やしました。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. 空間サウンド、非空間サウンド、VO、ドライバス用の個別のバスを音楽のリバーブなしでセットアップし、非常に優先度が高く、重要で、重要ではないバスを作成しました。We set up separate busses for spatial sound, non-spatial sound, VO, and dry bus without reverb for music, then created very high priority, critical, and non-critical busses. 資産は、適切なバスにアクセスするように設定されています。The assets were then set up to go to their appropriate busses.

私が RoboRaid で作業していたので、オーディオの専門家が自分のアプリに対して楽しく、魅力を持っています。I hope audio professionals out there will have as much fun and excitement working on their own apps as I did working on RoboRaid. Microsoft の外部にある有能な人たちが HoloLens を使用することはできません。I can’t wait to see (and hear!) what the talented folks outside Microsoft will come up with for HoloLens.

自分で実行するDo it yourself

部屋がいっぱいになっているように、特定のイベント (爆発など) の "大規模な" サウンドを作成するために発見したトリックは、空間サウンド用の mono 資産を作成し、2D ステレオアセットとミックスして3D で再生することでした。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. ステレオコンテンツに含まれる情報が多すぎると、mono 資産の方向が低下するため、調整が必要になります。It does take some tuning, since having too much information in the stereo content will lessen the directionality of the mono assets. ただし、バランスを取ると、大きな音が発生し、プレーヤーが適切な方向に表示されるようになります。However, getting the balance right will result in huge sounds that will get players to turn their heads in the right direction.

次のオーディオアセットを使用して、この操作を自分で試すことができます。You can try this yourself using the audio assets below:

シナリオ1Scenario 1

  1. Roboraid_enemy_explo_monoをダウンロードし、空間サウンドを使用して再生するように設定して、イベントに割り当てます。Download roboraid_enemy_explo_mono.wav and set to playback through spatial sound and assign it to an event.
  2. Roboraid_enemy_explo_stereoをダウンロードし、2d ステレオで再生するように設定して、上記と同じイベントに割り当てます。Download roboraid_enemy_explo_stereo.wav and set to playback in 2D stereo and assign to the same event as above. これらのアセットは Unity に正規化されるため、両方のアセットのボリュームを減衰させて、クリップしないようにします。Because these assets are normalized to Unity, attenuate volume of both assets so that it doesn’t clip.
  3. 両方のサウンドを同時に再生します。Play both sounds together. どのように動作するかを気にするために、頭を動かしてください。Move your head around to feel how spatial it sounds.

シナリオ2Scenario 2

  1. Roboraid_enemy_explo_summedをダウンロードし、空間サウンドを使用して再生するように設定し、イベントに割り当てます。Download roboraid_enemy_explo_summed.wav and set to playback through spatial sound and assign to an event.
  2. この資産を単独で再生し、シナリオ1のイベントと比較します。Play this asset by itself then compare it to the event from Scenario 1.
  3. Mono ファイルとステレオファイルのバランスを調整してください。Try different balance of mono and stereo files.

作成者についてAbout the author

Picture of Charles Sinex チャールズ SinexCharles Sinex
オーディオエンジニア @MicrosoftAudio Engineer @Microsoft

参照See Also