VRDJ環境備忘録
何となく思い立ったので自分のVRDJの音声・映像環境についての色々を図解して備忘録として残しておこうかなと思います。
加えて各所でVRChat初心者の方が増え、それにつれてVRDJのイベントに顔を出される方も増えてます。
その中にはおそらくはVRDJに興味を持って挑戦される方もいると思います。
拙い記事ですが、そのような方、もしくは経験のある方についても何かの役に立てていただければ嬉しいです。
各種スペック参考
関係のある部分のみ記載
▼メインPC
CPU: Intel Core i7-10700
RAM: 32GB(購入時: 16GB)
GPU1 (メイン/VR用): NVIDIA GeForce RTX3070(VRAM: 8GB)
GPU2 (サブ/配信用): NVIDIA Quadro K620(VRAM: 2GB)
→ 「1PC with オーディオI/F」より増設
拡張ボード: HDMIキャプチャボード
→「2PC with オーディオI/F」より増設
▼DJ用PC(ラップトップ)
CPU: AMD Ryzen 5 5500U
RAM: 16GB
GPU: なし(オンボード)
▼VR環境
HMD: Oculus Quest2
常用ソフト:
・Virtual Desktop: HMD無線化 & ハンドトラッキング有効化
・XS Overlay: VR上にデスクトップ画面を表示
接続: WiFi(無線)
PC with 仮想ミキサー
使用ソフト(基本ソフト割愛)
Voicemeeter Banana: 仮想ミキサー。PC内にミキサー環境を作り、PC内外の音をまとめたり分配したりできる
Sound2Light: 入力された音声からBPMを検出するソフト
SSS VJ Tool: 簡易VJソフト。Sound2LightのBPMで動作する
(今は後継のSynapseRack VJ Toolがあります)
やりたかった事
1台のPCで全てが完結する環境の構築
ヘッドフォンから全ての音声が出力される
界隈でよく聞くVR用ヘッドフォン・DJ用イヤホン多重がけを避けたい
簡易VJがどんな感じになるか試したかった
問題点
全てのソフトを1台で動かすのでPC自体の動作が不安定になる
VJソフト・OBSのGPU負担からVRChatのFPSが不安定もしくは落ちる
各種ソフトが落ちた場合、以下の原因でVoicemeeter周りの音声設定をやり直す必要が出る
Rekordboxの音声設定がVoicemeeterからDDJ-400 WASAPI(DDJ-400デフォルトの音声設定)に強制される
VRChatの音声周りがVirtualDesktopのデフォルト設定に強制される(VRCのマイク・スピーカーがQuestに取られる)
戻しても音が出ない場合も
全部の音声をヘッドフォンに纏めると意外と音が聞きづらい
ヘッドフォンから離れられなくてちょっと不便
感想・ポイント
自分がVRDJを初めて一番最初の頃に安定した構成です。
後々のオーディオI/F(インターフェース)を使用するメリットを把握してはいたのですが、金銭的に微妙な時期だったのでそれを買わずに仮想ミキサーVoicemeeter Bananaを通して音声を取りまとめ、分配しています。
このソフトが一見曲者なのですが、Voicemeeterには2つのメイン入出力があり、
・Voicemeeter Input / Output(VAIO IN/OUT)
・Voicemeeter AUX Input / Output(AUX IN/OUT)
これらにPCの各種ソフトから出た音をまとめ、
・PCに繋げた好きなヘッドフォンもしくはスピーカー
・Discord/OBSなどの配信音声
としてまとめたり、片方にAソフト・もう片方にBCソフトの音を分配したりできるのですが、これを使います。
詳しいことはこちらの記事やこちらの記事などを読んでもらえればと思いますが、ざっくり説明します。
経路としては
・DJ Master → VAIO IN → A1 OUT / VAIO OUT
・DJ Cue → AUX IN → A1 OUT
・VRChat → AUX IN → A1 OUT
・PC本体の音 → AUX IN → A1 OUT
という風に、A1 OUTという音声まとめ先にまとめてその音をヘッドホンに出力する形です。この操作は弄ってる内に何となくわかると思います。
VAIO OUTは何かというと、VAIO INに入れた音声の出口で、それぞれのソフトでVoicemeeter Outputとして音声入力端末として表示されます。
この辺りInput/Outputがややこしいですが、Voicemeeterから出てきた(Output)音を各ソフトにINするイメージです。
このVoicemeeter Outputがそれぞれのソフトの音声設定に出てくるので、DJ音声で動くSound2LightやOBSの配信音声として使います。
VAIO INにはMasterの音声しか入ってないので配信にはDJ音声しか乗らない状況を作り出せます。
と、ここまで長々説明してきましたが、結論1台のPCでは当然ながら動作が不安定になり、
・VRChatの設定を絞ってもたまに動作が安定しない
・VJソフトを使用しなくても負荷が高まった際に音声周りに不具合が出る
など、中々に綱渡りをしながらDJをしていた記憶があります。
初期の駆け出しで、とりあえずお試しであれば大丈夫かと思いますが、
普通にお金があればこのあとのオーディオI/Fをさっさと購入したほうが良いです。
もし事情でこの構成のまま行くのであれば、結局VJ/配信用PCを別で立てて、2PCで安定性を確保する感じになると思います。
1PC with オーディオI/F
更新点
Voicemeeter Banana → YAMAHA AG06
仮想ミキサーからオーディオI/F兼ハードミキサーへ変更
VJツール郡を構成から外す
ヘッドフォンとQuest2でVR/DJ音声を分離
サブGPUNVIDIA Quadro K620の導入
やりたかったこと
万が一のときの音声周りの復帰が大変な問題や、ミキサー由来の負荷をハードミキサー導入で解消する
VJを簡素化・OBS(配信)をサブGPUで稼働することで負荷を下げる
音声を分離。VR音声はQuest・DJ音声はヘッドフォンで出力する
問題点
やはりプレイ中にRekordbox・VRChatのどちらかが不調になることがあり、安定性に欠ける
波形表示や解析などで意外とGPU/CPUを食うRekordboxからメインのGPUの割り当てを外すことができず、両方の負担がかかる
結局1台なので、万が一でPCごと不安定になりやすい・なった場合に復帰に時間がかかる
感想・ポイント
AG06を導入しました。
仮想ミキサーの時にヘッドフォンに音声をまとめてみると、意外と音がゴチャついて良くなかったので、
VirtualDesktopがデフォルトでVRChat音声を握っているのを逆手に取り、VR音声はHMDから出し、人の声を聞きたいときはヘッドフォンを外して対応するようにしました。
また、VJ周りの簡略化を行い、手動でOBSのループ動画を良い感じのタイミングで切り替えるようにする事でVJソフトを抜き、
サブGPUにOBS配信を任せることでPC1台でもVR/配信の負荷を内部的に分散しようとしました。
ただ、結果的には問題点の通りで、
やはりPCごと動作が重くなる場面があり、連鎖的にVRCとRekordboxが死にかけるシーンが出てきたりと、1台のPCでやりくりするのはやはり厳しいという感想です。
グラボが強ければもう少し違うのかもしれないですが……
2PC with オーディオI/F
更新点
DJ専用のサブPCを導入
HDMIキャプチャボードを導入
DisplayPortダミープラグをメインPCに挿入。内部的に1画面を追加
(DDJ-400 → DDJ-1000への更新)
やりたかったこと
DJ用PCの導入によるDJ側機器のスタンドアロン化
XS Overlayを通してVR側へのDJPC画面の投影
2PCでマウス・キーボードの操作元を統一したい
問題点
パッとDJをするのにも2台PCを起動しないといけない
感想・ポイント
現状の構成です。
VRDJをする上でほとんど目立った問題は無くなりました。VR・DJ・配信の各役割のハードを独立させればさせるほど安定性の問題は解消します。
ただ、PCを増やすと出てくるのが連携の問題です。
Rekordboxの映像はXS Overlayを使っても出てこなくなりますし、マウスキーボードが個別にしか効かなくなります。
それをカバーすべくやっているのが更新点にあるMouse without Bordersの導入と、キャプチャーボードの導入です。
Mouse without Bordersによって同じ無線・有線LAN経由の2つのWindowsPCが同期し、片方のマウス・キーボードでもう片方のPCを含めて行き来と操作・簡易のファイル共有が可能になります。
また、キャプチャーボードによってDJ用PCの映像をキャプチャし、OBSの映像キャプチャデバイスの機能から全画面プロジェクターで、有効な画面に表示します。
また、この際先述のDisplayportのダミープラグによって、実際は存在しない追加ディスプレイが増えているとPCは認識しているため、そこに先程のキャプチャ映像を全画面で投影します。
これによって実際の画面を占有することなくDJ用PCの画面を表示できるので、XS Overlayでその画面をVRに持ってきます。
以下が実際に自分がDJをする際のVRの状況です。
半透明のディスプレイがXS Overlayによって表示されている画面で、
キャプチャされたサブPCの画面(Rekordbox)が投影されているディスプレイは実際には存在しないダミーのディスプレイです。
これによって個人的にはある程度満足のいく環境にできたと思います。
ただ、これによってイベントアフターなどの「機運」によってDJをする際に、これまではDJコントローラをメインPCにつなぐだけでできていたものが、
・サブPCを立ち上げて
・キャプボに繋いで
(たまに認識しなくて黒画面になることもある。再起動で直るが…)
・DJコンを繋げて
・OBSを立ち上げて…
という意外と面倒な手順が発生して勢いが削がれる感じになりました。
今のところ自分は家にDJ用テーブルを持っていないので色々と展開しなければならず、そろそろそれらの買い時かなぁと思っている今日このごろです。
まとめ
こうして書いてみると思ったより面倒くさいことをやってんだなと思います。
とはいえそれらを帳消しにするのが、
・移動もいらず
・お金もいらず
・馴染みの機器でプレイできて
・酒で潰れてもベッドがそばにあり
・毎日イベントがやっている
・イベントがなくても自分で箱を建てれる
VRDJの良さではあります。
VRDJを始めた、始めようと思ってるなどで環境構築を考えている方など、
何かの参考にしていただければ幸いです。
また、この記事について質問があるなどあれば、いつでもフレンド申請やイベントなどで話しかけに来てください。