Programming in VRChat

VRChat でのプログラミングについて調べたことの書き溜め

Launch URL

ワールド指定して起動させる方法

起動時に最初に入るワールドの設定

Steam クライアントのゲームを起動する画面で ゲーム名一覧中 VRChat 右クリック > プロパティ > 起動オプションを設定...

を選択したダイアログで、値を

vrchat://launch?id=wrld_48cf80e6-15dd-4c17-8667-c5dc01baa5cb

のようにする。wrld_ 以降はワールドの ID。 (これは Help Video のワールドを指定した例)

自分で作った簡素なワールドを指定しておくと起動が軽くていいかんじ。

ワールド紹介の URL

通常の Web ブラウザで閲覧するページで

https://vrchat.net/launch?worldId=wrld_48cf80e6-15dd-4c17-8667-c5dc01baa5cb

のようにリンクしておくと(これは Help Video のワールドへのリンク例) VRChat クライアントをインストールしているマシンならば "Jump Into" ボタンからワールドに入れる。(ブラウザの設定次第だが launch.bat を実行するか聞かれる。詳細は後述)Public になっていないワールドも指定可能。

"Click here to download the client" との案内もあるので、知らない人へも配慮ができていて具合が良い。(これだけ見ても分りにくいけど。 2018/1 現在 Steam のストアページにリンクされている。ここの案内の分かりやすさは VRChat Inc. さんの頑張り次第。)

instance type は invite になる模様。(ver 0.12.0p12 調べ) 複数人で合流するには、誰か一人だけがこの方法でワールドを開始して残りの人を invite すればよい。

内部仕組み

前述ページの "Jump Into" は vrchat://launch?ref=vrchat&id=wrld_48cf80e6-15dd-4c17-8667-c5dc01baa5cb というような URL のリンクになっている。

vrchat プロトコル(というかスキーム)の処理は Windowsレジストリ

  • key: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VRChat\shell\open\command
  • value: "C:\SteamLibrary\steamapps\common\VRChat\launch.bat" "C:\SteamLibrary\steamapps\common\VRChat" "%1"

となっている。(VRChat をインストールした時に設定していると思われ)

多重起動可能(!)

これをつかって2回 Jump Into すると一つのワールドに自分が2人いる状態になる。 (3つめは起動できなかった。 多重起動のチェックを実装していないのではなく、わざとやっている、のか?)

また、一台のマシンで VR と デスクトップの両方を立ち上げられた。 自作アバターがどのように見えるのかのチェックに使えそう。 さらに、デスクトップの方をカメラマンとして置いといて、 自分は VR で入れば生放送とかビデオ撮影とか一人でできるかも。

追記: 詳しい説明を別記事を書きました: 一台のマシンで Steam VR モードとデスクトップモードで同時に同じワールドに入る手順 - Programming in VRChat

情報源