VRChatワールド作製時の音響設定について
はじめに
はじめまして、Fradol(フラドル)といいます。
VRChatや現実世界でDJをやっています。
早いもので、クラブに遊びに行き始めて10年、DJを初めて4年半経ちました。
2021年末にVRChatにハマり、今ではチュートリアル1周目も完了してしまうぐらい沼に沈んでしまっています。
最近では素人なりに頑張ってUnityと格闘し"Club Column"というVRクラブと、DJ練習用ワールド"CAUSTICS BOX"を制作・運営しています。
VRChatワールドを制作するにあたり、
先人たちがインターネットに残してくれた情報をもとに、Unityのエラーに中指立てながら頑張っている人がほとんどだと思います。
(自分もそうでした)
が、音楽用のワールドを作ろうとなったとき、体感ですが、VRChatのワールド音響に関する情報ってとても少ないように感じます。
そもそも音楽界隈がニッチなうえ、ワールドも作っている人となると数が絞られるからなのかも…と思っています。
自分も初めてClub Columnを作ったときには、情報集めと設定を煮詰めるのに苦労しました。
その甲斐もあってか、作成した2つのワールドは「音響がいい」といろいろな人から褒めて頂いています。ありがたい限りです。
ということで、今回の記事は自分がVRChatワールドを制作する際の音響設定はどうしているのかについて、
実際にClub ColumnとCAUSTICS BOXの設定を紹介しながら情報共有できればと思います。
前提として本記事で紹介するワールドにはTopazChat Playerを導入しています。
低遅延、導入のハードルの低さなどから自分はよく利用させて頂いています。
TopazChat Playerを用いたクラブ/音楽ライブワールドを制作する際に参考になれば幸いです。
ちなみにUnityだけで完結できます。
大まかな流れは以下です。
①ワールドにリバーブを設置する
②設置したリバーブの効果範囲を調整する
③TopazChat Playerに2DステレオのAudioSourceを追加する
④追加した2Dステレオにリバーブをかける
⑤リバーブのかかった2DステレオとTopazChat PlayerのLRの音量を調整する
⑥Audio Reverb Zoneのかかり方をプリセット等から調整する
⑦VRChatでチェック、Unityでビルドを繰り返す
文字だけ読むと「なんのこっちゃ」という感じですが、
イメージとしてはリバーブのかかっていないTopazChat Playerの左右の3D音源に、リバーブ付きの2Dステレオ音源をミックスする感じです。
EQなどは特に使わず、リバーブの設定を詰めれば現実感がかなり増します。
DTMをやっている人はイメージが掴みやすいかもです。
1.Audio Reverb Zoneを追加する
まず、ワールドのHierarchyの空いているところを適当に右クリックします。
メニューから"Audio"→"Audio Reverb Zone"を追加します。
これでリバーブがワールド内に設置されました。
リバーブをかけたい場所にAudio Reverb Zoneを動かしてみてください。
2.Mix/Min Distanceでリバーブ効果の範囲を調整する
つぎに、設置したリバーブの効果範囲を決めます。
追加したAudio Reverb ZoneのInspectorを見ると、
"MinDistance"と"MaxDistance"という項目があると思います。
各項目の説明は後述します。
このときSceneの右上にある"Gizmos"ボタンを押しておくといいです。
リバーブの効果範囲が視覚化されて調整しやすくなるのでおすすめです。
ここでMinDinsatnceとMaxDistanceの説明です。
MinDistance … リバーブ効果が最大でかかる範囲
MaxDistance … リバーブ効果が徐々に薄くなりゼロになるまでの範囲
上の図を見るとわかりやすいですが、内側の球がMinDistanceの範囲、外側の球がMaxDistanceです。
MaxDistanceからMinDistanceの範囲内に向かってリバーブ効果が強くなるので、徐々にリバーブをかけて行きたい場面などで有効だと思います。
ちなみに、Club Columnでは入口からホールにかけて徐々にリバーブが強くなっていますが、この設定を活用しています。
ホールを包むようにMinDistanceを設置し、入口で少しずつリバーブがかかるようにMaxDistanceの範囲を決めています。
VRChatとは別プラットフォームですが、Clusterのこの記事が分かりやすいと思います。
3.TopazChat PlayerにAudio Sourceを追加する
つぎにTopazChat Playerに新しくAudio Sourceを追加します。
追加方法はいくつかありますが、楽なのは以下の方法だと思います。
①TopazChat Player - VideoPlayerのLeftかRightを複製。
②複製したオブジェクトの名前を"Stereo Mix"とかに変えておきます。
※この追加した音源を以下"Stereo Mix"と呼称しておきます。
③複製したオブジェクト"Stereo Mix"のInspectorを見ます。
④一番下の"VRC AVPro Video Speaker"コンポーネントのModeを"Stereo Mix"に切り替えます。
ちなみに、ちょっとややこしいですが、ここの"Stereo Mix"というModeは「2Dのステレオ音源」ということらしいです。
立体音響なし・減衰なしでBGMのように音を聞かせる場合はここを変えるといいとか…。
詳しくは以下のWebページが参考になると思います。
4.追加したステレオAudio Sourceにリバーブ効果を付ける。
次に、追加した"Stereo Mix"にリバーブ効果を付けます。
設定は簡単です。
まず、"Stereo Mix"オブジェクトのInspectorを見ます。
"VRC Spatial Audio Source (Script)"というコンポーネントがあると思うので、その中の"Advanced Options"を開きます。
この中に"Enable Spatialization"という項目があるので、ここのチェックを外します。
次に"Stereo Mix"の"Audio Source"コンポーネント内の"Reverb Zone Mix"の数値を上げます。
(デフォルトでは"1"です)
Club ColumnとCAUSITCS BOXは"1.048"と微増程度に留めています。
ちなみに、この方法はmayutaさんの以下のツイートを参考にしました。
(mayutaさん、ありがとうございます)
5.リバーブ付き音源とドライ音源の音量のバランスを調整する
音の鳴るオブジェクト(=Stereo Mix)を新しく追加したので、
このままだと音量が大きすぎて音声が割れると思います。
(少なくともClub Columnではそうでした)
ここで音量を抑えながら、リバーブ付き2Dステレオ(=ウェット音)とリバーブなし3D音源(=ドライ音)のバランスを整えます。
まず、Stereo MixとLeft,Rightの"Audio Source"を見ます。
その中の"Volume"を適当な値に下げます。
デフォルトは"1"です。
Club ColumnとCAUSTICS BOXについては調整の結果"0.55"に揃えました。
そして"VRC Spatial Audio Source (Script)"の"Gain"を調整します。
このとき、Stereo Mix(ウェット音)はLeft/Right(ドライ音)より小さめに設定します。
ウェット音とドライ音の差はだいたい"15"ぐらいがちょうど良さそうです。
ワールドの規模感によって調整してみてください。
(例:CAUSITCS BOXはウェット音=-3、ドライ音=11)
あとは"3D Sound Settings"のグラフで音の減衰距離も適宜調整するのをオススメします。
ここを調整しておくと左右のステレオ感が増す感じでした。
グラフの横軸はサウンドオブジェクトからの距離、縦軸は音量、ということらしいです。
上の図だと20mまでは音量最大で、20~25mに向かって音量が小さくなっていく設定です。
SceneのGizmosにはなぜかこの減衰距離は表示されないですが、イメージを掴むためにもチェックしながら調整すると楽です。
Club Columnではこの減衰距離の設定を活用したおかげか、擬似的な立体音響が発生しています。
Club ColumnにVRで入ってみると、微妙に聴こえ方が変わる箇所があります。DJブースの斜め後ろなどは分かりやすいかと思います。
ぶっちゃけ色々と調整していたら、なぜかうまい具合になったので、参考程度にとどめておいてください。
注意点としてはLeft/Rightの減衰の設定は同じにしておく必要があります。
設定がズレていると気持ち悪い聴こえ方になりました。
ちなみに…
このときに"Stereo Mix"とLeft/Rightの座標も調整するといいかもです。
感覚としては反射音が鳴る場所のそばに"Stereo Mix"を置くのがいいと思います。
※注 … 正直、コレに関しては効果のほどは不明です。
Club Columnでは高い天井から反響音が鳴ってるイメージなので、上空にStereo Mixを設置しています。
反対に、CAUSITICS BOXは狭い空間なので、スピーカーの反対側の壁から反射してくるイメージとしてLeft/Rightの反対側に置いています。
噂によるとTopazChat Playerのサウンドオブジェクトは座標の高さ(Y軸)によって、前に出てくる音域が違うとかなんとか…。
6.Audio Reverb Zoneのプリセットを切り替えながらリバーブ効果を調整する。
Audio Reverb Zoneにはリバーブ効果のプリセットがあらかじめ用意されています。
時短のために有効活用していくのをオススメします。
やり方は簡単で、Audio Reverb ZoneのInspectorを開いて"ReverbPreset"の項目のドロップダウンリストから選ぶだけです。
Club Columnでは"Cave"プリセットそのまま、
CAUSTICS BOXに関しては"Room"プリセットを下敷きに、もう少しリバーブ音の長さが欲しかったので"Decay Time"を少し増やしています。
7.VRChatでチェック、Unityでビルドを繰り返す
あとは非公開(Private)でアップロードして、VRChatに入って実際にワールド内に楽曲を流してチェックします。
ここまで来たらあとは根気です。
納得いくまでひたすら調整→アップロード→チェックを繰り返します。
チェックのときにはVRモードで入ると音の立体感をチェックできるので違和感を感じ取りやすいかと思います。自分はそうでした。
アップロード後はVRChat内でRejoinするとワールド更新されるようなので、自分はよく活用しています。
ここのチェックについては感覚で追い込んでいく必要があると思うので、人によってはかなり難易度が高いのかもしれません。
自分の場合は今まで行ったライブコンサートやクラブ、広い空間や自分の部屋がどのような鳴り方をしていたか、記憶を頼りに調整を進めていきました。
その空間で手を鳴らしたときにどんな音が返ってくるか、などをイメージしておくといいかもです。
調整がどうしても難しい場合はライブコンサートやクラブに遊びによく行くフレンドを誘って一緒にチェックしてもらうと確実だと思います。
おわりに
ざっくりとですが、VRChatワールド制作時の自分なりの音響調整の紹介でした。
正直、かなり無理矢理だと思うので、もっとスマートな方法があると思います。
(最近だとTopazChatで言えば、リバーブが付いたPrefabが用意されているので、そちらを使うと早いです)
ただ、今回の方法で音響を設定したら、現実での体感に近い箱鳴りが起こり、低音も気持ちよさを保ったまま増すことができました。
この方法で制作して運営しているなかで、現状は特に大きなバグ報告はお客さんから聞いていないので、VRChatの音声まわりで大きな改修が入らない限り、しばらくは大丈夫だと思います。
…と書いてきましたが、
音については正解がない故に、圧縮率やコーデック、ケーブルやスピーカーで音が違うなどの所謂「オカルト」と揶揄されたり、音に関して興味が薄い方に強要や力説したり、ということが起こりやすいように思います。
(自分も正直よく分かってないところはあります)
もちろん、音が良いというのは大事ですが、それだけではダメで、
結局は、DJの曲で踊る、ライブで一緒に歌う、フレンドと踊る、喋るなどの全部を含めた『体験』が大事なのではないかな、と思います。
少しでも参考になれば幸いです。
ここまで読んで頂き、ありがとうございました。
この記事が気に入ったらサポートをしてみませんか?