【Unity】SteamVR Plugin 2.0の入力方法を調べてみた
はじめに
少し前に正式版になったSteamVR Plugin 2.0 ですが、ベータ版のころ なんとかの男 に
「Steam VR Plugin 2.0 は入力周りがめっちゃ楽になるから移行しようぜ!!」
と言われて、ホイホイ乗り換えたのですが Steam VR Input周りでハマって見なかったことにしました。
けど正式版になったので、使ってみた というお話です。
現状だと、TsubokuLab の
3台目以降のViveコントローラーのボタン押下が取得できない
が解決できるかもしれません。たぶん。おそらく。(未検証)
というのも旧版のSteam VR Pluginのときに Trackerを繋いだ瞬間、コントローラーの入力が全く取れなくなる という現象に遭遇しましたが(正式版2.0でも遭遇した)、
Steam VR Plugin 2.0 にした際に Steam VR のご機嫌と Unityのご機嫌を伺いながらやれば解決しました。
ここ最近のSteam VR わからんなんも…
#SteamVR Plugin 2.0 にしても #ViveTracker をつないだら急にInputが全滅する図 #Unity pic.twitter.com/7YcFyMmcDP
— てんちょー / 筑野(ちくの)えり💕 (@shop_0761) 2018年10月6日
導入とか
こちらが参考になるかと思いますので、今回は省略します。
ただ、SteamVRとSteamVR_Inputのフォルダの場所はAssets以下のほうが安心かもしれません…(InputのGenerateのときに永遠に終わらなかったことがある)(ベータの話)(治ってるかもしれない)
更新に伴う問題点
Trackerが変な方向に回ってる
最近のTrackerを体につけることが流行っているせいか、SteamVR側の仕様変更により 弊害がゴロゴロでてきています。(IKinemaとか)
#SteamVR 最新の安定版 Orion Trackerがほんとにずれてるやんけ!!! #Orion #IKINEMA pic.twitter.com/LjXNrYxkxt
— てんちょー / 筑野(ちくの)えり💕 (@shop_0761) 2018年10月10日
解決方法
TrackerのSettingsにLeft FootやWaistがあるのでIKのターゲットにしたい人が増えたんだなぁという気がします。
コントローラーの入力が取れない
Trackerを繋ぐと入力がこなくなったりします。 ここはコントローラー2つペアリングしてからTrackerを繋ぐと治ったりします。おまじない。
他に考えられるのはSteamVR Inputで作ったActionsがちゃんとbindされていないとか。
そもそも入力のとり方がわからない
これさ…ドキュメントがなさすぎるんよ…
ということで、UniRxのMessageBrokerを使った便利クラスをちょっと書いてみたのでよければどうぞ
SteamVR_Input_LiveWindow.cs をほぼコピペです。ここが一番まともかなとおもって…
サンプルのとこをコメントアウトして試すとLogが出る…はず…
一緒に Window → Steam VR Input Live View も見ておくと心に優しい。
参考
Tips
コントローラーしかペアリングしてないのにSteam VR Input Live View が真っ赤になる
トラッキングされてないと入力もこない ようです。 面倒がらずにセンサーから見えるとこに移動しましょう。
それでもだめな場合は、おとなしくSteam VRとUnityを再起動しましょう。
Steam VR 起動→ コントローラーペアリング → Unity 起動
の順がよい気がします。
ビルドすると入力がこない
EditorとビルドではBinding設定が異なる 気がします(めんどいのであまり検証してない)
密かにBinding UIの下の方にあるReplace Default Bindingでなんとかなるかも…しれない
そもそもこのBindingがPCごと?アカウントごと? に紐付いているようで、 この設定がうまくいかない場合 毎回PC OR アカウントごとに Bindingし直し が発生します。
ということは ビルド配布がほぼ無理 きがします(ビルドもらったユーザーがBindingしなおしはしんどすぎる
方法がわかったら誰か教えて…
--2018/11/08 追記-- Save Personal Binding をするときにちゃんと ファイル名をつける といける…かもしれない --追記おわり--
Steam VR Input のGenerate が終わらない
進捗バーが最後のほうまできたけど、なぜか終わらない…ということがあります。
が、無理やり中止しても動くときもあります。試してみましょう。
あとUnityはアクティブにしてないと処理が進まないようです。なんだこれ。
ひょっとしたら Trackerの設定を Disabledにすると入力がとれない?
怖くて検証するのを辞めたんですが、先程の参考記事にあった
「Manage Vive Trackers」ボタンで全てのtracker設定をdisableにしてください。
をすると…入力が何もこなくなるかもしれない…こわい…もうやだ…Cameraとかにしとこ…
ちなみにOrionのためにTrackerをたくさん繋ぐとManage Vive Trackers で左端のTrackerが見切れることがあります。
ブラウザでも一応みれるんですが、左端が見切れてしまう…
対処方法としては4Kモニタとかでブラウザ全画面表示するとみえました(解決にならない)
--2018/10/15 追記-- Ctrl + マウスホイール?でブラウザの拡大率を調整すればみえます()
オフライン環境
オフライン環境下で動かしたいことがあるかもしれません。もしくはSteamへのログインが面倒でしてないときがあったりします。
このままいくと「Steam VRがDisableだよ!!」みたいのがBinding UIのところにでます。
ので大人しくログインしましょう…ネット環境必須…っぽい…
--追記おわり--
まとめ
Steam VR への信仰心が高いとおまじないが効いてくるのでがんばりましょう。 Unity わからんなんも…
なにかあれば Twitterできいてください twitter.com
UE4使いの人が「まだSteamVRプラグインで消耗してるの?」とか煽ってくるんですが、どうすればいいですか
— こりんVR (@korinVR) 2018年10月7日
ホントそれ!!!!!!!!!!!!!!!!!!!!!! UE4 つかお!!!!!!!!!!!!!!
おわり