Skeleton是Steam VR 2.0中,用来描述手部模型各个关节信息的,呃,可以说是数据类型。它会根据用户的设置,在抓取物体时,使手的模型,更加贴合待抓取物,增加沉浸感。

这是我制作的一个抓取球体的手势

我们可以利用skeleton pose来为每一个可抓取物,制作专属的抓取手势

以下是Steam VR的官方教程

https://valvesoftware.github.io/steamvr_unity_plugin/tutorials/Skeleton-Poser.html

1.利用Skeleton Poser 为自己的可抓取物制作专属的抓取手势

首先我们先创建一个空场景,并拖入VR预制体Player

然后随便拿一个模型,用来做测试(这里我拽了一根外星人的手指头来做测试)

首先为其添加组件。Interactable,和Throwable,并为自动生成的刚体,取消Gravity然后勾选Is Kinematic取消物理运算(这是为了测试抓取动作,以至于物体不会总掉到地上,或者手模型碰一下就飘走了)

然后为你的模型添加Collider碰撞器,这里我添加了MeshCollider 并勾选了Convex

此时运行程序,碰触物体有高亮,并且已经可以抓取物体,

下面为你的模型,添加SteamVR_Skeleton_Poser组件

使用Create创建一个Poser

添加后,默认会显示右手的模型。

可以在上图看见右侧Right Hand部分,下面的Show Right Preview已经勾选

在你的模型下,也会生成一个手部模型的克隆体

我们手动拉动这个生成的克隆体的骨骼,调节其骨骼位置到我们想要的位置即可(直接拉动其骨骼关节,旋转调节即可)

当调节满意后,勾选Show Left Preview,此时左手也会显示处理

点击Copy Right Pose To Left Hand,将右手已经做好的手势,Copy给左手

             

然后点击Save Pose

开始运行前,别忘了将,外星人手指头上挂取的Interactable上,取消勾选Hide Hand On Attach

运行即可查看效果,使用Grib或Trigger都可以抓取

2.Blending Editor 实现不同Action绑定不同的手势

例如

使用Grib实现抓握的手势

使用Trigger按键实现捏的手势

要实现多个手势,首先需要在PoserEditor中添加对应的手势

下面先创建一个“捏”的手势

然后编辑手势,如下

接下来在Blending Editor中点击加号,添加事件

设置参数如下

选择Pose为PoserEditer中的Main手势,即“握住”手势

下面Type为Action的类型,我们选择Boolean

然后可以在下面Action_bool中,选择要绑定此手势的Action,这里我选择Grib

接下来再次点击添加

为Trigger按键设置参数

其最下方的Smoothong Speed参数为,状态切换时,平滑的参数,值越大,切换状态越快,默认0为瞬间切换

运行后可看见,

按Trigger键,手势为捏,

按Grib键,手势为握

并且二者切换时有一个简单的平滑过渡

3.混合行为的叠加使用(握住枪柄 扣动扳机)

多个行为的混合使用,可是创建非常酷的效果

例如可以实现类似Grab握住手枪,再按Trigger可以扣动扳机。

实现上图的效果

基于上面的手指,我们复制一个finger2,作为本例使用的手指

抓取动作直接使用原来的

再创建一个(复制AlienFingerPose,再在其基础上调节,以保证位置不变),食指伸开的抓握手势,命名为AlienFingerPose_OneFingerOut,作为本次的Main手势

如下

需要注意的是,AlienFingerPose_OneFingerOut和AlienFingerPose,只是食指的动作不一样

然后再Blending Editor中做如下设置

需要注意的是,我们此次的Grab键绑定的是OneFingerOut手势,作为默认手势

在下面,开启了UserMask并只留食指

更改Type为Analog Action

然后选择Actin为Squeeze,此手势,是一个0-1的值,可以获取Trigger按下的程度

并且将其Smoothing Speed设置为0

另一种设置方式:

下方的Type若选择Boolean的话,给Smoothing Speed设置一个合适的值(10-30)也可以实现以上效果

-

