基于Unity的VIVE Focus 开发入门(二)(V客学院知识分享)

在本节,我们来熟悉VIVE Focus头显,手柄以及输入相关的一些设置。

一 首先来看下头显的设置,在上一节中配置好开发环境之后,我们选中层级列表中的WaveVR的游戏对象,并对其进行展开,在WaveVR下有一个名为head的子物体。head上有一个名为WaveVR_DevicePoseTracker的脚本。改脚本用于用于追踪头显的位置和旋转。以下来说明一下各个选项的作用:

1 Type:该为一个枚举选项,可选值有三个,分别为WVR_DeviceType_HMD(头显),WVR_DeviceType_Controller_Right(右手素手柄),WVR_DeviceType_Controller_Left(左手手柄)。VIVE Focus的用于追踪头显的位置和旋转可以采用这一个脚本。这里自然选择WVR_DeviceType_HMD;

2 InversePosition: 勾选将反转追踪的设备位置数据;

3 TrackPosition:勾选将追踪该设备的位置信息,VIVE Focus的头显是支持6DoF的,如你只需要开发3DoF的项目,也就是类似Cardboard不需要最终头显位置类型的项目,可以去除勾选该选项。默认为勾选。

4 EnableNeckModel:开启颈部模块(直译),该选项仅在TrackPosition勾选时才出现,并且只有在脚本 WaveVR_Render 的Origin值为 WVR_Pose Origin Model_Origin On Head_3 DoF 时才生效,作用为在使用头显时能有类似现实歪着头看的效果;

5 InverseRotation:勾选将反转追踪设备的旋转数据。

6 TrackRotation:勾选将追踪设备旋转信息,默认为勾选。

7 TrackTiming:选择何时更新设备pose--渲染之前更新或者每帧结束时更新

二 使用了ControllerLoader之后,在运行场景之后,手柄会自动加载,层级视图中会多出一系列游戏对象,其中有一个名为Generic_MC_R(Clone)的对象,该游戏对象上有两个脚本,一个名为WaveVR_PoseTrackerManager,另一个名为WaveVR_ControllerPoseTracker。后者及用于追踪手柄的旋转。

该脚本还决定了手柄的Type(左手还是右手),以及手柄是否跟随头显移动位置(Follow Head),因为VIVE Focus是3DoF的,是无法实时追踪手柄在现实空间的实际位置的,所以如果当在虚拟场景中如果进行瞬移或者头显进行了范围相对大的移动,就一定要让手柄跟随头显移动。否则将出现手柄距离过远的问题。

由于Generic_MC_R(Clone)是在运行时加载的,WaveVR_ControllerPoseTracker的设置就需要通过ControllerLoader设置后传递,在ControllerLoader游戏对象上的WaveVR_ControllerLoader脚本选择对应类型和根据需要勾选Follow Head即可,其他选项保持默认即可。

 

在设置好了头显和手柄后,需要重点注意的是输入模块的设置。

将InputModuleManager预制体拖入场景后,可看到其身上有挂载一个WaveVR_InputModuleManager的脚本。然而,在默认情况下,虽然该脚本的Enable Input Module选项是勾选的,但其下面Override System Setttings是没有勾选的,使得Custom Input Module以下的选项都不会显示。造成该脚本很容易被忽略掉。在不重写系统设置的情况下,所开发的工程中的交互效果只能在unity的编辑器模式下起作用,打包发布后不生效。原因就这里使用的是Unity内置的输入模块。若要在真机下仍能使用交互,就需要勾选Override System Setttings选项。并选用一个对应的输入方式。

 

Custom Input Module选择为Gaze的时候,采用的输入方式为凝视模式。该模式下与Cardboard类型VR项目并无二致,使用准心悬停计时进行交互。适合在不使用手柄的情况。选择该模式运行场景后,场景中会自动加载一个EventSystem,不过这个EventSystem与在初次创建UGUI元素是自动创建的那个有些区别,区别在于将Unity的标准输入模块替换了成了下图中红框的模块,这是凝视输入模块的功能脚本,没有这个脚本则无法实现凝视交互。其上面的设置也是由WaveVR_InputModuleManager在选择Gaze模式时传递过来的。

 

Custom Input Module选择为Controller的时候,输入模式切换为手柄控制模式。设置也会有所不同。在该模式下,有手柄发射的射线选择并通过手柄按键选择确认等进行交互,同时手柄也提供了更多的按键功能,如Touchpad,菜单键,扳机键等等。为开发提供了更多的扩展。在手柄控制模式下,也可以使用自动手柄模型等以应用特殊的游戏,如在射击游戏中可将原始的手柄模型替换成枪械的模型。在下图的Right controller和Left controller中可以填充自定义手柄即可实现。虽然VIVE Focus手柄是3DoF的,无法追踪实际位置,但是通过追踪旋转依旧能实现枪口随着手柄的旋转不同而朝向目标的功能,只是体验与VIVE的6DoF的有些不同而已。

 

(PHP开发、web前端、UI设计、VR开发专业培训机构--V客IT学院版权所有,转载请注明出处,谢谢合作!)

HTC Vive是一种虚拟现实头显设备,为用户提供身临其境的游戏体验。如果你想入门HTC Vive游戏开发,以下是一些基本的步骤和建议。 首先,了解虚拟现实技术并熟悉HTC Vive设备的功能和特性。熟悉VR开发的基本原理,例如头部追踪、手部追踪和房间追踪等。你可以阅读HTC Vive的文档和教程,或参加相关的线上教学课程。 其次,学习游戏开发的基础知识和技巧。掌握Unity或Unreal Engine等虚拟现实游戏引擎的使用,这些引擎提供了开发虚拟现实游戏所需的工具和功能。你可以通过教程、示例项目和社区论坛来学习和掌握这些引擎。 接下来,开始制定你的游戏概念和设计。考虑你想要创建的游戏类型和玩法,以及如何充分利用HTC Vive的特性来提供更好的游戏体验。你可以画草图、编写设计文档和制作原型来帮助你更好地理解和实现你的游戏想法。 然后,开始编写和开发你的游戏。利用你学到的知识和工具,创建虚拟现实场景、模型和动画,并添加交互性和游戏逻辑。在这个过程中,不断测试和调试你的游戏,以确保它在HTC Vive设备上正常运行并提供良好的用户体验。 最后,发布和推广你的游戏。将你的游戏打包并提交到HTC Vive的官方市场或其他游戏分发平台上。同时,在社交媒体和相关的游戏开发社区中宣传和推广你的游戏,以吸引更多的玩家。 总结起来,入门HTC Vive游戏开发需要你对虚拟现实技术和HTC Vive设备有一定的了解,掌握游戏开发的基础知识和技巧,制定游戏概念和设计,实际编写和开发游戏,并最终发布和推广你的作品。通过不断学习和实践,你将能够创建出令人惊叹的HTC Vive虚拟现实游戏作品。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值