Unity Meta Quest 一体机开发(六):HandGrabInteractor 和 HandGrabInteractable 知识点

文章目录

  • 📕教程说明
  • 📕HandGrabInteractor
    • ⭐HandGrabAPI
    • ⭐HandWristPoint
    • ⭐GripPoint
    • ⭐PinchPoint
    • ⭐PinchArea
    • ⭐HandGrabVisual
    • ⭐HandGrabGlow
  • 📕HandGrabInteractable
    • ⭐Support Grab Type
    • ⭐Pinch Grab Rules 和 Palm Grab Rules
    • ⭐Unselect Mode
    • ⭐Hand Alignment
    • ⭐Scaled Hand Grab Poses
    • ⭐Movement Provider
      • 🔍MoveTowardsTargetProvider
      • 🔍MoveFromTargetProvider
      • 🔍FollowTargetProvider

此教程相关的详细教案,文档,思维导图和工程文件会放入 Seed XR 社区。这是一个高质量知识星球 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。

知识星球链接:Seed XR 高级社区

在这里插入图片描述


📕教程说明

这篇教程将会详细介绍 Meta XR SDK 中 HandGrabInteractor 和 HandGrabInteractable 的相关知识点。

系列教程专栏:https://blog.csdn.net/qq_46044366/category_12118293.html

配套的视频链接:
【2023 VR+MR全硬件开发教程】六、HandGrab-HandGrabInteractor知识点(主讲:YY)

【2023 VR+MR全硬件开发教程】六-2、HandGrabInteractable知识点(主讲:YY)

​电脑操作系统:Windows 11

使用的 VR 设备:Meta Quest 3(Quest 系列都适用)

使用的 Unity 版本:2021.3.5 LTS (这里推荐使用 2021 及以上的 LTS 版本)

Meta XR SDK 版本:v57

官方文档:https://developer.oculus.com/documentation/unity/unity-gs-overview/

HandGrab:https://developer.oculus.com/documentation/unity/unity-isdk-hand-grab-interaction/


📕HandGrabInteractor

我们可以找到 Oculus Integration 官方提供的 Hand Grab 示例场景,在 Assets/Oculus/Interaction/Samples/Scenes/Examples 文件夹下的 Hand Grab Examples 场景:

在这里插入图片描述
找到 OVRCameraRig 玩家物体,左右手的 HandGrabInteractor 物体在如下图所示的位置:

在这里插入图片描述

HandGrabInteractor 物体上挂载了 HandGrabInteractor 脚本:

在这里插入图片描述

然后我们展开 HandGrabInteractor 物体,接下来我会讲解它身上这些子物体的作用:

在这里插入图片描述

⭐HandGrabAPI

检测 Hand Grab 是否选中或者取消选中可抓取物体,也就是检测抓取动作是否发生。

⭐HandWristPoint

控制在抓取的时候虚拟手部和现实手部在位置和旋转角度上的偏移。

⭐GripPoint

Palm Grab 的探测范围(下图中手掌处的球形范围),调整 GripPoint 上的 HandWristOffset 脚本参数可以修改探测范围的位置和旋转角度。物体进入探测范围后触发抓取,就会被吸到手上。

在这里插入图片描述

探测范围为 GripPoint 子物体 Collider 的碰撞体范围。

在这里插入图片描述

⭐PinchPoint

Pinch Grab 的探测范围,范围大小取决于 PinchPoint 子物体的 Collider 的碰撞体大小。

在这里插入图片描述

⭐PinchArea

PinchPoint 的 HandPinchOffset 脚本默认引用了 PinchArea 的碰撞体,PinchArea 碰撞体的位置会影响 PinchPoint 探测范围的位置。

在这里插入图片描述

PinchArea 碰撞体范围如下图所示。

在这里插入图片描述

注:是否能激活 Pinch Grab 实际上看的是物体是否进入到 PinchPoint 的球形检测范围内,而不是看物体是否进入到 PinchArea 范围内。

⭐HandGrabVisual

连接 SyntheticHand,在手部呈现出完整的抓取手势后固定手部姿态,让抓取手势不与物体穿模。

