VR で DJ する際の構成について

VRChat で DJ をプレイする機会が何度かあったので、現状の構成をメモしておく。随時更新予定。

構成

VR は Windows、DJ や配信は Mac と役割を分けている。 万が一 VR が落ちても、配信が止まらない構成にしている。

見づらい図ですみません
見づらい図ですみません

VR (Windows)

ヘッドマウントディスプレイ - Meta Quest Pro

  • VR ヘッドセット
  • Quest Pro は目とレンズの間に隙間があり手元を確認できる。その隙間から DJ コントローラーを覗いて操作している
    • パススルーは画質が悪いため使用していない
  • Quest Pro に内蔵されたカメラを使って両手の動きをトラッキングできる
    • フェーダーやノブを操作している動きが何となく反映される

フルボディトラッキング - VIVE Ultimate Tracker

  • HMD 単体では頭と両手しか動きが反映されないが、腰や両足に「トラッカー」を装着することで身体の動きを表現できる
  • 自己満足ではあるが「そこにいる感」が出るので使っている
  • VIVE Ultimate Tracker は狭いスペースで使用できるし、精度が高い優秀なトラッカーだと思う
    • ドリフトが発生しづらい (トラッキング方式によっては時間の経過とともにトラッキングがずれる現象が発生する) 点も優れている

ストリーマー - Virtual Desktop

  • PC から HMD に VR 映像をストリーミングするソフトウェア
    • Wi-Fi 経由で使用する
  • Meta 純正の Meta Quest Link + Air Link に比べて画質が良く、安定しているのでおすすめ

オーバーレイ - XSOverlay + Parsec

  • DJ コントローラーで DJ ソフトウェアを操作するので、VR の中で DJ ソフトウェアの画面を確認したい
  • XSOverlay は VR 内に PC の画面を表示するソフトウェア
  • Parsec は低遅延のリモートデスクトップソフトウェア
  • Windows の Parsec から Mac の Parsec に接続。次に Windows の Parsec を VR の XSOverlay に表示
    • VR には Mac の Rekordbox のウィンドウが表示される
    • Parsec 自体の遅延がほぼなく、XSOverlay で表示しても大きな遅延は感じない
      • 負荷が高まると遅延が増えたり、画面が固まることがあるので、緊急時には HMD の隙間から物理のディスプレイを確認する

XSOverlay で Rekordbox を表示した時の様子
XSOverlay で Rekordbox を表示した時の様子

Wi-Fi AP - GL-AXT1800 Slate AX

  • 少しでも VR の映像を安定させるために HMD 専用のアクセスポイントを用意
  • 自宅のアクセスポイントには様々なクライアントが接続しており、カクつきなどが生じることがある

DJ・配信 (Mac)

DJ コントローラー - DDJ-FLX4

  • AlphaTheta (旧 Pioneer) の DJ コントローラー
  • スピーカーから音出しできる環境ではないので、ヘッドホンのみでミックスしている

DJ ソフトウェア - Rekordbox

  • AlphaTheta の DJ ソフトウェア。DDJ-FLX4 で操作する
  • サブスクリプションに加入すると色々な機能が使えるが、普通に曲をプレイするだけなら無料プランで十分使える
  • 曲のキーは Rekordbox でも解析できるが、Mixed In Key という専用のソフトウェアを使っている

配信 - OBS

  • スタンダードな配信ソフトウェア
  • TopazChatVRCDN などの配信サービスに音声・映像を配信
    • こちらから配信した音声・映像が、配信サービスを通して VRChat のイベント参加者に配信される
    • イベントごとに配信先の指定や推奨設定があるので、それに則る
    • VJ などの映像が必要なければ、映像のビットレートを最低 (50 kbps) にしてネットワークの帯域を節約する
      • 配信サービスは「こちらから配信する帯域 x イベント参加者の数」分の帯域を使う。イベント参加者の帯域にも影響するので、無駄な帯域を使わないようにする
  • Rekordbox の音声キャプチャは Loopback というオーディオをルーティングするソフトウェアを使っている。Rekordbox の音声を出力するループバックデバイスを作成し、OBS にはそれを指定している
    • OBS の Desktop Audio Capture や Application Audio Capture を使っても問題ない
      • 自分の環境では、OBS と同じデスクトップ内に Rekordbox を表示しないと Application Audio Capture で音声をキャプチャできなかったことがあった。そのため現在は Loopback を使っている

Loopback の設定例
Loopback の設定例

録音 - OBS

  • 色々試した結果、自分の環境では OBS で録音するのが一番安定していた
    • Rekordbox に録音機能はあるが、録音をスタートしようとするとエラーが発生することがある
    • Ableton Live や Audacity などの DAW で録音すると、たまにノイズが入ることがある
  • 録音データを編集するので、Recording の Audio Encoder は「FFmpeg PCM (32-bit float)」を指定

OBS の設定例
OBS の設定例

録音したミックスの調整 - Ableton Live

  • OBS で録画したデータは動画ファイルなので、ffmpeg を使って wav を取り出す
ffmpeg -i output.mkv -vn -acodec copy output.wav
  • wav ファイルを Ableton Live で読み込み、Youlean Loudness Meter で平均ラウドネス (Integrated) が -14 LUFS くらいになるようにクリップのゲインを調整
    • Mixcloud のラウドネスは公開されていない (多分) ので、YouTube のラウドネスに合わせる
  • それ以外の編集は最初と最後にフェードイン・フェードアウトを入れるくらい
  • 編集が終わったら wav ファイルを書き出して、最終的に Mixcloud や YouTube などのプラットフォームへアップロードする
    • YouTube にアップロードする際は DaVinci Resolve で動画を作成

その他

  • おすすめ DJ ワールド: CAUSTIC BOX (Launch Link)
    • 練習するときによく使っている。暗めの雰囲気と音作りが良い。様々なイベントが開催されている

最後に

VR で DJ をプレイして、目の前で踊ってくれる人がいるのはとても楽しい体験。複雑な構成かもしれないけれど、HMD を被ってプレイするという行為にはこだわりたい。

何かの参考になれば幸い。