Взгляд и фиксация
Отслеживание и фиксация — это базовая модель ввода, которая тесно связана с тем, как мы взаимодействуем с компьютерами с помощью мыши: point & click. На этой странице мы представляем два типа ввода взгляда (голова и взгляд) и различные типы действий фиксации. Взгляд и фиксация считаются моделью дальнего ввода с непрямым манипулированием. Его лучше всего использовать для взаимодействия с голографическим содержимым, которое находится вне досягаемости.
Гарнитуры смешанной реальности могут использовать положение и ориентацию головы пользователя для определения вектора направления головы. Думайте о взгляде как о лазерном направлении прямо между глазами пользователя. Это довольно приблизительная оценка того, куда смотрит пользователь. Приложение может пересекать этот луч с виртуальными или реальными объектами и нарисовать курсор в этом расположении, чтобы пользователь знал, на что он нацелен.
Помимо взгляда головы, некоторые гарнитуры смешанной реальности, такие как HoloLens 2, включают системы отслеживания взгляда, которые создают вектор взгляда. Это обеспечивает высокоточное измерение направления взгляда пользователя. В обоих случаях взгляд представляет важный сигнал для намерения пользователя. Чем лучше система может интерпретировать и прогнозировать предполагаемые действия пользователя, тем больше повышается удовлетворенность и производительность пользователя.
Ниже приведено несколько примеров того, как разработчик смешанной реальности может воспользоваться преимуществами направления головы или взгляда:
- Приложение может пересекать взгляд с голограммами в сцене, чтобы определить, где находится внимание пользователя (более точным с помощью взгляда).
- Приложение может передавать жесты и нажатия контроллера в зависимости от взгляда пользователя, что позволяет пользователю легко выбирать, активировать, захватывать, прокручивать голограммы или иным образом взаимодействовать с ними.
- Приложение может позволить пользователю размещать голограммы на реальных поверхностях, пересекая их луч взгляда с сеткой пространственного сопоставления.
- Ваше приложение может знать, когда пользователь не смотрит в направлении важного объекта, что может привести к тому, что приложение будет давать визуальные и звуковые подсказки для поворота к объекту.
Поддержка устройств
Модель ввода | HoloLens (1-го поколения) | HoloLens 2 | Иммерсивные гарнитуры |
Направление головы и фиксация | ✔ Рекомендуется | ✔ Рекомендуется (третий вариант см. в разделе других возможностей) | ➕ Альтернативный вариант |
Определение направления взгляда и фиксация | ❌ Недоступно | ✔ Рекомендуется (третий вариант см. в разделе других возможностей) | ❌ Недоступно |
Демонстрация основных принципов разработки технологии отслеживания взгляда и головы
Если вы хотите посмотреть, как работает отслеживание головы и взгляда, ознакомьтесь с нашей видеодемонстрацией Designing Holograms - Head Tracking and Eye Tracking (Создание голограмм — отслеживание головы и взгляда) ниже. По завершении продолжите изучать другие темы.
Это видео было записано из приложения Designing Holograms для HoloLens 2. Скачайте его и насладитесь всеми его возможностями здесь.
Взгляд
Взгляд или взгляд на голову?
При возникновении вопроса о том, следует ли использовать модель ввода "взгляд и фиксация" или "головной взгляд и фиксация". Если вы разрабатываете для иммерсивной гарнитуры или для HoloLens (1-го поколения), выбор прост: head-gaze и commit. Если вы разрабатываете для HoloLens 2, выбор становится немного сложнее. Важно понимать преимущества и проблемы, которые возникают с каждым из них. Мы составили некоторые общие плюсы и минусы в таблице ниже, чтобы контрастировать голову и взгляд нацеливания. Это далеко не все, и мы рекомендуем узнать больше о нацеливание взгляда в смешанной реальности здесь:
- Отслеживание взгляда на HoloLens 2. Общие сведения о новых возможностях отслеживания взгляда на HoloLens 2 включая некоторые рекомендации для разработчиков.
- Взаимодействие взгляда. Рекомендации по проектированию при планировании использования отслеживания взгляда в качестве входных данных.
Нацеливание взгляда | Нацеливание направлением головы |
Быстрый! | Медленнее |
Низкие усилия (едва ли какие-либо движения тела необходимы) | Может быть утомляющим - Возможный дискомфорт (например, напряжение шеи) |
Курсор не требуется, но рекомендуется неявная обратная связь | Требуется отображение курсора |
Нет плавных движений глаз — например, не подходит для рисования | Более контролируемый и явный |
Сложный для небольших целевых объектов (например, крошечные кнопки или веб-ссылки) | Надежный! Отличный резервный вариант! |
... | ... |
Независимо от того, используете ли вы направление головы или взгляд для модели ввода взгляда и фиксации, каждый из них поставляется с различными наборами ограничений проектирования. Они рассматриваются отдельно в статьях о взгляде и фиксации и голове и фиксации .
Курсор
Для взгляда головы большинство приложений должны использовать курсор или другие слуховые или визуальные признаки, чтобы дать пользователю уверенность в том, с чем они собираются взаимодействовать.
Обычно этот курсор размещается в том мире, где его луч головного взгляда сначала пересекается с объектом, который может быть голограммой или реальной поверхностью.
Для взгляда обычно рекомендуется не показывать курсор, так как это может быстро стать отвлекающим и раздражающим для пользователя.
Вместо этого тонко выделите визуальные объекты или используйте слабый курсор глаза, чтобы обеспечить уверенность в том, с чем пользователь будет взаимодействовать. Чтобы получить дополнительные сведения, проверка наше руководство по проектированию для ввода данных на основе глаз в HoloLens 2.
Изображение: пример визуального курсора для отображения взгляда
Commit
Поговорив о различных способах взгляда на цель, давайте подробнее поговорим о части фиксации в взгляде и фиксации. После нацеливания на объект или элемент пользовательского интерфейса пользователь может взаимодействовать с ними или щелкать их с помощью дополнительных входных данных. Это называется этапом фиксации модели ввода.
Поддерживаются следующие методы фиксации:
- Жест касания рукой (то есть поднять руку перед собой и объединить указательный палец и большой палец)
- Произнесите "выбрать" или одну из целевых голосовых команд.
- Нажатие одной кнопки в HoloLens Clicker
- Нажатие кнопки "A" на геймпаде Xbox
- Нажатие кнопки "A" на адаптивном контроллере Xbox
Жест касания взгляда и воздуха
Касание — это жест касания с положением руки вертикально. Чтобы использовать касание воздуха, поднимите указательный палец в готовое положение, а затем ущипите большим пальцем и поднимите указательный палец обратно, чтобы освободиться. В HoloLens (1-го поколения) наиболее распространенным вторичным вводом является отвод воздуха.
Палец в позиции готовности
Нажмите пальцем вниз, чтобы коснуться или щелкнуть
Касание воздуха также доступно на HoloLens 2. Он был расслаблен от первоначальной версии. Почти все типы щепоток в настоящее время поддерживаются до тех пор, как рука в вертикальном положении и держите еще. Это значительно упрощает обучение и использование жеста. Этот новый воздушный кран заменяет старый с помощью того же API, поэтому существующие приложения будут иметь новое поведение автоматически после перекомпиляции для HoloLens 2.
Голосовая команда "Взгляд" и "Выбрать"
Голосовая команда является одним из основных методов взаимодействия в смешанной реальности. Он предоставляет мощный механизм без рук для управления системой. Существуют различные типы моделей голосового взаимодействия:
- Универсальная команда "Выбрать", которая использует действие щелчка или фиксацию в качестве дополнительных входных данных.
- Команды объектов (например, "Закрыть" или "Сделать больше") выполняют и фиксируют действие в качестве дополнительных входных данных.
- Для глобальных команд (например, "Перейти к началу") целевой объект не требуется.
- Пользовательские интерфейсы бесед или сущности, такие как Кортана, имеют возможности искусственного интеллекта естественного языка.
- Пользовательские голосовые команды
Чтобы узнать больше о подробной информации и исчерпывающем списке доступных голосовых команд и способах их использования, проверка руководство по голосовой команде.
Gaze и HoloLens Clicker
HoloLens Clicker — это первое периферийное устройство, созданное специально для HoloLens. Он входит в состав HoloLens (1-го поколения) Development Edition. Clicker HoloLens позволяет пользователю щелкать с минимальным движением руки и фиксировать в качестве дополнительного ввода. HoloLens Clicker подключается к HoloLens (1-го поколения) или HoloLens 2 с помощью Bluetooth Low Energy (BTLE).
Дополнительные сведения и инструкции по связыванию устройства
Изображение: HoloLens Clicker
Взгляд и Беспроводной геймпад Xbox
С помощью кнопки "A" Беспроводной геймпад Xbox выполняет ввод щелчка в качестве дополнительного ввода. Устройство сопоставляется с набором действий по умолчанию, которые помогают перемещаться по системе и управлять ими. Если вы хотите настроить контроллер, используйте приложение Xbox Accessories для настройки Беспроводной геймпад Xbox.
Связывание контроллера Xbox с компьютером
Изображение: Беспроводной геймпад Xbox
Gaze и адаптивный контроллер Xbox
Адаптивный контроллер Xbox предназначен в первую очередь для удовлетворения потребностей игроков с ограниченной подвижностью, — это единый центр для устройств, который помогает сделать смешанную реальность более доступной.
Адаптивный геймпад Xbox выполняет действие щелчка в качестве дополнительного ввода с помощью кнопки "A". Устройство сопоставляется с набором действий по умолчанию, которые помогают перемещаться по системе и управлять ими. Если вы хотите настроить контроллер, используйте приложение Xbox Accessories для настройки адаптивного геймпада Xbox.
Адаптивный контроллер Xbox
Подключите внешние устройства, такие как коммутаторы, кнопки, подключения и джойстики, чтобы создать уникальный интерфейс контроллера. Вводы кнопок, стиков и триггеров управляются с помощью вспомогательных устройств, подключенных через 3,5-мм разъемы и USB-порты.
Порты адаптивного контроллера Xbox
Инструкции по связыванию устройства
Дополнительные сведения доступны на сайте Xbox
Составные жесты
Жест касания
Жест касания воздуха (и другие жесты ниже) реагирует только на определенное касание. Для обнаружения других касаний, таких как Menu или Захват, приложение должно напрямую использовать взаимодействия более низкого уровня, описанные в разделе жестов двух ключевых компонентов выше.
Коснитесь и удерживайте
Удерживание — это просто удержание пальца в опущенном положении после касания. Сочетание касания и удержания воздуха позволяет выполнять различные более сложные взаимодействия "щелкать и перетаскивать" в сочетании с движением руки, например при выборе объекта вместо его активации или дополнительных взаимодействий с mousedown, таких как отображение контекстного меню. Однако при разработке этого жеста следует соблюдать осторожность, так как пользователи могут быть склонны к расслаблению поз рук во время любого расширенного жеста.
Управление
Жесты манипуляции можно использовать для перемещения, изменения размера или поворота голограммы, когда требуется, чтобы голограмма реагировала 1:1 на движения рук пользователя. Одно из применений таких движений 1:1 позволяет пользователю только рисовать или вписывать красками. Первоначальное нацеливание для жеста управления должно быть исполнено взглядом или указанием. После запуска касания и удержания все операции с объектами обрабатываются движениями рук, что позволяет пользователю оглядываться вокруг, пока они манипулируют.
Навигация
Жесты навигации работают как виртуальный джойстик и могут использоваться для навигации по мини-приложениям пользовательского интерфейса, таким как радиальные меню. Вы касаетесь и удерживаете, чтобы начать жест, а затем двигаете рукой в нормализованном трехмерном кубе, центрированном вокруг начального нажатия. Вы можете переместить руку по оси X, Y или Z со значения от -1 до 1, при этом 0 является отправной точкой. Навигация может использоваться для создания жестов непрерывной прокрутки или масштабирования на основе скорости, аналогично прокрутке 2D-интерфейса путем нажатия средней кнопки мыши и последующего перемещения мыши вверх и вниз.
Навигация с помощью направляющих означает возможность распознавания движений по определенной оси до достижения определенного порога на этой оси. Это полезно только в том случае, если разработчик включил перемещение по нескольким осям, например, если приложение настроено для распознавания жестов навигации по оси X, Y, но также и указанной оси X с направляющими. В этом случае система будет распознавать движения рук по оси X до тех пор, пока они остаются в пределах мнимых направляющих (направляющих) на оси X, если движение руки также происходит на оси Y.
В 2D-приложениях пользователи могут использовать жесты вертикальной навигации для прокрутки, масштабирования или перетаскивания внутри приложения. Это вводит в приложение виртуальные касания пальцем, чтобы имитировать сенсорные жесты того же типа. Пользователи могут выбрать, какие из этих действий выполняются, переключаясь между инструментами на панели над приложением, нажав кнопку или сказав "<Прокрутка/перетаскивание/увеличение> ".
Дополнительные сведения о составных жестах
Распознаватели жестов
Одним из преимуществ использования распознавания жестов является то, что распознаватель жестов можно настроить только для жестов, которые может принимать голограмма. Платформа выполняет неоднозначные действия только по мере необходимости, чтобы различать эти конкретные поддерживаемые жесты. Таким образом, голограмма, которая просто поддерживает касание воздуха, может принимать любое время между нажатием и выпуском, а голограмма, поддерживающая как касание, так и удержание, может повысить уровень касания до удержания после порогового значения времени удержания.
Распознавание рук
HoloLens распознает жесты рук, отслеживая положение одной или обеих рук, которые видимые устройству. Руки видны для HoloLens, когда они находятся в состоянии готовности (задняя часть руки обращена к вам указательным пальцем вверх) или в нажатом состоянии (задняя часть руки обращена к вам указательным пальцем вниз). Когда руки находятся в других позах, HoloLens игнорирует их. Для каждой руки, обнаруженной HoloLens, можно получить доступ к ее положению без ориентации и состояния нажатия. Когда рука приближается к краю рамки жеста, вам также предоставляется вектор направления, который вы можете показать пользователю. Так он узнает, как переместить руку, чтобы вернуть ее туда, где она будет видна для HoloLens.
Рамка жестов
Для жестов на HoloLens рука должна находиться в рамке жеста, в диапазоне, который камеры, чувствующие жесты, могут видеть соответствующим образом, от носа до талии и между плечами. Пользователи должны быть обучены в этой области признания как для успеха действий, так и для их собственного комфорта. Многие пользователи изначально предполагают, что рамка жеста должна находиться в пределах их зрения через HoloLens, и держать руки неудобно для взаимодействия. При использовании Clicker HoloLens не обязательно, чтобы руки были в рамке жеста.
В частности, для непрерывных жестов существует определенный риск перемещения рук за пределы рамки жеста в середине жеста при перемещении голографического объекта, например, и потерять ожидаемый результат.
Есть три вещи, которые необходимо рассмотреть:
Обучение пользователей о существовании кадра жеста и приблизительных границах. Этому учат во время настройки HoloLens.
Уведомление пользователей, когда их жесты приближаются или нарушают границы рамки жеста в приложении в той степени, что потерянный жест приводит к нежелательным результатам. Исследования показали ключевые качества такой системы уведомлений. Оболочка HoloLens предоставляет хороший пример такого типа уведомления—визуального элемента на центральном курсоре, указывающего направление пересечения границы.
Последствия нарушения границ рамки жеста должны быть сведены к минимуму. Как правило, это означает, что результат жеста должен быть остановлен на границе, а не отменен. Например, если пользователь перемещает голографический объект по комнате, движение должно остановиться при нарушении кадра жеста и не вернуться в начальную точку. Пользователь может испытывать некоторое разочарование, но может быстрее понять границы и не перезапускать свои полные предполагаемые действия каждый раз.