Начало работы с отслеживанием взгляда в MRTK2

На этой странице описывается, как настроить сцену Unity MRTK для использования отслеживания взгляда в приложении. В следующем документе предполагается, что вы начинаете с новой сцены. Кроме того, вы можете проверка уже настроенные примеры отслеживания взгляда MRTK с тоннами отличных примеров, на которые можно напрямую опираться.

Контрольный список требований к отслеживанию взгляда

Для корректной работы функции отслеживания движений глаз необходимо выполнить следующие условия. Если вы еще не знакомы с функцией отслеживания движения глаз в HoloLens 2 и о том, как эта функция настраивается в MRTK, вам не о чем волноваться. Мы подробно рассмотрим, как решить каждую из них, в следующих разделах.

  1. В систему ввода необходимо добавить поставщика данных Eye Gaze . Этот поставщик данных предоставляет данные отслеживания взгляда с платформы.
  2. В манифесте приложения должна быть включена возможность GazeInput . Эту возможность можно задать в Unity 2019, но в Unity 2018 и более ранних версиях эта возможность доступна только в Visual Studio и с помощью средства сборки MRTK.
  3. HoloLens должен быть откалиброван для текущего пользователя. Посмотрите наш пример , с помощью которого вы научитесь определять, выполнена ли калибровка движения глаз пользователя.

Примечание о возможности GazeInput

Предоставляемые MRTK средства сборки (набор средств Смешанная реальность —> служебные программы —> окно сборки) могут автоматически включить функцию GazeInput. Чтобы выполнить этот шаг, необходимо убедиться, что на вкладке "Параметры сборки Appx" установлен флажок "Возможность ввода взгляда":

Средства сборки MRTK

Эти средства найдут манифест AppX после завершения сборки Unity и вручную добавят возможность GazeInput. До Unity 2019 этот инструментарий НЕ активен при использовании встроенного окна сборки Unity (файл —> параметры сборки).

До Unity 2019 при использовании окна сборки Unity необходимо вручную добавить возможность после сборки Unity следующим образом:

  1. Откройте скомпилированный проект Visual Studio, а затем откройте Package.appxmanifest в решении.
  2. Установите флажок GazeInput в разделе Возможности. Если функция GazeInput не отображается, проверка, что система соответствует предварительным требованиям для использования MRTK (в частности, версии Windows SDK).

Примечание: Это необходимо сделать только в том случае, если вы выполняете сборку в новой папке сборки. Вам не нужно будет повторно применить изменения, если вы уже создали проект Unity и настроили appxmanifest и теперь снова нацелились на ту же папку.

Пошаговая настройка отслеживания взгляда

Настройка сцены

Настройте MixedRealityToolkit, щелкнув "Смешанная реальность Toolkit - Configure..." (Набор средств Смешанная реальность —> настройка...) в строке меню.

Настройка MRTK

Настройка профилей MRTK, необходимых для отслеживания взгляда

После настройки сцены MRTK вам будет предложено выбрать профиль для MRTK. Можно выбрать DefaultMixedRealityToolkitConfigurationProfile, а затем выбрать параметр "Копировать & настроить".

Профиль MRTK

Создание поставщика данных взгляда

  • Щелкните вкладку "Входные данные" в профиле MRTK.
  • Чтобы изменить значение по умолчанию (DefaultMixedRealityInputSystemProfile), нажмите кнопку "Клонировать" рядом с ней. Откроется меню "Клонировать профиль". Щелкните "Клонировать" в нижней части этого меню.
  • Дважды щелкните новый входной профиль, разверните узел "Поставщики входных данных" и выберите "+ Добавить поставщика данных".
  • Добавьте правильный поставщик данных:
    • Для устаревших Windows Mixed Reality
      • В разделе Тип выберите Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input ->'WindowsMixedRealityEyeGazeDataProvider'
    • Для подключаемого модуля Windows XR
      • В разделе Тип выберите Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality ->'WindowsMixedRealityEyeGazeDataProvider'
    • Для OpenXR
      • В разделе Тип выберите "Microsoft.MixedReality.Toolkit.XRSDK.OpenXR" ->'OpenXREyeGazeDataProvider'

Поставщик данных MRTK

Включение параметра "Использование данных отслеживания взгляда"

  • Перейдите к профилю конфигурации MRTK ->"Входные данные" ->"Указатели"
    • Клонируйте DefaultMixedRealityInputPointerProfile , чтобы внести в него изменения.
  • Найдите "Использовать данные отслеживания взгляда" в параметрах и включите его.
  • Вы можете увидеть кнопку Set GazeInput capability (Задать возможность GazeInput) и нажать ее, чтобы включить возможность UWP.

Использование данных отслеживания взгляда в MRTK

Имитация отслеживания взгляда в редакторе Unity

