This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
专业(SIM)
UnigineEditor
界面概述
资源工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
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
创建内容
内容优化
Materials
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 毫米(1 英寸到 2 英尺)。

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:

  • 有关通过 API 管理 LeapMotion 的更多详细信息,请参阅 LeapMotion 接口文章。
  • 有关通过 API 管理武器的更多详细信息,请参阅 LeapMotion Arm 类文章。
  • 有关通过 API 管理手指骨骼的更多详细信息,请参阅 LeapMotion Bone 类文章。
  • 有关通过 API 管理手指的更多详细信息,请参阅 LeapMotion Finger 类文章。
  • 有关通过 API 管理手牌的更多详细信息,请参阅 LeapMotion Hand 类文章。

使用 LeapMotion 支持实现 Unigine 应用程序#

要在 UNIGINE 应用程序中使用 LeapMotion 插件,请执行以下操作:

  1. 下载 Leap Motion SDK 并安装 Leap Motion 设备驱动程序。
  2. 通过 UNIGINE SDK 浏览器创建一个支持 LeapMotion 的新项目:单击 Plugins,在打开的表单中选中 LeapMotion support (LeapMotion plugin) 选项,然后单击 OK

    Plugins 面板上的 LeapMotion 插件
    注意
    要将 LeapMotion 支持添加到现有项目,请在 UNIGINE SDK Browser 中单击 Other Actions -> Configure Project -> Plugins -> LeapMotion support (LeapMotion plugin) -> OK
  3. 实施您的应用程序。
  4. 发射应用程序启动时的 LeapMotion 插件。

启动 LeapMotion#

要启动插件,请在应用程序启动时指定 extern_plugin 命令行选项,如下所示:

命令行
main_x64d -extern_plugin LeapMotion

如果您通过 UNIGINE SDK 浏览器运行应用程序,请在 Customize Run Options 表单中指定上面给出的命令行选项。

最新更新: 2022-10-10
Build: ()