ケース スタディ - RoboRaid で立体音響を使用する

この記事では、RoboRaid Mixed Reality ファーストパーソン シューティング ゲーム用の音声を作成する際に、エクスペリエンス チームが直面した課題について説明します。

技術概要

立体音響は、Microsoft HoloLens の最も重要な機能の 1 つであり、ユーザーはオブジェクトが見えていなくても周囲で何が起きているのかを認識できます。

RoboRaid では、立体音響の最も明白で効果的な用途は、周辺視野外で起きていることをプレイヤーに警告することです。 たとえば、部屋のスキャンされた壁からブリーチャーが侵入してくる可能性があります。 侵入してくる場所を向いていなければ、見つからない可能性があります。 この侵入を警告するために、ブリーチャーが侵入してくる場所から、迅速に行動して阻止する必要があることを知らせる独特な音声が聞こえてきます。

バックグラウンド処理

HoloLens アプリ用に立体音響を作成することは、非常に新しく、独特であり、参照する過去のプロジェクトがないため、問題の解決が困難である可能性があります。 RoboRaid の作成時に直面したこのような音声チャレンジの例が、独自のアプリ用にオーディオを作成する際に役立つと幸いです。

CPU の負荷に注意する

立体音響では、CPU の負荷が高くなる可能性があります。 RoboRaid などのビジー状態のエクスペリエンスでは、立体音響インスタンスの数を常に 8 個以下に保つことが重要でした。 通常は、さまざまなオーディオ イベントにインスタンスの制限を設定することと同じくらい簡単でした。 制限に達した後に発生したインスタンスは削除されます。 たとえば、ドローンが現れると、飛行音はいつでも 3 つのインスタンスに制限されます。 一度に約 4 機のドローンしか現れないと考えても、脳には似たような音の多数のオーディオ イベントを追跡する方法がないため、飛行音は 3 つだけで十分です。 そのため、その他の立体音響イベント (敵の爆発や敵の発射準備など) 用にリソースが解放されました。

うまくかわしたことに報いる

うまくかわすメカニクスは、RoboRaid で最も重要なゲームプレイ メカニクスの 1 つであり、本当に HoloLens エクスペリエンス独自のものであると感じました。 そのため、うまくかわすことでプレイヤーが報われるようにしたかったのです。 開発の初期段階で説得力のあるサウンドを実現するために、「シュー」と通過するドップラー効果を採用しました。 当初はループを使用し、ボリューム、ピッチ、フィルターを使ってリアルタイムで操作する計画でした。 この実装は非常に複雑でした。 これを構築するためのリソースをコミットする前に、どのように感じられるのかを調べるためだけに、ドップラー効果がベイク処理されたアセットを使用して安価なプロトタイプを作成しました。 有能な開発者によって、このようなヒューと通過するアセットは、発射体がプレイヤーの耳に届く厳密に 0.7 秒前に再生されました。その結果は驚くべきものでした。 言うまでもなく、複雑なソリューションを捨てて、プロトタイプを実装しました。

(ドップラー効果を組み込み、オーディオ アセットを作成する方法の詳細については、「100 Whooshes in 2 Minutes」を参照してください。)
敵の射影を回避すると、満足のいく音でプレイヤーに報酬を与える。

効果のないサウンドを捨てる

当初は、敵の発射体をうまくかわしたら、プレイヤーの背後で爆発音を再生するつもりでしたが、いくつかの理由で捨てることにしました。 まず、かわしたときに使用したシューという通過音 SFX ほどの効果は感じられませんでした。 発射体が背後の壁に当たるまでに、その音をマスクする他の何かがゲーム中に起きる可能性もあります。 次に、床では衝突が発生しないため、発射体が壁ではなく床に当たったときに、爆発を再生できませんでした。 最後に、立体音響の CPU コストが発生しました。 エリート スコーピオンという (壁の内部をはうことができる) 敵は、約 8 発の発射体を撃つという特殊な攻撃を持っています。 大きな混乱が生じただけでなく、CPU への負荷が大きすぎたため、ひどい音割れも発生しました。

命中を伝える

HoloLens で直面した興味深い問題は、プレイヤーに命中したことを効果的に伝えることが非常に難しいことでした。 Mixed Reality エクスペリエンスを成功させるのに必要なものは、ストーリーが自分に起きているという感覚です。 つまり、自分のリビング ルームでエイリアン ロボットの侵入と戦っていると信じさせる必要があります。

プレイヤーは命中しても明らかに何も感じないので、何か悪いことが起きたことをプレイヤーに伝える方法を見つける必要がありました。 従来のゲームでは、キャラクターに命中したことを知らせるアニメーションが表示されたり、画面が赤く点滅し、キャラクターが少し不機嫌になったりしました。 Mixed Reality エクスペリエンスでは、このような合図が機能しないため、視覚的な合図と、ダメージを受けたかどうかを示す大げさなサウンドを混在させることにしました。 大きなサウンドを作成し、混在させても目立つように、すべての音量を下げました。 次に、さらに目立たせるために、潜水艦が沈んでいくような短い警告音を追加しました。
プレイヤーが RoboRaid でヒットすると、視覚的な手掛かりが表示されますが、ダメージを受けたと伝える誇張されたオーディオ キューも表示されます。

