1.Leap Motion 官网下载SDK并导入Unity3D,官网地址:https://developer.leapmotion.com/ 本次测试适用unity版本为2017.1以上
下载内容:
2.Leap Motion 获取手部关节点两种方式:
(1)脚本:AttachmentPointBehaviour 中:可以获取手部各关节的position和rotation,使用时加自己的判断逻辑即可。
(2)示例场景一中:可以获取手部各关节的position,可另外编写脚本,将关节的根节点拖拽使用即可,
如:
3.获取关节点的位置及旋转信息后,可以通过rotation来得到关节的旋转度,从而判断每只手是否弯曲,每根手指是否弯曲;
也可通过位置信息得到向量方向变化算出角度变化来判断。
这里我们使用向量计算角度:
我们需要在手指默认的伸直状态来一个作为基准的向量,以食指举例,食指伸直时指尖与指跟方向的向量为a,实时状态下指尖与指跟的变化中的向量为b,求a与b之间的变化角度,来判断弯曲程度,可以自行添加合适的阈值。
4.向量之间求角度
//向量a,b的夹角,得到的值为 弧度转换为角度值
float angle = Mathf.Acos (Vector3.Dot (初始.normalized, 变化.normalized)) * Mathf.Rad2Deg;
5.由此可得到食指是否弯曲以及弯曲程度,以此来适用其余手指,进而可以自行定义手势。