在这里插入图片描述

⭐HandGrabGlow

控制抓取时手部的特效。

在这里插入图片描述
Glow Type
Outline:手指轮廓高亮。

在这里插入图片描述

Fill:手指颜色填充。

在这里插入图片描述

Both:结合了 Outline 和 Fill


📕HandGrabInteractable

在 Hand Grab Examples 场景中找到可抓取的物体,每一个物体上有一到多个 HandGrabInteractable 子物体。

在这里插入图片描述

每一个 HandGrabInteractable 物体上挂载了一个 Hand Grab Interactable 脚本:

在这里插入图片描述

接下来,我来介绍一下脚本上的一些重要参数。

⭐Support Grab Type

用 Hand Grab 当中的哪一种方式去抓取。

在这里插入图片描述

⭐Pinch Grab Rules 和 Palm Grab Rules

定义了Pinch Grab 和 Palm Grab 的触发需要用到哪几根手指。每一根手指有三个选项可以选择:Required,Optional,Ignored

在这里插入图片描述

被标记了 Required 的手指必须参与到抓取的触发过程中,也就是说如果我想要抓起一个物体,必须要用到标记了 Required 的手指。比如说五根手指中食指被标记了 Required,那么抓取的时候必须要用到食指,如果只用大拇指和中指是抓不起来的。

如果没有手指被标记了 Required,那么想要抓起一个物体,至少要用到一个标记了 Optional 的手指。

标记了 Ignored 的手指不会被考虑到抓取的触发过程中。

⭐Unselect Mode

决定了抓取了一个物体后什么时候会视为取消抓取。

在这里插入图片描述
在这里插入图片描述

如果选了All Released,当所有标记了 Required 或者 Optional 的手指松开后,视为取消抓取。

如果选了Any Released,只要有一个标记了 Required 的手指松开后,就会视为取消抓取。

⭐Hand Alignment

决定了在抓取的过程中,虚拟的手是如何变化到对应的抓取手势的。

在这里插入图片描述

Align On Grab:在抓取的时候会自动调整手部的姿态。

Attract On Hover:手在靠近物体,进入到 Hover 状态后,仿佛会卡住,然后做出抓取的动作,虚拟手就会变化到对应的抓取手势。

Align Fingers On Hover:在进入到 Hover 状态后开始抓取,手指就会逐渐变化到对应的抓取姿态。这个方式需要和 Align On Grab 进行比较会比较直观,如果选了 Align On Grab,虚拟手指在一开始会跟随现实的手进行弯曲,这个时候可能会与物体穿模,然后过一段时间后手指才会变化到抓取手势的姿态。如果选择了 Align Fingers On Hover,在手指弯曲的过程中如果接近了抓取姿态,手指就会直接被卡住,变化到对应的抓取手势,一般情况下手指是不会与物体穿模。

在这里插入图片描述

⭐Scaled Hand Grab Poses

在这里插入图片描述
因为我们每个人的手部大小可能是不同的,设置Scaled Hand Grab Poses就可以为不同大小的手配备相应大小的抓取手势。

⭐Movement Provider

在 HandGrabInteractable 脚本的 Optionals 下,有一个 Movement Provider 参数,如果没有赋值,在程序运行后会在改该物体上自动添加上一个 MoveTowardsTargetProvider 脚本,然后给 Movement Provider 参数赋值。

在这里插入图片描述

注:如果我们手动添加了 Movement Provider 类型的脚本,要手动给 Movement Provider 参数赋值。

在这里插入图片描述

这里介绍一下常用的几种的 Movement Provider:

🔍MoveTowardsTargetProvider

控制物体吸向手部的速度。

在这里插入图片描述

Travel Speed 越大,物体吸向手部所花的时间越多。

🔍MoveFromTargetProvider

抓取物体的时候,手部主动吸向物体,而不是物体吸向手部。

在这里插入图片描述

🔍FollowTargetProvider

让物体被抓取的时候吸向手部,但是带有阻尼衰减运动。也就是物体吸到手上时还会不停地晃,然后慢慢恢复正常状态。Speed 越小,阻尼效果越明显。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/178012.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

