当前位置: 首页 >  在线学习 >  【Oculus Interaction SDK】(十一)关于手势识别中手势设置的详细信息

【Oculus Interaction SDK】(十一)关于手势识别中手势设置的详细信息

导读:前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现版本常见功能的实现方法,便于自己后续开发。当然,不排除我文章刚写完 SDK.又变了的可能性,所以如果有人发现文章的内容已经不适用于新版本了,也可以留评论或者私信

前言

前段时间 Oculus 的 SDK 频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现版本常见功能的实现方法,便于自己后续开发。当然,不排除我文章刚写完 SDK 又变了的可能性,所以如果有人发现文章的内容已经不适用于新版本了,也可以留评论或者私信我,我会持续更新文章内容。

当前适用版本:

  • Unity 版本:2021.3.7f1c1
  • Oculus Interaction SDK 版本:47.0

文章最近更新日期:2023.02.20


在上一篇文章中,我们实现了手势识别的功能。碍于篇幅的原因,有关手势制作的部分没有详细展开。

【Oculus Interaction SDK】(十)在 VR 中使用手势识别 - 千叶Christa - 博客园 (cnblogs.com)

本篇文章是对上一篇文章的补充,教你如何制作一个手势,并且对手势的识别方向进行限制

手势的组成

设置手势的本质就是设置手指与手掌的状态。

只要了解每一根手指的状态,就可以做出不同的手的姿态。不过,仅有手指的状态是不够的,手掌与手腕的状态也是确定一个手势的重要一环

例如:

  • 比“耶”的手势,手掌向着身体内侧就是“剪刀”;手掌背对面部就是“兔子”
  • 四指弯曲深处大拇指的手势,大拇指向上就是“鼓励”,大拇指向下就是“嘲讽”

因此,只要了解手指与手掌的设置方式,我们就可以唯一地确定一个手势了

手指的设置

手指的设置主要在 Shape Recognizer 文件中完成

该文件可以通过 Assets > Create > Oculus > Interaction > SDK > Pose Detection > Shape 来创建

在文件中,可以针对每一根手指进行设置

关于手指的弯曲程度可以参考下图:

手指状态如下表:

Curl 卷曲 范围:所有手指 含义:手指顶部两个关节的弯曲程度 Open 手指完全伸直
Neutral 手指微微向内卷曲
Closed 手指几乎接触手掌(如右图)
Flexion 弯曲 范围:除拇指外的四个手指 含义:指根关节的弯曲程度 Open 指根与手掌平行
Neutral 指根微微弯曲
Closed 指根完全弯曲(如右图)
Abduction 外展 范围:除小指外的四个手指 含义:当前手指与下一手指间的角度 Open 打开
Closed 闭合
None 不使用
opposition 相对 范围:除拇指外的四个手指 含义:当前手指指尖与拇指指尖的距离 Touching 指尖接触(0-1.5cm)
Near 指尖距离较近(1.5-15cm)
None 不接触(大于15cm)

举个例子,前文中“兔子”手势的手指状态如下表:

拇指 指尖两关节弯曲(Curl:Is Neutral / Closed = Is Not Open)

指根弯曲(Flexion:Is Neutral / Closed = Is Not Open)
食指 | 指尖两关节伸直(Curl:Is Open)
指根伸直(Flexion:Is Open)
与下一手指(中指)之间张开(Abduction:Is Open)
中指 | 指尖两关节伸直(Curl:Is Open)
指根伸直(Flexion:Is Open)
无名指 | 指尖两关节弯曲(Curl:Is Neutral / Closed = Is Not Open)
指根弯曲(Flexion:Is Neutral / Closed = Is Not Open)
小指 | 指尖两关节弯曲(Curl:Is Neutral / Closed = Is Not Open)
指根弯曲(Flexion:Is Neutral / Closed = Is Not Open)

手腕与手掌的设置

手腕与手掌的设置在 Transform Recognizer Active State 组件中完成

手腕与手掌的方向可以参考下图:

手腕、手掌状态如下表:

Wrist Up 手腕向身体内侧 True
False
Wrist Down 手腕向身体外侧 True
Flase
Palm Up 手掌向上 True
False
Palm Down 手掌向下 True
False
Palm Towards Face 手掌面向脸部 True
False
Palm Away From Face 手掌远离脸部 True
False
Fingers Up 手指向上 True
False
Fingers Down 手指向下 True
False

参考资料

Hand Pose Detection | Oculus Developers

内容
  • 计算机网络概念汇总
    计算机网络概念汇总
    2023-12-05
    1. 模型结构.五层模型 :.应用层、传输层、网络层、数据链路层、物理层。.应用层 :为应用程序提供交互服务。在互联网中
  • UE开发使用Rider时缓存干爆C盘的解决方案
    UE开发使用Rider时缓存干爆
    2023-12-03
    我们在使用Rider开发UE时,Ride会为每一个项目创建一个解决方案缓存,如果开几个新项目写测试demo,我们的C盘会
  • Unity3D 横板跳跃游戏半成品demo源代码
    Unity3D 横板跳跃游戏半成
    2023-12-08
    项目介绍:.基于B站的 Unity3D新手教程 进行学习制作,但视频中的做法有很多BUG,此demo是经过优化,几乎修复
  • 数据分析师如何用SQL解决业务问题?
    数据分析师如何用SQL解决业务问
    2023-12-03
    本文来自问答。.提问:数据分析人员需要掌握sql到什么程度?.请问做一名数据分析人员,在sql方面需要掌握到什么程度呢?
  • Unity 中的存档系统(本地存档)
    Unity 中的存档系统(本地存
    2023-12-09
    思想.在游戏过程中,玩家的背包、登录、人物系统都与数据息息相关,无论是一开始就设定好的默认数据,还是可以动态存取的数据,
  • unity 实现自定义class深度拷贝 deep copy 深度复制 引用类型复制
    unity 实现自定义class
    2023-12-09
    气死我了,搜半天没有,全让序列化再反序列化,又不方便又不美观。结果自己试着一写就通,两行完事。.首先先安装Newtons