Вы можете имитировать входные данные отслеживания взгляда в редакторе Unity, чтобы убедиться, что события активируются правильно перед развертыванием приложения в HoloLens 2. Сигнал взгляда смоделируется с помощью расположения камеры в качестве источника взгляда и вектора вперед камеры в качестве направления взгляда. Хотя это отлично подходит для первоначального тестирования, обратите внимание, что это не хорошая имитация для быстрого движения глаз. Для этого лучше обеспечить частые тесты взаимодействия на основе глаз на HoloLens 2.

  1. Включите имитацию отслеживания взгляда:

    • Щелкните вкладку "Входные данные" в профиле конфигурации MRTK.
    • Оттуда перейдите к разделу "Поставщики входных данных" ->"Служба имитации входных данных".
    • Клонируйте DefaultMixedRealityInputSimulationProfile , чтобы внести в него изменения.
    • Выберите соответствующий параметр "Режим имитации взгляда по умолчанию".

    Имитация глаз MRTK

  2. Отключить курсор головного взгляда по умолчанию. Как правило, рекомендуется избегать отображения курсора взгляда или, если это абсолютно необходимо, сделать его очень тонким. Рекомендуется скрыть курсор взгляда головы по умолчанию, прикрепленный к профилю указателя взгляда MRTK по умолчанию.

    • Перейдите к профилю конфигурации MRTK ->"Входные данные" ->"Указатели"
    • Клонируйте DefaultMixedRealityInputPointerProfile , чтобы внести в него изменения.
    • В верхней части "Параметры указателя" следует назначить заготовку невидимого курсора для заготовки курсора взгляда. Это можно сделать, выбрав заготовку EyeGazeCursor из ФОНДА MRTK.

Включение взгляда на основе взгляда в поставщике взгляда

В HoloLens версии 1 в качестве основного метода указателя использовался взгляд на голову. Хотя взгляд на голову по-прежнему доступен через GazeProvider в MRTK, который прикреплен к камере, вы можете использовать взгляд, установив флажок IsEyeTrackingEnabled в параметрах взгляда в профиле указателя ввода.

Примечание

Разработчики могут переключаться между взглядом на основе взгляда и взгляда на голову в коде, изменив свойство IsEyeTrackingEnabledдля GazeProvider.

Важно!

Если какое-либо из требований отслеживания взгляда не выполняется, приложение автоматически вернется к взгляду на основе головы.

Доступ к данным взгляда

Теперь, когда сцена настроена для использования отслеживания взгляда, давайте посмотрим, как получить к ней доступ в сценариях: Доступ к данным отслеживания глаз с помощью EyeGazeProvider и выбор целевых объектов, поддерживаемых глазами.

Тестирование приложения Unity на HoloLens 2

Создание приложения с отслеживанием взгляда должно быть аналогично компиляции других приложений HoloLens 2 MRTK. Убедитесь, что вы включили функцию "Ввод взгляда" , как описано выше в разделе Примечание о возможности GazeInput.

Убедитесь, что проект настроен для HoloLens 2

Убедитесь, что вы правильно настроили проект, проверив действия по настройке, описанные в разделе Настройка проекта OpenXR с помощью MRTK.

Ключевые моменты, о которые следует подумать:

  • Просмотрите ключевые параметры в окне Параметры проекта .
    • Убедитесь, что поставщики подключаемых модулей настроены правильно
  • Разрешение треугольников предупреждений.
    • Необходимо задать профили взаимодействия
    • Группы компонентов OpenXR должны быть выбраны правильно

Калибровка взгляда

Не забудьте выполнить калибровку глаз на HoloLens 2. Система отслеживания взгляда не возвращает входные данные, если пользователь не откалиброван. Самый простой способ добраться до калибровки — перевернуть визор вверх, а затем вернуться вниз. Должно появиться системное уведомление, которое приветствует вас как нового пользователя и предлагает вам пройти калибровку взгляда. Кроме того, вы можете найти калибровку глаз в параметрах системы: Параметры > Калибровка > системы > Выполнить калибровку взгляда.

Разрешение на отслеживание взгляда

При первом запуске приложения на HoloLens 2 появится запрос с запросом на использование отслеживания взгляда. Если запрос не отображается, обычно это означает, что возможность GazeInput не задана.

После того как запрос на разрешение появился один раз, он не будет отображаться автоматически снова. Если вы "отклонули разрешение на отслеживание взгляда", вы можете сбросить его в разделе Параметры -> Конфиденциальность -> Приложения.


Это позволит вам приступить к использованию отслеживания взгляда в приложении MRTK Unity. Не забудьте проверка руководства по отслеживанию взгляда MRTK и примеры, демонстрирующие использование входных данных отслеживания взгляда и удобные сценарии, которые можно использовать в проектах.


Вернуться к "Отслеживание взгляда в MixedRealityToolkit"