导读:前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现版本常见功能的实现方法,便于自己后续开发。当然,不排除我文章刚写完 SDK.又变了的可能性,所以如果有人发现文章的内容已经不适用于新版本了,也可以留评论或者私信
前段时间 Oculus 的 SDK 频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现版本常见功能的实现方法,便于自己后续开发。当然,不排除我文章刚写完 SDK 又变了的可能性,所以如果有人发现文章的内容已经不适用于新版本了,也可以留评论或者私信我,我会持续更新文章内容。
当前适用版本:
文章最近更新日期: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
上一篇:刀光拖尾功能的改良
下一篇:【Oculus Interact