Kilimanjaro Warehouse

WEBとかゲーム開発のことについて書きます。

SteamVR: ビルドしたゲームでコントローラーのバインドが適用されないときの対処

UnityでVRゲームを作っている際、コントローラーがエディター上では想定通りに操作できるのに、ビルドしたアプリではうまく動作しないという状況に陥りました。

調べてみると、カスタムしたコントローラーのバインド設定が反映されていないことが原因のようでした。

日本語で探しても見つからなかったので、解決手順を簡単な翻訳とともにメモとして残します。

解決手順
  1. Unitiy Editor -> Window -> Steam VR Input -> "Open Binding UI" で "Developer Binding for Vive Controller ..." を開く(既にやっているはず)
  2. そのゲームのバインドの設定をする
  3. "Replace dafault binding"を押す。これは開発しているゲームに保存しているbindings_vive_controller.jsonを置き換える
  4. ゲームをビルドする
  5. バインドの設定は、ゲームのexeファイルがある場所にエクスポートされ、bindings_vive_controller.jsonとして保存される
  6. ゲームを起動すれば、コントローラーが想定通りに動くはず


引用元:
steamcommunity.com

原因?

bindings_vive_controller.jsonを書き換える前は、バインドの設定は以下のパスに保存されているようです。

C:\Program Files (x86)\Steam\userdata\youruserid#\GameID#

引用元:
steamcommunity.com

おそらくですがビルドされたアプリは、Editorで開発していたものとGameIDが変わってしまうので、バインドの設定が適用されないのかなと思います。
どちらにせよ、バインドの設定はローカルで自分の環境でしか適用されないはずなので、他人に配布する際はbindings_vive_controller.jsonを書き換える必要がありそうです。

実行環境:
OS: Windows 10
Editor: 2019.4.8f Personal
SteamVR Unity Plugin: v2.5 (sdk 1.8.19)