Служба имитации входных данных — MRTK2
С помощью имитации ввода 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, чтобы открыть памятку с элементами управления имитацией ввода.
Включение службы имитации входных данных
В конфигурации поставщика входных системных данных службу имитации входных данных можно настроить следующим образом.
- Тип должен быть Microsoft.MixedReality.Toolkit.InputSimulationService>.
- Поддерживаемые платформы по умолчанию включают все платформы редактора , так как служба использует ввод с помощью клавиатуры и мыши.
Примечание
Службу имитации входных данных можно использовать в других конечных точках платформы, таких как автономная, изменив свойство Поддерживаемые платформы , чтобы включить нужные целевые объекты.
Управление камерой
Смещение головы может эмулироваться службой имитации ввода.
Поворот камеры
- Наведите указатель мыши на окно редактора окна просмотра. Если нажатие кнопки не работает, может потребоваться щелкнуть окно, чтобы предоставить ему фокус ввода.
- Нажмите и удерживайте кнопку "Просмотр мыши" (по умолчанию: правая кнопка мыши).
- Переместите мышь в окне окна просмотра, чтобы повернуть камеру.
- Используйте колесико прокрутки, чтобы развернуть камеру в направлении обзора.
Скорость вращения камеры можно настроить, изменив параметр Скорость просмотра мыши в профиле имитации ввода.
Кроме того, для поворота камеры можно использовать оси горизонтального/просмотра по вертикали (по умолчанию: правый стик игрового контроллера).
Перемещение камеры
Используйте вертикальные оси перемещения по горизонтали/ для перемещения камеры (по умолчанию: клавиши WASD или левый стик игрового контроллера).
Положение камеры и углы поворота можно задать явно в окне инструментов. Камера может быть сброшена до значения по умолчанию с помощью кнопки Сброс .
Моделирование контроллера
Имитация ввода поддерживает эмулированные устройства контроллера (т. е. контроллеры движения и руки). Эти виртуальные контроллеры могут взаимодействовать с любым объектом, поддерживающим обычные контроллеры, например с кнопками или захватываемыми объектами.
Режим имитации контроллера
В окне средств имитации ввода параметр Режим имитации контроллера по умолчанию переключается между тремя различными входными моделями. Этот режим по умолчанию также можно задать в профиле имитации входных данных.
Шарнирные руки. Имитирует полностью сформулированное устройство руки с данными о положении суставов.
Эмулирует модель HoloLens 2 взаимодействия.
В этом режиме можно смоделировать взаимодействия, основанные на точном расположении руки или касании.
Жесты рук. Имитирует упрощенную модель руки с помощью касания воздуха и базовых жестов.
Эмулирует модель взаимодействия HoloLens.
Фокус управляется с помощью указателя взгляда. Жест касания воздуха используется для взаимодействия с кнопками.
Контроллер движения. Имитирует контроллер движения, используемый с гарнитурами виртуальной реальности, который работает аналогично дальним взаимодействиям с шарнирными руками.
Эмулирует гарнитуру виртуальной реальности с моделью взаимодействия с контроллерами.
Триггер, захват и клавиши меню имитируются с помощью ввода с помощью клавиатуры и мыши.
Имитация перемещения контроллера
Нажмите и удерживайте клавишу управления левым или правым контроллером (по умолчанию: ЛЕВЫЙ СДВИГ для левого контроллера и Пробел для правого контроллера), чтобы получить контроль над контроллером. При нажатии клавиши манипуляции контроллер появится в окне просмотра. После освобождения клавиши манипуляции контроллеры исчезают после короткого времени ожидания скрытия контроллера.
Контроллеры можно включить и заморозить относительно камеры в окне средств имитации ввода или с помощью клавиши Toggle Left/Right Controller ( по умолчанию : T для левого и Y справа). Снова нажмите клавишу-переключатель, чтобы снова скрыть контроллеры. Для управления контроллерами необходимо удерживать клавишу управления левым или правым контроллером . Двойное нажатие клавиши управления левым или правым контроллером также позволяет включить или отключить контроллеры.
Перемещение мыши приведет к перемещению контроллера в плоскости представления. Контроллеры можно перемещать дальше или ближе к камере с помощью колесика мыши.
Чтобы повернуть контроллеры с помощью мыши, удерживайте клавишу управления влево или вправо (левое смещение или пробел) икнопку поворота контроллера (по умолчанию: левая кнопка CTRL ), а затем переместите мышь для поворота контроллера. Скорость вращения контроллера можно настроить, изменив параметр Скорость вращения контроллера мыши в профиле имитации ввода.
Все размещение рук также может измениться в окне инструментов имитации ввода, включая сброс рук до значения по умолчанию.
Дополнительные параметры профиля
- Множитель глубины контроллера управляет чувствительностью движения глубины колесика прокрутки мыши. Большее число ускорит масштабирование контроллера.
- Расстояние контроллера по умолчанию — это начальное расстояние контроллеров от камеры. При нажатии кнопки Сброс контроллеры также будут размещать контроллеры на этом расстоянии.
- Величина дрожания контроллера добавляет случайное движение к контроллерам. Эту функцию можно использовать для имитации неточного отслеживания контроллера на устройстве и обеспечения правильной работы взаимодействия с шумным вводом.
Жесты руками
Жесты рук, такие как ущипнуть, схватить, тыкать и т. д. также можно смоделировать.
Включение управления руками с помощью клавиши управления левым или правым контроллером (сдвиг влево или пробел)
Во время работы нажмите и удерживайте кнопку мыши, чтобы выполнить жест руки.
Каждую из кнопок мыши можно сопоставить для преобразования фигуры руки в другой жест с помощью параметров Жест левой, средней и правой мыши . Жест руки по умолчанию — это форма руки, если кнопка не нажата.
Примечание
Жест сжатия является единственным жестом, который выполняет действие "Выбрать" на этом этапе.
Манипуляция одной рукой
- Нажмите и удерживайте клавишу управления левым или правым контроллером (сдвиг влево или пробел)
- Наведите указатель на объект
- Удерживайте кнопку мыши для сжатия
- Перемещение объекта с помощью мыши
- Отпустите кнопку мыши, чтобы остановить взаимодействие
Манипуляция двумя руками
Для одновременного управления объектами двумя руками рекомендуется режим постоянной руки.
- Переключение на обеих руках путем нажатия переключателей (T/Y).
- Управлять одной рукой за раз:
- Удерживайте пространство для управления правой рукой
- Перемещение руки в место, где вы хотите захватить объект
- Нажмите левую кнопку мыши , чтобы активировать жест сжатия .
- Освободит пространство , чтобы остановить управление правой рукой. Рука будет заморожена на месте и будет заблокирована в жесте Сжатия , так как она больше не обрабатывается.
- Повторите процесс другой рукой, захватив тот же объект на втором месте.
- Теперь, когда обе руки захватывают один и тот же объект, можно переместить любой из них, чтобы выполнить двуручную манипуляцию.
Взаимодействие с GGV (взгляд, жест и голос)
По умолчанию взаимодействие с GGV включено в редакторе, пока в сцене нет четко сформулированных рук.
- Поворот камеры, чтобы навести курсор взгляда на взаимодействуемый объект (кнопка правой мыши)
- Нажмите и удерживайте левую кнопку мыши для взаимодействия
- Снова поверните камеру, чтобы управлять объектом
Вы можете отключить эту функцию, переключив параметр Включен ли вход без рук в профиле имитации входных данных.
Кроме того, можно использовать имитированные руки для взаимодействия с GGV.
- Включите имитацию GGV, переключив режим имитации рук на жесты в профиле имитации ввода
- Поворот камеры, чтобы навести курсор взгляда на взаимодействуемый объект (кнопка правой мыши)
- Удерживайте пространство для управления правой рукой
- Нажмите и удерживайте левую кнопку мыши для взаимодействия
- Перемещение объекта с помощью мыши
- Отпустите кнопку мыши, чтобы остановить взаимодействие
Создание событий телепорта
Чтобы вызвать событие телепорта при имитации ввода, настройте параметры жеста руки в профиле имитации ввода, чтобы один из них выполнял начальный жест телепорта , а другой — конечный жест телепорта . Жест Teleport Start приведет к выводу указателя Teleport, а жест Teleport End завершит действие телепорта и переместит пользователя.
Позиция телепорта по оси Y зависит от смещения камеры по оси Y. В редакторе это значение по умолчанию равно 0, поэтому используйте клавиши Q и E , чтобы настроить его до соответствующей высоты.
Взаимодействие с контроллером движения
Смоделированные контроллеры движения могут управляться так же, как с шарнирными руками. Модель взаимодействия похожа на удаленное взаимодействие с шарнирной рукой, в то время как клавиши триггера, захвата и меню сопоставляются с левой кнопкой мыши, клавишей G и M соответственно.
Отслеживание взгляда
Имитацию отслеживания взгляда можно включить, установив параметр Имитировать положение глаза в профиле имитации входных данных. Это не следует использовать с взаимодействиями в стиле GGV или контроллера движения (поэтому убедитесь, что для режима имитации контроллера по умолчаниюзадано значение Сформулированные руки).
Окно средств имитации ввода
Включите окно средств имитации ввода в меню имитации ввода Смешанная реальность>Toolkit>Utilities>Input Simulation . Это окно предоставляет доступ к состоянию имитации ввода в режиме воспроизведения.
Кнопки окна просмотра (необязательно)
Заготовка для кнопок в редакторе для управления основным размещением рук может быть указана в профиле имитации входных данных в разделе Заготовка индикаторов. Это необязательная служебная программа, доступ к тем же функциям можно получить в окне средств имитации ввода.
Примечание
Индикаторы окна просмотра отключены по умолчанию, так как в настоящее время они иногда могут мешать взаимодействию с пользовательским интерфейсом Unity. См. проблему No 6106. Чтобы включить этот параметр, добавьте заготовку InputSimulationIndicators в заготовку индикаторов.
Значки рук показывают состояние имитированных рук:
- Рука не отслеживается. Щелкните, чтобы включить руку.
- Рука отслеживается, но не контролируется пользователем. Щелкните, чтобы скрыть руку.
- Рука отслеживается и контролируется пользователем. Щелкните, чтобы скрыть руку.
- Щелкните , чтобы сбросить руку в положение по умолчанию.