在 MRTK2 中開始使用眼球追蹤

此頁面涵蓋如何設定 Unity MRTK 場景,以在應用程式中使用眼球追蹤。 下列假設您開始使用全新的場景。 或者,您可以查看我們已設定 的 MRTK 眼球追蹤範例 ,其中包含許多您可以直接建置的絕佳範例。

眼球追蹤需求檢查清單

要使目视跟踪正常工作,必须满足以下要求。 如果您不熟悉眼球追蹤HoloLens 2以及如何在 MRTK 中設定眼球追蹤,別擔心! 接下来,我们将详细介绍如何解决上述每个问题。

  1. 眼部注視Data Provider」必須新增至輸入系統。 这可以从平台提供目视跟踪数据。
  2. 必須在應用程式資訊清單中啟用 'GazeInput' 功能。 此功能可以在 Unity 2019 中进行设置,但在 Unity 2018 和更早版本中,只能在 Visual Studio 中和通过 MRTK 生成工具使用此功能
  3. HoloLens必須針對目前使用者進行眼部校正。 请查看我们的检测用户是否已完成目视校准的示例

GazeInput 功能的附注

MRTK 提供的建置工具 (即Mixed Reality工具組 - 公用程式 - >> 建置視窗) 會自動為您啟用 GazeInput 功能。 若要這樣做,您必須確定 [Appx 建置選項] 索引標籤上已核取 [注視輸入功能] :

MRTK Build Tools

此工具會在 Unity 建置完成後找到 AppX 資訊清單,並手動新增 GazeInput 功能。 在 Unity 2019 之前,使用 Unity 的內建建視窗 (即檔案 - > 組建設定) 時,此工具不會作用中。

在 Unity 2019 之前,使用 Unity 的建置視窗時,必須在 Unity 建置之後手動新增此功能,如下所示:

  1. 開啟已編譯Visual Studio專案,然後在您的方案中開啟'Package.appxmanifest'
  2. 請務必勾選 [功能] 底下的[GazeInput]核取方塊。 如果您沒有看到'GazeInput'功能,請檢查您的系統是否符合使用 MRTK (的必要條件,特別是Windows SDK 版本) 。

請注意: 如果您建置至新的組建資料夾,您只需要執行此動作。 這表示如果您已經建置 Unity 專案並設定 appxmanifest,且現在再次以相同的資料夾為目標,則不需要重新套用變更。

逐步設定眼球追蹤

設定場景

只要按一下功能表列中的[Mixed Reality工具組 - > 設定...],即可設定MixedRealityToolkit

MRTK configure

設定眼球追蹤所需的 MRTK 設定檔

設定 MRTK 場景之後,系統會要求您選擇 MRTK 的設定檔。 您可以直接選取 DefaultMixedRealityToolkitConfigurationProfile ,然後選取 [複製 & 自訂] 選項。

MRTK profile

建立「眼球注視資料提供者」

  • 按一下 MRTK 設定檔中的 [輸入 ] 索引標籤。
  • 若要編輯預設 ( 'DefaultMixedRealityInputSystemProfile' ) ,請按一下其旁邊的 [複製] 按鈕。 [ 複製設定檔] 功能表隨即出現。 只要按一下該功能表底部的 [複製 ]。
  • 按兩下新的輸入設定檔,展開[輸入資料提供者],然後選取[+ 新增Data Provider]。
  • 建立新的資料提供者:
    • [類型] 下,選取[Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input' - >'WindowsMixedRealityEyeGazeDataProvider'
    • 針對[平臺 () 選取[Windows通用]。

MRTK data provider

在 Unity 編輯器中模擬眼球追蹤

您可以在 Unity 編輯器中模擬眼球追蹤輸入,以確保在將應用程式部署至您的HoloLens 2之前,已正確觸發事件。 只要使用相機的位置作為眼球注視原點,以及相機的向前向量做為眼睛注視方向,即可模擬眼球注視訊號。 雖然這很適合進行初始測試,但請注意,這不是快速眼球移動的良好模擬。 因此,最好確保對HoloLens 2的眼部互動進行頻繁的測試。

  1. 啟用模擬眼球追蹤

    • 按一下 MRTK 組態設定檔中的 [輸入] 索引標籤。
    • 從該處流覽至[輸入資料提供者] - >'Input Simulation Service'
    • 複製 'DefaultMixedRealityInputSimpulationProfile' 以變更它。
    • 核取 [模擬眼部位置] 核取方塊。

    MRTK eyes simulate

  2. 停用預設頭部注視游標:一般而言,建議您避免顯示眼睛注視游標,或絕對需要讓它 變得非常 細微。 建議您預設隱藏附加至 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 眼球追蹤教學課程和範例 ,示範如何使用眼球追蹤輸入,並輕鬆地提供可在專案中重複使用的腳本。


回到 「MixedRealityToolkit 中的眼球追蹤」