第5章 VR开发-5.2 HTC VIVE平台_第1页
第5章 VR开发-5.2 HTC VIVE平台_第2页
第5章 VR开发-5.2 HTC VIVE平台_第3页
第5章 VR开发-5.2 HTC VIVE平台_第4页
第5章 VR开发-5.2 HTC VIVE平台_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章VR开发

5.2HTCVIVE平台

.目录.1.HTCVIVE平台简介

.2.

SteamVRPlugin和VRTK的下载和安装.3.

HTCVIVE的基本设置

.4.

HTCVIVE手柄的设置.5.

移动方式的设置.6.

可交互物体的设置.7.

UI的操作

HTCVIVE是HTC和Valve联合开发的产品,是目前市场上消费级VR产品中用户体验较好的产品之一。在SteamVR平台上相关的应用中,使用HTCVIVE的占了一半左右。整套HTCVIVE设备包含外接式头显、手柄、定位器,如图所示。1.

HTCVIVE平台简介

本书所选软件和插件版本如下:Unity2018.4SteamVRPlugin1.2.2VRTK3.3HTCVIVE手柄各按键名称中英文对照如图所示。其中,英文名称将会在VRTK的交互设置脚本里用到。1.

HTCVIVE平台简介2.SteamVRPlugin和VRTK的下载和安装(1)SteamVRPlugin可以通过Unity的AssetStore直接下载和导入。打开Unity软件,通过“Window”→“AssetStore”菜单打开AssetStore,在搜索框中输入插件的名字搜索即可找到。然后单击“下载”按钮,下载完成后在同一个界面里单击“导入”按钮,即可把插件导入工程,导入SteamVRPlugin插件后Unity工程里的文件结构如图所示。其中VRTK已经在上一小节的PPT里介绍了下载地址。2.SteamVRPlugin和VRTK的下载和安装(2)当Unity工程里包含SteamVRPlugin的时候,第一次打开SteamVR时的设置对话框如图所示,单击“AcceptAll”按钮即可完成默认设置。3.HTCVIVE的基本设置在HTC上使用VRTK非常方便,按下面的步骤操作即可完成基本设置工作。(1)新建一个场景,删除其中自带的摄像机。(2)新建一个Plane三维物体,将其放置到坐标原点外,命名为“floor”,作为地板。(3)新建一个空物体,将其放置到坐标原点外,命名为“sdkmanager”,在其上添加VRTK_SDKManager组件。(4)新建一个空物体,将其放置到坐标原点处,命名为“sdksetup”,在其上添加VRTK_SDKSetup组件;在“SDKSelection”里选择VR平台为“SteamVR”。如果没有HTCVIVE设备,这里的SDK也可以选择“Simulator”,这样VRTK就是使用键盘、鼠标来模拟VR的各种操作。3.HTCVIVE的基本设置(5)将SteamVR插件中的CameraRig和SteamVR预设体,如图所示,作为子物体添加到sdksetup物体下。(6)在sdkmanager物体的VRTK_SDKManager组件中单击“AutoPopulate”按钮,将前面设置的SteamVRSDK自动填充进来。(7)为了让头显的高度正常,需要将sdksetup物体的Y坐标值修改为0.5。

经过这些基本设置后,单击运行按钮,即可进入VR场景,通过头显就可以看到虚拟世界。4.HTCVIVE手柄的设置

在虚拟世界的操作大部分是通过HTCVIVE手柄来完成的。通过下面的步骤可以把手柄显示出来,并完成手柄的指向操作。(1)新建空物体,命名为“vrtkscripts”,在其下建立两个空物体作为子物体,分别命名为“leftController”和“rightController”,并将它们拖入sdkmanager物体的VRTK_SDKManager组件的左、右控制器选项里,VRTK_SDKManager中左、右控制器的设置如图所示。这样设置就是告知VRTK哪两个物体是左、右手柄的控制器。4.HTCVIVE手柄的设置

(2)在leftController和rightController物体上都添加VRTK_Pointer和VRTK_StraightPointerRenderer组件。其中,VRTK_Pointer组件的作用是让手柄具备发出射线的功能;VRTK_StraightPointerRenderer组件的功能是以直线的形式来渲染手柄发出的射线。然后,分别将leftController和rightController物体的VRTK_StraightPointerRenderer组件作为参数导入对应的VRTK_Pointer组件的“PointerRenderer”中,指定使用直线渲染的形式,设置手柄的指向渲染器PointerRenderer属性如图所示。此时,运行场景,可以看到两个手柄,但是手柄还不能进行指向操作。因为现在还缺少手柄按键事件的指定。4.HTCVIVE手柄的设置

(3)在leftController和rightController物体上都添加VRTK_ControllerEvents组件,这样两个手柄的按键就有了相应的按键事件;此时再运行场景,并按下手柄的Touchpad键,就可以看到手柄上有射线射出。按下Touchpad键后手柄射出的射线如图所示。

