Служба имитации входных данных — MRTK2

Имитация ввода MRTK

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

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

  • Отслеживание головы с помощью HoloLens или устройства виртуальной реальности
  • Отслеживание жестов рукой с помощью HoloLens
  • Отслеживание любых движений рукой с помощью HoloLens 2
  • отслеживание взгляда HoloLens 2
  • Контроллеры устройств виртуальной реальности

Предупреждение

Это не работает при использовании режима эмуляции голографической эмуляции > XR в Unity = "Имитация в редакторе". Имитация в редакторе Unity отнимет контроль от имитации ввода MRTK. Чтобы использовать службу имитации входных данных MRTK, необходимо задать для голографической эмуляции XR режим эмуляции = "None".

Использование имитации ввода MRTK

Имитация ввода включена по умолчанию в профилях, поставляемых с MRTK. Можно просто нажать кнопку Воспроизвести , чтобы запустить сцену с поддержкой имитации ввода.

  • Чтобы переместить камеру, нажимайте клавиши W, A, S, D, Q, E.
  • Чтобы посмотреть по сторонам, перемещайте мышь при нажатой правой кнопке мыши.
  • Нажмите клавишу ПРОБЕЛ (правой рукой) или клавишу SHIFT (левой рукой) , чтобы отобразить имитацию рук.
  • Нажмите клавишу T или Y, чтобы удерживать имитацию рук в поле зрения.
  • Чтобы повернуть имитированные руки, нажмите и удерживайте клавишу CTRL и переместите мышь.

Памятка по имитации входных данных в редакторе

Нажмите клавиши CTRL+H слева в сцене HandInteractionExamples, чтобы открыть памятку с элементами управления имитацией ввода.

Памятка по имитации ввода MRTK

Включение службы имитации входных данных

В конфигурации поставщика входных системных данных службу имитации входных данных можно настроить следующим образом.

  • Тип должен быть Microsoft.MixedReality.Toolkit.InputSimulationService>.
  • Поддерживаемые платформы по умолчанию включают все платформы редактора , так как служба использует ввод с помощью клавиатуры и мыши.

Примечание

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

Управление камерой

Смещение головы может эмулироваться службой имитации ввода.

Поворот камеры

  1. Наведите указатель мыши на окно редактора окна просмотра. Если нажатие кнопки не работает, может потребоваться щелкнуть окно, чтобы предоставить ему фокус ввода.
  2. Нажмите и удерживайте кнопку "Просмотр мыши" (по умолчанию: правая кнопка мыши).
  3. Переместите мышь в окне окна просмотра, чтобы повернуть камеру.
  4. Используйте колесико прокрутки, чтобы развернуть камеру в направлении обзора.

Скорость вращения камеры можно настроить, изменив параметр Скорость просмотра мыши в профиле имитации ввода.

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

Перемещение камеры

Используйте вертикальные оси перемещения по горизонтали/ для перемещения камеры (по умолчанию: клавиши WASD или левый стик игрового контроллера).

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

Моделирование контроллера

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

Режим имитации контроллера

В окне средств имитации ввода параметр Режим имитации контроллера по умолчанию переключается между тремя различными входными моделями. Этот режим по умолчанию также можно задать в профиле имитации входных данных.

  • Шарнирные руки. Имитирует полностью сформулированное устройство руки с данными о положении суставов.

    Эмулирует модель HoloLens 2 взаимодействия.

    В этом режиме можно смоделировать взаимодействия, основанные на точном расположении руки или касании.

  • Жесты рук. Имитирует упрощенную модель руки с помощью касания воздуха и базовых жестов.

    Эмулирует модель взаимодействия HoloLens.

    Фокус управляется с помощью указателя взгляда. Жест касания воздуха используется для взаимодействия с кнопками.

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

    Эмулирует гарнитуру виртуальной реальности с моделью взаимодействия с контроллерами.

    Триггер, захват и клавиши меню имитируются с помощью ввода с помощью клавиатуры и мыши.

Имитация перемещения контроллера

Нажмите и удерживайте клавишу управления левым или правым контроллером (по умолчанию: ЛЕВЫЙ СДВИГ для левого контроллера и Пробел для правого контроллера), чтобы получить контроль над контроллером. При нажатии клавиши манипуляции контроллер появится в окне просмотра. После освобождения клавиши манипуляции контроллеры исчезают после короткого времени ожидания скрытия контроллера.

Контроллеры можно включить и заморозить относительно камеры в окне средств имитации ввода или с помощью клавиши Toggle Left/Right Controller ( по умолчанию : T для левого и Y справа). Снова нажмите клавишу-переключатель, чтобы снова скрыть контроллеры. Для управления контроллерами необходимо удерживать клавишу управления левым или правым контроллером . Двойное нажатие клавиши управления левым или правым контроллером также позволяет включить или отключить контроллеры.

Перемещение мыши приведет к перемещению контроллера в плоскости представления. Контроллеры можно перемещать дальше или ближе к камере с помощью колесика мыши.

Чтобы повернуть контроллеры с помощью мыши, удерживайте клавишу управления влево или вправо (левое смещение или пробел) икнопку поворота контроллера (по умолчанию: левая кнопка CTRL ), а затем переместите мышь для поворота контроллера. Скорость вращения контроллера можно настроить, изменив параметр Скорость вращения контроллера мыши в профиле имитации ввода.

