Служба имитации входных данных — MRTK2
С помощью имитации ввода 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, чтобы открыть памятку с элементами управления имитацией ввода.
Включение службы моделирования входных данных
В конфигурации поставщика входных системных данных служба моделирования входных данных может быть настроена следующим образом.
- Тип должен быть Microsoft.MixedReality.Toolkit.InputSimulationService>.
- Поддерживаемые платформы по умолчанию включают все платформы редактора , так как служба использует ввод с клавиатуры и мыши.
Примечание
Службу имитации ввода можно использовать на других конечных точках платформы, таких как автономная, изменив свойство поддерживаемых платформ , чтобы включить нужные целевые объекты.
элемент управления Камера
Перемещение головы можно эмулировать службой моделирования ввода.
Поворот камеры
- Наведите указатель мыши на окно редактора окна просмотра. Возможно, потребуется щелкнуть окно, чтобы предоставить ему фокус ввода, если нажатие кнопки не работает.
- Нажмите и удерживайте кнопку "Поиск мыши " (по умолчанию: кнопка мыши вправо).
- Переместите мышь в окно окна просмотра, чтобы повернуть камеру.
- Используйте колесико прокрутки, чтобы свернуть камеру вокруг направления просмотра.
Камера скорость вращения можно настроить, изменив параметр скорости просмотра мыши в профиле имитации ввода.
Кроме того, используйте оси горизонтального/просмотра по вертикали для поворота камеры (по умолчанию: игровой контроллер правый палец).
Перемещение камеры
Используйте вертикальные оси перемещения по горизонтали/перемещения для перемещения камеры (по умолчанию: клавиши WASD или контроллер игры влево).
Камера угол положения и поворота можно задать явным образом в окне инструментов. Камера может быть сброшена по умолчанию с помощью кнопки сброса .
Моделирование контроллера
Моделирование ввода поддерживает эмулированные устройства контроллера (т. е. контроллеры движения и руки). Эти виртуальные контроллеры могут взаимодействовать с любым объектом, поддерживающим обычные контроллеры, такие как кнопки или захватываемые объекты.
Режим имитации контроллера
В окне инструментов моделирования ввода параметр режима имитации контроллера по умолчанию переключается между тремя различными входными моделями. Этот режим по умолчанию также можно задать в профиле имитации ввода.
Сформулированные руки: имитирует полностью сформулированное устройство руки с данными о положении в суставе.
Эмулирует модель взаимодействия HoloLens 2.
Взаимодействия, основанные на точном расположении руки или сенсорного ввода, можно имитировать в этом режиме.
Жесты рук: имитирует упрощенную модель руки с помощью касания воздуха и простых жестов.
Эмулирует модель взаимодействия HoloLens.
Фокус управляется с помощью указателя взгляда. Жест касания воздуха используется для взаимодействия с кнопками.
Контроллер движения: имитирует контроллер движения, используемый с гарнитурами VR, которые работают аналогично удаленному взаимодействию с Сформулированными руками.
Эмулирует гарнитуру VR с моделью взаимодействия контроллеров.
Триггер, захват и клавиши меню имитируются с помощью клавиатуры и ввода мыши.
Имитация перемещения контроллера
Нажмите и удерживайте клавишу манипуляции с контроллером влево или вправо (по умолчанию: shift влево для левого контроллера и пробела для правого контроллера), чтобы получить контроль над одним из контроллеров. При нажатии клавиши манипуляции контроллер будет отображаться в порте просмотра. После освобождения клавиши манипуляции контроллеры исчезнут после короткого тайм-аута контроллера.
Контроллеры можно переключать и замораживать относительно камеры в окне инструментов моделирования ввода или нажимая переключатель слева или справа ( по умолчанию: T для левого и Y для правого). Снова нажмите клавишу переключателя, чтобы скрыть контроллеры еще раз. Для управления контроллерами необходимо хранить клавиши управления левым или правым контроллером . Двойное касание клавиши манипуляции с контроллером слева или справа также может переключать контроллеры вкл./выкл.
Перемещение мыши перемещает контроллер в плоскости просмотра. Контроллеры можно перемещать дальше или ближе к камере с помощью колесика мыши.
Чтобы повернуть контроллеры с помощью мыши, удерживайте и левую и правую клавиши управления (сдвиг влево или пробел) икнопку поворота контроллера (по умолчанию: левая кнопка CTRL ), а затем переместите мышь для поворота контроллера. Скорость вращения контроллера можно настроить, изменив параметр скорости вращения контроллера мыши в профиле имитации ввода.
Все размещение рук также может измениться в окне инструментов моделирования ввода, включая сброс рук до значения по умолчанию.
Дополнительные параметры профиля
- Множитель глубины контроллера управляет конфиденциальностью перемещения колесика прокрутки мыши. Увеличение числа ускорит масштабирование контроллера.
- Расстояние контроллера по умолчанию — это начальное расстояние контроллеров от камеры. Если нажать кнопку сброса , контроллеры также будут размещать контроллеры на этом расстоянии.
- Объем Jitter контроллера добавляет случайное движение к контроллерам. Эту функцию можно использовать для имитации неточного отслеживания контроллера на устройстве и обеспечения правильности взаимодействия с шумными входными данными.
Жесты руками
Жесты рук, такие как щипление, захват, тыкание и т. д., также можно имитировать.
Включение управления рукой с помощью клавиши манипуляции с левым или правым контроллером (сдвиг влево или пробел)
При обработке нажмите и удерживайте кнопку мыши, чтобы выполнить жест руки.
Каждая из кнопок мыши может быть сопоставлена для преобразования фигуры руки в другой жест с помощью параметров жеста мыши слева или посередине или вправо . Жест руки по умолчанию — это форма руки, когда кнопка не нажата.
Примечание
Жест сжатия — это единственный жест, который выполняет действие "Выбрать" на этом этапе.
Манипуляция с одной рукой
- Нажмите и удерживайте клавишу манипуляции с контроллером влево или вправо (сдвиг влево или пробел)
- Наведите указатель на объект
- Удерживайте кнопку мыши, чтобы сжать
- Перемещение объекта с помощью мыши
- Отпустите кнопку мыши, чтобы остановить взаимодействие
Манипуляция с двумя руками
Для одновременного управления объектами с двумя руками рекомендуется использовать режим постоянной руки.
- Переключение с обеих рук, нажав клавиши переключателя (T/Y).
- Работа с одной рукой за раз:
- Удерживайте пробел для управления правой рукой
- Перемещение руки в место, куда вы хотите получить объект
- Нажмите левую кнопку мыши , чтобы активировать жест Сжатия .
- Освободить пространство , чтобы остановить управление правой рукой. Рука будет заморожена на месте и будет заблокирована в жесте Pinch , так как он больше не манипулируется.
- Повторите процесс с другой стороны, захватив тот же объект во втором месте.
- Теперь, когда обе руки захватывают один и тот же объект, вы можете переместить любой из них для выполнения двухсторонней манипуляции.
Взаимодействие GGV (взгляд, жест и голос)
По умолчанию взаимодействие GGV включено в редакторе, пока в сцене нет сформулированных рук.
- Поворот камеры для указания курсора взгляда на взаимодействуемый объект (правая кнопка мыши)
- Нажмите и удерживайте левую кнопку мыши для взаимодействия
- Поворот камеры еще раз для управления объектом
Это можно отключить, переключив параметр Is Hand Free Input Enabled в профиле имитации ввода.
Кроме того, можно использовать имитированные руки для взаимодействия с GGV.
- Включение имитации GGV путем переключения режима имитации руки на жесты в профиле имитации ввода
- Поворот камеры для указания курсора взгляда на взаимодействуемый объект (правая кнопка мыши)
- Удерживайте пробел для управления правой рукой
- Нажмите и удерживайте левую кнопку мыши для взаимодействия
- Перемещение объекта с помощью мыши
- Отпустите кнопку мыши, чтобы остановить взаимодействие
Вызов событий телепорта
Чтобы вызвать событие телепорта в моделировании ввода, настройте жест руки Параметры в профиле имитации ввода, чтобы один выполнял жест начала телепорта, а другой — жест конца телепорта. Жест "Пуск телепорта " откроет указатель телепорта, в то время как teleport End gesure завершит действие телепорта и переместит пользователя.
Позиция Y результирующего телепорта зависит от смещения камеры вдоль оси Y. В редакторе это значение по умолчанию равно 0, поэтому используйте клавиши Q и E , чтобы настроить его на соответствующую высоту.
Взаимодействие контроллера движения
Имитированные контроллеры движения можно управлять так же, как с помощью сформулированных рук. Модель взаимодействия похожа на удаленное взаимодействие с сформулированной рукой, а клавиши триггера, захвата и меню сопоставляются с левой кнопкой мыши, клавишей G и M соответственно.
Отслеживание взгляда
Имитацию отслеживания взгляда можно включить, проверив параметр "Смоделировать положение глаза " в профиле имитации ввода. Это не следует использовать с взаимодействиями в стиле GGV или контроллера движения (поэтому убедитесь, что режим имитации контроллера по умолчанию имеет значение "Сформулировать руку").
Окно средств имитации ввода
Включите окно средств моделирования ввода из менюимитации вводаСмешанная реальность>Toolkit>Utilities>. Это окно предоставляет доступ к состоянию имитации ввода в режиме воспроизведения.
Кнопки окна просмотра (необязательно)
Префаб для кнопок в редакторе для управления базовым размещением рук можно указать в профиле имитации ввода в разделе "Индикаторы prefab". Это необязательная служебная программа, доступ к тем же функциям можно получить в окне средств моделирования ввода.
Примечание
Индикаторы окна просмотра отключены по умолчанию, так как в настоящее время они могут помешать взаимодействию пользовательского интерфейса Unity. См. вопрос No 6106. Чтобы включить этот параметр, добавьте prefab inputSimulationIndicators в prefab индикаторов.
Значки рук показывают состояние имитированных рук:
Рука не отслеживается. Нажмите, чтобы включить руку.
Рука отслеживается, но не контролируется пользователем. Нажмите, чтобы скрыть руку.
Рука отслеживается и контролируется пользователем. Нажмите, чтобы скрыть руку.
Щелкните, чтобы сбросить положение руки по умолчанию.