SteamVR: ビルドしたゲームでコントローラーのバインドが適用されないときの対処
UnityでVRゲームを作っている際、コントローラーがエディター上では想定通りに操作できるのに、ビルドしたアプリではうまく動作しないという状況に陥りました。
調べてみると、カスタムしたコントローラーのバインド設定が反映されていないことが原因のようでした。
日本語で探しても見つからなかったので、解決手順を簡単な翻訳とともにメモとして残します。
解決手順
- Unitiy Editor -> Window -> Steam VR Input -> "Open Binding UI" で "Developer Binding for Vive Controller ..." を開く(既にやっているはず)
- そのゲームのバインドの設定をする
- "Replace dafault binding"を押す。これは開発しているゲームに保存しているbindings_vive_controller.jsonを置き換える
- ゲームをビルドする
- バインドの設定は、ゲームのexeファイルがある場所にエクスポートされ、bindings_vive_controller.jsonとして保存される
- ゲームを起動すれば、コントローラーが想定通りに動くはず
引用元:
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)