Система ввода VR
The VR input system allows managing user input from VR controllers, head-mounted displays (HMDs), base stations, and trackers. It supports a wide range of VR devices, enabling you to utilize several devices from various vendors and process input from them.Система ввода виртуальной реальности позволяет управлять пользовательским вводом с контроллеров виртуальной реальности, дисплеев, устанавливаемых на шлемах (HMDS), базовых станций и трекеров. Он поддерживает широкий спектр устройств виртуальной реальности, позволяя вам использовать несколько устройств от различных производителей и обрабатывать вводимые с них данные.
The InputVRDevice class provides access to properties and settings common for all VR devices (for example, a device name).Класс InputVRDevice предоставляет доступ к свойствам и настройкам, общим для всех устройств виртуальной реальности (например, к имени устройства).
VR ControllersКонтроллеры виртуальной реальности#
Controllers serve as a primary interface for VR input. There are three types of VR controllers: left-hand, right-hand controllers, and a treadmill. You can get the controller's type and check whether it is a hand controller by using the corresponding methods of the InputVRController class.Контроллеры служат основным интерфейсом для ввода данных виртуальной реальности. Существует три типа контроллеров виртуальной реальности: левосторонние, правосторонние и беговая дорожка. Вы можете получить тип контроллера и проверить, является ли он ручным контроллером, используя соответствующие методы класса InputVRController.
Система ввода VR поддерживает ряд моделей контроллеров, совместимых с устройствами OpenVR, Varjo и Oculus. В этой статье мы рассмотрим следующие модели контроллеров в качестве примеров:
- HTC Vive (совместим с устройствами OpenVR и Varjo)
- Oculus Touch (совместим только с Oculus HMDS и работает через OpenVR)
- Valve Knuckles (совместим с устройствами OpenVR и Varjo)
UNIGINE API provides access to the VR controller inputs — axes and buttons.UNIGINE API обеспечивает доступ к пользовательскому вводу с VR-контроллеров — осям (axes) и кнопкам (buttons).
- Buttons are mapped to the controller's buttons that can be pressed, touched, or released. Кнопки сопоставляются с кнопками контроллера, которые можно нажимать, касаться или отпускать.
- Axes detect 1-dimensional movement of the control and have more complex behavior.
Depending on the type of the VR controller, the number of axes differs. UNIGINE supports several axes. But usually, a controller has 3 or 4.
In UNIGINE, an axis can be mapped to a control of one of the supported types, also referred to as an axis type.
Оси определяют движение органа управления в одном измерении и имеют долее сложное поведение.You cannot know in advance which type of controller is connected, so UNIGINE API allows you to identify the number of supported axes, check their types, find the axis index by its type via findAxisByType(), or get a state value for the axis via getAxisByType().В зависимости от типа контроллера виртуальной реальности количество осей различается. UNIGINE поддерживает до 4 осей. Но обычно контроллер имеет 3.
В UNIGINE ось может быть сопоставлена элементу управления одного из следующих типов (также называемого типом оси): trackpad,joystickилиtrigger. Каждый тип оси имеет разное количество зарезервированных осей. Пример, объединение двух осей джойстика или трекпада позволяет отследить двойное перемещение по осям X и Y.
Вы не можете заранее знать, какой тип контроллера подключен, поэтому UNIGINE API позволяет вам определить количество поддерживаемых осей и проверить их типы.
Inputs for OpenVR ControllersКонтроллеры OpenVR#
В этой главе представлены примеры входных данных на различных типах контроллеров, поддерживаемых OpenVR - контроллерах HTC Vive, Oculus Touch и Valve Knuckles - и представлена информация о том, как эти входные данные сопоставляются с кнопками и осями в системе ввода UNIGINE.
HTC Vive Controller InputsВходы контроллера HTC Vive#
Button/ Axis |
Description | Interaction Type | UNIGINE Button/ Axis |
UNIGINE Axis Number | Axis Range |
---|---|---|---|---|---|
1 | Menu Button | Press |
|
||
2 | Trackpad | Press / Touch |
|
||
2 | Trackpad | Horizontal / Vertical Movement |
|
[-1;1]
|
|
3 | System button | Press |
|
||
7 | Trigger | Press / Touch |
|
||
7 | Trigger | Squeeze | 2 for the Trigger axis | [0;1] | |
8 | Grip button | Press |
|
Oculus Touch Controller InputsВходы сенсорного контроллера Oculus#
Button/ Axis |
Interaction Type | UNIGINE Button/ Axis |
UNIGINE Axis Number | Axis Range |
---|---|---|---|---|
|
Press |
|
||
|
Press |
|
||
|
Press / Touch |
|
||
|
Horizontal / Vertical Movement |
|
[-1;1]
|
|
|
Press / Touch |
|
||
|
Squeeze | 2 for the Trigger axis | [0;1] | |
|
Squeeze |
|
Valve Knuckles Controller InputsВходы контроллера поворотных кулаков клапанов#
Button/ Axis |
Interaction Type | UNIGINE Button/ Axis |
UNIGINE Axis Number | Axis Range |
---|---|---|---|---|
A Button | Press |
|
||
B Button | Press |
|
||
System Button | Press |
|
||
Trigger | Press / Touch |
|
||
Trigger | Squeeze | 2 for the Trigger axis | [0;1] | |
Track Button (Trackpad) | Press / Touch |
|
||
Track Button (Trackpad) | Horizontal / Vertical Movement |
|
[-1;1]
|
|
Thumbstick | Press / Touch |
|
||
Thumbstick | Horizontal / Vertical Movement |
|
[-1;1]
|
|
Grip | Press / Touch |
|
Head-Mounted DisplaysДисплеи, устанавливаемые на голове#
The VR system allows you to process input from head-mounted displays (HMDs) via the InputVRHead class.Система виртуальной реальности позволяет обрабатывать ввод с дисплеев, установленных на головах (HMDs), через класс InputVRHead.
Base StationsБазовые станции#
A VR base station helps the HMD and controllers to track their exact positions, enhancing the immersion of room-scale virtual reality experience.Базовая станция виртуальной реальности помогает HMD и контроллерам отслеживать их точное местоположение, усиливая погружение в виртуальную реальность в масштабе помещения.
The InputVRDevice and InputVRBaseStation classes is used to handle base station input.Классы InputVRDevice и InputVRBaseStation используются для обработки входных данных базовой станции.
VR TrackersVR-трекеры#
A VR tracker allows embedding real-world objects into the VR environment. You can attach it to a real thing that needs to be tracked. In Mixed Reality, you can install the VR tracker on a camera or player to track its position in the virtual world. VR-трекер позволяет встраивать объекты реального мира в среду виртуальной реальности. Вы можете прикрепить его к реальному объекту, который необходимо отслеживать. В смешанной реальности вы можете установить VR-трекер на камеру или плеер, чтобы отслеживать его положение в виртуальном мире.
The InputVRDevice and InputVRTracker classes is used to manage tracker input.Классы InputVRDevice и InputVRTracker используются для управления входными данными трекера.