ValveのIndexコントローラー(開発時名称Knucklesコントローラー)について、VRアプリケーション(主にVRChat)にて、より幅広い操作ができるように、SteamVR Pluginのコントローラー設定について調べた結果を共有する。
ファイルの中を読んでみたり、値を変えてみて動作検証したりと、手探りで分かったことなので正確ではないかもしれない旨ご了解いただきたい。
第一弾としては、Indexコントローラーにおいて、初期では非表示になっている人差し指・中指・薬指・小指の近接値の設定項目の有効化について。
注意点としては、「指の入力取れても意味がある??誤爆するでしょ??」ってなるところなので、何かおもしろいことできないかなーという意欲のある方向けである。
前段
SteamVRでは、SteamVR Pluginという仕組みで、コントローラーの設定を変えることが出来る。通常のゲームパッドの設定変更のVRコントローラー版と言っても良い。
Vive,Oculus,WinMR,Indexと、ボタンやセンサーの数が違うコントローラーでも各VRアプリケーション内で同じように操作できるようにするシステムである。
Indexコンはボタン入力の数が他のコントローラーに比べて非常に多いのだが、初期の状態ではコントローラーの設定画面では、Indexコントローラーの1番の特徴である指の設定項目が非表示となっている。今回はこれを見えるようにする。
1.設定ファイルを直接編集してコントローラー設定に表示する
※デスクトップでの作業を推奨
C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\indexcontroller\resources\input\
にあるindex_controller_profile.json
をテキストエディタ等で開く。(Steamのインストール先が違う場合は読み替える)
中段に"visibility" : "InputValueVisibility_AvailableButHidden"
,という項目が4つほど見つかると思うので、これを全て行ごと削除する。
(※jsonファイルにはコメントアウトが無いようなので削除するしか無い。元に戻したい人は編集前にバップアップを取ること)
これで、SteamVRのコントローラー設定にindex(人差し指), middle(中指), ring(薬指), pinky(小指)という項目が現れるため、それらの指にも操作を割り当てることができるようになる。
※InputValueVisibility_AvailableButHiddenという名称を見る限り、「入力値は有効だけど不可視」となっているので、Steamとしてはグリップの指までユーザー側にボタン割り当てをさせることは想定していないのだろう。そのため、それらの指に機能が設定されているゲームについては、新たに他の設定をすると誤作動を起こす可能性があるため注意が必要。
2.有効化されているか確認
SteamVRのメニューから、「デバイス→コントローラー設定」へと進む。
MANAGE CONTROLLER BINDINGSを選択。
一番上のリストからVRアプリケーションを選択。(確認のためだけならなんでもよい)
”アクティブなコントローラー”がValve Indexで無い場合は、中段のボタンで”他を選択”して、”Index Controller”を選択する。
”Active Controller Bindings”を”カスタム”にする。
左上の”現在のバインド”に表示されているボックスから、”編集”を選択。
Indexコントローラーの画像が表示された編集画面で、下にスクロールするとIndex, middle, ring, pinky という項目があればOK。
ボタンの設定項目に関しては、次回以降紹介しようと思う。