VRChat RecorderでVR空間の記憶を結晶化!ML集会での発表内容を解説
詳細情報
※以下文章はスライド資料を元に自動生成されたものです。
発表のハイライト
- VRChat Recorderは、VRChat空間における入出力情報を全て記録するツールです。
- 「記憶結晶」という概念を実現するための技術として開発されました。
- Pythonで開発されており、OpenVR、OBS、OSCなどを活用しています。
- 今後の展望として、GUI化やOpenXRへの対応、VR映像キャプチャ機能などが挙げられています。
VRChat Recorderとは?VR空間をまるごと記録するツール
VRChatで体験したことを、まるで記憶のように記録・再生できたらどうでしょうか?GesonAnkoさんが2023年5月3日にVRChatのML集会で行った発表では、そんな夢を実現するためのツール「VRChat Recorder」が紹介されました。
VRChat Recorderは、VRChatにおけるHMDの姿勢、コントローラーの操作、マイクの音声、映像、そしてOSC(Open Sound Control)など、あらゆる入出力を記録するツールです。
なぜVRChat Recorderは作られたのか?
GesonAnkoさんは、このツールを開発した目的として「記憶結晶」の実現を挙げています。記憶結晶とは、VRChatでプレイした情報をニューラルネットワークというデータ構造に保存し、再生できるようにしたものです。
まさに、VR空間で得た経験を、後から思い出したり、共有したりできる未来を目指したプロジェクトと言えるでしょう。
VRChat Recorderで記録できるもの
VRChat Recorderでは、下記のような情報が記録できます。
- 入力: HMDの姿勢、コントローラーの操作(スティック、ボタンなど)、マイクの音声、ゲームパッド、キーボード、マウス、OSC Inputs
- 出力: 映像、スピーカーの音声、OSC Feedbacks、コントローラーの振動
VRChat Recorderの仕組み
VRChat Recorderは、Pythonを使って開発されています。VR空間の情報は、OpenVRというVRデバイスと連携するライブラリを使って取得されます。
また、映像の記録にはOBS Studioとobsws-pythonというライブラリが使用されています。音声の記録にはSoundCard、OSCのやり取りにはpython-oscが使われています。
VR機器の記録方法
OpenVRを使って、HMDの姿勢やコントローラーの操作などの情報を取得します。また、VRイベントの取得によってコントローラーのボタン操作などの情報も記録します。
映像と音声の記録
映像は、OBS StudioをPythonから操作することで記録できます。音声は、SoundCardを使ってループバック機能を利用し、スピーカーの音声も記録できるように工夫されています。
その他の機能
- OSC Feedbacks: Python OSCのチュートリアルを参考に実装されています。
- Gamepad: inputsライブラリを使って、ゲームパッドの入力情報を取得しています。
開発秘話:ChatGPTやCopilotが開発を支えた?
開発の初期段階では、VR機器の記録方法やテストコードの作成に苦労したそうです。そんな時にChatGPTやGitHub CopilotなどのAIアシスタントが、GesonAnkoさんを助けてくれたとか。
開発者にとっても、AIは頼もしい存在になりつつあるようですね。
VRChat Recorderの使い方
VRChat Recorderを使うには、以下の手順を踏みます。
- 事前準備: Python 3.10以降、OBS StudioとOBS WebSocketの設定、VRChatのOSCを有効化
- リポジトリのクローンとインストール: GitHubからリポジトリをクローンし、必要なライブラリをインストール
- Powershellから実行: Powershellでコマンドを実行し、記録を開始
Powershellで実行する際のオプション
記録対象を絞りたい場合は、Powershellで実行する際にオプションを指定できます。例えば、ゲームパッドの記録を省きたい場合は--no_gamepad
オプションを指定します。
VRChat Recorderの課題と今後の展望
VRChat Recorderはまだ開発中のツールであり、いくつかの課題も抱えています。
- 使いにくい: 現状、GUIが用意されていないため、コマンドライン操作が必要で、初心者には少しハードルが高いです。
- OpenVRからOpenXRへの移行: OpenVRは今後、OpenXRに置き換わっていく可能性があり、対応が必要になります。
- SteamVRとの連携: SteamVRを終了すると、Pythonごと終了してしまう問題があります。
- VR映像のキャプチャ: 完全なVR映像をキャプチャする機能がまだ実装されていません。
- マウスの固定化: VRChat起動中にマウスカーソルが固定化してしまう問題が発生しています。
今後の展望:GUI化やOpenXR対応など
GesonAnkoさんは、今後の展望として以下の点を挙げています。
- GUI化: より使いやすくするために、GUIを実装したいと考えています。
- OpenXRへの対応: 将来的にOpenVRからOpenXRに移行する可能性があるため、対応する予定です。
- デスクトップモードへの対応: デスクトップモードでもVRChat Recorderが使えるようにしたいと考えています。
- Backup機能の実装: 記録中にバックアップを取れるようにする機能を実装したいと考えています。
- VR映像のキャプチャ機能: 完全なVR映像をキャプチャできる機能を実装したいと考えています。
まとめ
VRChat Recorderは、VR空間の記憶を記録・再生するための、非常に興味深いツールです。まだ開発中のツールですが、今後の発展に期待が高まります。GUI化やOpenXR対応など、使い勝手が向上すれば、より多くのVRChatユーザーに利用されるようになるでしょう。
VRChat Recorderの開発は、コミュニティの協力が欠かせません。データセットの作成に協力したい方は、GesonAnkoさんのGitHubリポジトリにアクセスして、ぜひ参加してみてください。