当射线指向带碰撞器的物体时,显示绿色;当射线没有碰到任何物体时,显示红色。5.

移动方式的设置受到追踪器追踪范围和实际场地大小的限制,用户戴着头显在虚拟世界中只能在一个比较小的范围内进行移动,但通常虚拟世界可能都有一个比较大的环境。那么在这个大的虚拟环境中移动,就是必要的基础操作了。一般地,有两种移动形式,一种是瞬间跳转,一种是连续平滑移动。5.

移动方式的设置——瞬间跳转的设置

瞬间跳转,在VRTK中称为Teleport。具体设置方法就是在vrtkscripts物体下添加一个空物体,可以命名为PlayArea,然后为其添加VRTK_BasicTeleport组件,所有属性保持默认设置即可。VRTK_BasicTeleport组件如图所示。5.

移动方式的设置——瞬间跳转的设置

这时的跳转方式就是按住手柄的Touchpad键,发出射线,在射线和地面碰撞后,松开Touchpad键,即可瞬间跳转到碰撞点处。

因为这时使用的射线渲染组件是VRTK_StraightPointerRenderer,所以射线为直线形式。如果使用另一个组件VRTK_BezierPointerRenderer,则射线会变为贝塞尔曲线的形式。手柄发出的贝塞尔曲线形式的射线如图所示。5.

移动方式的设置——连续平滑移动的设置

将VRTK_TouchpadControl组件添加到场景中的CameraRig物体上,并选择leftController或者rightController物体,将其拉入VRTK_TouchpadControl组件的“Controller”中完成设置,如图所示。此时运行场景,按下相应手柄的Touchpad键即可实现在场景中向前、后、左、右平滑移动。6.

可交互物体的设置

在虚拟世界中,实现对物体的触碰、抓取等操作是基本需求之一。这在VRTK中是通过设置交互物体来实现的,具体方法如下。(1)创建几个3D物体,待抓取的物体如图所示。6.

可交互物体的设置(2)对leftController和rightController物体添加VRTK_InteractTouch和VRTK_InteractGrab组件,使手柄具有触碰(Touch)和抓取(Grab)功能。抓取功能的手柄按键默认设置如图所示,抓取功能是使用手柄的Grip键实现的,可以根据需要换成其他的按键。6.

可交互物体的设置(3)选中3D物体,单击“Window”→“VRTK”→“SetupInteractableObject”,保持默认设置,单击按钮“SetupInteractableObject”,即可自动完成所有组件和组件属性设置,使该物体具备和手柄交互的能力。“SetupInteractableObject”对话框如图所示。此时可以运行场景,用手柄触碰物体,物体上会出现边框提示;按住手柄的Grip键,可以抓起物体,松开Grip键,则放下物体。7.

UI的操作UI操作是“屏幕时代”较常见的交互方式,在虚拟现实中,将UI的操作移植过来,用户会感觉比较熟悉,学习VR操作的难度就会降低,从而有利于VR的推广和普及。7.

UI的操作——三维空间中的UI

Unity中的UI元素都是放在Canvas物体下的,由Canvas物体提供UI的总体属性。其中,属性“RenderMode”决定了UI以何种形式进行渲染。Canvas属性中UI渲染模式的选择如图所示,其默认设置是“ScreenSpace–Overlay”,也就是将UI叠加在屏幕上。如果是这样,那么在虚拟现实的三维世界里,UI就只能看,而不能被用户用来进行交互操作。所以这里一般将其设置为“WorldSpace”,也就是将UI元素当作三维虚拟世界里的普通物体来看待。7.

UI的操作——UI位置的调整

调整好渲染模式后,还需要将UI放置到合适的位置。这里可以只调节具体某一个UI元素,也可以将Canvas整体都进行调节。无论是调节哪个层次的物体,都是修改其RectTransform组件中坐标、宽度和高度、比例大小等,UI的RectTransform组件如图所示。调整过后,三维场景中的UI元素如右图所示。7.

UI的操作——UI和HTCVIVE手柄的交互

手柄发射的射线是和UI元素交互的基础。继续给左、右手柄控制器添加两个组件:VRTK_ControllerEvents和VRTK_UIPointer,如图所示。

其中VRTK_ControllerEvents组件使控制器具备了处理事件交互的功能,VRTK_UIPointer组件则设置了手柄控制器上具体哪些按键可通过何种操作来模拟对UI元素的交互。7.

UI的操作——UI和HTCVIVE手柄的交互

配置手柄控制器按键对UI的操作形式如图所示,组件规定了激活射线是通过手柄上的Touchpad键实现的,激活的形式是“HoldButton”,也就是要按住

Touchpad

键不放。射线选取UI元素的形式是按住手柄上的双阶段扳机,单击UI元素则是通过按下双阶段扳机然后放开的方式来实现。7.

UI的操作——UI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论