うめ研究生のVR開発記

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

【ViveProEye】SRanipal_Eyeから目の位置の生データを取り出そう【公式SDK】

前回の記事では、公式SDKで視線追跡を実際に動作させることが出来ました。

 

umehashi.hatenablog.com

 

さて、しかしこれはスタートラインに立っただけで、この後どうすればいいかの情報が、とても少なく、訳分からないわけでして( ˘•ω•˘ )

 

そもそも眼の動きをトラッキングして…どういう形で記録できるんですかね…?

 

と、いうことで

 

今回はそれぞれの眼の、位置情報を取り出すことを試みます('ω')

 

まずは情報を整理

Vive SRanipal SDK 公式フォーラムを見てみると

forum.vive.com

 

既に同じように【眼球の位置情報】を取得したい質問者が…|д゚)

 

しかも、大体の目星をつけてる!すっごーい!C#が得意なフレンズなんだね!

 

htcの人が解答してくれていますが、以前の似た解答のリンクのページ・・・なぜか削除されてる!!( ;∀;)

 

とりあえず、ここに載ってた関数を使ってみましょう!

 

眼の位置情報を取るGetPupilPosition()

 

使う関数はEye.SRanipal_Eyeスクリプト、423行目の関数GetPupilPositionです。

関数名が『得る・瞳・位置』ってことでなんかそれっぽい(゚∀゚)

f:id:umehashi:20190807161459p:plain

中身を見てみると、引数としてeye、positionを入力すると2次元の数値が得られる様子。

 

説明を見ると、

・出力される二次元座標はx,yそれぞれ、-1 ~ +1の変域

・原点(0,0)は正面を向いている状態

・(-1,-1)が左下を向いていて、(1,1)が右上を向いている状態

…らしい(。-`ω-)

 

スクリプトとしては、

アイトラッキングがONかを確認

⇒どっちの眼を引数に入れたかを確認

⇒指定の眼のデータを変数positionに第二引数として出力

 

フォーラムの人は「頑張っても-0.5~0.5の範囲になっちゃうんだけど!?」

とか書いてますね(*'ω'*)シゴトハヤイ

 

取得できる目の座標データとやらを確認してみる

 ではでは、この関数を実際に使ってみますか…(・o・)

 

新しいスクリプトを作って…(今回はUmeEye.csとしました)

他のスクリプトと同じようにnamespaceでくくって…

出力用のVector2を定義して…

関数GetPupilPositionを使用! ※面倒だから左目だけ(゚∀゚)

そして確認できるようにログを設定!

完成!(*'ω'*)

f:id:umehashi:20190807171923p:plain

 

そして実行!

f:id:umehashi:20190807171926p:plain

イエーイ!(∩´∀`)∩

 

これでまた一つ取れるデータが増えました!

 

あとは何が取れれば便利だろうか…(。-`ω-)

 

ってことで、まだまだ続きます。どうぞよしなに。