【实战分享2】:如何基于OpenXR@ unity + 华为VR Glass 6dof Quest 开发跨平台VR游戏/应用

在上一篇中《【实战分享1】如何使用华为VR Glass 6dof 基于 OpenXR@ unity 开发VR游戏》最后小结中提到,基于openxr可以支持一套代码,达到跨平台部署:

  1. 使用openxr标准,无需在场景或者XR RIG上做任何的改动,可以跨平台(PC,VR一体机(各类品牌));真正做到了一套代码,支持跨平台运行。
  2. 基于PC VR,打出的运行包,基本上可以兼容市面上几乎所有的PC VR头显。
  3. VR一体机方面:只需直接在工程building设置中选择Android,并选择openxr,quest,直接编译出可以Android包,在quest上也是可以运行的,其他方面无需做设置;相信将来更多VR一体机可以支持openxr。

此篇就跨平台部署,实际实操一下,看看是否可以真的运行,分享一下相关的案例;

1 环境准备

硬件条件:

  1. 一台VR READY的PC或者笔记本电脑:笔者使用的是荣耀猎人V700
  2. 一套华为VR Glass 6dof (含VR Glass,6dof 游戏套件(2手柄,1 头部定位器,1 散热背夹));
  3. 1根PC VR链接线缆(可选),笔者使用的是VR Glass 自带的1.2米长 C2C线缆;
  4. 一台Oculus Quest1(需要打开开发者模式)

如下图,环境非常简单:

(已经尘封近两年的Oculus Quest1终于上场了,头带上都已经发白了。。。。)

使用Oculus quest 进行真机debug,

硬件链接:可以直接使用华为VR Glass 自带的 C2C线缆链接 quest1 到电脑来进行使用;

在build settings 中,选择Android平台,run device中即可发现 Oculus quest设备;

软件条件:

  1. Unity 2020 LTS
  2. SteamVR 1.21.8
  3. Oculus quest1 :  V34版本

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

2 工程,场景 XR RIG等设置

参考上一篇:《如何使用华为VR Glass 6dof 基于 OpenXR@ unity 开发VR游戏》建立工程,导入openxr 相关插件等工作。

目录

1 环境准备

2 工程,场景 XR RIG等设置

3 构建基本交互demo应用

3.1 增加手柄 prefab或者物体模型

3.2 增加可以抓取的物体

3.3 增加locomotion功能

3.4 增加teleport功能

3.4.1 Teleport anchor

3.4.2 Teleport Area

3.5 小结:

4 输出不同的平台的软件包

4.1 输出PC VR平台包

4.2 输出Oculus QUEST包

5 小结


3 构建基本交互demo应用

3.1 增加手柄 prefab或者物体模型

分别在LeftHand Controller 和 RightHand Controller,增加一个cube,调整cube合适的大小;

此时已经在手柄上挂接了物体模型了,当然了,可以自行增加模型,可以是厂家提供的原版手柄模型,也可以是一把刀,一支剑,或者一把斧头;

点击play,

结果:此时可以实时查看成功附加了自定义的手柄模型了;

3.2 增加可以抓取的物体

Add  3D Object –>cube 对象到场景中

在刚刚新增的Cube 对象 中

Add component -> XR GrabInteractable

增加后结果如下:

Rigidbody

点击play

结果:此时可以通过手柄来抓取刚刚增加的cube对象了。

3.3 增加locomotion功能

功能:使用手柄的遥杆操作进行头部的转向;

准备工作:Add XRI Default snap Turn 为default preset;

此时在Preset manager中发现如下,已经增加

后面增加Locomotion System对象时,会自动挂接手柄响应reference,无需挨个配置。

ADD XR->Locomotion System 对象到场景中,

此时可以发现,Locomotion System对象中已经根据preset Manager的设置,自动关联了左右手柄的操作reference(红色部分),当操作手柄遥杆的时候,就可以响应了。

