Непосредственное манипулирование руками

Кнопка

Непосредственное манипулирование —это модель ввода, которая предполагает прикосновение к голограммам непосредственно руками. Суть этого принципа состоит в том, что объекты ведут себя так же, как в реальном мире. Кнопки можно активировать, просто нажимая их, объекты можно выбирать, хватая их, а двумерное содержимое ведет себя как виртуальный сенсорный экран. Непосредственное манипулирование основано на возможностях интерфейса, и оно удобно для пользователей. Оно не подразумевает символические жесты. Все взаимодействия построены вокруг визуального элемента, который вы можете тронуть или схватить. Оно считается моделью "ближнего" ввода. Это означает, что непосредственное манипулирование лучше всего использовать для взаимодействия с содержимым, которое находится в пределах досягаемости.

Поддержка устройств

Модель ввода HoloLens (1-го поколения) HoloLens 2 Иммерсивные гарнитуры
Непосредственное манипулирование руками ❌ Не поддерживается. ✔️ Рекомендуется ➕ Поддерживается. Для пользовательского интерфейса рекомендуем использовать наведение и фиксацию с помощью рук.

Непосредственное манипулирование является основной моделью ввода в HoloLens 2, где используется новая система отслеживания рук. Модель ввода также доступна для иммерсивных гарнитур благодаря использованию контроллеров движений, но не рекомендуется в качестве основного средства взаимодействия за рамками манипулирования объектами. Непосредственное манипулирование недоступно в HoloLens (1-го поколения).



Основы отслеживания рук и инстинктивное взаимодействие — демонстрация

Если вы хотите посмотреть, как работает отслеживание головы и взгляда, ознакомьтесь с нашей видеодемонстрацией Designing Holograms - Head Tracking and Eye Tracking (Создание голограмм — отслеживание головы и взгляда) ниже. По завершении продолжите изучать другие темы.

Это видео было записано из приложения Designing Holograms для HoloLens 2. Скачайте его и насладитесь всеми его возможностями здесь.

Кончик пальца с обратной связью

На устройстве HoloLens 2 руки пользователя распознаются и интерпретируются как модели скелета левой и правой руки. Чтобы реализовать идею прикосновения к голограммам непосредственно с помощью рук, в идеале можно прикрепить пять индикаторов обратной связи к пяти кончикам пальцев каждой скелетной модели руки. Однако из-за отсутствия тактильной обратной связи с десятью кончиками пальцев могли возникать неожиданные и непредсказуемые столкновения с голограммами.

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

Кончик пальца с обратной связью
Кончик пальца с обратной связью

Нажатие одним пальцем
Нажатие одним пальцем

Касание одним пальцем
Касание одним пальцем

Нажатие пятью пальцами
Нажатие пятью пальцами



Сферический индикатор обратной связи

Вместо случайной универсальной формы мы предлагаем использовать сферический индикатор обратной связи и визуализировать его, чтобы обеспечить лучшее восприятие ближнего прицеливания. Диаметр сферы должен соответствовать толщине указательного пальца, чтобы повысить точность касания. Получить переменную толщину пальца будет легче, вызвав API для работы с руками.

Курсор для кончика пальца

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

  • Когда указательный палец приближается к голограмме, курсор всегда параллелен поверхности голограммы и постепенно уменьшается в размере.
  • Как только палец касается поверхности, курсор сжимается до точки и создается событие касания.

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

Курсор для кончика пальца вдали
Курсор для кончика пальца вдали

Курсор для кончика пальца близко
Курсор для кончика пальца близко

Контакт курсора для кончика пальца
Контакт курсора для кончика пальца


Ограничивающая рамка с шейдером приближения

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

Наведение (издали) с визуальной обратной связью
Наведение (издали)
Когда указательный палец находится в пределах диапазона, указатель кончика пальца проецируется на поверхность ограничивающей рамки.

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

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

Контакт завершается
Контакт завершается
Для усиления визуальной обратной связи касания можно активировать звуковой эффект.



Нажимаемая кнопка

Благодаря обратной связи с помощью кончика пальца пользователи могут взаимодействовать с основополагающим компонентом голографического интерфейса — нажимаемой кнопкой. Нажимаемая кнопка — это голографическая кнопка, предназначенная для непосредственного нажатия пальцем. Опять же, из-за отсутствия тактильной обратной связи нажимаемая кнопка оснащена несколькими механизмами для решения проблем, связанных с тактильной обратной связью.

  • Первый механизм — это ограничивающий прямоугольник с шейдером приближения. Этот механизм подробно описан в предыдущем разделе. Он служит для того, чтобы пользователи чувствовали приближение и контакт с кнопкой.
  • Второй механизм — надавливание. Он создает ощущение нажатия после контакта пальца с кнопкой. Механизм обеспечивает перемещение кнопки вплотную к кончику пальца вдоль оси глубины. Кнопка может сработать, когда она достигает выбранной глубины (при нажатии) или поднимается (при отпускании) после прохождения через нее.
  • Для улучшения обратной связи нужно добавить звуковой эффект, активируемый при нажатии кнопки.

Нажимаемая кнопка вдали
Палец вдали

Нажимаемая кнопка близко
Палец приближается

Начинается контакт с нажимаемой кнопкой
Контакт начинается

Нажатие нажимаемой кнопки
Нажатие



Взаимодействие с двумерным экраном

Двухмерный экран — это голографический контейнер, используемый для размещения содержимого двухмерных приложений, таких как веб-браузер. Концепция для взаимодействия с двумерным экраном с помощью непосредственного манипулирования не отличается от взаимодействия с физическим сенсорным экраном.

Для взаимодействия с экраном планшета:

