前言

这篇文章是【Oculus Interaction SDK】系列的一部分,如果发现有对不上的对方,可以回去翻看我之前发布的文章,或在评论区留言。如果文章的内容已经不适用于新版本了,也可以直接联系我,我会持续更新文章内容。

当前适用版本:

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

文章最近更新日期:2023.02.09


设置不同的抓握手势

之前在玩 ALEX 的时候,发现从不同的方向拿起同一件物品时会有不同的抓握手势,这种新奇的交互感受让我的游戏体验大幅提升。现在,使用新版本的 SDK 也可以很方便地设置自定义的抓握手势了

介于内容的特殊性,使用单纯的方块模型就没有什么意思了,我们找一个相对复杂一点的模型来进行演示

在 Project 窗口中搜索 mugMesh 直接拖到场景中,再给模型更换一个辨识度高一点的材质

给杯子添加 Mesh Collider、Rigidbody 和 Grabbable 组件 ,其中 Mesh Collider 需要勾选 Convex 选项

然后到导航栏打开 Oculus > Interaction > Hand Grab Pose Recorder,这个工具可以帮助我们在运行模式下记录手的姿态,并保存为数据文件

  • 选择需要记录手势的手(在这里我选择的是左手),没有选择的手的姿态不会被记录
  • 选择设置手势对应的物体,我们需要他的刚体(Rigidbody)组件
  • 这个工具有一个默认的幽灵手来帮助我们可视化已经录制的手势,在这里我就不做更改了
  • 默认情况下是按下空格键来完成一次记录,你也可以选择其他按键,这里也不做修改

点击 Play 进入运行模式,开始录制不同的手势

录制完成之后记得保存数据,点击 Save To Collection 生成手势集合文件,保存完之后再退出运行模式

退出运行模式后,点击 Load From Collection 将手势数据加载到物品上

(这里有一个 bug,如果你发现 Load From Collection 按钮点击之后没有效果,把整个窗口高度缩小之后再点击就可以了)

对录制的手势进行调整

在打开手势的列表之后,可以看到手部关节处可以调整,可以自己对手势进行为微调

甚至可以搞出很多奇怪的手型

也可以设置抓握时手指的自由度

甚至可以利用已经创建的左手的姿态来镜像一个右手姿态(在 Hand Grab Interactable 组件里)

调整完成后,测试下看看

看起来似乎是实现了使用不同的手势抓取物体,但手的姿态却并不像我们设计的那样受到限制

那么下一步就是要把手的姿态控制住!

限制手的姿态

回到 OculusInteractionSampleRig,找到 LeftHand 和 RightHand,把它们对应的子物体 LeftHandVisual / RightHandVisual 禁用掉

给左右手分别添加对应的 OVRLeftHandSynthetic / OVRRightHandSynthetic 组件(以下所有操作左右手类似,别忘记做另外一只手 ^_^)

别忘记在 I Modify Data From Source Mono 处引用 LeftHand

还需要一个 Hand Grab State Visual 组件,Hand Grab Interactor 引用 HandGrabInteractor,Synthetic Hand 引用自己的 Synthetic Hand 组件

大功告成!!!

使用控制器时,如果模型是手,该怎么实现姿态控制?

我们实现了在手势追踪模式下的手势姿态限制,但是控制器模式下手势姿态就没法使用了

如果我需要在使用控制器的前提下使用手的模型,那么控制器操作的手能不能实现姿态限制呢?

这个问题我会在后续的文章里解决,敬请期待!


参考资料

https://www.youtube.com/watch?v=67hPv3C11Rk&t=1s