注意一下,locomotion system 包括了 teleportation provider 这个组件,如下图;这个也是后面增加teleport 相关的功能提供了基础。

配置XR orgin,将场景中的XR ORIGIN直接拖到如下图红色框框中,最终结果如下:

点击play

结果:使用左/右手柄的遥杆操作可以进行头部的转向了。

3.4 增加teleport功能

3.4.1 Teleport anchor

功能:增加一个teleport 锚点,主要用于场景中某个特定的位置进行teleport;

场景中增加一个Teleportation Anchor

XR->Teleportation Anchor

点击play

结果:此时可以发现,当手柄的射线接触这个anchor 对象时,射线的颜色发生变化(从红色变为白色),点击手柄侧键,则可以直接跳到anchor的位置了。

3.4.2 Teleport Area

功能:在一个空间上,可以随意的进行跳转;

在此demo场景中,已经有了一个Ground对象代表了地板,

在Ground 对象中add Teleportation Area组件

即可实现整个场景中的地面范围均可以teleport了。

点击play

结果:当左右手柄的射线接触到地面的时候,会从红色变为白色,此时扣动侧键,直接会跳转到射线指向的位置了。

3.5 小结:

到此为止,一个拥有了基本的交互功能的VR DEMO应用构建完成了,完全是0代码,无需写任何的脚本,此时还是在PC VR上play模式正常运行;

下一步是输出不同平台的包,特别是VR一体机(Oculus quest)上,是否可以不用写任何代码就可以直接输出apk包。

4 输出不同的平台的软件包

4.1 输出PC VR平台包

这一步就跳过了,在前一篇中已经有过验证。直接进入下一步;

4.2 输出Oculus QUEST包

工程设置:切换到Android平台

配置XR Plugin management ,勾选 OpenXR

增加interaction profiles ,选择 Oculus touch controller profile

OpenXR Feature Groups 勾选 Oculus Quest Support

Note: 关于勾选 Oculus Quest Support,unity 有说明,主要是明确loader类型;主要是当前还未有统一的loader;

应该在将来可以不用选择特定的硬件型号了,毕竟VR一体机硬件会百花齐放,都去选择一遍也是件很费劲的事情,也不符合openxr的初衷;

Build Settings-> Build and run 输出编译包

硬件链接:使用华为VR Glass自带的C2C线缆链接 quest1 到电脑;则会发现 run device 里面有了Oculus quest 设备;软件包会自动安装到quest1上,自动打开,戴上quest1就开始了看到了启动logo了;

自动拷贝软件包到quest头显;

结果:quest1 上的体验,和华为VR Glass 6dof(PC VR模式)上的体验一致;画面,场景,操作交互没有发现任何的不同;

5 小结

1、基于openxr标准,开发跨平台的XR游戏/应用,只需进行简单的工程配置,“零”代码(工程building 设置,player settings设置),基本可以满足同一套代码,输出不同的包,支持不同的平台VR设备运行;大大的简化了适配工作。

2、此次试验的是PC VR和Oculus quest1;分别输出EXE文件和apk包。由于VR一体机种类比较多,是否需要每一个厂家的VR一体机输出不同的apk包?将来通过openxr 标准,可以做到一个apk包来兼容所有的厂家的VR一体机,其实应该就差一个统一的loader了。

3、关于开发使用的设备,此次使用了华为VR Glass 6dof(PC VR模式)和Oculus quest1(一体机VR);后续再开发新的应用的时候,应该只需要在PC VR上直接开发和调试,无需购置各种类型的VR一体机真机(前提是VR一体机支持openxr标准)进行调测了,既节约了购置成本,也大大的节省了开发的时间。希望其他的VR一体机厂家加快对openxr的支持。

最后,openxr标准的成熟和落地,离不开广大的开发者、游戏引擎、硬件平台、标准组织共同努力。

建议目前从事VR游戏/应用的开发者们,已经立项但还未开工的、已经开工但是还未完全交付的,建议切换到openxr标准上来。

