APP下载

基于HTC Vive和Unity3D的虚拟现实校园漫游系统开发研究

2018-10-26李婧晖甘胜江

科技资讯 2018年10期
关键词:虚拟现实

李婧晖 甘胜江

摘 要:虚拟现实漫游系统以校园漫游为开发目标,结合HTC Vive设备,利用Unity3D引擎进行开发,提供了近乎真实的三维虚拟环境。用户使用头戴设备和手柄可以在某个空间内实现精准度极高的移动定位,从而实现在虚拟校园环境中的自由移动以及与环境互动。

关键词:虚拟现实 HTC Vive Unity3D 校园漫游

中图分类号:P208 文献标识码:A 文章编号:1672-3791(2018)04(a)-0014-02

虚拟现实技术就是利用电脑创建一个三维的虚拟世界,用户可以通过辅助手段沉浸入其中,并和这个虚拟世界发生交互。但是这个虚拟的世界并不存在,是虚拟创造的,在这个创建的场景中,发生的任何事情都不会与真实世界产生实质上的联系[1]。虚拟世界创建的时候,可以参考真实世界中的物理现象和社会文化。实际应用的时候,合成的虚拟世界和人的精神世界相互作用,人感受的都是虚拟世界。

Unity3D是如今最火爆的一款游戏开发引擎,它可以让开发者轻松的创建各类型的互动内容,例如:虚拟现实、实时三维动画、三维视频游戏、可视化建筑等,具有优秀的实用性和简便性[2]。

1 虚拟校园漫游系统的开发流程

1.1 系统开发流程

虚拟现实漫游系统的开发目标为,基于学校的真实环境,创建虚拟三维校园场景,用户使用HTC Vive沉浸在校园场景中,通过手柄操作漫游整个校园,犹如真的在校园中漫步。

该系统开发流程主要分为三步:(1)基于校园CAD图纸,创建整个校园建筑、地面、景观的三维模型,主要是利用三维建模工具3DMax。(2)将三维模型导入Unity3D,在Unity3D进行设置与制作。(3)连接HTC Vive,利用脚本进行设置和制作,将模型与Unity3D连接,实现用户与虚拟校园间的互动。

2 虚拟校园漫游系统的关键技术

虚拟校园漫游系统再现了校园的真实环境,重要的是提供了漫游和交互功能,尤为关键的是使用了虚拟显示头盔设备,让用户可以沉浸在虚拟场景中。该系统采用的关键技术主要有以下4种。

2.1 HTC Vive设备

用户利用HTC Vive手柄的pad键,点击PAD键时,会出现一个弯曲的箭头指向地面,当再次点击即可移动到指定的位置。用户通过移动自身的方向来改变视角,通过这种方式让体验者的沉浸感达到最强。另外需要编写互动脚本,处理碰撞事件,然后将其指定给待检测对象。

2.2 3D拾取

在漫游过程中,允许用户通HTC Vive手柄选中虚拟环境中的物体进行操作,这时就需要3D拾取技术。3D拾取技术的基本思想非常简单,由摄影机和屏幕上的鼠标点击位置确定一条射线,射线射向3D世界,最先和此射线相交的物体就是被选中的物体。

2.3 碰撞检测

碰撞器是一群组件,Unity3D中利用的就是碰撞器来检测对象之间的碰撞行为。比如:Box Collider(盒碰撞器)、Capsule Collider(胶囊碰撞器)、Mesh Collider(网格碰撞器)、Sphere Collider(球碰撞器)等。碰撞器实现步骤如下:(1)为需要进行碰撞检测的对象添加碰撞器并修改其size属性,确保其能将待检测对象完全包围。(2)设置碰撞器的Is Trigger属性设置为ture。(3)将JavaScript脚本绑定到待检测对象上。

2.4 VR插件