小さなスピーカーから大きな音を出す

HoloLens スピーカーはデバイスのニーズに合わせて小さく軽量なので、低すぎる音を聞くことは想定されていません。 スマートフォンや携帯ゲーム デバイス向けの開発と同様に、サウンドのデザイナーやコンポーザーは、オーディオの周波数成分に注意する必要があります。 ユーザーがヘッドセットを装着することはオプションなので、常に完全な周波数範囲でサウンドをデザインしたり、音楽を作ったりしています。 ただし、HoloLens スピーカーとの互換性を確保するために、たまたま作業中の DAW のマスターには EQ を入れてテストを実行しています。 EQ の設定は、約 600 Hz ~ 700 Hz (急すぎない) のハイパス フィルターと約 10K (急) のローパス フィルターで構成されます。 デバイスでサウンドがどのように再生されるのかが概ねわかります。

音楽でコード変化の感覚を得るためにベースに依存している場合は、この EQ 設定を適用すると、音楽の根底感覚が完全に失われる可能性があります。 これを解決するために、1 オクターブ高い (豊富な高調波を含んだ) 別のレイヤーをベースに追加し、混在させることで根底感覚を取り戻しました。 場合によっては、ディストーションを使用して高調波を増幅すると、脳で下に何かあると感じさせるのに十分な振動数成分が上限範囲内で得られます。 これは、特別な瞬間 (ボスのスーパー攻撃など) の衝撃、爆発、サウンドなどの SFX に当てはまります。 実際に、ローエンド音に依存すると、プレイヤーに衝撃や重さの感覚を伝えることができません。 音楽と同様に、ディストーションを使用してバリバリ音を出すことは間違いなく役立ちます。

音声による合図を目立たせる

当然ながら、チームの全員が大げさな音楽、大きな音の銃、常軌を逸した爆発を求めていました。ただし、ボイスオーバーなどのゲームに不可欠な音による合図が聞こえることも求めていました。

全範囲の周波数を備えたコンソール ゲームでは、サウンドの重要度に応じて、周波数を分割するオプションもあります。 RoboRaid では、サウンドから切り出せる周波数範囲の数が制限されていました。 ローパス フィルターを使用して高周波数帯から切り出しすぎると、ローエンド音があまりないため、サウンドに何も残りませんでした。

RoboRaid のサウンドをデバイスと同程度に大きくするには、エクスペリエンス全体のダイナミック レンジを下げ、さまざまな種類のサウンド用に明確な重要度の階層を作成することで、ダッキングを広範に使用する必要があります。 重要度に応じて、ダッキングを -2 dB ~ -6 dB に設定しました。 個人的にはゲーム中の明確なダッキングが好きではないので、フェード イン/フェード アウトのタイミングと音量減衰の量を調整することに長い時間を費やしました。 立体音響、非立体音響、VO、音楽のリバーブなしのドライ バス用に個別のバスを設定しました。 次に、優先度が高いバス、重要なバス、重要でないバスを作成し、アセットが適切なバスに割り当てられるように設定されました。

オーディオの専門家が自分のアプリで、私が RoboRaid で作業していたときと同じくらいに楽しんで、興奮しながら作業していることを願っています。 Microsoft 以外の才能ある人々が HoloLens のために何を思い付くのかを見るのを待つ(そして聞く)ことができます。

自分で実行する

特定のイベント (爆発など) のサウンドを「大きく」 (部屋中に鳴り響くかのように) するために見つけた技の 1 つは、立体音響用にモノラル アセットを作成し、2D ステレオ アセットと混在させて、3D で再生することでした。 ステレオ コンテンツに多くの情報を入れすぎると、モノラル アセットの方向性が低下し、チューニングが必要になります。 ただし、適切にバランスを取れば、プレーヤーが正しい方向に頭を向けるような大きなサウンドが出ます。

次のオーディオ アセットを使用して、自分で大きなサウンドを試してください。

シナリオ 1

  1. roboraid_enemy_explo_mono.wav をダウンロードし、立体音響で再生してイベントに割り当てるように設定します。
  2. roboraid_enemy_explo_stereo.wav をダウンロードし、2D ステレオで再生して上記と同じイベントに割り当てるように設定します。 これらのアセットは Unity に正規化されるため、クリップされないように両方のアセットのボリューム減衰させます。
  3. 両方のサウンドを同時に再生します。 頭を動かして、どのように立体的に聞こえるのかを感じてください。

シナリオ 2

  1. roboraid_enemy_explo_summed.wav をダウンロードし、立体音響で再生してイベントに割り当てるように設定します。
  2. このアセット自体を再生してから、シナリオ 1 のイベントと比較します。
  3. モノラル ファイルとステレオ ファイルのさまざまなバランスを試してください。

関連項目