对于国内的VR硬件平台的厂家们,希望尽快的推出支持openxr 的runtime 和 SDK,并且和当前主流的untiy、unreal等引擎对接起来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28465.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为入局 VR 眼镜能让 VR 早普及几年?|CSDN博文精选

作者 | 小谦笔记 责编 | 刘静 出品 | CSDN博客 早在15、16年,VR、AR概念最先兴起的那会儿,还没有体验过VR的我,以为好莱坞大片里面那种“空中屏幕控制”的科技即将到来,只需要按一按眼镜,面前就会出现一个屏幕&#xf…

VR眼镜连接android设备,华为VR眼镜和电脑如何连接 投屏软件PCVR Assistant 2.0使用教程...

HUAWEI VR Glass如何连接电脑?HUAWEI VR Glass在电脑上如何使用?华为投屏软件PCVR Assistant 2.0如何使用?华为VR眼镜主打轻薄,能调节近视,支持联动多种设备,除了可以手机投屏外,还能使用投屏软件PCVR Assistant 2.0在电脑上轻松操作。下面来看看电脑上如何使用PCVR Ass…

我参加 NVIDIA Sky Hackathon---语音识别+前端设计

一、语音识别 针对项目中要求识别的果皮,瓶子,纸箱这些物品我们选择采集以下文字对应的语音数据: 请检测出果皮 请检测出纸箱 请检测出瓶子 请检测出果皮和纸箱 请检测出纸箱和瓶子 请检测出果皮和瓶子 请检测出纸箱、果皮和瓶子 1.语…

VR开发者如何把Oculus Quest中的录制视频导出

最近在开发Oculus上的一个APP,在向上级汇报的时候,录制了一段视频,那怎样把这段视频导出到个人的PC上呢? 之前用过Android Studio开发过手机的APP,之前可以在Android Studio上之间看到整个手机的目录。Oculus也是Android的系统&…

【资源】Oculus meta Quest 2游戏下载VR一体机游戏资源合集下载教程Pro

meta Oculus Quest2的VR一体机已经发布有一段时间了,虽然后起之秀的VR一体机设备陆续也发布,尤其是近期pico4的发布,但是不可否认,Quest2至今依然是VR一体机设备的生态之王,丰富的VR游戏和应用资源是其他设备望尘莫及的…

《基于Qt的VR编辑器开发》(Yanlz+Unity+SteamVR+5G+AI+VR云游戏+Qt+编辑器+跨平台+人机交互+触发事件+立钻哥哥+==)

《基于Qt的VR编辑器开发》 《基于Qt的VR编辑器开发》 版本 作者 参与者 完成日期 备注 YanlzFramework_Qt_V01_1.0 严立钻 2019.09.04 ##《基于Qt的VR编辑器开发》发布说明: “基于Qt的VR编辑器开发”:是对“Qt”的了解拓…

基于UnityXR 开发 Oculus Quest VR应用------的前期工作

开发oculus quest vr应用有两种方式: 1、基于unity xr toolkit 开发 2、直接接入oculus 原生sdk开发 方式1:使用untiy xr开发,项目会更好维护一些,用的api也都是unity xr那一套,可直接上手开发。 方式2:现成…

如何使用Oculus Quest学习SteamVR开发

在与学员朋友们的交流过程中,越来越多的朋友在报名之前会询问这样一个问题:现在并没有HTC VIVE,手头上只有一个Oculus Quest1/2,能不能报名学习课时或者是自行进行steam VR的开发?本文将介绍关于这方面的内容。. 先上结…

unity +vive(设备)+steam vr(软件)(第一天)

废话不多说,直接开始! 首先是设备! 下载我们最爱的steam!!! 同时下载一下一个叫steam VR的一个工具 主要我们就有了基本游玩vr的工具。 vr眼镜我用的是学校提供的HTC vive家的设备 unity版本是2020.3.2…

VR联机体验破圈难?VRChat进军移动端分析