Сенсорный ввод
Сенсорный ввод
Используйте указательный палец, чтобы нажать гиперссылку или кнопку.

Прокрутка
Прокрутка
Используйте указательный палец для прокрутки содержимого экрана вверх и вниз.

Масштабирование
Масштабирование
С помощью двух указательных пальцев пользователя можно увеличивать и уменьшать содержимое экрана в соответствии с относительным движением пальцев.

Для манипуляции самим двумерным экраном планшета:

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

Рисунок с функцией масштабирования
Масштабирование
Захватите возможности для манипуляции и выполните равномерное масштабирование с помощью угловых возможностей.

Адаптация
Адаптация
Захватите возможности для манипуляции и выполните адаптацию с помощью возможностей граней.



Манипуляция трехмерными объектами

HoloLens 2 позволяет пользователям с помощью рук управлять трехмерными голографическими объектами, применяя ограничивающий прямоугольник к каждому такому объекту. Ограничивающая рамка обеспечивает лучшее восприятие глубины благодаря шейдеру приближения. С ограничивающей рамкой доступно два подхода для манипулирования трехмерными объектами.

Манипуляция на основе возможностей

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

Рисунок с ограничивающим прямоугольником объектов и функцией перемещения
Перемещение
Как только рука пользователя приближается к трехмерному объекту, появляются ограничивающая рамка и ближайшая возможность. Пользователи могут захватить ограничивающий прямоугольник, чтобы переместить весь объект.

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

Рисунок с пользователем, который захватывает угол объекта для масштабирования
Масштабирование
Пользователи могут захватить угловые возможности, чтобы выполнить равномерное масштабирование.


Манипуляция без использования возможностей

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

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



Инстинктивные жесты

При работе с HoloLens (1-го поколения) мы обучили пользователей нескольким предопределенным жестам, таким как раскрытие ладони и касание. В случае с HoloLens 2 мы не просим пользователей запоминать какие-либо символические жесты. Все необходимые жесты пользователя, с помощью которых можно взаимодействовать с голограммами и содержимым, являются инстинктивными. Способ достижения инстинктивного жеста состоит в том, чтобы побуждать пользователей выполнять жесты на основе дизайна возможностей пользовательского интерфейса.

Например, если нам требуется, чтобы пользователь захватил объект или контрольную точку двумя пальцами, объект или контрольная точка должны быть маленькими. Если мы хотим, чтобы пользователь захватил элемент пятью пальцами, объект или контрольная точка должны быть относительно большими. Аналогично кнопкам, маленькая кнопка потребует от пользователя нажатия одним пальцем. Большая кнопка потребует от пользователя нажатия ладонью.

Рисунок с пользователем, захватывающем объекты небольшого размера для перемещения
Маленький объект

Рисунок с пользователем, захватывающем объекты среднего размера для перемещения
Средний объект

Рисунок с пользователем, захватывающем объекты большого размера для перемещения
Крупный объект




Симметричный дизайн для работы с помощью рук и контроллеров с шестью степенями свободы

Возможно, вы заметили параллели при взаимодействии с помощью рук в дополненной реальности и контроллерами движений в виртуальной реальности. Оба способа ввода можно использовать для выполнения непосредственного манипулирования в соответствующих средах. В HoloLens 2 захват и перетаскивание руками на близком расстоянии работает почти так же, как кнопка захвата на контроллерах движения в WMR. Это позволяет пользователям лучше понять разницу взаимодействия между двумя платформами и может оказаться полезным, если вы когда-нибудь решите перенести свое приложение из одной из них в другую.



Оптимизация с помощью отслеживания глаз

Непосредственное манипулирование может показаться магией, если оно работает так, как задумано. Но если при любом движении рук непреднамеренно активируется голограмма, это может раздражать. Отслеживание глаз потенциально может помочь лучше определить намерения пользователя.

  • Если. Уменьшение непреднамеренного срабатывания ответа на действие манипулирования. Отслеживание глаз позволяет лучше понять, что в настоящее время интересует пользователя. Например, представьте, что вы читаете голографический (учебный) текст и протягиваете руку, чтобы схватить реальный рабочий инструмент.

Таким образом вы случайно перемещаете руку над различными интерактивными голографическими кнопками, на которые вы не обращали внимания (например, они могут быть вне поля зрения пользователя).

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

  • Который элемент. Помимо ложноположительных активаций, иногда требуется более совершенное определение голограмм, которые нужно захватить или активировать, так как точная точка пересечения может быть неясной с вашей точки зрения, особенно если несколько голограмм расположены близко друг к другу.

    Хотя отслеживание взгляда в HoloLens 2 имеет ограничение точности определения его направления, оно все равно может быть очень полезно для близких взаимодействий из-за дисбаланса глубины при взаимодействии посредством ввода руками. Это означает, что иногда трудно определить, где находится ваша рука (позади или перед голограммой), чтобы, например, точно захватить виджет манипулирования.

  • Где. Использование информации о том, на что смотрит пользователь, выполняющий быстрые жесты. Захватите голограмму и небрежно переместите ее в место назначения.

    Иногда это работает, но быстрое выполнение жестов руками может привести к очень неточному определению направлений. Тем не менее, отслеживание глаз может повысить точность жестов.



Манипуляции в MRTK (наборе средств для смешанной реальности) для Unity

В MRTK можно легко настроить типичное поведение при манипуляции, используя скрипт ObjectManipulator. Благодаря ObjectManipulator можно захватывать и перемещать объекты непосредственно руками или с помощью телекинеза. Этот скрипт также поддерживает манипуляции двумя руками для масштабирования и поворота объекта.


См. также статью