うめ研究生のVR開発記

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

【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を飛ばす。

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

 

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

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

 

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