VRChatで飛行移動

なぜヴァーチャル世界でまでクソッタレな重力に縛られて地を這わなければならないのか?
NeosVRの素晴らしきNoclipモードのように自由に飛びたい。と模索した結果の記録。

結論としては完全な自由飛行は現状不可能で、代替手段となる。
VRChat用の「飛ぶ」ツールはいくつかあるが、常時使えるような実用性の高い物は無かった。目的は「空を飛んでみたい」という娯楽ではなく、上空で静止してワールドを眺める、障害物を突き抜けて瞬時に移動する事。翼ではなく舞空術を実現したい。

OVR Advanced Settings 設定

Steamで無料公開されているオーバーレイアプリのOVR Advanced Settingsを使う。SteamVRのスタートアップに追加する事で、VRCに限らずSteamVR対応コンテンツでいつでも飛べる様になる。

Space Dragという空間を掴んで自分を持ち上げるような動きが出来る機能がある。デフォルトでは位置調整くらいにしか使えないが、重力切替と組み合わせる事で上空まで一気に飛んで静止する事が出来る。

Steamライブラリ > OVR Advanced Settings > VRオーバーレイを起動、左下の歯車アイコンで設定を開く。

Space DragとGravity

OVR Advanced Settings > Motion

Space Drag > Right Hand (右手で飛ぶ場合)
Gravity Settings > On / Gravity Strength0 / Fling Strength18程度

キーバインド

OVR Advanced Settings > Bindings

割り当てるボタン名の[+]から設定を3個追加。
ボタン > クリック なし > Right Hand Space Drag
ボタン > クリック なし > Gravity Toggle
ボタン > 詳細オプション > 長押し なし > Reset Offsets

設定は一例(RiftS)。BボタンはVRCメニューが出るのでAに割当。右手をA押しと同時に振って飛び、再度A押しで静止。A長押しで位置リセット。

ゲーム上必要でAボタンを押した時にもGravityトグルが作動するので、同時押し等に設定した方がいい。自分は出来る限り手軽に飛びたいので現状こうしている。

位置リセット後もGravityを切りたいが、長押しにGravityトグルを重ねたり、同じ設定枠内でシングル: Gravityトグル、長押し: リセットにしても駄目だった(飛べなくなる)。

運用

飛びたい時にA+右手を振る。Aで停止。

VRCで位置がおかしくなったら位置リセット+リスポーン。ワールド移動やゲーム終了前にも位置リセットしておく。忘れて変な位置に出たらOVR Advanced Settings > Space Fix > Revert All Changes from This Sessionで初期位置に戻す。

飛行移動は基本的ヴァーチャル人権