» VR開発メモトップへ

VRChatメモ

最終更新日:2021年10月09日

VRChatのあれこれについてメモしていく場所です。

更新履歴

(2021年10月9日)「スクリーンショットを綺麗に撮りたい」を追加
(2021年9月23日)とりあえずページ作成


VRChatのトラブルシューティング

VRChatを安定して起動して楽しめるようになるまでにいろいろはまったので、書き残しておくと誰かの役に立つかもしれないと思ってメモです。

起動しても人がいない

SteamでVRChatをアップデートしてください。VRChatのバージョンが上がったときに、過去のバージョンと互換性がなくなりネットワーク同期ができなくなることがあります(「世界線が変わった」とよく言われています)。

コントローラーが反応しない・左手と右手の操作がおかしくなる

SteamVRを起動していない状態からVRChatを起動するとおかしくなることがあるようです。SteamVRを起動してからVRChatを起動すると安定します。

「バインドが見つかりません」と出てコントローラーが使用できない

「バインドが見つかりません」「入力バインドの読み込みに失敗しました」「Steamを利用できません。一部の機能が無効の可能性があります」といったエラーが出てコントローラーが使用できず、「バインドの新規作成」を押しても反応しない場合があります。

Steamが起動していないとこの状態になります。Steamを起動してログインしている状態でSteamVRを起動してください。

上の項目とあわせると、Steamを起動する→SteamVRを起動する→VRChatを起動する、という順番になります。

VRChatのサイトからLaunchボタンを押しても起動しない

WindowsのURIスキームの設定が壊れている可能性があります。

レジストリのHKEY_CLASSES_ROOT\VRChat\shell\open\commandが設定されているか、パスが正しいかを確認します(Steam版とOculus版のVRChatをインストールしていて、別の場所のVRChatを実行していたことがありました)。おそらく以下のようになっていると思います(2021年9月現在)。

"[VRChatのパス]\VRChat\launch.exe" "%1" %*

なお、以前はlaunch.batを実行していたのですが、最近のアップデートでlaunch.exeに変更になっているようです。

VRChatのサイトから起動したときにロードが始まらない

起動中の空間のまま何も進まなくなることがあります。

ワールドのページ(https://vrchat.com/home/world/*)を開いて、下のNew InstanceでFriends等を選んでLaunch、Launch Worldを押すと上手くいくかもしれません。Public Linkで開いたページからLaunch Worldするとなぜかロードが始まりません。

ユーザーデータを初期化したい

ワールドやアバター等のキャッシュは

C:\Users\[ユーザー名]\AppData\LocalLow\VRChat\VRChat

ユーザー設定はレジストリの

HKEY_CURRENT_USER\SOFTWARE\VRChat

に保存されています。どうしようもなくなったときは削除すると復旧できる場合があります(ユーザーデータの削除はログインのし直しになることに注意)。

スクリーンショットを綺麗に撮りたい

見ている風景を直で撮ったり、UIを撮影したりしたい場合は、ウィンドウをアクティブにしてCtrl+F12で4K(3840x2160)のスクリーンショットが撮れます。アンチエイリアスがかからないようで、画像処理ソフトで1920x1080に縮小すると綺麗になります。

撮影した画像はカメラ同様C:\Users\[ユーザー名]\Pictures\VRChatに保存されます。

その他

下記ページが非常に詳しいです。

ワールド・アバター制作のメモ

そのうち書くかもしれないし書かないかもしれない(すでにウェブ上に詳しい情報がいっぱいあるので……)。

VRChatのしくみ

公開情報から推測するVRChatのしくみです。

アーキテクチャ

ネットワーク同期はExit Games社のPhoton PUNで、ボイスチャットもPhoton VoicePhoton Industriesを使っている模様(「Unity リアルタイムネットワークメモ」を参照)。

なのでネットワーク周りはPhotonそのままです。最近の「日本サーバーが選択できるようになった」というのはPhotonの日本サーバーを立ち上げることを指していて、ワールドから誰もいなくなったらオブジェクトが初期状態に戻るのもPhotonの動作です。

クライアントについてはUnityの機能をほぼそのまま露出しているような印象で、UnityのAPIがほぼ1対1でUdonになってる感じ。ワールドもAssetBundleをそのまま使っている。URPへの移行とかどうするんだろうというのはありそう。

その他サーバーサイドについては以下の求人から使ってる技術スタックがなんとなく見えてきそう。

Server Engineer — VRChat

  • Have experience with using cloud providers at scale, such as AWS or Google Cloud
  • Be able to work in a variety of languages, especially Node.js, Python and C#

Web Frontend Engineer — VRChat

  • Have a demonstrable understanding of best practices for single-page web apps, especially with React and Redux

財政事情は?

VRChat社はいわゆるスタートアップ企業で、ラウンドを重ねて2021年6月にシリーズDで約80億円の資金調達をしている。サブスクリプションのVRChat Plusがあるものの、いまのところ大きな収入源はなさそう。資金調達のたびに都度バーンレートが倍増したとしてざっくり試算すると8年くらいはサービスの維持が可能なのではと予想。その間にマネタイズの方法を見つけるか、どこか大きい会社がバイアウトする感じでしょうか。

Photonが結構高いのと、数百MBのワールドがたくさんあるので(AWSだと1GBのダウンロードに10円かかります。もっと安価な配信方法もありますが)、インフラ費用が大変そう。実際のところはよく分からないです。

書いた人:こりん(@korinVR
» VR開発メモトップへ