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

MRTK Input Simulation

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

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

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

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

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

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

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

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

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

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

MRTK Input Simulation Cheat Sheet

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

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

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

Примечание

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

элемент управления Камера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Нажмите и удерживайте клавишу манипуляции с контроллером влево или вправо (по умолчанию: shift влево для левого контроллера и пробела для правого контроллера), чтобы получить контроль над одним из контроллеров. При нажатии клавиши манипуляции контроллер будет отображаться в порте просмотра. После освобождения клавиши манипуляции контроллеры исчезнут после короткого тайм-аута контроллера.

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

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

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

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

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

  • Множитель глубины контроллера управляет конфиденциальностью перемещения колесика прокрутки мыши. Увеличение числа ускорит масштабирование контроллера.
  • Расстояние контроллера по умолчанию — это начальное расстояние контроллеров от камеры. Если нажать кнопку сброса , контроллеры также будут размещать контроллеры на этом расстоянии.
  • Объем Jitter контроллера добавляет случайное движение к контроллерам. Эту функцию можно использовать для имитации неточного отслеживания контроллера на устройстве и обеспечения правильности взаимодействия с шумными входными данными.

Жесты руками

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

Это можно отключить, переключив параметр Is Hand Free Input Enabled в профиле имитации ввода.

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

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

Вызов событий телепорта

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

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

Input Simulation Teleport Settings

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

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

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

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

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

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

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

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

Примечание

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

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

  • Untracked hand icon Рука не отслеживается. Нажмите, чтобы включить руку.
  • Tracked hand icon Рука отслеживается, но не контролируется пользователем. Нажмите, чтобы скрыть руку.
  • Controlled hand icon Рука отслеживается и контролируется пользователем. Нажмите, чтобы скрыть руку.
  • Reset hand icon Щелкните, чтобы сбросить положение руки по умолчанию.

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