4年前,VR社交应用Rec Room为了扩大用户群体,宣布进军iOS移动生态,随后又陆续登陆了PlayStation、Xbox、安卓等主流的非VR硬件平台。而近期,另一款经典VR社交应用VRChat也宣布将支持安卓移动平台。毫无疑问,跨设备对于社…

Win10系统中用Unity进行Oculus quest 2 VR开发的测试与打包

具体打包的整个流程可以参考文章: 如果是将apk文件打包在电脑上需要通过adb这个命令行工具进行安装,安装方式比较简单, 1、去官网下载适用于 Windows 的 SDK Platform-Tools 2、下载安装后配置环境变量 # 比如我的安装位置是 E:\software\install\ADB…

vrchat新手教程_VRChat入门指南| 最新电脑资讯

您知道电脑硬盘是如何读取和存储数据的吗?恢复软件是如何找回数据的吗?通过这个视频教程,你将了解你丢失的数据是否还在,这些文件能否找回。 请点击 - 》》》》 观看视频 如何安全找回丢失数据的方法 1. 下载并安装B计划数据恢复软…

分享一种虚拟现实显示的思路,多面曲面显示非头戴VR

⑴技术领域 本文主要涉及三维虚拟空间的三维坐标转换到二维平面显示时二维坐标变换关系,具体属于计算机图形领域。 ............................................................................................................. ⑵引出技术点 目前的显示方…

0基础学习VR全景平台篇 第57篇:高级功能-多语言

功能位置示意 一、本功能将用在哪里? 多语言功能,可一键设置作品界面语言为中/英文,或跟随系统自动切换中/英文,各位可以用户可以轻松制作英文版VR全景作品,满足国外用户访问的需求。 此外蛙色VR平台,可通…

小白初窥VR世界的通行证?浅聊 PCVR 串流软件 Virtual Desktop - VR与串流篇 上

什么是Virtual Desktop? Virtual Desktop (以下简称VD)是一款VR串流软件,其通过局域网低延迟、高质量的流式传输将PC端的界面同步到用户的VR头显中,给用户带来舒适且愉快的VR体验,是VR头显串流PCVR的重要助手。 VD作为VR玩家几乎人…

Unity接入百度语音识别SDK windows平台

1.先注册百度开放平台的账号,然后按文档申请试用资格及创建应用:https://ai.baidu.com/ai-doc/SPEECH/qknh9i8ed Windows平台选择“不需要”就可以了。 2.下载C# SDK包 解压以后里面包含这两个文件夹,我工程里面用的是net45,将文…

(每日更新)《虚拟现实VR资讯》(Yanlz+Unity+SteamVR+云技术+5G+AI=VR云游戏=云渲染+人机交互+立钻哥哥+==)

虚拟现实(Virtual Reality) 虚拟现实简称VR,是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真使用户沉浸到该环境中。 …

微软又出大招!ChatGPT将加入云服务!

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>CV微信技术交流群 本文转载自:机器之心 | 编辑:陈萍、蛋酱 微软动作很迅速,继 ChatGPT 或将加入 Word、PPT、Excel 后,这次微软…

UE5 Oculus Quest2 使用跨平台交互语音聊天Cross-Platform Voice Chat Pro制作语音聊天功能 1

局域网多人联机 1.WidgetMenu追加UI 2. Server按钮蓝图 3.Client按钮蓝图 备注:目前固定了局域网服务器IP地址。有兴趣的小伙伴可自行拓展。 参考:

基于腾讯云实时音视频(TRTC)的web端 多人人脸识别小游戏

场景介绍 一个双人视频互动的小游戏, 连接后,可以实时看到对方的视频情况, 根据对方的视频情况实时进行游戏操作 摇头进行控制挡板 不让球掉落。 眨眼发球。 准备工作 获取应用 SDKAppID 和 应用秘钥 登录腾讯云 搜索 实时音视频 TRTC 创…