Все размещение рук также может измениться в окне инструментов имитации ввода, включая сброс рук до значения по умолчанию.

Дополнительные параметры профиля

  • Множитель глубины контроллера управляет чувствительностью движения глубины колесика прокрутки мыши. Большее число ускорит масштабирование контроллера.
  • Расстояние контроллера по умолчанию — это начальное расстояние контроллеров от камеры. При нажатии кнопки Сброс контроллеры также будут размещать контроллеры на этом расстоянии.
  • Величина дрожания контроллера добавляет случайное движение к контроллерам. Эту функцию можно использовать для имитации неточного отслеживания контроллера на устройстве и обеспечения правильной работы взаимодействия с шумным вводом.

Жесты руками

Жесты рук, такие как ущипнуть, схватить, тыкать и т. д. также можно смоделировать.

  1. Включение управления руками с помощью клавиши управления левым или правым контроллером (сдвиг влево или пробел)

  2. Во время работы нажмите и удерживайте кнопку мыши, чтобы выполнить жест руки.

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

Примечание

Жест сжатия является единственным жестом, который выполняет действие "Выбрать" на этом этапе.

Манипуляция одной рукой

  1. Нажмите и удерживайте клавишу управления левым или правым контроллером (сдвиг влево или пробел)
  2. Наведите указатель на объект
  3. Удерживайте кнопку мыши для сжатия
  4. Перемещение объекта с помощью мыши
  5. Отпустите кнопку мыши, чтобы остановить взаимодействие

Манипуляция двумя руками

Для одновременного управления объектами двумя руками рекомендуется режим постоянной руки.

  1. Переключение на обеих руках путем нажатия переключателей (T/Y).
  2. Управлять одной рукой за раз:
    1. Удерживайте пространство для управления правой рукой
    2. Перемещение руки в место, где вы хотите захватить объект
    3. Нажмите левую кнопку мыши , чтобы активировать жест сжатия .
    4. Освободит пространство , чтобы остановить управление правой рукой. Рука будет заморожена на месте и будет заблокирована в жесте Сжатия , так как она больше не обрабатывается.
  3. Повторите процесс другой рукой, захватив тот же объект на втором месте.
  4. Теперь, когда обе руки захватывают один и тот же объект, можно переместить любой из них, чтобы выполнить двуручную манипуляцию.

Взаимодействие с GGV (взгляд, жест и голос)

По умолчанию взаимодействие с GGV включено в редакторе, пока в сцене нет четко сформулированных рук.

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

Вы можете отключить эту функцию, переключив параметр Включен ли вход без рук в профиле имитации входных данных.

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

  1. Включите имитацию GGV, переключив режим имитации рук на жесты в профиле имитации ввода
  2. Поворот камеры, чтобы навести курсор взгляда на взаимодействуемый объект (кнопка правой мыши)
  3. Удерживайте пространство для управления правой рукой
  4. Нажмите и удерживайте левую кнопку мыши для взаимодействия
  5. Перемещение объекта с помощью мыши
  6. Отпустите кнопку мыши, чтобы остановить взаимодействие

Создание событий телепорта

Чтобы вызвать событие телепорта при имитации ввода, настройте параметры жеста руки в профиле имитации ввода, чтобы один из них выполнял начальный жест телепорта , а другой — конечный жест телепорта . Жест Teleport Start приведет к выводу указателя Teleport, а жест Teleport End завершит действие телепорта и переместит пользователя.

Позиция телепорта по оси Y зависит от смещения камеры по оси Y. В редакторе это значение по умолчанию равно 0, поэтому используйте клавиши Q и E , чтобы настроить его до соответствующей высоты.

Параметры телепорта имитации ввода

Взаимодействие с контроллером движения

Смоделированные контроллеры движения могут управляться так же, как с шарнирными руками. Модель взаимодействия похожа на удаленное взаимодействие с шарнирной рукой, в то время как клавиши триггера, захвата и меню сопоставляются с левой кнопкой мыши, клавишей G и M соответственно.

Отслеживание взгляда

Имитацию отслеживания взгляда можно включить, установив параметр Имитировать положение глаза в профиле имитации входных данных. Это не следует использовать с взаимодействиями в стиле GGV или контроллера движения (поэтому убедитесь, что для режима имитации контроллера по умолчаниюзадано значение Сформулированные руки).

Окно средств имитации ввода

Включите окно средств имитации ввода в меню имитации ввода Смешанная реальность>Toolkit>Utilities>Input Simulation . Это окно предоставляет доступ к состоянию имитации ввода в режиме воспроизведения.

Кнопки окна просмотра (необязательно)

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

Примечание

Индикаторы окна просмотра отключены по умолчанию, так как в настоящее время они иногда могут мешать взаимодействию с пользовательским интерфейсом Unity. См. проблему No 6106. Чтобы включить этот параметр, добавьте заготовку InputSimulationIndicators в заготовку индикаторов.

Значки рук показывают состояние имитированных рук:

  • Значок неотслеченной руки Рука не отслеживается. Щелкните, чтобы включить руку.
  • Значок отслеживаемой руки Значок Рука отслеживается, но не контролируется пользователем. Щелкните, чтобы скрыть руку.
  • Значок управляемой руки Значок Рука отслеживается и контролируется пользователем. Щелкните, чтобы скрыть руку.
  • Значок сброса руки Щелкните , чтобы сбросить руку в положение по умолчанию.

См. также раздел