主从复制和读写分离

MySQL 主从复制和读写分离: 主从复制:主MySQL上的数据,新增,修改库,表,表里的数据,都会同步到从MySQL上。 MySQL的主从复制的模式:(面试题) 1,异…

Ubuntu配置Yolov8环境并训练自己的数据集

文章目录 一、环境配置与功能测试1.1 安装1.2 目标检测1.3 实例分割1.4 分类1.5 姿态检测 二、训练数据标注三、数据集训练方法3.1 命令训练3.2 代码训练 前言:需要先安装CUDA和Anaconda,它们的安装参考我这篇文章:Ubuntu配置深度学习环境&am…

光伏仪器-87110A/B太阳辐照度计

87110A/B 太阳辐照度计 光伏仪器 一款小巧、全数字化的太阳辐照度测试仪表,通过标准太阳电池测试太阳辐照度,并自带温度修正功能。太阳辐照度计集成了环境温度、电池板温度、倾斜角等测试功能,可以通过附带的蓝牙或串行接口连至电脑或智能…

老师的保命大法

数字化高度发达的今天,成绩查询系统已经成为学校教育中不可或缺的一部分。不同于传统的成绩公布方式,成绩查询系统更加高效、便捷,同时也充分保障了每位学生的隐私,今天就来揭秘这个教师保命大法! 1、代码查询法 对于…

【missing-semester】The shell

文章目录 shell 是什么shell 怎么用执行基本程序 Shell中的路径重定向输入输出管道piperoot用户的使用课后练习参考资料 我的操作环境:Windows11下的WSL2(Ubuntu20.04),之后的所有操作都是基于这个前提的 shell 是什么 命令行操作语言,文本界…

Harmony SDK API 版本 与 Harmony OS 版本对照表,及如何查看鸿蒙手机Harmony SDK Api 版本

Harmony SDK API 版本 与 Harmony OS 版本对照表 Harmony OSHarmony SDK APIHarmony 4.09Harmony 3.19Harmony 3.08Harmony 3.0 pre7Harmony 2.2.06Harmony 2.1.05Harmony 2.04 具体到真机上可能会有差异,如我的手机OS版本是2.0,按照上面表应该是4&…

循环链表1

循环链表的结构设计 循环链表就是——链表的头和尾连在一起 即最后一个数据(尾巴结点)的next由单链表的NULL,变为现在循环链表的存储头结点plist的地址200,尾巴结点指向头结点 现在来建立循环链表clist 先写结构设计 现在看对于…

动态获取填充表格数据时的特定值的赋值

1、如图 <el-tablev-loading"loading":data"columnList"bordertooltip-effect"dark":size"tableSize":height"tableHeight"style"width: 100%; margin: 15px 0"><el-table-column type"selection…

上机实验三 图的最小生成树算法设计 西安石油大学数据结构

二叉树设计 实验名称&#xff1a;二叉树设计 &#xff08;1&#xff09;实验目的&#xff1a; 1&#xff09; 掌握二叉树的逻辑结构。 2&#xff09; 掌握二叉树的二叉链表存储结构&#xff1b; 3&#xff09; 掌握基于二叉链表存储的二叉树的遍历等操作的实现。 &#x…

windows版:TensorRT安装教程

查看版本对应cuda与TensorRT&#xff1a;https://blog.csdn.net/weixin_41540237/article/details/131589929 TensorRT 下载地址&#xff1a;https://developer.nvidia.com/nvidia-tensorrt-7x-download cudnn下载地址&#xff1a;https://developer.nvidia.com/rdp/cudnn-ar…

CV计算机视觉每日开源代码Paper with code速览-2023.11.13

精华置顶 墙裂推荐&#xff01;小白如何1个月系统学习CV核心知识&#xff1a;链接 点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构&#xff1a;Transformer】PolyMaX: Gener…

【蓝桥杯软件赛 零基础备赛20周】第3周——填空题

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 文章目录 00. 2023年第14届参赛数据0. 上一周答疑1. 填空…