見出し画像

VRChat音楽イベントワールドの基本の音響設定

※これはVRDJ Advent Calendar 2023の16日目の記事です

0. 始めに

VRでDJをしたりワールドを作ったりしてるとかげと言います

これまで音楽イベント向けワールドを作ったり、実験したり、他のワールド制作者の方と情報交換したりしているうちに
「パターン別の音響って基本部分はかなり単純化できるのでは?」
と思ったので今回まとめてみることにしました

VRChatの音響は、VR音響が元々奥深い上にVRChat独自の仕様もありとてもややこしいのですが、あくまで基本ということで、極力触るパラメータなどは少なくてもそれなりに良い感じになるようにしてみました

また、これらの設定を実際に試してみたり、自分の好みに合わせて調整したりするための音響テスト用ワールドも作りましたので、こちらも合わせてご利用ください

Acoustic Settings Test World - VRChat
なんか集中線ぽい?

注意:
なお以下は全てストリーム向けの音響設定です(内部的には別なんです)
ビデオ向けや普通の音声ファイルでもノウハウが使える場合も多いと思いますが、私の方では今のところテストできていません


1. 用語の整理

  • 2Dステレオ音声

    • 定位が頭の中にあるステレオ音声です

    • ヘッドホンで聴いた音のイメージです。

  • 3D音声

    • 方位感がある、定位が頭の外にある音です

    • スピーカーで聴いた音のイメージです

    • 一応L/Rがあるのですがモノラル音声と考えた方が良いです

  • リバーブ

    • Audio Reverb Zoneで設定する音が響く感じの設定です

    • なおVRCでは2Dステレオ音声にしか効きません

  • 減衰:音が遠くに行くほど小さくなる設定です

2. ベースのAudioSource

まずはベースとなるAudioSourceを3つ用意します
これらさえ用意できれば、あとは決まったパラメータの調整だけで基本的な音響設定が出来ます

USharpVideoの場合の例

2.1 2Dステレオ音声

TopazChatやUSharpVideoなどの場合は3D音声のAudio Sourceを複製し、元からある場合はそれを利用して、次のように設定します

2Dステレオ音声 初期設定

2.2 3D音声

TopazChatやUSharpVideoでは3D音声のAudio Sourceをそのまま、無い場合は2D音声から複製して、次のように設定します

3D音声 初期設定 2つ必要です

2.3 Audio Reverb Zone

基本的にポンと置いて効果範囲を設定し自分の求める音に近いプリセットを選ぶだけです

Audio Reverb Zone

プリセットはワールドによって全然違うので触れていません
テスト用ワールドで試してみてください
(テスト用ワールドのプリセットは屋内を中心によく使いそうなものを独断で選んでいます)

3. パターン別の音響設定

これらを元に、2Dステレオの減衰具合、2Dと3Dの組み合わせ、リバーブの設定、全体の減衰設定を変えていくことで、様々なシチュエーションに対応できるようになります

以下パターン別の設定を説明しますが、考えるのは次の4点だけです

  • 2Dブレンド:2Dステレオ音声の立体音響ブレンド(Spatial Blend)

    • 2Dステレオ音声の距離減衰の効き方が変わります
      0は減衰無し、1は設定通り、0.9だと0.1分だけ減衰無しになります

    • ほぼ、0.0、もしくは0.8~1.0の2パターンです
      前者はBGM的用途、後者は3D音声と一緒に使う場合です

  • 音量と2D/3Dバランス:合計の音量と2Dと3D×2のバランス

    • 「合計音量1.0、2D:3Dが8:2」なら、2Dステレオを0.8・3Dをそれぞれ0.2にします(3Dは片方が最大で0.5扱いのようです)

    • VRCは各自でワールド音量を下げれるので、合計音量はあまり神経質にならずに少し大きめでいいと思います

  • リバーブ:2Dステレオ音声のReverb Zone Mix

    • 0.0-1.1で、1.0で全音リバーブ、1.0以上はボリュームが上がるようです

    • プリセットによって効きが全く違うので、数値はテストワールドで試して決めてください

    • リバーブはVRCの効果音にも載るのでそれが嫌な場合はオフ一択です

  • 減衰:3D Sound Settings内の最長距離(Max Distance)

    • 説明では「なし・弱め・強め」と書きます
      それぞれ「1000mとか・部屋の1.3-1.5倍・部屋の×1.0-1.1倍」です

    • 最短距離(Min Distance)は最長距離の1/3程度で良いでしょう

