概要
Kunclesが手元に届いたということもあって、SteamVR SDK2.0について本腰を入れて調べてみようと思い立ちました。が、そもそも以前から適切にViveトラッカーを認識させられず、結局1.0を使うか騙し騙しトラッカーを使っていた状況でした。
そこで、まずは2.0でViveトラッカーを使えるようにしようと奮闘したメモです。
先に結論を書いておきますが、SteamVR SDK側の問題でβ版なら動きました。(おいッ)
なので、ここでまとめていることはおそらく近いうちに対応がされてあまり意味がないものになるかもしれませんが、困っている人もいるかもしれないので記事にしておきます。
そもそもの問題点
そもそもの問題点として、SDK1.0のときは適当にオブジェクトを追加してTrackedObjectコンポーネントとかを適当に設定してマネージャに登録、とすることですぐに認識させることができました。
が、SDK2.0からマネージャ的なものがなくなり、同梱されているPrefabを見てみるとどうやらSteamVR_Behaviour_Pose
というコンポーネントで「どのコントローラか」を指定する形になっていました。
Any / LeftHand / RightHandしかない・・・?
インスペクタに表示される「Input Source
」を見ると、Any
、LeftHand
、RightHand
しか見当たらない・・・。
トラッカーはどう指定したらいいの?
Manage Vive Trackersで管理
色々探していたら、SteamVRのメニューの「デバイス > Manage Vive Tracker」という項目が。
起動してみると、以下のような設定画面が開きました。
Select Roleで役割を設定
上記画像のように、「Select Role」という項目があり、そこから役割を指定する様子。
いくつか項目がありましたが、フルボディトラッキングを想定しているのか、Footとかがリストされてました。
とにかくなにかしらで指定できればいいので、ひとまずLeft Foot
を選択。
設定する箇所が見当たらない・・・
やっとこれで役割を指定できたから、あとはPose情報をこのLeft Foot
を指定したら行けるのでは?
という思いで設定を探すも見つからず。
上にも書いたように、Any
、LeftHand
、RightHand
しかリストにはない。(どういうことだってばよ)
色々なワードで検索をかけていくうちにひとつのissueが目に入りました。
issueの内容を見てみると、コントローラは動いてるし、SteamVRのホーム画面とか(つまりUnity以外の場所)ではちゃんとトラッカー認識してるのに、Unityだと出てこないんだけど?
っていうもの。
完全に自分と同じ状態です。
それへの回答が
We've got some more extensive tracker support coming in the next version. I'll be releasing a beta soon that provides better access to this functionality. I'll update here when I release that.
次のバージョンでサポートするとのこと。ひとまずβ版でリリースするよと。(トラッカーはすでに世に出てるんだから、そこも対応してから出してほしかった・・・(´・ω・`))
そしてβ版のリリースは以下でされていました。
改めてこちらを入れ直して見たところ、ちゃんとLeft Foot
などがメニューにあることを確認。
これを指定したところ、しっかりとViveトラッカーが認識されました。(コントローラも含めて全部ちゃんと動いた!)
今、トラッカーをベースにコンテンツを作っているので、やっとStemaVR SDK2.0のほうでもトラッカーを使ったコンテンツが問題なく作れそうです。