うめ研究生のVR開発記

ViveProEyeをUnityで開発したい大学院生です('ω')公式VIVEアンバサダー1期生

【Vive Pro Eye】Focus()の使い方を今更書き留めます…【SRanipal】

お久しぶりです。進捗どうですか?()

 

世間が外出自粛ムード…

シャドバの大会がVRで観戦になったり、学会もVRで行われたりと、

業界としては需要が高まり逆に熱くなってきましたね('ω')

 

視線でストーリーが変わる映画とか面白そうだし、発想が素晴らしいなと思いました。

これもViveProEyeを使った作品らしいですね

www.itmedia.co.jp

 

とは言っても、開発フォーラムは過疎化が止まらないんですが( ;∀;)

 

それでも一応、SDKフォルダにある公式のドキュメントが、昔見たときと比べて、リンクがちゃんと繋がるようになってたり、少し見やすくなってたり…って改善はありました。

 

 

Vive japanからyoutubeに、『SDKの紹介』の動画(part1)とやらも出ましたが…

www.youtube.com

 

新しい情報は特になかった…(:_;)

 

紹介と言ってもSDKのサンプルシーンに置かれているオブジェクトをざっと見て、

「見た位置のダーツボードの色が変わるよ!」

みたいな、サンプルシーンの動作の説明って感じでした(主観的なコメントです)

 

正直な印象を述べると、

『一年前にHTC VIVEが投稿した動画(下記)の廉価版みたいなもの』

www.youtube.com

 

というか、自分も解説動画作ろうと、ボイスロイド購入した次の日に出て、この内容だったから猶更…←

 

Unityも触ったことないけど大学等でProEyeの開発しなきゃ…って入門者の方にはオススメかもしれません(´・ω・)

あとはこれから買おうか迷ってる人とか

 

自分の進捗は、

『ViveFoveatedRendering』っていう視線に合わせて解像度を変えるっていうSDKを導入しようとしましたが、グラボが、NVIDIAのTuringアーキテクチャじゃないと動かないらしく、シェーダーでなんとか代用できないかと格闘してました( ˘•ω•˘ )

 

グラボを手に入れたら、このSDKについてもまとめようと思います。

 

⇓(視線の中心から解像度が変わる(極端な)イメージ)

f:id:umehashi:20200402200842p:plain

 

Focus()の使い方

本題ですが、購入当初に印刷したプログラムを眺めてたらFocus()の使い方が、なんとなく掴めたので、改めて書き留めようと思います。

 

前回Focus()に触れた記事はコレ

umehashi.hatenablog.com

 

使い方はこの記事から変更なく、この3通りです。

①SRanipal_Eye.Focus(GazeIndex.COMBINE, out ray, out focusInfo, radius, maxradius)

②SRanipal_Eye.Focus(GazeIndex.COMBINE, out ray, out focusInfo, maxradius)

③SRanipal_Eye.Focus(GazeIndex.COMBINE, out ray, out focusInfo)

 

どのパターンの書き方でもokですので、必要に応じて使い分けましょう。

①GazeIndex.COMBINE

これは左右の眼の情報を統合したものです。基本はこれを参照するといいと思います。

GazeIndex.Leftで左目、GazeIndex.Rightで右目と、この先の情報源を指定できます。

 

②out ray

rayは出力されてくるデータです。

ヘッドマウントを接続せずに出力させてみるとこんな感じ。

f:id:umehashi:20200403122856p:plain

・接続されてないと、原点が光線の起点、方向はz軸方向になります。

・接続されてるけど視線が取れてない時は、カメラ座標が起点,方向はカメラの正面方向になります。

・視線が取れていればカメラが起点、方向は視線の方向になります。

これはGetGazeRayでも同じです。デバッグ中に変だなと思った場合、確認すべきポイントです。

 

出力されたRayの使い方は検索すれば多々出てきますので、そちらでどうぞ。

自分がよく見るのはコレ⇓

【Unity】RayCastを使いこなせ!判定や表示に使ってみよう | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト

 

③out focusInfo

focusInfoも出力されてくるデータです。

実はこいつが一番使えるやつでした(今までGetGazerayばかり使ってた)

 

focusInfoには

