VRChat音楽イベントワールドの基本の音響設定
※これはVRDJ Advent Calendar 2023の16日目の記事です
0. 始めに
VRでDJをしたりワールドを作ったりしてるとかげと言います
これまで音楽イベント向けワールドを作ったり、実験したり、他のワールド制作者の方と情報交換したりしているうちに
「パターン別の音響って基本部分はかなり単純化できるのでは?」
と思ったので今回まとめてみることにしました
VRChatの音響は、VR音響が元々奥深い上にVRChat独自の仕様もありとてもややこしいのですが、あくまで基本ということで、極力触るパラメータなどは少なくてもそれなりに良い感じになるようにしてみました
また、これらの設定を実際に試してみたり、自分の好みに合わせて調整したりするための音響テスト用ワールドも作りましたので、こちらも合わせてご利用ください
1. 用語の整理
2Dステレオ音声
定位が頭の中にあるステレオ音声です
ヘッドホンで聴いた音のイメージです。
3D音声
方位感がある、定位が頭の外にある音です
スピーカーで聴いた音のイメージです
一応L/Rがあるのですがモノラル音声と考えた方が良いです
リバーブ
Audio Reverb Zoneで設定する音が響く感じの設定です
なおVRCでは2Dステレオ音声にしか効きません
減衰:音が遠くに行くほど小さくなる設定です
2. ベースのAudioSource
まずはベースとなるAudioSourceを3つ用意します
これらさえ用意できれば、あとは決まったパラメータの調整だけで基本的な音響設定が出来ます
2.1 2Dステレオ音声
TopazChatやUSharpVideoなどの場合は3D音声のAudio Sourceを複製し、元からある場合はそれを利用して、次のように設定します
2.2 3D音声
TopazChatやUSharpVideoでは3D音声のAudio Sourceをそのまま、無い場合は2D音声から複製して、次のように設定します
2.3 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
リバーブ:なし~弱め
減衰:なし
ちなみに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. 音響設定のテスト用ワールド
先にも書きましたが、この辺りをテストするためのワールドを作りました
各パラメータはここまでの解説とほぼ同じ意味です
プリセットの1~4は前述の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をON + Use 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さんの記事を読んだ上で「やりたい事を擬似的にどう表現するか」を考えるといいと思います
参考リンク
m1chieさん:
fradolさん:VRChatワールド作製時の音響設定について
Kenomoさん:ワールド制作サウンドTips
Prismatonさん:「オーディオ版レイトレーシング」と「物理シミュレーションによる音響空間表現」
shivadukeさん:
らくとあいすさん:
よしたかさん:
修正履歴
2023/12/21:
抜けていた説明を追加(ボリュームカーブ)
2023/12/19:
参考リンクにらくとあいすさんとよしたかさんの記事を追加
これらの記事を参考に、Spreadや3D音声周りの説明を少し修正
初期設定の3DのSpreadを30(USharpVideoデフォルト)に設定
2023/12/18:いくつか表現などを分かりやすく微調整
2023/12/17:書きました