This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL
Плагины
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Отслеживание рук и пальцев с помощью плагина LeapMotion

Общаяч информация#

Плагин LeapMotion позволяет отслеживать руки и пальцы в вашем UNIGINE-приложении.

Примечание
Плагин доступен только на Windows.

Система Leap Motion распознает и отслеживает руки и пальцы. Устройство работает в непосредственной близости с высокой точностью и отслеживает частоту кадров, а также сообщает о дискретных положениях и движении.

Контроллер Leap Motion использует оптические датчики и инфракрасный свет. Датчики направлены по оси Y - вверх, когда контроллер находится в стандартном рабочем положении - и имеют поле обзора около 150 градусов. Эффективный диапазон контроллера Leap Motion простирается примерно от 25 до 600 миллиметров над устройством.

Leap Motion вид контроллера ваших рук

Обнаружение и отслеживание работают лучше всего, когда контроллер имеет четкое и высококонтрастное изображение силуэта объекта. Программное обеспечение Leap Motion объединяет данные своих датчиков с внутренней моделью руки человека, чтобы помочь справиться со сложными условиями отслеживания.

Система координат#

В системе Leap Motion используется правосторонняя декартова система координат. Источник центрируется в верхней части контроллера Leap Motion. Оси X и Z лежат в горизонтальной плоскости, причем ось X проходит параллельно длинной кромке устройства. Ось Y вертикальна, с положительными значениями, увеличивающимися вверх (в отличие от ориентации вниз большинства систем координат компьютерной графики). По оси Z положительные значения увеличиваются по направлению к пользователю.

Leap Motion правая система координат

Кисти#

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

Руки представлены классом Hand.

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

Руки#

Рука - это похожий на кость объект, который определяет ориентацию, длину, ширину и конечные точки руки. Когда локоть не виден, контроллер Leap Motion оценивает его положение на основе прошлых наблюдений, а также типичных человеческих пропорций.

Руки представлены классом Arm.

Пальцы#

Контроллер Leap Motion предоставляет информацию о каждом пальце руки. Если весь палец или его часть не видны, характеристики пальца оцениваются на основе недавних наблюдений и анатомической модели руки. Пальцы идентифицируются по имени типа, например thumb, index, middle, ring, pinky.

Пальцы представлены классом Finger.

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

Кости#

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

Кости представлены классом Bone.

Ладонь и все ее пальцы

Кости идентифицируются как:

  • Metacarpal - кость внутри кисти, соединяющая палец с запястьем (кроме большого пальца).
  • Proximal Phalanx - кость у основания пальца, соединенная с ладонью.
  • Intermediate Phalanx - средняя кость пальца между кончиком и основанием.
  • Distal Phalanx - терминальная кость на конце пальца.
Примечание
Такая модель для большого пальца не совсем соответствует стандартной анатомической системе именования. У настоящего большого пальца на одну кость меньше, чем у других пальцев. Однако для простоты программирования модель большого пальца Leap Motion включает пястную кость нулевой длины, так что большой палец имеет такое же количество костей с теми же указателями, что и другие пальцы. В результате анатомическая пястная кость большого пальца обозначена как проксимальная фаланга, а анатомическая проксимальная фаланга обозначена как промежуточная фаланга в модели кости пальца Leap Motion.

Изображения сенсора#

Наряду с вычисленными данными отслеживания вы можете получить необработанные изображения датчиков с камер Leap Motion.

Необработанное изображение датчика с наложенными точками калибровки

Данные изображения содержат измеренные значения ИК-яркости и данные калибровки, необходимые для коррекции сложного искажения объектива. Вы можете использовать изображения сенсора для приложений дополненной реальности, особенно когда оборудование Leap Motion подключено к гарнитуре VR.

Смотрите также#

  • Пример C ++, иллюстрирующий основные аспекты работы с плагином: source/samples/3rdparty/LeapMotionVisualizer

LeapMotion API:

  • Подробнее об управлении LeapMotion через API см. В статье об интерфейсе LeapMotion.
  • Статья класса LeapMotion Arm для более подробной информации об управлении оружием через API.
  • Статья класса LeapMotion Bone для более подробной информации об управлении костями пальцев через API.
  • Подробнее об управлении пальцами через API в статье класса LeapMotion Finger.
  • Подробнее об управлении руками через API в статье класса LeapMotion Hand.

Реализация приложения Unigine с поддержкой LeapMotion#

Чтобы использовать плагин LeapMotion в приложении UNIGINE, выполните следующие действия:

  1. Загрузите Leap Motion SDK и установите драйверы устройств Leap Motion.
  2. Создайте новый проект с поддержкой LeapMotion через UNIGINE SDK Browser: нажмите Plugins, отметьте опцию LeapMotion support (LeapMotion plugin) в открывшейся форме и нажмите OK.

    Плагин LeapMotion на панели Plugins
    Примечание
    Чтобы добавить поддержку LeapMotion в существующий проект, в браузере UNIGINE SDK щелкните Other Actions -> Configure Project -> Plugins -> LeapMotion support (LeapMotion plugin) -> OK.
  3. Реализуйте логику своего приложения.
  4. Запутите плагин LeapMotion при запуске приложения.

Запуск LeapMotion#

Чтобы запустить плагин, укажите опцию командной строки extern_plugin при запуске приложения следующим образом:

Shell-команды
main_x64d -extern_plugin LeapMotion

Если вы запускаете приложение через UNIGINE SDK Browser, укажите параметры командной строки, указанные выше, в форме Customize Run Options.

Последнее обновление: 13.12.2021
Build: ()