在 MRTK2 中開始使用眼球追蹤
此頁面涵蓋如何設定 Unity MRTK 場景,以在應用程式中使用眼球追蹤。 下列假設您開始使用全新的場景。 或者,您可以查看我們已設定 的 MRTK 眼球追蹤範例 ,其中包含許多您可以直接建置的絕佳範例。
眼球追蹤需求檢查清單
要使目视跟踪正常工作,必须满足以下要求。 如果您不熟悉眼球追蹤HoloLens 2以及如何在 MRTK 中設定眼球追蹤,別擔心! 接下来,我们将详细介绍如何解决上述每个问题。
- 「眼部注視Data Provider」必須新增至輸入系統。 这可以从平台提供目视跟踪数据。
- 必須在應用程式資訊清單中啟用 'GazeInput' 功能。 此功能可以在 Unity 2019 中进行设置,但在 Unity 2018 和更早版本中,只能在 Visual Studio 中和通过 MRTK 生成工具使用此功能
- HoloLens必須針對目前使用者進行眼部校正。 请查看我们的检测用户是否已完成目视校准的示例。
GazeInput 功能的附注
MRTK 提供的建置工具 (即Mixed Reality工具組 - 公用程式 - >> 建置視窗) 會自動為您啟用 GazeInput 功能。 若要這樣做,您必須確定 [Appx 建置選項] 索引標籤上已核取 [注視輸入功能] :
此工具會在 Unity 建置完成後找到 AppX 資訊清單,並手動新增 GazeInput 功能。 在 Unity 2019 之前,使用 Unity 的內建建視窗 (即檔案 - > 組建設定) 時,此工具不會作用中。
在 Unity 2019 之前,使用 Unity 的建置視窗時,必須在 Unity 建置之後手動新增此功能,如下所示:
- 開啟已編譯Visual Studio專案,然後在您的方案中開啟'Package.appxmanifest'。
- 請務必勾選 [功能] 底下的[GazeInput]核取方塊。 如果您沒有看到'GazeInput'功能,請檢查您的系統是否符合使用 MRTK (的必要條件,特別是Windows SDK 版本) 。
請注意: 如果您建置至新的組建資料夾,您只需要執行此動作。 這表示如果您已經建置 Unity 專案並設定 appxmanifest,且現在再次以相同的資料夾為目標,則不需要重新套用變更。
逐步設定眼球追蹤
設定場景
只要按一下功能表列中的[Mixed Reality工具組 - > 設定...],即可設定MixedRealityToolkit。
設定眼球追蹤所需的 MRTK 設定檔
設定 MRTK 場景之後,系統會要求您選擇 MRTK 的設定檔。 您可以直接選取 DefaultMixedRealityToolkitConfigurationProfile ,然後選取 [複製 & 自訂] 選項。
建立「眼球注視資料提供者」
- 按一下 MRTK 設定檔中的 [輸入 ] 索引標籤。
- 若要編輯預設 ( 'DefaultMixedRealityInputSystemProfile' ) ,請按一下其旁邊的 [複製] 按鈕。 [ 複製設定檔] 功能表隨即出現。 只要按一下該功能表底部的 [複製 ]。
- 按兩下新的輸入設定檔,展開[輸入資料提供者],然後選取[+ 新增Data Provider]。
- 建立新的資料提供者:
- 在[類型] 下,選取[Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input' - >'WindowsMixedRealityEyeGazeDataProvider'
- 針對[平臺 () 選取[Windows通用]。
在 Unity 編輯器中模擬眼球追蹤
您可以在 Unity 編輯器中模擬眼球追蹤輸入,以確保在將應用程式部署至您的HoloLens 2之前,已正確觸發事件。 只要使用相機的位置作為眼球注視原點,以及相機的向前向量做為眼睛注視方向,即可模擬眼球注視訊號。 雖然這很適合進行初始測試,但請注意,這不是快速眼球移動的良好模擬。 因此,最好確保對HoloLens 2的眼部互動進行頻繁的測試。
啟用模擬眼球追蹤:
- 按一下 MRTK 組態設定檔中的 [輸入] 索引標籤。
- 從該處流覽至[輸入資料提供者] - >'Input Simulation Service'。
- 複製 'DefaultMixedRealityInputSimpulationProfile' 以變更它。
- 核取 [模擬眼部位置] 核取方塊。
停用預設頭部注視游標:一般而言,建議您避免顯示眼睛注視游標,或絕對需要讓它 變得非常 細微。 建議您預設隱藏附加至 MRTK 注視指標設定檔的預設頭部注視游標。
- 流覽至您的 MRTK 組態設定檔 - >'Input' - >'Pointers'
- 複製 'DefaultMixedRealityInputPointerProfile' 來變更它。
- 在'Pointer 設定'頂端,您應該將不可見的資料指標預製物件指派給'GazeCursor'。 您可以從 MRTK Foundation 選取 'EyeGazeCursor' 預製專案來執行此動作。
在注視提供者中啟用眼球型注視
在 HoloLens v1 中,頭部注視是用來作為主要指標技術。 雖然頭部注視仍可透過附加至您相機的 MRTK中的 GazeProvider取得,但您可以勾選輸入指標設定檔的注視設定中的[IsEyeTrackingEnabled]核取方塊,改為使用眼球注視。
注意
開發人員可以變更'GazeProvider' 的 'IsEyeTrackingEnabled'屬性,在程式碼中切換眼部注視和頭部型注視。
重要
如果不符合任何眼球追蹤需求,應用程式會自動回復為以頭部為基礎的注視。
存取眼球注視資料
現在您的場景已設定為使用眼球追蹤,讓我們看看如何在腳本中存取它: 透過 EyeGazeProvider 存取眼球追蹤資料 ,以及 眼睛支援的目標選取專案。
在HoloLens 2上測試 Unity 應用程式
使用眼球追蹤建置應用程式的方式應該類似于編譯其他HoloLens 2 MRTK 應用程式的方式。 請確定您已啟用 「注視輸入」 功能,如上一節 有關 GazeInput 功能的附注中所述。
確定已針對HoloLens 2設定專案
檢閱 使用 MRTK 設定 OpenXR 專案中所述的設定步驟,以確定您已正確設定專案。
要思考的重要重點:
- 檢閱Project 設定視窗中的金鑰設定。
- 確定已正確設定外掛程式提供者
- 解決 警告三角形。
- 應該設定互動設定檔
- 應該正確選取 OpenXR 功能群組
眼球校正
最後,別忘了在HoloLens 2上執行眼球校正。 如果使用者未校正,眼球追蹤系統將不會傳回任何輸入。 若要取得校正,最簡單的方式是向上翻轉面板並向下翻轉。 系統通知應該會以新使用者身分顯示您,並要求您進行眼球校正。 或者,您可以在系統設定中找到眼球校正:設定 > 系統 > 校正 > 執行眼球校正。
眼球追蹤許可權
第一次在您的HoloLens 2上啟動應用程式時,提示應該會快顯,要求使用者有權使用眼球追蹤。 如果未顯示,這通常表示未設定 'GazeInput' 功能。
許可權提示出現一次之後,它將不會再次自動顯示。 如果您「拒絕眼球追蹤許可權」,您可以在 設定 - Privacy - >> Apps 中重設此值。
這應該可讓您開始在 MRTK Unity 應用程式中使用眼球追蹤。 別忘了查看 我們的 MRTK 眼球追蹤教學課程和範例 ,示範如何使用眼球追蹤輸入,並輕鬆地提供可在專案中重複使用的腳本。