- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
这篇文章是【Oculus Interaction SDK】系列的一部分,如果发现有对不上的对方,可以回去翻看我之前发布的文章,或在评论区留言。如果文章的内容已经不适用于新版本了,也可以直接联系我,我会持续更新文章内容.
当前适用版本:
文章最近更新日期:2023.02.09 。
。
之前在玩 ALEX 的时候,发现从不同的方向拿起同一件物品时会有不同的抓握手势,这种新奇的交互感受让我的游戏体验大幅提升。现在,使用新版本的 SDK 也可以很方便地设置自定义的抓握手势了 。
。
介于内容的特殊性,使用单纯的方块模型就没有什么意思了,我们找一个相对复杂一点的模型来进行演示 。
在 Project 窗口中搜索 mugMesh 直接拖到场景中,再给模型更换一个辨识度高一点的材质 。
。
给杯子添加 Mesh Collider、Rigidbody 和 Grabbable 组件 ,其中 Mesh Collider 需要勾选 Convex 选项 。
。
然后到导航栏打开 Oculus > Interaction > Hand Grab Pose Recorder ,这个工具可以帮助我们在运行模式下记录手的姿态,并保存为数据文件 。
。
点击 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 。
最后此篇关于【OculusInteractionSDK】(五)设置不同的抓握手势的文章就讲到这里了,如果你想了解更多关于【OculusInteractionSDK】(五)设置不同的抓握手势的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!