【Oculus Interaction SDK】(五)设置不同的抓握手势
前言
这篇文章是【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】(五)设置不同的抓握手势的更多相关文章
- scrapy爬虫学习系列五:图片的抓取和下载
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- Android SDK Manager 设置代理
直接启用 Android SDK Manager 的命令如下: 在SDK 的 tools 目录下执行: ./android sdk 就会进入 Android SDK Manager 设置代理 在 ...
- 【SSRS】入门篇(五) -- 设置报表格式
原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式 ...
- robots.txt协议如何设置禁止搜索引擎抓取?
什么情况下要设置禁止搜索引擎抓取自己的网站呢? 公司内部测试的网站,或者内部网,或者后台登录的页面,肯定不希望被外面的人搜索到,所以要禁止搜索引擎抓取.还有在我们的网站还未正式上线之前,我们需要做大量 ...
- aircack-ng抓握手包
1.关闭影响进程 airmon-ng check kill 将要进入监听模式的无线网卡断开它已连接的AP 2.查看无线网卡的名字 ifconfig ,例如 wlan0 3.进入监听模式: airmon ...
- Fiddler将笔记本设置代理,抓取手机网络请求包
第一步:下载fiddler,下载地址:http://www.telerik.com/download/fiddler 第二步:安装fiddler,略过... 第三步:启动fiddler,启动后界面如下 ...
- 【Java EE 学习 48】【Hibernate学习第五天】【抓取策略】【二级缓存】【HQL】
一.抓取策略. 1.hibernate中提供了三种抓取策略. (1)连接抓取(Join Fetch):这种抓取方式是默认的抓取方式.使用这种抓取方式hibernate会在select中内连接的方式获取 ...
- Jmeter设置代理,抓包之app请求
步骤: 1. Jmeter选择测试计划,添加线程组,添加http请求,添加监听器-察看结果树 2. 添加http代理服务器,右键添加非测试元件-添加http代理服务器 3. 端口改为8889,目标控制 ...
- Fiddler-给手机设置代理并抓取https链接
注:有两部分fiddler设置和手机端设置,且配置完成后,使用时确保PC和手机连接同一WiFi 设置方法如下: 1.上网搜索fiddler官方版下载,并安装完成后,开启fiddler 2.选择Tool ...
- 【Android】SDK Manager 设置代理
这里是 Mac 系统下,Windows 环境类似.打开 Android SDK Manager, Proxy Settings 设置如下所示: PS: 注意勾选 "Force https:/ ...
随机推荐
- 解决“fast-forward, aborting”问题
1. 现象 对某一个远程仓库 git pull 过程中,报错如下: # zl @ srv123 in ~/git/radxa/kernel [14:09:54] $ git pull remote: ...
- 嵌入式-C语言:通过结构体指针操作结构体内容
#include<stdio.h> #include<string.h> struct Student { char name[32]; int age; int height ...
- mysql删库报错
3.开发人员测试环境删库报错 #解决:在数据库的物理目录中(mysql的data目录),进入要删除的数据库目录,查看是否有文件存在,若存在,使用rm -rf 命令清除:再次执行删除数据库命令即可 [r ...
- JqGrid 编辑单元格内容时提示url未设定错误 2018-08-06
感谢大佬的资料https://blog.csdn.net/Easy_____/article/details/30218421 虽然没实例,但也给了一些信息.我以为cellsubmit属性是添加到co ...
- 学习 vue3 第一天 vue3简介,创建vue3项目 Composition Api 初识
前言: 从今天开始来和大家一起学习 vue3 相信大家都不陌生,已经火了一段时间了,但是还是有不少人没有学习,那就跟着六扇老师来简单的入个门 废话不多说,来开始今天的学习 Vue3 简介: 2020年 ...
- json与字符串的互转
在spring框架中当ajax请求需要返回json数据时,我们只需要在@RequestMapping后面加上@ResponseBody,即可为我们返回想要的json. 下面我们讲解json与字符串的互 ...
- JavaEE Day06 JDBC连接池&JDBCTemplate
今日内容: 数据库连接池 简化操作--Spring JDBC提供的 JDBC Template(JDBC的封装) 一.数据库连接池 1.引入 之前:每一次都要获取连接.释放连接-- 现在:连接重复使用 ...
- websockets的原理
一.应用场景 http 协议 客户端发起请求的时候才会返回内容,如果要处理类似于聊天室的应用,需要客户端不间断的发起请求(轮询),非常占用服务器的性能.所以websocket出现了. 二.ws(wss ...
- referer的反爬和爬虫下载视频
一.缘由 在梨视频等一些网站中会使用防盗链作为反爬的基础方法,这个反爬并不严重,只是平时的时候需要多加留意.此次实现对应链接中梨视频的下载. 二.代码实现 #1.拿到contid #2.拿到video ...
- 《HTTP权威指南》– 7.缓存
Web缓存的概念 Web缓存是可以自动保存常见文档副本的HTTP设备. 使用缓存的优点: 减少了数据的数据传输,节省了网络费用: 缓解了网络瓶颈的问题,不需要更多的带宽就能更快地加载页面: 降低了原始 ...