校园VR漫游的成功实现离不开unity官方自带的一些插件,因此,正确配置VR的相关插件也就尤为重要,下面是配置VR插件的具體步骤:(1)设置Steam VR。SteamVR SDK是一个由 Valve 提供的官方库,以简化Vive开发。当前在Asset商店中是免费的,它同时支持Oculus Rift和HTC Vive。同时选中[CameraRig]和[SteamVR],将它们拖到结构窗口,调整坐标位置使其Y坐标为0。(2)导入Vive Input Utility。将Vive Pointers导入场景之中,添加ViveCollider,将两者的世界坐标设置成和CamerRig一致。为地形添加“Teleportable”脚本,在EventRaycaster上添加组件脚本“Projectile Generator”脚本,最后修改Velocity属性改变线的弧度即可实现摄像头移动功能。

3 虚拟现实校园漫游系统的实现

3.1 资料准备

该系统构建在一个真实的校园环境的基础上,为了尽可能地达到仿真效果,让系统场景呈现出与校园实景一致的效果,需要先获取校园的完整CAD图,根据CAD图进行建模;通过拍照等方式收集各种素材贴图,用于在模型表面贴上素材以后显得与真实场景尽量一致,整理好贴图文件夹,以便后期调用和查看;下载其他资源或引用自带的一些资源。

3.2 模型构建

制作校园环境时,为了减少每次载入的模型数量,先将整个校园场景分割成多个子场景,以加快系统加载速度,提升用户体验。校园环境中包含了教学楼、图书馆、体育馆、体育场、食堂、宿舍等大量3D模型,因此,根据CAD图纸进行整体布局,然后根据实际情况对校园场景进行更加细致的搭建。

3.3 Unity3D制作

(1)将FBX文件导入Unity3D,导入的模型比例可能有些不对,可在Scale处进行简单设置,位置可通过手动拖动或输入数值来确定。(2)制作地形Terrain,设置地形的大小,并给地形赋予材质;制作Main Camera(相机)、Directional light(方向光)、Point light(点光源)、Skybox(天空盒)和First Person Control(漫游控制器);调节Main Color、Shader类型并进行碰撞设置。(3)编写C#脚本,实现交互功能。包括昼夜场景切换、建筑信息显示,前者用于切换白天和夜景模式,用户利用菜单设置显示白天或者夜景;后者使得用户在漫游过程中用手柄点击校园中物体时,查看其相关信息或对其进行某种操作,比如:拾取某个物体。

3.4 手柄控制移动

通过手柄控制在场景中漫游是系统的主要功能,该功能通过利用HTC Vive手柄和头盔控制摄影机运动, 实现用户以第一人称视角对整个校园环境的漫游。主要使用了两个脚本ChTra.cs和Mo.cs。

(1)ChTra是为了获取头部Y轴方向的转动和在X轴、Z轴方向的移动。并将其赋值给脚本绑定的对象上;(2)Mo是为了控制用户的移动,根据 deright.GetA ()获取在TouchPad中按下的位置信息,然后与(0,1)点求夹角,再根据这个角度判断按下的键是手柄TouchPad的上、下、左、右。 移动方向根据绑定ChTra这个脚本的transform信息。以此实现头盔转动控制移动的方向,以及的上、下、左、右控制移动的向前、向左、向右、向后移动。

4 结语

本文使用3DMAX进行校园场景建模,利用Unity3D作为开发平台,结合HTC Vive手柄和头盔开发了一套沉浸式虚拟校园漫游系统。系统为体验者提供了一个几乎真实的虚拟校园环境,用户佩戴头盔并使用手柄就可以在这个校园环境中漫游。文中讨论并实现了在Unity3D和HTC Vive平台上构建虚拟现实校园漫游系统的关键技术。这些技术同样可以应用于其他相关的虚拟现实和仿真领域。

参考文献

[1] 朱惠娟.基于Unity3D的虚拟漫游系统 [J].计算机系统应用,2012,21(10):36-38.

[2] 干建松.基于Unity3d的室内漫游的关键技术研究[J].盐城工学院学报,2011,24(4):56-59.

猜你喜欢

虚拟现实
在虚拟现实中体验上课 Experiencing a class in VR
移动VR正照进现实
虚拟现实,让学习更“沉浸”
培训新势力从人工智能到虚拟现实
虚拟现实LG 360 VR眼镜
Facebook组建虚拟现实社交团队
View Master虚拟现实显示器