【Unity】ViveのHMDなしにTrackerを使う
はじめに
お高いPerception Neuronとか買わなくても今流行のVirtual Youtuberになれる!!(かも)(Final IKは買おう)
ところで、こんなのを作っています
ちびっこミュージシャン が .@shop_0761 さんの新作のペーパー楽器ノリノリで演奏してる。 #MakerCarnival #Inst_paper pic.twitter.com/wNM9zqBLTq
— Somelu (@Somelu01) 2017年10月14日
Trackerしか使わない子供向けおもちゃの #Inst_Paper です。HMDいらないなーと思ってて、
つい最近
SteamVRでViveTrackerだけを使うのあるのかなと思ったら普通にあったわ。
— ねぎぽよ❣️/ニアちゃん👉 (@CST_negi) 2017年12月27日
これきっかけで調べたらまずこれを発見しました。
ここは Python使って取得するやつで、
HMDなしでTrackerの位置がとれるっぽいことを確認した pic.twitter.com/M05Iz8fPWo
— てんちょー / 筑野(ちくの)えり💕🍱 (@shop_0761) 2018年1月6日
その通りやったらできました。サンプルにUDPで送る方法もあったのでそれでやろうかなーと思っていたら、
今スマホからGitHubのTriad_openvrのPythonソースを読んでるけど中身でやってることは本当にOpenVRの生APIを叩いてるだけなので、vrsettingsを合わせてSteamVR for UnityのC#用OpenVR.csを入れとけばUnityでもそのまま取れそう
— 野生の男 WILDMAN (@yasei_no_otoko) 2018年1月7日
と言われたので調べてみよ と思っていたら、
ちょうど私も、HMDなしでTrackerだけ使いたいと思ってたところでした
— サイキック山口 / STYLY (@from2001vr) 2018年1月7日
Unityでの実現方法、こちら(コメント欄)に見つけました。まだ試せてないですhttps://t.co/fZT9myRDYH
おっ、やっぱりUnityVRサポートオフでVRApplication_Otherで初期化が現状の正解っぽいですねhttps://t.co/fgdVvvHkFX
— 野生の男 WILDMAN (@yasei_no_otoko) 2018年1月7日
と、次々情報が集まってきたのでやったら上手く行った という話です。
やること
VRSettingsを変える
ここらへんに設定ファイルの default.vrsettings があります。
<steamインストールフォルダ>\steamapps\common\SteamVR\resources\settings
これを開いて、 requiredHmd を falseにします。
--- 追記 2019/11/28 ---
default.vr.settingsについて
default.vrsettingsを編集する→まちがい
— あきら☎︎🗾@VMC"0.39"/0.35r2 (@sh_akira) 2019年11月7日
steamvr.vrsettingsを編集する→せいかい
steamvr.vrsettingsに書いた内容がdefault.vrsettingsの内容に上書きされて適用されます
とのことです
合わせて上記の設定のままだとHMDを1度PCに繋がなければいけないので、こちらも合わせてご確認ください。
--- 追記おわり 2019/11/28 ---
Steam VRを起動してたら再起動しておきましょう。 利用不可になりますが、通常HMDを繋がないとベースステーションやTrackerが見えるようになります。
Unity側の設定
とりあえずSteam VR Pluginを入れて、Virtual Reality Supportを切ります()
一応 Edit → Preferences からAutomatically Enable VR も切っておきます
これで準備完了 のはず
スクリプトを書く
のは、めんどくさいので用意しました。
これを適当にアタッチして使ってください。
こんな感じで使います。
すると
HMDなしでVive Tracker使えるようになったー #Vive #SteamVR pic.twitter.com/Mj5poqewGF
— てんちょー / 筑野(ちくの)えり💕🍱 (@shop_0761) 2018年1月7日
といった具合に使えます。ただ、途中でTrackerを追加したりした時に勝手には対応してくれない(監視するのが面倒い)ので、 Resetボタンを用意しました。デフォだとTabキーを押すといけます。(意味的にRefreshのがよかったかも
トラブルシューティング
Steam VR はβじゃないと動かない…かも?
これやってみたけど、SteamVR起動時に謎のVRInitError_IPC_CompositorConnectFailedエラーが出てベースステーションやトラッカーが認識されない。。たすけて… 【Unity】ViveのHMDなしにTrackerを使う - てんちょーの技術日誌 https://t.co/MsnMCbWq0u
— Takahiro Poly Horikawa 堀川隆弘 (@thorikawa) 2018年1月12日
SteamVRをbeta版にしたらうまくいった!HMDなしでもポジトラできる!
— Takahiro Poly Horikawa 堀川隆弘 (@thorikawa) 2018年1月18日
Init_HmdNotFoundPresenceFailedエラー
@shop_0761 ViveTracker単体動作を試していて、てんちょーさんのブログを見ながらやってるんですが、どうしてもスクリプトのOpenVR.InitのところでInit_HmdNotFoundPresenceFailedエラーが出ちゃうんですよね。SteamVR上の表示は同じなんですが…。良ければ開発環境を教えてもらえませんか?
— ねぎぽよ❣️/ニアちゃん👉 (@CST_negi) 2018年1月24日
本当に申し訳ない話をするんだけど、単体動作できました。
— ねぎぽよ❣️/ニアちゃん👉 (@CST_negi) 2018年1月24日
HMDを差し直したらSteamVRのコンポーネントが新しくインストールされてその後できるようになったので原因それっぽい…。😔😔
ビルドした時に動かない
development buildでビルドして、デバッグしてみるとか?
— てんちょー / 筑野(ちくの)えり💕🍱 (@shop_0761) 2018年1月25日
あ、たぶん openvr_api.dll がないのでは
Projectにdllいれてビルドすればいいかもhttps://t.co/S8b3bQFhhK
openvr_api.dll がない可能性があります。win64の場合はこのdllをUnityのAssets/Plugins 以下などに適当に放り込んであげれば 動くはず。
64bit
32bit
ポゴピン
TrackerのRoleを設定しないと入力が取れないようです
けのじ (@kenoooooji) | Twitter さんが検証してくれました ありがとうございます!
まとめ
自分でOpenVRを初期化すればいろいろできそう
このHMDなしバージョンで #Inst_Paper を銀VR 2日目に展示する予定ですのでよければー
http://jvr-fest.com/2017/11/2958/
全く関係ないですが、Udemyの講座 よかったら買って欲しい(割引きクーポンつきURL貼っとくので
https://www.udemy.com/unrealengine-4-archviz-vr/?couponCode=TENCHO_435970www.udemy.com