前言

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

当前适用版本:

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

文章最近更新日期:2023.02.14


在之前的文章里,我们都是直接使用 OculusInteractionSampleRig 来进行操作的,它会直接识别我们是在使用手柄还是单纯的手,从而显示对应的控制器模型或手的模型

如果我希望使用控制器时在游戏中也显示手的模型,这该怎么办呢?

别着急,这就是本篇文章要解决的问题!

创建新的控制器

首先,我们需要禁用原本的控制器

复制一个 Hands,重命名为 Controller Hands

移除 Controller Hands 的 Hand Skeleton OVR 组件

找到 HandDataSource,删除它所有的组件(注:从此处开始,后续步骤左右手类似,文章只展示左手的设置过程)

为 HandDataSource 添加 From OVR Controller Hand Data Source 组件

Camera Rig Ref 和 Tracking To World Transformer 引用 InputOVR,Hmd Data 引用 Hmd,Update After 引用 LeftHand,Handedness 选择 Left

找到 LeftHand,在 Hand 组件的 Update After 和 I Modify Data From Source Mono 处引用 HandDataSource

在 Project 窗口搜索 OculusHand,找到 OculusHand_L / OculusHand_R 使其成为对应的 HandDataSource 的子物体

找到 OculusHand_L > l_handMeshNode,禁用 Skinned Mesh Renderer 组件

回到 OculusHand_L,在 Animator 组件的 Controller 处引用 HandController_l_ 作为动画控制器

给 OuclusHand_L 添加 Animated Hand OVR 组件,Controller 选择 L Touch,Animator 引用自身的 Animator 组件

Animator 组件的 Culling Mode 选择 Always Animate

接下来这一步很关键!!

锁定 HandDataSource 的 Inspector 面板,按住 Alt 键后点击 b_l_wrist 展开所有子物体,然后把手指的骨骼对应拖动到 Bones 列表(顺序如下)

这样手就出现了

目前来看我们的手与控制器的位置与旋转方向都产生了一定的偏差,下一步就来解决这个问题

设置手的位置和方向

在 OculusInteractionSampleRig 的子物体中找到  OVRControllerPrefab,关闭控制器模型的显示

然后回到手的 HandDataSource,在 From OVR Controller Hand Data Source 中调整手的偏移量(此处左右手数据一致)

我们来看看效果(为了演示效果,左手的控制器模型没有禁用)

最后,找到 HandInteractorsLeft 的子物体 HandGrabAPI,添加 Finger Raw Pinch Injector 组件,并引用自身的 Hand Grab API 组件(右手也一样)

大功告成!!!


参考资料

https://www.youtube.com/watch?v=GF2BswT7EcM

【Oculus Interaction SDK】(九)使用控制器时显示手的模型的更多相关文章

  1. 【Oculus Interaction SDK】(一)设置 VR 相机与控制器 && 实现简单的抓取功能

    前言 前段时间 Oculus 的 SDK 频繁更新,很多已有的教程都不再适用于现在的版本了.本系列文章的主要目的是记录现版本常见功能的实现方法,便于自己后续开发.当然,不排除我文章刚写完 SDK 又变 ...

  2. 【Oculus Interaction SDK】(二)抓取释放效果的物理优化

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

  3. 【Oculus Interaction SDK】(五)设置不同的抓握手势

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

  4. 【Oculus Interaction SDK】(六)实体按钮 && 按压交互

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

  5. 【Oculus Interaction SDK】(三)限制可操作物体的移动 / 旋转

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

  6. ios 仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View.

    仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View. 实现原理,UINavigationController 的 self.view显示时把当前显示的vie ...

  7. jquery自定义滚动条 鼠标移入或滚轮时显示 鼠标离开或悬停超时时隐藏

    一.需求: 我需要做一个多媒体播放页面,左侧为播放列表,右侧为播放器.为了避免系统滚动条把列表和播放器隔断开,左侧列表的滚动条需要自定义,并且滚动停止和鼠标离开时要隐藏掉. 二.他山之石: 案例来自h ...

  8. 启动mysql时显示:/tmp/mysql.sock 不存在的解决方法

    启动mysql时显示:/tmp/mysql.sock 不存在的解决方法 启动mysql时报错的解决(mysql 5.0.45 redhat as 43)  ====================== ...

  9. JS实现类似QQ好友头像hover时显示资料卡的效果

    一.应用场景 鼠标hover弹出div,并且鼠标离开后不能马上隐藏,因为这个div上还有功能入口.比如: 鼠标经过好友列表中的好友头像时显示资料卡的效果 hover时显示二维码 二.实现 用如下这样一 ...

  10. vue隐藏APP启动时显示的{{}}

    vue隐藏APP启动时显示的{{}} vue组件在编译好之前会显示{{msg}},在官网上找到这个

随机推荐

  1. 2022春每日一题:Day 28

    题目:最大上升子序列和 就是最长上升子序列的改版,贡献由1改为a[i]其他全部不变 代码: #include <cstdio> #include <cstdlib> #incl ...

  2. go工具pprof部署

    在做内存分析时,用到了pprof,这里做一下部署介绍和入门级别的使用. pprof是golang的性能工具,有两种交互方式:命令行交互和web交互,同时还支持性能分析数据的图形化展示. 部署pprof ...

  3. ifconfig命令的使用

    ifconfig命令 用途:配置或显示TCP/IP网络的网络接口参数. *1.通过--help学习ifconfig的使用 点击查看代码 [root@rocky8 ~]# ifconfig --help ...

  4. 【Devexpress】pivotGridControl设置不显示展开折叠按钮

    只需要设置.效果看图二

  5. Jmeter中用户定义的变量跟用户参数的区别

    用户定义的变量: 全局变量,可以跨线程组被调用,但是,在启动运行时,获取一次值,在运行过程中,不会再动态获取值.用户参数: 局部变量,只能在自己的线程组中被调用,不能直接跨线程组被调用:但是,它在启动 ...

  6. SQL语句查询关键字前期数据准备

    前期数据准备 create table emp( id int primary key auto_increment, name varchar(20) not null, gender enum(' ...

  7. 微软宣布 S2C2F 已被 OpenSSF 采用

    开源供应链安全对大多数 IT 领导者来说是个日益严峻的挑战,围绕确保开发人员在构建软件时如何使用和管理开源软件 (OSS) 依赖项的稳健策略至关重要.Microsoft 发布安全供应链消费框架 (S2 ...

  8. 一步步带你设计MySQL索引数据结构

    前言 MySQL的索引是一个非常重要的知识点,也基本上是面试必考的一个技术点,所以非常重要.那你了解MySQL索引的数据结构是怎么样的吗?为什么要采用这样的数据结构? 现在化身为MySQL的架构师,一 ...

  9. Django测试脚本-单表操作(增删改查)-必知必会13条-神奇的双下划线

    目录 一:Django测试脚本 1.测试环境准备 2.tests.py 3.models.py 4.切换MySQL数据库 二:单表操作 1.pk关键字与get关键字 2.增 3.删 4.修 三:必知必 ...

  10. 如何用 30s 给面试官讲清楚跳表

    查找 假设有如下这样一个有序链表: 想要查找 24.43.59,按照顺序遍历,分别需要比较的次数为 2.4.6 目前查找的时间复杂度是 O(N),如何提高查找效率? 很容易想到二分查找,将查找的时间复 ...