3.1 バー・カフェ・その他イベントスペース

お客さん同士やキャストとの会話などがメインで、基本的に音楽は添え物、いわゆるBGMです
この場合はワールド内でムラなく大きすぎない音量で流すのが良いでしょう

  • 2Dブレンド:0

  • 音量と2D/3Dバランス:合計音量0.2-0.4、2D:3Dは10:0

  • リバーブ:なし~弱め

  • 減衰:なし

バーやカフェなどのBGM的な用途の例 3Dは使いません

ちなみにiwaSyncポン置きはこの設定に近いです

3.2 ミュージックバーなど

ミュージックバーではお客さんは各自おしゃべりしたり乾杯したりしていて、でもパフォーマーのブースはあってそこから音が鳴っているイメージかと思います
この場合、ある程度指向性を持たせつつもやり過ぎず、会話もしやすいようにボリュームも考慮します

  • 2Dブレンド:0.9

  • 音量と2D/3Dバランス:合計音量0.5-0.8、2D:3Dは8:2~7:3

  • リバーブ:なし~中ぐらい

  • 減衰:弱め

ミュージックバーなどの一例

3.3 音楽イベント・クラブイベント(雑談もあり)

よくある音楽イベントのパターンです
ミュージックバーに比べるとさらに音楽が主役となるため、パフォーマーへ意識が行くように指向性を強めるのが良いでしょう
また後ろの方では雑談もしやすいよう、減衰もある程度設定します

  • 2Dブレンド:0.9

  • 音量と2D/3Dバランス:合計音量0.9-1.0、2D:3Dは7:3~5:5

  • リバーブ:なし~中ぐらい

  • 減衰:弱め~強め

音楽イベント一般の一例

3.4 音楽イベント・クラブイベント(音楽を聴くイベント)

音楽を聴くことがメインのイベントです
今度は逆にハコ内はどこでも音が大きいように音楽の減衰は無くし、ボイスの減衰は大きめにします
こうすると近づかないとお喋りできませんし、してもあまり周りに聞こえなくなります

  • 2Dブレンド:1.0

  • 音量と2D/3Dバランス:合計音量0.9-1.0、2D:3Dは7:3~5:5

  • リバーブ:なし~中ぐらい

  • 減衰:なし~弱め

ガチ音楽イベントの一例

ボイスの減衰はUdonでの設定が必要ですのでこういうアセットを使うのが良いでしょう

4. 音響設定のテスト用ワールド

先にも書きましたが、この辺りをテストするためのワールドを作りました

Acoustic Settings Test World - VRChat

各パラメータはここまでの解説とほぼ同じ意味です
プリセットの1~4は前述の4パターンをパッと試せるようにしたものです

  1. 普通のバーなど

  2. ミュージックバーなど

  3. 音楽イベント

  4. ガチ音楽イベント

こちらで実際のところを試しながら、微調整をし、その結果をそれぞれのワールドで使っていただければと思います

特に2D/3Dバランスを変えたときの定位感やあちこち向いたときの感覚、リバーブの効き具合はリアルタイムで変えながら聞くとよく分かると思います

5. 終わりに

あくまで基本的な設定ですので、ワールドの雰囲気や、自分の好みに合わせて調整してください

とはいえ、今までポン置きだった方はとりあえずこの辺を設定するだけでかなり目的に合った音響に出来るかと思います

また、この記事やワールドはこれまでVRCの音響に関して情報公開してくださったり相談に乗ってくださった方々のお蔭で完成させることが出来ました

だいふくさん、m1chieさん、Fradolさん、こはださん及び、多くのVRCやVR/ゲームの音響に関する記事を書いてくださった皆さん、ありがとうございました!


おまけ

VRC用AudioSourceの設定