【Oculus Interaction SDK】(五)设置不同的抓握手势的更多相关文章

  1. scrapy爬虫学习系列五:图片的抓取和下载

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  2. Android SDK Manager 设置代理

    直接启用 Android SDK Manager 的命令如下: 在SDK 的 tools 目录下执行: ./android sdk 就会进入 Android SDK Manager   设置代理 在 ...

  3. 【SSRS】入门篇(五) -- 设置报表格式

    原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式 ...

  4. robots.txt协议如何设置禁止搜索引擎抓取?

    什么情况下要设置禁止搜索引擎抓取自己的网站呢? 公司内部测试的网站,或者内部网,或者后台登录的页面,肯定不希望被外面的人搜索到,所以要禁止搜索引擎抓取.还有在我们的网站还未正式上线之前,我们需要做大量 ...

  5. aircack-ng抓握手包

    1.关闭影响进程 airmon-ng check kill 将要进入监听模式的无线网卡断开它已连接的AP 2.查看无线网卡的名字 ifconfig ,例如 wlan0 3.进入监听模式: airmon ...

  6. Fiddler将笔记本设置代理,抓取手机网络请求包

    第一步:下载fiddler,下载地址:http://www.telerik.com/download/fiddler 第二步:安装fiddler,略过... 第三步:启动fiddler,启动后界面如下 ...

  7. 【Java EE 学习 48】【Hibernate学习第五天】【抓取策略】【二级缓存】【HQL】

    一.抓取策略. 1.hibernate中提供了三种抓取策略. (1)连接抓取(Join Fetch):这种抓取方式是默认的抓取方式.使用这种抓取方式hibernate会在select中内连接的方式获取 ...

  8. Jmeter设置代理,抓包之app请求

    步骤: 1. Jmeter选择测试计划,添加线程组,添加http请求,添加监听器-察看结果树 2. 添加http代理服务器,右键添加非测试元件-添加http代理服务器 3. 端口改为8889,目标控制 ...

  9. Fiddler-给手机设置代理并抓取https链接

    注:有两部分fiddler设置和手机端设置,且配置完成后,使用时确保PC和手机连接同一WiFi 设置方法如下: 1.上网搜索fiddler官方版下载,并安装完成后,开启fiddler 2.选择Tool ...

  10. 【Android】SDK Manager 设置代理

    这里是 Mac 系统下,Windows 环境类似.打开 Android SDK Manager, Proxy Settings 设置如下所示: PS: 注意勾选 "Force https:/ ...

随机推荐

  1. Git创建、diff代码、回退版本、撤回代码,学废了吗

    .eye-care { background-color: rgba(199, 237, 204, 1); padding: 10px } .head-box { display: flex } .t ...

  2. SolidWorks2020下载安装中文版教程,你solidworks安装失败是什么原因?

    SW2020 WIN10 64位安装步骤: 1.先使用"百度网盘客户端"下载SW20S5_CN_x64安装包到电脑磁盘英文路径文件夹里,并鼠标右击进行解压缩,安装前先断开电脑网络, ...

  3. Ansible执⾏速度优化

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 优化⼀: 开启SSH长连接 Ansible模式是使⽤SSH和远程主机进⾏通信, 所以Ansi ...

  4. 数学建模经验分享会For浙商大管工学院

    数学建模介绍 数学建模与数学 数学建模和数学没有必然的关系 一个队里至少有一个数学较好 注重运筹学.统计学这两门课 数学建模做什么 时间:一般每年9月开学三周内 时长:3天3夜 目标:完成一份排版精美 ...

  5. 模块/collections/random/time/datetime

    内容概要 模块--包的具体使用 编程思想介绍 软件开发--目录规范 常用模块介绍--collections模块 常用模块介绍--time.datetime 常用模块介绍--random 1.包的具体使 ...

  6. MongoDB - 事务支持

    事务简介 事务是数据库中处理的逻辑单元,每个事务中包括一个或多个数据库操作,既可以是读操作,也可以是写操作. ACID 是一个"真正"事务所需要具备的一组属性集合,指的是原子性(A ...

  7. HCIE Routing&Switching之MPLS静态LSP配置

    前文我们了解了MPLS基础理论部分,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16928096.html:今天我们来聊一聊MPLS静态LSP配置相关话题: ...

  8. WEB入门——信息搜集1-20

    WEB1--查看源码 查看源码即可得flag. WEB2--JS前端禁用 查看源码即可得flag. JavaScript实现禁用的方法简单来说就是当用户使用键盘执行某一命令是返回的一种状态,而这种状态 ...

  9. vulnhub靶场之CONTAINME: 1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:CONTAINME: 1,下载地址:https://download.vulnhub.com/containme/THM-ContainMe-v ...

  10. 【SQL真题】SQL3:每类视频近一个月的转发量/率

    题目: https://www.nowcoder.com/practice/a78cf92c11e0421abf93762d25c3bfad?tpId=268&tqId=2285068& ...