見出し画像

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 仮想ミキサー

1台のPC内でVR・配信・DJ(簡易VJ)を完結する

使用ソフト(基本ソフト割愛)

  • Voicemeeter Banana: 仮想ミキサー。PC内にミキサー環境を作り、PC内外の音をまとめたり分配したりできる

  • Sound2Light: 入力された音声からBPMを検出するソフト

  • SSS VJ Tool: 簡易VJソフト。Sound2LightのBPMで動作する

やりたかった事

  • 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

1台のPCとオーディオI/Fを使用してVR・配信・DJを完結する

更新点

  • 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

VR/配信用1台とDJ用1台の2台体制

更新点

  • DJ専用のサブPCを導入

  • Microsoft Powertoys より Mouse without Bordersの導入

  • 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中のVRの状況

これによって個人的にはある程度満足のいく環境にできたと思います。

ただ、これによってイベントアフターなどの「機運」によってDJをする際に、これまではDJコントローラをメインPCにつなぐだけでできていたものが、
・サブPCを立ち上げて
・キャプボに繋いで
 
(たまに認識しなくて黒画面になることもある。再起動で直るが…)
・DJコンを繋げて
・OBSを立ち上げて…

という意外と面倒な手順が発生して勢いが削がれる感じになりました。

今のところ自分は家にDJ用テーブルを持っていないので色々と展開しなければならず、そろそろそれらの買い時かなぁと思っている今日このごろです。

まとめ

こうして書いてみると思ったより面倒くさいことをやってんだなと思います。
とはいえそれらを帳消しにするのが、
・移動もいらず
・お金もいらず
・馴染みの機器でプレイできて
・酒で潰れてもベッドがそばにあり
・毎日イベントがやっている
・イベントがなくても自分で箱を建てれる

VRDJの良さではあります。

VRDJを始めた、始めようと思ってるなどで環境構築を考えている方など、
何かの参考にしていただければ幸いです。
また、この記事について質問があるなどあれば、いつでもフレンド申請やイベントなどで話しかけに来てください。


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