てんちょーの技術日誌

自分がつまづいたこととかメモ

【Unity】SteamVR Plugin 2.0の入力方法を調べてみた

はじめに

少し前に正式版になったSteamVR Plugin 2.0 ですが、ベータ版のころ なんとかの男 に

「Steam VR Plugin 2.0 は入力周りがめっちゃ楽になるから移行しようぜ!!」

と言われて、ホイホイ乗り換えたのですが Steam VR Input周りでハマって見なかったことにしました。

けど正式版になったので、使ってみた というお話です。

現状だと、TsubokuLab の

3台目以降のViveコントローラーのボタン押下が取得できない

teruaki-tsubokura.com

が解決できるかもしれません。たぶん。おそらく。(未検証)

というのも旧版のSteam VR Pluginのときに Trackerを繋いだ瞬間、コントローラーの入力が全く取れなくなる という現象に遭遇しましたが(正式版2.0でも遭遇した)、

Steam VR Plugin 2.0 にした際に Steam VR のご機嫌と Unityのご機嫌を伺いながらやれば解決しました。

ここ最近のSteam VR わからんなんも…

導入とか

こちらが参考になるかと思いますので、今回は省略します。

qiita.com

ただ、SteamVRとSteamVR_Inputのフォルダの場所はAssets以下のほうが安心かもしれません…(InputのGenerateのときに永遠に終わらなかったことがある)(ベータの話)(治ってるかもしれない)

更新に伴う問題点

Trackerが変な方向に回ってる

最近のTrackerを体につけることが流行っているせいか、SteamVR側の仕様変更により 弊害がゴロゴロでてきています。(IKinemaとか)

解決方法

qiita.com

TrackerのSettingsにLeft FootやWaistがあるのでIKのターゲットにしたい人が増えたんだなぁという気がします。

コントローラーの入力が取れない

Trackerを繋ぐと入力がこなくなったりします。 ここはコントローラー2つペアリングしてからTrackerを繋ぐと治ったりします。おまじない。

他に考えられるのはSteamVR Inputで作ったActionsがちゃんとbindされていないとか。

f:id:shop_0761:20181012064521p:plain

f:id:shop_0761:20181012064618p:plain

そもそも入力のとり方がわからない

これさ…ドキュメントがなさすぎるんよ…

ということで、UniRxのMessageBrokerを使った便利クラスをちょっと書いてみたのでよければどうぞ

SteamVR_Input_LiveWindow.cs をほぼコピペです。ここが一番まともかなとおもって…

gist.github.com

サンプルのとこをコメントアウトして試すとLogが出る…はず…

一緒に Window → Steam VR Input Live View も見ておくと心に優しい。

参考

qiita.com

Tips

コントローラーしかペアリングしてないのにSteam VR Input Live View が真っ赤になる

ラッキングされてないと入力もこない ようです。 面倒がらずにセンサーから見えるとこに移動しましょう。

それでもだめな場合は、おとなしくSteam VRとUnityを再起動しましょう。

Steam VR 起動→ コントローラーペアリング → Unity 起動

の順がよい気がします。

ビルドすると入力がこない

EditorとビルドではBinding設定が異なる 気がします(めんどいのであまり検証してない)

密かにBinding UIの下の方にあるReplace Default Bindingでなんとかなるかも…しれない

f:id:shop_0761:20181012065536p:plain

そもそもこの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が見切れることがあります。

ブラウザでも一応みれるんですが、左端が見切れてしまう…

f:id:shop_0761:20181012070337p:plain

対処方法としては4Kモニタとかでブラウザ全画面表示するとみえました(解決にならない)

--2018/10/15 追記-- Ctrl + マウスホイール?でブラウザの拡大率を調整すればみえます()

オフライン環境

オフライン環境下で動かしたいことがあるかもしれません。もしくはSteamへのログインが面倒でしてないときがあったりします。

このままいくと「Steam VRがDisableだよ!!」みたいのがBinding UIのところにでます。

ので大人しくログインしましょう…ネット環境必須…っぽい…

--追記おわり--

まとめ

Steam VR への信仰心が高いとおまじないが効いてくるのでがんばりましょう。 Unity わからんなんも…

なにかあれば Twitterできいてください twitter.com

ホントそれ!!!!!!!!!!!!!!!!!!!!!! UE4 つかお!!!!!!!!!!!!!!

おわり