・point…視線ベクトルと物体の衝突位置

・normal…見ている物体の面の法線ベクトル

・distance…見ている物体までの距離

・collider…見ている物体のコライダ

・ridgidbody…見ている(以下略

・transform…見ている(以下略

 

基本的にはRaycastで得られる情報と同じですね。

分からないものは「Unity ray (分からない変数)」でググれば出てきました。

 

自分はnormalの存在を知りませんでしたが、このサイトが分かりやすかったです。

UnityのRaycastHit.normalとQuaternion.FromToRotationを使いこなす | Unityを使った3Dゲームの作り方(かめくめ)

 

実際、GetGazeRayで視線とぶつかったオブジェクトの情報を、細かく変数決めて取ってたので、focusInfo~で書けるのは便利だなぁと感じます(・ω・)

 

パッと思いつくだけでも、

見ているオブジェクトを持ち上げる、移動させる、色を変える…

なかなかに多くのことがこの関数を中心に行えそうな気がしてきます。

 

radius、maxdistanceは違いが分からないです…スクリプトにもフォーラムにもどこにも書いてない…

設定しないと勝手に値が決まるとかあるんでしょうか?

分かる方がいらっしゃれば是非ご教授ください。

 

こんなところです。ではまた次回

皆さん、お体に気を付けて。開発は外出なくできますが(*'ω'*)

 

追記

今回の記事のためにGetGazeRay()とFocus()を比較しようとしたプログラム

Practice.csをGitHubに載せておきます。

github.com

 

前回の記事同様のシーン構築で動くと思います。取り付けるオブジェクトはシーン内のどれでもいいです。動作内容としては、キーボードのSキーを押すとログが流れます。ログの()の中をいじって出力されてくるデータを確認してみてください。

質問等はコメント・Twitterに気軽にどうぞ。

うめ研究生 (@ume_study) | Twitter

 

⇓前回 

umehashi.hatenablog.com

 

以前ソースコード全て見せてほしいというコメントもありましたので、関数をまとめた回のUmeEye.csも一緒に載せております。開発の一助になれば幸いです。

 

 

umehashi.hatenablog.com

 

 

このままVIVEから就職のお誘いこないかなぁ…|д゚)チラッ

【Vive Pro Eye】視線追跡をUnityで行うためのプログラム例【開発チュートリアル】

ご無沙汰しました

あけましておめでとうございます<(_ _)>

 

今年もViveProEye関係の話をしていこうと思います。

 

自分が使い始めたときもそうでしたが…

あまりにも使い方に関する情報がない!

なんとなく見てたViveProEye使った論文でもコレ言われてて笑えるんですよ…( ˘•ω•˘ )

 

過去の記事にも、主に使い始めの研究者の方たちから質問をいただきました。

 

このViveProEyeの開発者の初期の手の付けにくさの現状…

 

これから買おうと思っている方が、不安にならないように

そして、買ったけど使い方が…という人の手助けになればと考え、

今回はViveProEyeの非公式チュートリアルみたいなものとして使ってねという記事です。

 

今見返したら、「過去の記事は結局どうプログラムに入れればいいか?」とか考慮されてない、ただ関数群とその詳細の羅列でしたね…(´・ω・)

 

このチュートリアルで目指すのは

・視線の方向ベクトルを得る

・どのオブジェクトを見ているか判定する(オブジェクトの名前とか)

・オブジェクトのどこを見ているか座標情報を得る

 

チュートリアル開始

ViveProEyeのセットアップやらSDKやらロボットの頭はインストール済の段階でお願いします。ここら辺の過去記事参考に。

umehashi.hatenablog.com

 

 ということで、いつも通りの3DでUnityの新規プロジェクト作ります。

f:id:umehashi:20200120191139p:plain

 

次にAssets>Import Package>Costom PackageでSR_anipalのSDKを入れます。

そして、画面左のHierarchyのLightの下で右クリックしてCreate Emptyでテキトーな名前でオブジェクト作ります

 

そこにImportしたSRanipalのフォルダからSRanipal_eye_framework.csをドラッグ

f:id:umehashi:20200120191202p:plain

とりあえずこれで準備ok

 

VR初期設定恒例

Edit>Project Setting>PlayerからXRsettingも忘れずチェックします('ω')

 

今後の開発でコントローラとか使う人は(お好みで)SteamVRも入れておきましょう。

この記事では使いません(使おうと思って入れたけど忘れてた)

f:id:umehashi:20200120191209p:plain

 

テキトーにオブジェクトいくつか配置します。

自分は分かりやすく3種類で色も塗ってみました(意味なし

 

位置や大きさは…どこでもいいんですが参考までに

左からz座標が-10,0,10で、y座標は全部1、x座標は-3,0,3です。

大きさは全部2

f:id:umehashi:20200120191218p:plain

 

さっき作ってFrameworkスクリプトくっつけたオブジェクトに、新しくスクリプト書きます。名前は何でもいいです。

f:id:umehashi:20200120191205p:plain

 

過去記事同様に、namespaceで囲っておきます。

f:id:umehashi:20200120191756p:plain

 

そして出来上がったものがこちらになります(唐突)

f:id:umehashi:20200120191828p:plain

過去記事で紹介した、GetGazeRayを使用する例になります。

 

umehashi.hatenablog.com

 

Raycastで、その求まった方向ベクトルを使ってCamera座標からRayを出し、

その先でのオブジェクトとの衝突があるかを検知しています。

 

視線の先にあるオブジェクト名と、更にその視線がオブジェクトのどこにあるか座標を細かくLogしてくれます。

f:id:umehashi:20200120191224p:plain

 

これでテニスゲーム作ったら、テニスボールと相手選手をどんな割合で見ているかとかが分かりますね(。-`ω-)

 

流れをまとめると

GetGazeRayに両目統合した後の視線頂戴とお願い

⇒起点と方向ベクトルをもらう

⇒カメラを始点に変換

⇒カメラから視線出てるとしてRayを飛ばす。

⇒ぶつかった物体のデータをログ

 

という雑なチュートリアルでした。

過去記事も含め、質問等ありましたら、コメントの方でお願いします<(_ _)>

 

研究で使っている方が大半みたいだし、心理系でよく使う瞳孔径とかの方が良かったかな。。。

【ViveProEye】時間遅れの話とRuntime (ver 1.1.2.0)で報告された不具合の話

ランタイムのバージョンが更新されたと聞いて、自分もアップデートを…('ω')

https://hub.vive.com/en-US/download

f:id:umehashi:20190731151010p:plain←コレ

 

とか思ってたらフォーラムで、不具合を訴えるコメントが複数見つかったので慎重にまだ様子見ようと思ってます。(まだ自分はver 1.1.0.1と1.0.3.0だったりするんですが)

 

ランタイムの不具合について、そして視線の時間遅れについてフォーラムが動いてたので、書き留めたいと思います(/・ω・)/

 

ver1.1.2.0で目のまばたきに不具合?

フォーラムでは「ver1.1.0.1と入れ替えたらうまく動かなくなった」という方が「高い金払ってんだから対応しろ?」とお怒りのスレッドを立てていたり

forum.vive.com

「まぶたが完全に閉じなくなったぞ」とゴリラのアバターの動作を、動画にして投稿されてる方がいらっしゃったり…(。-`ω-)

forum.vive.com

 

確かに動画を見ると、目が閉じ切ってないですね。

そもそも、今回のランタイムのバージョンの更新内容は、このスレッドにもあった『経過時間の単位の誤植』の修正なはずなので、余計おかしいですね(´・ω・)

 

⇓ver1.1.2.0で修正された(らしい)更新内容と注意

ver1.1.0.1では、経過時間(ミリ秒)と言いながら(マイクロ秒)を返してくる不具合を修正。プログラムでEyeData.timestampを使っている人は、更新時に注意しましょう。

forum.vive.com

 

個人的には目の開き具合の方が大事ですし、経過時間はC#で取得しているのでバージョンアップはしばらく見送ろうかなと考えています('ω')

 

【2019/11/05追記】ゴリラの人はプログラムに追記忘れてたわテヘペロで解決したようです(笑)

 

時間遅れ(レイテンシ)の話

これは研究者(もしくは中心窩レンダリングを正確に行いたい人)が使用するときくらいにしか気にしないような内容です。

ViveProEyeを使って時間遅れがどれくらいか試した大学?の方が、スレッドにおられまして計測結果をグラフ化してくださっています。

forum.vive.com

そもそも22~33msの遅れが起きるHMDに加えて、アイトラッカーが83ms更に遅れるとのこと。

これは市販のアイトラッカーとは遜色ないが、中心窩レンダリングとしてはどうなんだろうか?とのことのようです。(読み違えてなければ)

※中心窩レンダリング…注視点だけ解像度高めて周辺視野は落とす。

 

議論として

中心窩レンダリングするには遅れがデカすぎる

 

⇒最適は20~40ms遅れ程度だが、許容できる遅れの範囲にはいる(50~70ms)し、ポスト解析には問題ないのでは?

 

⇒レイテンシは裏の中心窩計算の負荷次第で変動している可能性がある、どれくらい安定するかは分からない。

 

⇒中心窩をレンダリングせず計算もせず、記録だけして後で注視点を解析することだけにすれば安定して研究に用いることが出来るかもしれない。

 

自分は注視点計算をリアルタイムで計算してるソフトにする予定なので、中心窩レンダリングなしにしてGPU負荷を落としてみようかな…(´・ω・)

 

Vive公式からの『時間遅れを誰もが減らせる方法を検討してる』との返事が見受けられたので、今後のアップデートに期待するとしましょう。

 

どうぞよしなに

【Vive Pro Eye】眼間距離(IPD)の取得方法・コードレスでアイトラッキング等のはなし

どうも、1ヵ月ぶりです(=゚ω゚)ノ

 

ViveProEyeで視線計測するにあたって、またまた疑問点が沢山出てきたので書き留めます。フォーラムもやっぱり一般向けではないためかそんな賑わいませんね(;_;)

 

今回のテーマ

キャリブレーションのカスタマイズ

・眼間距離(IPD)の取得(ノブを回して調節してるアレ)

・ViveHMDに取り付けるだけのアイトラッカー…!?(引っ張り続けた話題)

+過去記事への追記 

 

キャリブレーションのカスタマイズ

 前々回、キャリブレーションはViveの公式依存しかなく、開発者が触ることはできないと書きました。

umehashi.hatenablog.com

 SDKのデモでもUnityのGUIから、公式のキャリブレーションを呼び出すだけでした。

しかし、被験者の状態が外から見られない状態で指示を出すのは辛いな…('ω')

 

とか思ってたところ、steamVRの「VRビューを表示」で、キャリブレーション中の映像もディスプレイから見れました()

 

5点だけで決めずに、もっと取って較正値をもっと高めたい!

収束距離も未だに実装されてない!(convergence_ diameter_mm:過去記事参照)

 

と、いうことで私の研究室でも「取れてるログのデータから逆算してキャリブレーションすればいいのでは(´・ω・)?」という意見が上がってます。

 

キャリブレーションのカスタマイズについては、公式も一応検討はしてみるとのこと

forum.vive.com

※眼の画像は個人情報だから取得できないようになってるらしいです。

Get an image of an eye - Vive SRanipal SDK - Community Forum

デバッグとかでどうしても…というのであればWebcameraを内側に取り付けて…とかですかね(;´・ω・)

 

 ・眼間距離の取得方法

自作するにあたって、とりあえず

 

眼の位置と方向ベクトル、

キャリブレーション用ターゲットの衝突判定と座標

 

みたいなことが分かれば、とりあえずいいですかね?( ˘•ω•˘ )

ということで、前回までの記事でほとんどは揃ってるわけです。

 

ただ眼の位置に関しては、毎回手動で操作している眼間距離も必要なのでは…?との結論に至りました。(不要なのかもしれませんが、そのときはそのときで)

 

調べてみると、Steamのフォーラムに答えが。

steamcommunity.com

OpenVRを使ってAPIで取得…(。-`ω-)zzz

 

ま、まぁ自分もこれから使うので、今回は取り急ぎ方法はあるよってだけで。。。

使ってみた方がいらっしゃいましたら、感想お聞きしたいです(*'ω'*)

 

・ViveHMDに取り付けるだけでアイトラッキング可能にするデバイス!?

さて、前々回あたりから引っ張り続けたこの話題です。

 

COSMOSの発表がここ数ヶ月沢山ありましたね。カッコいい欲しい(´・ω・)

それと同時期に、Vive公式の支援を受けた中華企業がこんなものを発売するとのニュース

www.roadtovr.com

えー…っとですね

 

簡単に言えば

ViveProやViveFocusのレンズに取り付けるだけで、アイトラッキングが可能になるデバイスです。

  • 220ドル(予定)
  • 視野角110度(ViveProEyeと同じ)
  • サンプリング120~380Hz(ViveProEyeは120がMax)
  • ViveProEyeのSDKと互換あり(詳細不明)

 

ViveProEyeより『安価』で『高性能』になってるように見えるのは僕だけでしょうか( ;∀;)

コードレスで動けるのか問題ですが、USBを使うような記述があるのですが常時かどうかはちょいと分からない(中国語読めない)です。そのうちコードレスでアイトラッキングがフツーの時代になるんだろうなと思いますが('ω')

 

・過去記事追記しました

 gaze_direction_normalizedがフォーラムでスレッドが出来たのでそれについて。

この変数に関しては、不思議なので、今後も気にしておきます。

umehashi.hatenablog.com

 

 

【ViveProEye】セットアップに苦戦した話とか開発時の疑問の話とか

どうも

 

VRゲームを、勉強も兼ねて色々やってみたいけど御財布事情が…という院生です('ω')

 

本記事の中身は

・開発者フォーラムでの話題(前回)

・自分がやってて気づいたこと・失敗談

・ViveCOSMOSのはなし

がメインになります。

 

今回は皆さんの参考になるかはなんとも言えないので、ご了承ください<(_ _)>

【またも見通しが甘くCOSMOSの話する前に2500字程度なので、またも次回に延長します…】

(⇓前回)

umehashi.hatenablog.com

 

 自分がやってて気づいたこと・失敗談

①ノートパソコンとViveProEyeの接続の話

セットアップで苦戦している人がいれば参考になりますかね…?

 

時はVive到着直後にさかのぼります

 

自分はノートとデスクトップ、両方で環境構築できるようにしてたんですが、ノートにDisplayportがないことを思い出す…!(; ・`д・´)

 

今まで使ってたOculus RiftはUSBとHDMIだったもんで…必要になるとは思わなかったのです(言い訳)

 

んじゃまぁ…DisplayportからHDMIに変換するやつ買えばいいでしょ(amazonポチー

反応しないんですが!?(; ・`д・´)

 

ViveProEyeはViveとコードの本数も違うこともあり、かつ、もちろん解決策を書いたサイトもなく…(∵)

 

偶然ViveProで同じような経験をされた方のブログで、

『mini-Displayportで出力されてるんだからmini-Displayportで受ければいいじゃん⇒イケた!』

というような内容を発見し再び(amazonポチー

 

 

これにてなんとか接続がうまくいきましたとさ。

 

②開発中に浮かんだ疑問がなかなか解消できない話

こちらも到着後の話

 

視線追跡ができる…どうやって???と調べても、日本語では何もヒットしない( ;∀;)

 

とりあえずViveProEyeに対応したSDKを公式から持ってきて、見ていくか。

うん、なるほど分からん!(*‘ω‘ *)☆

 

SDKの中のドキュメントも、htmlで開いて見るんだけど、

そのドキュメント内のリンクが壊れててどこにも飛びませんが!?なにこれ!?

ってなるし( ˘•ω•˘ )

 

差しあたって、最低限これがあればいいや…って程度にいくつか見つけた関数・変数を書き出して使い方メモしてました。(いまだにstruct型の扱いが分からない)

 

ここでドキュメント読んでて、疑問がいくつか浮上。

umehashi.hatenablog.com

 

既に書きましたが mm(メートルマイル)との表記がありました。

フォーラムでも指摘がありまして、ミリメートルということが”回答で”判明するも、そのフォローアップします宣言から音沙汰なし…('ω')

forum.vive.com

 

そして三次元空間の座標系

umehashi.hatenablog.com

 

 視線のベクトルを出す方法が、変数と関数でそれぞれ用意されていまして

片方にのみ(右手座標系)との表記( ˘•ω•˘ )

f:id:umehashi:20190813144721p:plain

ViveProEyeのSDKの説明があるということでHTCのYouTubeLiveを見たんですが、目新しい情報や詳しい関数の使い方などはありませんでした。

 

そこで、質問があれば私の方に、とのことでしたので送ってみるも返事がなく…

 

 

とツイートした直後に返信が来ました(・o・)エゴサ?

 

 

やりとりを見ていただければ、分かると思いますが、色々リンク付きで送ってくださりましたが、座標系については未だ解決してません。最終的には『開発者フォーラムに上げてみます。日本には開発チームがないため、ご確認まで少々お待ちいただく可能性がございます』

 

結論:HTC JapanではViveProEyeの開発関係については回答できない?

 

Rayだって右目からと左目からでベクトル絶対違うはずなのにほぼ同じなの不思議ですし(両目のRayをそれぞれの眼からの情報だけで推定した値なのでは?という予想)、デモの中で目線の始点が0.03ズレてる根拠も分からないし(目の位置?だとしてもどっからその数字持ってきたし)…

 

分かる人教えてくださいませ…

 

どうぞ数少ない開発者様方、情報共有できたら幸いです。

【Vive Pro Eye】開発者フォーラムの話【サンプリング周波数・キャリブレーション・他】

どうも。皆さんViveProEyeの開発は順調でしょうか?

 

僕は高校数学レベル(極座標)のミスに気付かず、「思い通りに動かない!なんでー!」と1週間進捗がフリーズしておりました( ;∀;)

 

本記事の中身は

・開発者フォーラムでの話題

・自分がやってて気づいたこと・失敗談

・ViveCOSMOSのはなし

がメインになります。

 

今回は1つの内容を取り上げるというよりも、前回の記事のラストで書いたような雑記のまとめです<(_ _)>【のはずが、フォーラムの話が想像以上に長くなってしまったのでそれ以外は次回…】

(⇓前回)

umehashi.hatenablog.com

 

開発者フォーラムのはなし

皆さん、HTCの開発者フォーラムは見ていますかね?('ω')

 

以前、視線の方向ベクトルの始点の話をした際に、SystemOriginはフォーラムの画像見てね、みたいな事をリンク載せて書いたかと思います。

 

質問も回答も活発…とは言えませんし、会話が噛み合ってないじゃんっていうやりとりも見られますが、開発に関しての情報源がマジでないから見るしかねえ(; ・`д・´)って感じでございます。(主観)

 

今回は、今までとりあげた、SystemOriginの話やTobiiXRと合わせたらエラーが…みたいな情報以外で、フォーラムで見かけた役立ちそうな情報をいくつかメモしておこうと思います。

 

①サンプリング周波数を最大まで活用する

ViveProEyeの視線追跡。そのサンプリング周波数はいくつかご存じでしょうか?

 

いや、まぁ調べずに20万円投資する人は珍しいと思いますが…('ω')

 

ちなみにMogura等では「90Hz」となっています。

www.moguravr.com

 

自分がどっかで見た情報だと120Hzなんですよね(どこで見たか忘れた(;´・ω・)

 

90HzはUnityのUpdate()を通して取得した時…らしい

つまり、Unityの外で出力をキャッチすれば最大120Hzまで取れるという話

forum.vive.com

サンプルコードも載っております。

僕は試してないですが、細かい動きを見たい人(認知心理学系とか?)は導入してみては?(*‘ω‘ *)

 

キャリブレーションの方法を変えたい・自動で行うようにしたい

装着者にキャリブレーションの指示をするにしても、HMDを調節するよう指示を出すにしても、そのHMDの映像がディスプレイでも見えないと、研究者側はどうにもできないわけで。

 

f:id:umehashi:20190926154517p:plain

SDK上では、モニタから叩けるようになってるけど、そのキャリブレーション中の様子は見れない…( ˘•ω•˘ )

 

心理学系にしてもなんにしても、初見の人に毎回口頭で指示するのも手間なので、IPDとかHMDの位置とかは外から調節してあげたいですよね。

 

まぁ結論から言えば

「Tobiiとのコラボなんで、それをいじるのは無理よ

Oh...(゜.゜)

 

forum.vive.com

forum.vive.com

 

まぁTobiiのシステムをviveが叩いていると考えれば、直接Tobiiの方を叩けるようにすればいいんですけどね…

 

昨日Tobiiの方のフォーラムを眺めていたら、クイックキャリブレーションなるものがあるとの情報が。精度も多少落ちる…のかな?Unityの外で叩けるみたいなので、どうしても必要な方は試してみては?(そしてその感想聞きたい←)

developer.tobii.com

 

③ワイヤレスの話

Viveにワイヤレスアダプタというものがあり、これはViveProEyeにも対応しているらしい。

forum.vive.com

 

まぁ日本では規制で発売できなかったらしいんですけどね…

www.dospara.co.jp

 

ハイスペック+コードレスの時代はあと5年か10年くらいでしょうかね(;´・ω・)?

 

次回につづきます

 

コメント等ありがとうございます。開発仲間さんが居ることが分かって嬉しいです!

これからもなにとぞよろしくお願いします(*‘ω‘ *)

twitter.com

【ViveProEye】視線をマウス入力に簡単に置き換えてみる【Tobii VR】

 

お久しぶりです。学会で少々時間取られてました<(_ _)>

 

今日もUnityで開発していきますよー。

 

前回のTobii VRの記事の終わりで引っ張ったまま終わっていた

Gaze Modifier

を紹介しようと思います(/・ω・)/

 

umehashi.hatenablog.com

 

VRで開発していると、動作確認する際に

▶Playを押して、ヘッドセットを手で持って…

ってやりませんか?もしかして僕だけですか???|д゚)

 

しかし、視線追跡だと勝手が違ってきますよね。

何しろかぶらないと視線取れないし、正確さが必要ならキャリブレーションも必要だし…

 

そんなお悩みをお持ちのあなた!

Tobii VRの中に、視線の入力を他のインプットに置き換えられる機能が用意されてました(*'ω'*)ユウノウ

 

(まぁそもそもViveのSDKでも、被ってない場合HMDの中心からのRayが代替に使われる設定になってますのでそれで十分であればそれでも)

 

マウスで置き換えてみよう

公式の方が分かりやすい気もするので、ご参照ください。

vr.tobii.com

 

インストールは前回の通りです。Tobii VRSDKをインストールしましょう。

 

umehashi.hatenablog.com

 

次にWindowから、Tobii XR、Settingに進みます。

f:id:umehashi:20190917144106p:plain

 

開いたタブから、インプットを設定しましょう。

(標準はTobii or HTC Providerがおすすめです)

f:id:umehashi:20190917144134p:plain

 

ここをマウスにすると、マウスが視線の代わりになりますです('ω')

 

 

 

以下、雑記

 

 そういえば、ViveProEyeの方のSDKがバージョン上がったみたいですね。

特に視線追跡に変わりはないようなので、自分は以前のもの使ってます。

【追記】Tobii XRのSDKと併用するときにエラーを吐くと、フォーラムで報告が上がっていますので、Tobiiが対応したSDKをリリースするまでは様子見がいいかと思います。

 【2019/09/25追記】Tobii側が、SDKを対応させたようですので、SRanipalの最新SDKと一緒に使っている方はTobiiXRの方もアップデートすることをお勧めします

vr.tobii.com

 

次回は未定…( ˘•ω•˘ )あとなにがあるかな

 

公式フォーラムもなかなか更新されないし、日本にHTCの開発チームがないってことで、質問を問い合わせてるんですが、ずっと返事が来ないしで…悲しみ

 

ViveCOSMOSの予約が始まりましたね。

この前OculusQuestを貸して頂いた際に、ARも赤外線で出来ていて驚きました。が、開発者がそこを弄ることはまだ出来ないようで残念です。

COSMOSがフロントカメラで現実世界をカラーで鮮明にヘッドマウントディスプレイに流せるなら、購入してもいいかな…って感じ(。-`ω-)

 

問題はAndroidだから、毎回ビルドしてインストールして…ってしなきゃいけないのかな、面倒そうだなってところ

 

どうぞよしなに