添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1 环境准备

硬件条件:

  1. 一台VR READY的PC或者笔记本电脑;
  2. 一套华为VR Glass 6dof (含VR Glass,6dof 游戏套件(2手柄,1 头部定位器,1 散热背夹));
  3. 1根PC VR链接线缆(可选),可以直接使用的是VR Glass 自带的1.2米长 C2C线缆;

如下图,环境非常简单:(荣耀猎人V700 + 华为VR Glass 6dof )

软件条件:

  1. Unity 2020 LTS或以上
  2. SteamVR 1.21.8或以上

VR Glass 6dof 可以正常运行steamVR平台游戏内容;

2 使用 OpenXR + XR Interaction Toolkit

首先这里啰嗦一下,当前使用untiy + openxr标准进行VR游戏/应用开发,其实依赖的主要是使用 XR plug-in architecture . 以及 XR Interaction Toolkit

基于这套架构,很大程度上可以实现VR应用开发与VR硬件/VR runtime 实现解耦。真正做到一套代码,支持跨平台运行。

OpenXR Plugin | OpenXR Plugin | 1.3.1

OpenXR is a plug-in in Unity's XR plug-in architecture .

Unity recommends using the XR Interaction Toolkit for input and interactions.

由于华为VR Glass 6dof 已正式支持steamVR平台,而Steam平台 runtime 已经支持了openxr 标准;

2.1 工程准备

新建3D demo场景,工程设定为PC

2.1.1 安装openxr相关插件

Window-》Package Manager

安装 XR Plugin Management 和 XR Interaction Toolkit,OpenXR plugin 三个插件

在安装XR Interaction Toolkit后,会弹出 如下 warning,直接选择YES

以下 选择 Go Ahead.

2.1.2 配置工程

File->Build Settings->Player Settings - XR Plug-in Management

勾选OpenXR,

点击 感叹号,提醒增加至少1个 interaction profile文件;

点击edit,此时进入openxr相关的feature设置,选择 OculusTouch Controller profile(华为VR Glass 6dof 手柄和OculusTouch 手柄在按键布局上几乎一致)

下一步就可以使用 XR Interaction Debugger 来实际检查 头,左右手柄的追踪和按键是否正常;

2.1.3 Debugger - XR Interaction Debugger

The XR Interaction Toolkit Debugger window displays a top-down view of all the Input Devices, Interactables, and Interactors in a Scene. It also displays their relationship to each other and their parent Interaction Managers. To open this window, go to Window > Analysis > XR Interaction Debugger from Unity's main menu.

此时发现是空的;是因为没有点击play;

点击play;此时可以发现,steamVR已经启动,头显,左右手柄的追踪,按键等都可以追踪起来;

在device 下,当移动头显或者手柄的时候,会发现device Position/device rotation 都是动态发生变化的;当触控按键的时候,也会有变化。

进行到这一步基本的工程配置准备工作就算完成了;

结果:通过openxr 以及 XR Interaction Toolkit ,以及debugger 工具,可以发现头部位姿,左右手柄位姿,按键等工作正常。

注意:因为此时还没有在场景中增加XR RIG,此时VR头盔中的画面是不正常的,可以不用管。

2.2 场景搭建

2.2.1 头部显示和位姿追踪测试

创建XR RIG,选择XR->XR Origin(Action-based)

点击play,此时VR头显中显示已经正常了,头部6dof位姿也正常,但是手柄追踪是没有的,

因为:发现左右手柄的配置(position 和rotation等)都是空的。如下图

2.2.2 加入双手柄交互(6dof)

为了方便加入6dof手柄相关的组件,需要做一个准备工作,导入一个Assets

XR Interaction Toolkit –>Starter Assets

点击import;

此时在Assets-> XR Interaction Toolkit,已经有了Starter Assets;

下一步进行配置工作,将上面导入的Assets 中的左,右手柄的preset 设置为default;

将XRI Default Left Controller(preset)和XRI Default Right Controller(preset) 分别

Add to ActionBasedController default;

同时在preset manager 中,增加filter如下信息,达到自动关联的目的;

这样在后续创建XR RIG的时候,左右手柄对象都会通过此preset自动关联,无需挨个配置,大大节省了工作量。

File->Preset Manager

如下所示,分别输入关键字 right和left,分别对应XRI Default Left Controller和XRI Default Right Controller;

