[Pupil Lab HMD]整合眼動儀與Unity3D
逛逛我的新網頁:https://doremi31618.github.io/MyPortfolio/
本篇文章內容為Pupil Lab 官方文檔加上這次自己開發的一些心得,並不會即時更新,只是做一個快速導覽,還請大家以官方文檔為主喔!
Pupil Lab
pupil lab hmd add-on (以下簡稱pupil lab)是一個為AR/VR設計的眼動儀擴充裝置,本體並不具備AR/VR的功能。
其裝置的運作原理為,透過眼動儀上面的eye-camera即時的捕捉兩隻眼球的位置,再透過他們開發的軟體pupil capture獲取usb傳進來的資料,而Unity3D 則是使用zeroMQ(一套網路通訊函式庫)與pupil capture進行通訊進而將pupil lab讀取到的眼動儀資料轉換到Unity3D的座標空間。
而Pupil lab提供的api與官方自己出的open source軟體已經解決了所有的通訊連線問題,我們在Unity3D裡面只需要呼叫需要的功能就可以了。
環境設定
安裝Pupil Lab
— vive —
- Step 1 :
- Step 2 :
- Step 3 :
- Step 4 :
- Step 5 : 再把你剛剛拆掉的vive組裝回去
— vive pro —
安裝 pupil lab capture
由於Pupil Lab 為Unity提供的功能大部分都是與自家軟體Pupil Core做通訊溝通,真正處理運眼動儀資料的程式還是在Pupil Capture中進行,因此我們需要先去下面的網站安裝pupil capture
安裝 HTC vive
設定 HTC Vive
Pupil Lab API 介紹
Pupil Lab 為Unity提供的插件總共可以分為三個部分:
- Network layer 網路層 :負責處理Unity與Pupil capture底層的通訊
- Pupil communication 通訊層:將底層的通訊功能包裝成你常使用的功能,比方說一定會使用到的Calibration(校正)、GazeData(獲取注視資料)、BaseListener/GazeListener/PupilListener/FrameListener(事件監聽)
- Flow Control 流程控制層:將通訊層的功能再做一層包裝,
這裡你會看到直接可以使用的功能
- RecordingController:通知Pupil Lab開始記錄眼動儀資料,需要特別注意的是pupil lab並不會將你在Unity3D中得到的注視資料傳回Pupil capture,也就是說如果你需要紀錄受試者在Unity3D 中盯著某處的座標,要手動撰寫一個腳本來間接紀錄。
- Gaze visualizer:這應該是最實用的功能,將上一層GazeData轉換到Unity3D的座標空間,這裏你可以得到受試者盯著3D空間的座標資訊。
- Frame visualizer:即時顯示pupil lab 拍到的眼睛畫面(真的就是”眼睛“的畫面)
實驗專案介紹
這是一個整合了Unity3D 、VR、Pupil lab的專案,主要是用來作GKT的認知心理學實驗,在這裡你可以得到客製化的眼動儀設定方式,已經實作完成的眼動儀資料紀錄程式,完整的實作程式。
更詳細的實驗介紹可以參考Git的readme