原網址:使用者手冊
SDK version: 4.0
目錄
入門
将SDK內建到您的遊戲中
導入資産
實施眼動追蹤功能
獨立建構
API概述
TobiiAPI
凝視點資料
頭部姿勢資料
使用者存在
Gaze Focus和GazeAware元件
系統要求
附錄:Unity Editor Howto's
将Windows設定為目标平台
導入SDK資産
好的選擇
感謝您選擇Tobii!您已經将您的金錢和好奇心投入到眼動儀裝置中,現在讓我引導您完成各個步驟,讓您通過玩家的眼睛注視開發一種全新的遊戲互動。
入門
按照以下步驟開始探索SDK中包含的示範場景。
第1步:安裝并確定您的眼動儀工作。
確定您的系統滿足系統要求。
按照眼動儀随附的說明下載下傳并安裝正确的Tobii Engine運作時軟體。確定眼動儀和軟體正常工作。
第2步:下載下傳Tobii Unity SDK for Desktop
如果您還沒有這樣做,請從Tobii Developer Zone(http://developer.tobii.com)下載下傳Tobii Unity SDK for Desktop 。您需要登入才能通路“下載下傳”頁面。您可以免費建立一個帳戶,隻需幾分鐘。
第3步:将SDK資源導入新的Unity項目
将Tobii Unity SDK for Desktop unitypackage檔案儲存在磁盤上易于記憶的位置。這個unitypackage包括所有Tobii Unity SDK資産和示範場景。
打開Unity,建立一個新的Unity項目。選擇Windows作為目标平台。
從Tobii Unity SDK for Desktop unitypackage 導入所有資産。
第4步:了解API和眼睛注視資料
Assets/Tobii
在Unity Editor項目面闆中找到該檔案夾。展開它并找到該
DemoScenes
檔案夾。打開
01_EyeTrackingData
場景。
使用
Tools
→
Add Tobii SDK Demo Scenes to Build
菜單将所有示範場景添加到建構中。
按播放按鈕并使用場景的下一個按鈕浏覽提供的示範場景,并概述SDK的核心功能和遊戲中流行的眼動追蹤功能。另請參見API概述。
将SDK內建到您的遊戲中
當您探索SDK的功能時,是時候在遊戲中嘗試一下了。如果在任何時候事情無法按預期工作,請檢視“ 故障排除”頁面。
部分内容:
- 導入資産
- 實施眼動追蹤功能
- 将眼動追蹤功能拖放到遊戲中
- 讓遊戲對象Gaze Aware
- 獨立建構
導入資産
確定Windows是建構設定中的標明目标平台。将Tobii Unity SDK for Desktop unitypackage導入遊戲(該
DemoScenes
檔案夾是可選的)。
實施眼動追蹤功能
要開始使用TobiiAPI,請添加
using Tobii.Gaming;
到腳本,鍵入“
TobiiAPI.
”并浏覽API的靜态函數:
您可能還想通過将Gaze Aware元件添加到某些遊戲對象來探索使用眼睛注視選擇内置對象的可能性。以下部分提供了一些提示,以便探索。
将眼動追蹤功能拖放到遊戲中
您可以從腳本頂部添加的任何腳本中調用TobiiAPI.GetGazePoint()來擷取最新的Gaze Point
using Tobii.Gaming;
。
在Tobii遊戲團隊中,我們使用這個基本的Gaze Point資料實作并幫助在許多遊戲(從AAA遊戲到獨立遊戲)中實作眼動追蹤功能。多年來,我們對算法進行了大量疊代和改進。現在,為了您的友善,我們正在制作所有最好的算法,供您在遊戲中使用(隻要它們與Tobii眼動儀一起使用)。隻需拖放,設定/适應您的遊戲即可。這可能是您在遊戲中添加Tobii Eye Tracking功能的最快方法。
以下是抓取功能的清單,它們的腳本都可以在SDK的DemoScenes檔案夾中找到:
- 當您向螢幕邊緣看時,“ 擴充視圖”會旋轉相機
- 如果不檢視UI 清潔UI,則會使UI元素半透明
- 當你按下一個瞄準按鈕時,瞄準Gaze将你的槍指向凝視點
- Gaze的Interact讓您可以直接與您所看到的内容進行互動
- 地圖導航平移到或縮放您正在按下按鈕的位置
- 動态光線适應根據您的注視點調整場景光線
讓遊戲對象Gaze Aware
SDK還帶有基本的内置注視對象映射。這使眼動追蹤功能如下:
- 隻需按一下按鈕即可與Gaze互動 - 直接與您正在檢視的對象進行互動
- Gaze Awareness通過跟随他們的目光和注意力讓您的遊戲對使用者的意圖做出反應
你可以做一個遊戲對象凝視意識到在檢查添加凝視感覺元件:
Add Component
→
Eye Tracking
→
Gaze Aware
.
元件的
HasGazeFocus
屬性使對象知道使用者的眼睛注視是否聚焦在對象上。閱讀
HasGazeFocus
Gaze Aware遊戲對象的Update循環中的屬性,并通過更改其行為或外觀讓使用者的眼睛注視。或者,讓您的基礎遊戲算法使用TobiiAPI.GetFocusedObject()查詢使用者正在檢視哪個遊戲對象,并讓遊戲以其他方式響應使用者的眼睛注視。
// Example script on Gaze Aware object:
// Make object spin when looked at!
using Tobii.Gaming;
using UnityEngine;
[RequireComponent(typeof(GazeAware))]
public class SpinOnGaze : MonoBehaviour
{
private GazeAware _gazeAware;
void Start()
{
_gazeAware = GetComponent<GazeAware>();
}
void Update()
{
if (_gazeAware.HasGazeFocus)
{
transform.Rotate(Vector3.forward);
}
}
}
請注意,Gaze Aware對象可能不适合您的特定遊戲類型,遊戲機制或遊戲對象的大小和數量。但它通常至少是一種非常友善的對象互動思想原型設計方法。
為Gaze Aware對象配置Gaze Focus圖層
如果使用Gaze Aware元件,則應設定Gaze Focus檢測圖層。預設情況下,第一次在使用某些Tobii Unity SDK功能的遊戲中按“播放”時,會建立Gaze Focus的預設設定。預設設定選擇要為Gaze Aware對象測試的所有現有圖層。如果稍後将一個新圖層添加到遊戲中,并且您希望對Gaze Aware對象進行測試,則必須在Gaze Focus圖層下拉菜單中手動檢查該圖層。(請注意,按鈕和标簽等UI元素不适用于Gaze Aware元件,因為該功能僅适用于帶有a的對象
UnityEngine.Collider
)。
從編輯菜單打開眼動跟蹤設定視窗:
Edit
→
Eye Tracking Settings...
單擊以打開Gaze Focus Layers多選下拉清單,并確定選擇所有圖層,以便您可以使用眼睛注視使Gaze Aware遊戲對象可聚焦。還要確定不選擇您不想用眼睛注視的圖層(如透明圖層)。
獨立建構
Tobii Unity SDK資産包括一個編輯器腳本,用于将正确的插件dll複制到建構輸出檔案夾。Tobii Unity SDK功能目前僅适用于PC(Windows 10 / 8.1 / 7),但該架構也可在Mac和Linux上編譯(無需複制dll)。
API概述
跳過文檔的這一部分可能很誘人,但我向你保證,它會節省你的時間,至少可以浏覽它。
本節概述了Tobii Unity SDK中提供的功能。它介紹了核心概念,讓您深入了解SDK為您提供的工具和功能,以及它們的工作方式。
有關每個類和函數的API詳細資訊,請參閱Tobii Unity SDK 腳本參考。
部分内容:
- TobiiAPI
- 檢查所有資料點的有效性
- 凝視點資料
- 頭部姿勢資料
- 使用者存在
- Gaze Focus和GazeAware元件
TobiiAPI
TobiiAPI類的靜态函數是Tobii Unity SDK的基本API。
包括該行
using Tobii.Gaming;
在遊戲中的任何位置的腳本中,您将可以通路靜态API函數。
以下是一些API函數:
- TobiiAPI.GetGazePoint()
- TobiiAPI.GetHeadPose()
- TobiiAPI.GetUserPresence()
- TobiiAPI.GetFocusedObject()
您可以在以下部分中閱讀有關凝視點資料,頭部姿勢資料,使用者狀态和聚焦對象的更多資訊。
檢查所有資料點的有效性
TobiiAPI是使用所謂的“延遲初始化”實作的。這意味着在第一次調用API之前,API不會被初始化。是以,第一次調用函數時,它們将傳回無效(
IsValid
is
false
)的值。根據初始化底層架構所需的遊戲循環次數,将會有許多幀傳回無效資料。
可以通過分别調用TobiiAPI.SubscribeGazePointData或TobiiAPI.SubscribeHeadPoseData來顯式初始化Gaze Point資料和Head Pose資料。如果在某個适當的時間内調用這些函數,例如在遊戲啟動期間,可以在第一次調用TobiiAPI.GetGazePoint()和TobiiAPI.GetHeadPose()時獲得有效資料。
在大多數情況下,知道您正在處理最新資料也非常重要。TobiiAPI.GetGazePoint()和TobiiAPI.GetHeadPose()将傳回從眼動儀接收的最新資料,但這可能是舊的。例如,如果使用者遠離螢幕。我們建議使用
IsRecent()
方法來確定資料既有效又近期。
凝視點資料
GazePoint是TobiiAPI.GetGazePoint()傳回的資料類型。它表示使用者正在檢視的螢幕上的點。從技術上講,它是眼睛跟蹤器計算出沿着使用者的眼睛注視線與螢幕平面相交的螢幕上的點。
GazePoint.Viewport
傳回視口坐标中的注視點,其中(0,0)是左下角,(1,1)是右上角
UnityEngine.Screen
。如果使用者看起來超出螢幕的實體邊界,則值可以高于1且低于0。
GazePoint.Screen
傳回一個
Vector2
(x,y)坐标
UnityEngine.Screen
。這可能看起來非常像擷取滑鼠指針坐标,但請不要像使用滑鼠指針坐标那樣錯誤地使用這個開箱即用的點。眼動追蹤資料不像滑鼠指針資料那麼精确 - 實際上,由于我們的眼睛和視覺效果,它實際上是不可能的。相反,将一系列GazePoint視為代表使用者正在檢視的區域,并考慮到資料的準确性和精确度因使用者而異。
頭部姿勢資料
HeadPose資料可用于補充GazePoint資料,以進一步改善無限的螢幕體驗,如擴充視圖。
HeadPose是表示使用者頭部位置和方向的資料類型。
Position
以毫米為機關測量相對于螢幕中間的眼睛跟蹤器安裝。該位置是頭部旋轉的空間點。
Rotation
表示使用者頭部的旋轉,用表示
Quaternion
。使用它的
eulerAngles
屬性
Quaternion
将其轉換為歐拉角。
使用者存在
使用者存在是訓示使用者是否在眼睛跟蹤螢幕前面的狀态。如果沒有使用者,則該狀态可用于例如暫停某些功能。
Gaze Focus和GazeAware元件
Tobii Unity SDK内置支援将眼睛注視資料映射到遊戲對象。我們将此功能稱為Gaze Focus。不是僅将每個凝視點映射到遊戲對象,而是想法是具有Gaze Focus的對象被使用者有意聚焦。要做到這一點,我們采用的算法将一系列凝視點,重點物體的曆史和人類感覺的時間考慮在内。
這些注視對象映射算法是在2.0版本的SDK中引入的。該計劃是在架構的未來版本中不斷改進算法。目标是進行快速而穩健的計算,該計算适用于具有不同精度和精度特征的不同眼動儀模型,但也适用于最終使用者的一系列不同的眼睛注視特征。
Gaze Focus系統僅映射凝視可聚焦的遊戲對象。為了使遊戲對象凝視可聚焦,您需要将GazeAware元件添加到其中。該元件将遊戲對象注冊為Gaze Aware,
OnEnable
并取消注冊
OnDisable
。在遊戲對象的
Update
循環中,可以讀取GazeAware元件的
HasGazeFocus
屬性以了解遊戲對象是否被聚焦。
對于單個遊戲對象之外的遊戲算法,還可以使用靜态API函數TobiiAPI.GetFocusedObject()向凝視焦點處理器詢問目前聚焦哪個對象,并讓遊戲響應該資訊。當時隻有一個物體(或沒有物體)被認為具有凝視焦點。
作為開發人員,您應該使用Gaze Focus,因為它是開箱即用的,因為在未來版本中優化算法時,在凝視焦點計算之外進行的任何額外過濾可能都不合适。突出物體和可視化應該使用與人類感覺相關的時間,而不是适應特定的凝視聚焦算法,眼動儀模型或特定使用者的特征凝視跟蹤。
Gaze Focus僅适用于帶有遊戲的3D遊戲對象
UnityEngine.Collider
。它不适用于畫布上的UI元素。
系統要求
Tobii Unity SDK for Desktop 4.0版需要在您的計算機上進行以下設定:
- Unity 5 / 4.5或更高版本(示範場景需要Unity 5.3.7f1,腳本适用于Unity 5.0.0f4)
- Windows 10,8.1或7
- Tobii眼動追蹤核心軟體(下載下傳安裝包用于外圍眼動儀,或預安裝在內建系統上)
- Tobii消費者眼動儀外設或内置裝置。您可以在此處找到有關可用産品的資訊:https://tobiigaming.com/products/。
SDK中的代碼示例和文檔中的代碼片段都是用C#編寫的。如果您願意,也可以使用UnityScript編寫腳本。
有關其他Tobii SDK的下載下傳連結和更多資訊,請通路 Tobii Developer Zone(http://developer.tobii.com)。
↑回到頂部
附錄:Unity Editor Howto's
将Windows設定為目标平台
在Unity Editor菜單中,選擇:
Edit
→
Build Settings...
。
選擇以下設定:
- 平台:
PC, Mac & Linux Standalone
- 平台目标:
Windows
- 建築:
或x86
x86_64
導入SDK資産
在Unity編輯器菜單中,選擇:
Assets
→交通
Import Assets
→交通
Custom package...
- 浏覽到已下載下傳并解壓縮到磁盤的Tobii Unity SDK for Desktop軟體包的根檔案夾
- 選擇Tobii Unity SDK for Desktop unitypackage
- 導入包中的所有資産