此时相关的配置准备工作已经大功告成,可以增加XR RIG进行测试了;

需要删除掉原先创建的XR RIG,重新创建XR RIG;

创建XR RIG,选择XR->XR Origin(Action-based)

可以发现创建好的LeftHand Controller 和 RightHand Controller ,均已经有正确的reference;如下:

在XR RIG中增加input action manager.

XR Origin->Add Component->input action manager.

此时 Action Assets 是空的;需要增加XRI Default Input Actions

Action assets

增加一个 element0,将assets 中的 Samples的 XRI Default input actions 组件拖入到里面:

关联 XRI Default input actions

增加成功后的结果如下:

2.2.3 结果验证

点击 play:

结果:在华为VR Glass 6dof 设备上,画面渲染正常,头部6dof位姿正常,steamvr启动正常; 此时手柄追踪正常,同时还有射线;

下一步可以增加更多的 功能,

  1. 比如替换手柄模型,动画;
  2. 增加可以交互的物体,实现抓取等;

2.3 编译出exe文件,运行

直接编译出exe文件,可以独立运行。

  1. 由于是使用openxr标准,因而基于这一工程,无需在场景或者XR RIG上做任何的改动,可以跨平台(PC,VR一体机(各类品牌));真正做到了一套代码,支持跨平台运行。
  2. 基于PC VR,打出的运行包,基本上可以兼容市面上几乎所有的PC VR头显。
  3. VR一体机方面:只需直接在工程building设置中选择Android,并选择openxr,quest,直接编译出可以Android包,在quest上也是可以运行的,其他方面无需做设置;相信将来更多VR一体机可以支持openxr。
  4. 当然了华为VR Engine 当前已经支持openxr了,只是目前是支持native的,开发有一定的门槛,还未与untiy,unreal等引擎对接,相信不久就会支持起来。
基于openxr标准,一套工程,跨平台(PC,VR一体机(各类品牌));真正做到了一套代码,支持跨平台运行。基于PC VR,基本上可以兼容所有PC VR头显。VR一体机方面:只需在building设置中选择Android,openxr;即可支持quest,相信将来更多VR一体机可以支持openxr。华为VR Engine 当前已经支持openxr了,支持native的,开发有一定的门槛,还未与untiy,unreal等引擎对接,相信不久就会支持起来。 华为 开发 者官网,你需要注册一个 开发 者账号,然后下载对应的SDK; https://developer. huawei .com/consumer/cn/ vr 没错,它连接了一个手机,对,想的没错,这款一体机只能通过数据线连接手机,或者PC端才能运行; 而且,如果选择手机的话,你需要一款 华为 的机器,并且需要 华为 P20以上的手机; 如果你有了这个手机,你需要下载两个APP,华...
6DoF ( Degree of Freedom ) 游戏 套装,免装驱动软件,只需在 HUAWEI VR Glass 上插入视觉模组即可 使用 。新增3个自由度感应,不仅能识别前后左右的移动,还能识别跳起和蹲下,大大增加了 游戏 的可玩性,让 VR 体验不止于观影。 华为 VR Glass 6DoF 使用 感受和评价http://www.adiannao.cn 戴着轻盈,手感舒适,玩着沉浸 轻薄设计的视觉模组,仅重22克,与一节5号干电池相当,装上 HUAWEI VR Glass 后,佩戴重量也仅有188克,可以自由操作.
适用于 Unity3D 的简单 XR Input及其用途 Valve多年来一直不支持 Unity3D 的通用/不可知 XR 输入系统或提供逻辑解决方案。 而且,在设置新项目或增加对更多平台的支持时, Open VR API +未来的 Open XR 解决方案中过度设计的不可知解决方案似乎比我们许多人所需的工作多,这使我们的基本输入要求令人沮丧且费时。 该API充当其自己易于 使用 的不可知 XR 输入层,使您可以针对该API编写大量代码,然后轻松地针对多个平台(即Steam和Oculus商店),而不必应对无数复杂性或不同公司之间的分裂。 如果需要,可以添加更多非标准输入源(例如Pico)和 Open XR 支持,直到稳定下来,这样您就无需在以后的项目中修改输入系统了。 注意:不能安装Steam VR SDK以便 Open VR 输入模式起作用! 确保通过 Unity 软件包管理器为 Open VR 输入模式安装了“ com.valv