よく使う部分や注意点を簡単にまとめておきます

  • 立体化(Spatialize)

    • VRC管理下のためAudio Source側は無効で、立体化の有効無効は VRC Spatial Audio Source の Enable Spatialization で設定します

  • ボリューム

    • 最大(1.0)でもAudioSource単体だと音割れしません

    • VRC Spatial Audio SourceのGainを10などにしていると音割れします(そのため今回の推奨設定はTopazChatに習って-3にしています)

    • 先の通り、3D音声は単体だと実質的に最大0.5相当のようです
      (オーディオインターフェースのメーター上はそうなのですが、聴覚的にはさらに落ちて0.47ぐらいの感覚?)

  • 立体音響ブレンド(Spatial Blend)

    • 2Dステレオ音声の場合:
      0なら減衰なし、1なら設定通りに減衰、中間はその混ざり具合です

    • 3D音声の場合:VRC管理下で無効です

  • リバーブゾーンミックス(Reverb Zone Mix)

    • 0-1.1、1.0を越えるとリバーブ音量が強調された感じになります

    • Enable SpatializationがONの場合は無効です

  • ボリュームカーブ

    • ボリュームに限らずリバーブやSpatial Blendなど色々な数値を柔軟に変更出来ます

    • 一般に音量は逆2乗と言われますが、室内で実測すると反響音もあり少し離れた後はリニアに近かったりするようです(よしたかさんの記事など参照)ので、壁の区切りでしっかり音を変化させたいとかでなければ「リニアロールオフ」+最小・最大設定でも十分です

  • VRC Spatial Audio Source

    • Enable SpatializationをOFF

      • 立体化(Spatialize)出来ない=2Dステレオ音声

      • それ以外はVRCがほぼ何もしなくなる
        (多分… Gainも無効のようでした)

    • Enable SpatializationをON

      • 完全3D立体音声になる(Audio SourceのSpatial・Spatializeは無視)

      • AudioReverbZoneが無効になる

      • Spread(音の広がり)がVRCの管理になる
        (Audio SourceのSpreadはほぼ無視、
         0とそれ以外で少し差があるそうです)

      • 距離減衰関係も全部VRCの管理になる
        (Audio Sourceの距離減衰周りは無視)

      • 他にも何かしてるかも?

    • Enable SpatializationをONUse AudioSource Volume CurveもON

      • 距離減衰まわりだけAudio Sourceの設定を使えるようになる
        (VRC Spatial Audio Source内のNearとかFarは無効になる)

恐らく、Unityそのままでは3Dサウンド機能が不十分と考えて「VRC Spatial Audio Source」 を用意したのでしょう
(実際、頭部伝達関数を使った質の良い3Dサウンドのようです らくとあいすさんの記事参照)
ですが、距離減衰まわりは元のAudio Sourceの方が柔軟なので、そこだけ使うために Use AudioSource Volume Curve が出来たのではないかと思います

応用

VR音響は奥が深くVRChat特有の事情も相まって非常に複雑です
以下にいくつか例を挙げますので、興味がある方は参考URLを見ながら試してみてください

  • ボリュームカーブは少し難しいですが、上手く使うと音が聞こえる範囲を細かく調整したり、リバーブの掛かり具合をさらに微調整出来ます

  • 反響音などの表現としてリバーブに加え、スピーカー以外の場所にボリュームを抑えた3D音声を設置する方法もあります

    • ただし3Dはリバーブは効きません……

    • 全体ボリュームも考慮しましょう、下手すると音割れします

    • 詳しくはFradolさんの記事などが参考になります

  • VRの音源は位置を調整することで擬似的にEQの様な効果を狙えます

    • m1chieさんの記事参照

    • 本気でやる場合はコンストレイントやUdonのUpdateで頭部追従Audio Sourceを作ると管理しやすいです

  • OnTriggerEnterでボリュームを変えたり、物理的に入口と部屋を離しテレポートを使うことで、音が漏れ聞こえるような演出が出来ます

    • 個人的なお勧めは、減衰で部屋の中しか音が聞こえないようにしつつ、2Dステレオ音声のSpatial Blendを0.8-0.9程度にして(=0.1-0.2程の2Dがワールド全体に漏れ聞こえるようにしておいて)、部屋の外はその漏れた音声にリバーブを掛けてそれっぽくする方法です
      比較的簡単で何気に固体伝搬感も出て効果的です

    • このあたり、Prismatonさんの記事を読んだ上で「やりたい事を擬似的にどう表現するか」を考えるといいと思います


参考リンク

修正履歴

  • 2023/12/21:

    • 抜けていた説明を追加(ボリュームカーブ)

  • 2023/12/19:

    • 参考リンクにらくとあいすさんとよしたかさんの記事を追加

    • これらの記事を参考に、Spreadや3D音声周りの説明を少し修正

    • 初期設定の3DのSpreadを30(USharpVideoデフォルト)に設定

  • 2023/12/18:いくつか表現などを分かりやすく微調整

  • 2023/12/17:書きました


この記事が気に入ったらサポートをしてみませんか?