必要なもの
PlaySpaceMover
https://github.com/naelstrof/VRPlayspaceMover/releases
ここからとりあえず最新バージョンをもらってきて、zipなので解凍しておきましょう。
OpenVR Input Emulator
https://github.com/matzman666/OpenVR-InputEmulator/releases
ここから最新バージョンのインストーラー(exe)をもらってきます。
インストール
OpenVR Input Emulatorのインストーラーを起動して、指示に従って次へ次へ進めていきます。管理者権限が必要です。
とりあえず起動してみる
プロパティのリンク先の末尾に、以下の文字列を入れてみる
\PlayspaceMover.exe(ここから追加) -l 2 -r 2 --resetButtonMask 4 -p --leftTogglePhysicsMask 4
要するに起動引数を指定してるってことですね。この引数に関してはPlayspaceMoverの挙動を調節しているようで、この設定だとHTC Viveでは次の様になります。
- 移動はViveのオプションボタン(VRChatのメニューと同じ)
- 位置リセットはグリップ同時押し
- 左手グリップで、空中に留まるか自然落下するかのトグル切り替え(物理ON/OFF)
PlayspaceMoverは、SteamVR全体で有効のような気がした。というのも、SteamVR Dashboardの時点で動けてスゲーってなった。
また、この設定のままだと、位置リセットと物理トグルが同時に反応してしまうのでちょっとつらい。最初は自然落下(物理ON状態)はいらないんじゃないかとか思ったけど、VRChat潜って試すとビューンと飛べて非常に面白かったから残しておきたい。
更に、VRChatしか試していないが、地面の下に潜るのは物理ONだとコリジョン判定により潜れない。物理OFFの状態でなら下に潜れる。オプションで--noGroundを追加すればコリジョン判定はなくなる。
フルボディートラッキングじゃない場合
試していないが、手x2と頭の状態でもPlayspaceMoverは使えるようになったらしい。ここ以降はPlayspaceMover公式ページ、またうどん猫さんの解説動画が非常に詳しく説明してくれている。
ベストな設定にする
PlayspaceMoverのgithubページREADMEなどを読んでみる。
Physicsがいろいろいじれるみたい。無重力にできるらしいので、これを用いてやってみた
-l 2 -r 2 --resetButtonMask 4 --gravity 0 --airFriction 1 --noGround
一応説明すると、リセットはあいかわらず両方のグリップボタン、無重力設定で、空気抵抗を少し入れているので、ゆっくり止まっていく。noGroundでコリジョン判定をoffにし、地面に潜れるようにした。ただし物理トグルはなくし、つまり物理常時ONの状態で試してみた…。
VRChatのメニュー開いたときに微妙に動いてしまうのが大変だが、非常に面白い。当分この設定でやってみようと思う。
下に潜れるから首だけ上に出すこともできる
設定のプリセット
例えば、昨日はあの設定で、今日はあの設定で、などと日付や気分によって挙動を変えたいかもしれない。もしくは、ゲーム中に挙動を切り替えたいかもしれない。
こういうときは、ショートカットをたくさん作れば解決します。そして、ゲーム中にPlayspaceMoverを一旦終了し、適切なショートカットから起動すると良いと思います。