【Steam VR 2.0】3. Skeleton Poser 自定义抓取手势的使用相关推荐

  1. 《SteamVR2.2.0之Skeleton_Poser》(Yanlz+Unity+XR+VR+AR+MR+SteamVR_Skeleton_Poser+Skeleton+Poser+立钻哥哥+==)

    <SteamVR2.2.0之Skeleton_Poser> <SteamVR2.2.0之Skeleton_Poser> 版本 作者 参与者 完成日期 备注 SteamVR2.2 ...

  2. html 抓取移动,网页采集提取数据教程,以自定义抓取方式为例 - 八爪鱼采集器...

    网页上的数据类型十分丰富:文本.图片.链接.源码等.在数据采集过程中,不同类型的数据类型,对应的抓取方式是不同的.本文将讲解常见的数据类型与其抓取方式. 示例网址:https://movie.doub ...

  3. 《八爪鱼采集器》如何自定义抓取数据

    步骤1:创建采集任务 1)进入主界面,选择"自定义模式" 2)将要采集的网址复制粘贴到网站输入框中,点击"保存网址" 步骤2:创建翻页循环 1)在页面右上角,打 ...

  4. 伯克利AI实验室最新发文:公布用于机器人抓取的Dexterity Network (Dex-Net) 2.0数据集...

    雷锋网AI科技评论按:伯克利AI实验室最新发文公布了用于机器人抓取的Dexterity Network (Dex-Net) 2.0数据集,这些数据集可以用来训练根据实际机器人的点云做抓取规划的神经网络 ...

  5. 【Steam VR 2.X】unity Skeleton Poser 骨骼姿势 编辑好手势后 运行时 抓取姿势会偏

    问题描述: HTC vive,用skeleton poser为某个模型编辑好抓取姿势后,在Editor下看完全没问题,但一运行,抓取时,手的模型就会偏移到一个奇怪的位置,但姿势还是对的,就是偏移了. ...

  6. 【Steam VR 2.X】unity Skeleton Poser 骨骼姿势 编辑姿势时 找不到手的预设

    看到错误如下图 hand preview not found. Verify SteamVRSettings.previewHandLeft and previewHandRight are set ...

  7. steamvr自定义按键_Steam入门手册:教你如何自定义Steam VR中的手柄皮肤

    打开SteamVR的创意工坊,你会看到有大量的自定义内容在其中.不仅仅是手柄的皮肤,还有大量的背景图片,甚至是3D场景模型.自定义Steam VR虚拟空间是个非常有趣的事情,但是没有什么比自己创作更加 ...

  8. Unity2020使用Steam VR开发HTC VIVE Cosmos

    Unity2020使用Steam VR开发HTC VIVE Cosmos 版本 配置手柄输入控制 版本 Unity:2020.2.1 HTC插件:最新版本2.0 配置手柄输入控制 2.0steamvr ...

  9. 【入门部署】Steam VR 环境部署与基本程序实现说明

    注意:此入门指南仅适用于 Unity Old Input System!现 SteamVR 支持 New Input System 开发平台:Unity 2019版本以上   头显设备介绍 HTC V ...

最新文章

  1. linux 进程隐藏常见方法
  2. 一行代码搞定 R 语言模型输出!(使用 stargazer 包)
  3. 树莓派应用实例3:环境光照强度测量
  4. 白话Elasticsearch64-zen discovery集群发现机制
  5. Dataset之Pascal:Pascal竞赛及其Pascal VOC(VOC 2012、VOC 2007) 数据集的简介、下载、使用方法详细攻略
  6. leetcode Number of 1 Bits
  7. Android-滑动解锁高亮文字自定义TextView
  8. win8.1 计算机 桌面快捷方式,win8.1操作系统中我的电脑在哪里?win8.1我的电脑快捷键添加方法介绍...
  9. 记录‘launch_simulation‘failed due to earlier errors的一个解决方法
  10. HTML基金会2----联系,像, 第,对齐
  11. C++ container member map
  12. 【渝粤教育】国家开放大学2018年春季 8038-21T实用管理基础 参考试题
  13. iview组件 eslint校验出错 Parsing error: x-invalid-end-tag
  14. linux负载均衡总结性说明(四层负载/七层负载)
  15. java opencv gamma_OpenCV函数cvAddWeighted调整alpha和gamma值 | 学步园
  16. PRML - Chapter 01: Introduction
  17. python——【1】gzip压缩文件
  18. 分析案例:贷款逾期分析
  19. mysqly优化 入门 第一篇
  20. C++ 中如何区分std::endl、std::ends、std::flush的差异性

热门文章

  1. 百度地图:创建多个标注点
  2. Samba文件服务器
  3. pycharm设置-使用Qt Designer配置
  4. Video.js中m3u8视频清晰度切换
  5. 开源STM32主控遥控器XBOX外形PCB
  6. [导入]剿杀diskman.exe木马病毒
  7. 亿欧智库发布最新研究报告 阿里云数据中台成中国乳企数字化首选方案
  8. mc服务器如何修改密码,mc服务器密码设置密码
  9. 乌班图服务器账号密码忘了,如何在Ubuntu 20.04 LTS服务器中重置Sudo密码
  10. android 高德地图范围圆圈公里_根据坐标点显示地图显示范围(高德地图)