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

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

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

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

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

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

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

MRTK Build Tools

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

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

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

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

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

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

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

MRTK configure

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

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

MRTK profile

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

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

MRTK data provider

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

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

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

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

    MRTK eyes simulate

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

    • Перейдите к профилю конфигурации MRTK ->'Input' ->'Pointers'
    • Клонируйте значение DefaultMixedRealityInputPointerProfile, чтобы внести в него изменения.
    • В верхней части указателя Параметры следует назначить невидимый курсор префаб "GazeCursor". Для этого выберите заготовку EyeGazeCursor в фонде MRTK.

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

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

Примечание

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

Важно!

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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