基于HTC Vive的虚拟校园系统的研究与设计
2020-12-07包依勤陶圣杰宋万里王寅同
包依勤 陶圣杰 宋万里 王寅同
摘 要:互联网教育的应用在生活中越来越常见。学生可以通过互联网进行互动学习,通过视频或电子书自学知识,但学习效果不佳,而运用虚拟现实技术进行虚拟教学,可达到良好的教学预期效果。虚拟现实技术通过计算机实时计算图像,借助设备传输影像和声音,模拟用户在虚拟环境中的物理事件。随着5G互联网的出现,虚拟现实场景实时显示变得可能,用户不必从云服务器上下载软件就可以实时观看虚拟现实图像,因此,虚拟现实与在线教育的结合将在未来有很大的发展空间。为了探究虚拟现实在教育中的应用和发展,文中对虚拟校园系统进行了研究与设计,以Unity引擎为支撑,HTC Vive作为虚拟现实硬件设备,通过SteamVR实现与硬件设备的交互。
关键词:虚拟现实;虚拟教育;云服务器;虚拟校园;三维建模;VR
中图分类号:TP391.9文献标识码:A文章编号:2095-1302(2020)11-00-04
0 引 言
虚拟现实技术是新兴的一门边缘技术,它的研究内容涉及多个专业,应用十分广泛。作为3D技术的一项重要内容,其在教学方面有着重要的发展和应用前景。
随着互联网+教育的变化和改革的不断推进,小学、中学和大学都在使用新的虚拟现实技术来促进现代教育,虚拟现实技术在教学领域的研究和探索也在全面展开。如今,当我们谈论教育时,大家首先想到的就是校园。因为校园是培养学生的地方,校园、教室、食堂、足球场等都能影响着学生的进步。伴随着每个学生的学习生涯,校园在教育行业的重要性越来越明显。因而在虚拟现实的应用中,本文提出了虚拟仿真校园的概念。虚拟现实可将日常学习过程设计成一种游戏形式,这种游戏形式的学习不仅提高了学生的兴趣,而且使学生能够选择自己喜欢的课程来学习,提高学习效率[1-5]。
在虚拟学习环境下,首先接触的是实验和创新课堂教学体验。目前在各学科的教学中,虚拟现实开发人员不断开发各种教育课程。比如之前的地理教学十分抽象,而采用虚拟仿真技术,能模拟学生身处不同的地理环境中,感受到不同的地理、气候和不同地层的形成,让学生感受和体验沉浸式场景描述;如机械维护课程,人们可以使用虚拟模拟技术模拟安装过程,并与学生互动,有效进行虚拟项目的全方位联系和体验,使学生能够模拟机器的操作并学习如何安装;外科医生从医初期手术机会较少,借助虚拟现实技术,实习医生可以实践各种外科手术,这些现实场景可以帮助实习医生迅速成长。这是以前的教育方法无法实现和媲美的。
虚拟仿真技术带来了突破性的学习体验,其教学效果明显。虚拟仿真技术作为一门新发展的技术,在教育界有着长远的发展空间。虚拟现实技术为教育带来前所未有的发展,让学生在互动体验过程中体验和学习知识,虚拟现实技术将成为未来教育的发展趋势[6]。因此,研究和开发更多的虚拟现实课程,充分开发出虚拟现实在各个课程中可以用到的场景,才能更好地将虚拟现实课程融入教育教学。本文的主要研究内容是以虚拟教育、虚拟仿真为背景,研究此技术目前的发展,设计出虚拟校园场景,给大家带来虚拟校园体验。
1 系统架构设计
1.1 校园虚拟环境设计
为了保证场景能在多种计算机上运行,同时增加环境的真实感,本文将虚拟校园系统分为场景模型子系统、漫游引擎子系统、渲染输出子系统等。它们在功能上相对独立,通过数据接口互联[7]。系统总体结构如图1所示。
场景调度:在虚拟校园搭建场景之前,必须先对要搭建的场景做一个全面的分析,包括教室数量,所用道具,建模模式等,把所有需要用到的建筑物以及物品列入表中,完成场景总体调度。
碰撞检测:碰撞检测是构造虚拟漫游系统不可缺少的重要部分,它可以使用户以更自然的方式与三维场景中的对象进行交互。如果没有碰撞检测,当一个对象碰到另一个对象时,往往会“穿透而过”,而不会产生碰撞的效果,这在现实中是不存在的[8]。所以,在虚拟校园漫游的过程中,要能实时检测人物本身的碰撞体和场景中物品会不会发生碰撞,比如身体碰到墙,头部碰到物体等,要分别对碰撞的种类做出不同的检测。
物体交互:为了让学生能在虚拟校园中感受到真实性,必须增加物体的可交互性,比如可使用物品、可抓取物品等。在每个教室中,也要制作每个教室对应的所需物体,来丰富教学场景,以便学生在校园中进行仿真实验。
1.2 系统开发流程
系统的开发流程关系到该系统的开发时间和有效程度。为了合理开发虚拟校园漫游系统,该系统设计流程包括三维建模、纹理贴图、空间漫游、人机交互等功能。系统设计流程如图2所示。
在三维建模之前,必须对校园环境进行分析,选取最合适的建模方案。在三维建模完成之后,还要考虑系统的可行性,对系统进行一些必要的优化。
1.3 虚拟现实硬件设备
目前,主流的PC型VR有HTC Vive、 Oculus Rift两类。除此之外还有其他PC型VR可供选择,例如 Hypereal Pano、Pico、小怪兽2等。PC端VR是比较主流的虚拟设备[9]。
本系统选用HTC Vive做为虚拟校园的硬件设备。HTC Vive在计算机端开发,因此它与计算机的交互反映在输入设备和输出设备上。HTC Vieve是如今市场上较先进,使用较广泛的VR设备,具有很多其他VR设备无法媲美的地方,比如高分辨率、定位追蹤、强大的SteamVR平台等,大大方便了HTC Vive的使用。
2 系统实现
2.1 校园环境搭建
虚拟场景模型是整个漫游系统的基础。模型的质量直接影响到场景的顺畅程度和逼真效果。过多的细节模式将降低网络场景图形表示的效率,所以经常需要在建模过程中,在模型的细节度和复杂性之间找到平衡,并在必要时更换纹理模型的详细信息。在Unity建立与集成复杂的3D模型相当繁琐,但用3DS MAX强大的三维建模功能可以弥补这一缺陷。3DS MAX是一个强大的视觉建模工具,可根据用户的需要来制作模型。3DS MAX支持Prefab文件格式的输出,可以直接拖到Unity中使用,直接输出场景,包括几何造型、材质、动画等。虚拟现实中三维场景建筑结构如图3所示。
在构建虚拟校园系统场景时,3DS MAX为用户提供的建模方法如下所示。
(1)直接创建几何对象。3DS MAX具有许多基本几何模块,例如球体、立方體、圆柱体、三角形锥体等。用户可以拖动鼠标来定义对象的大小,或者直接在命令面板中输入位置和大小。3DS MAX可以生成一些基本几何体,并对此基本几何体进行一系列编辑以获取要创建的对象。
(2)使用样条图形。样条曲线是一种特殊类型的曲线,根据数学原理弯曲。它们通常是在三维空间中绘制的二维曲线,3DS MAX通过给二维图形添加厚度(Extrude)、旋转(Lathe)样条曲线,从而创建三维对象。
(3)使用网格对象。网格对象是大多数类型3D文件使用的默认模型类型,目前流行的3D格式也存储为网格。
模型做好后,就可以把各种场景道具加入到虚拟校园里,搭建完的场景如图4所示。
为了让虚拟校园可交互的物体更多,本系统还制作了导线、黑板擦、笔、地球仪等教学工具。
2.2 交互功能的实现
虚拟校园中,为了体现真实性,物体均可交互。比如,学生可以在校园中跟门、黑板、显示屏、教学器材等互动,所以物体与手的交互十分关键。本系统将交互式对象划分为几个类别,应用不同的代码实现。
(1)手柄可抓取物体
当学生操作手柄时,使用相应的抓取键即可将物体抓在手中。物体在手中同样具有碰撞效果,如果碰撞到遮挡物,则不能再继续拖动。
(2)凝视交互物体
凝视是一种在没有手柄等输入设备的情况下,可以通过眼睛盯着某个物体看,与物体进行交互的体验[10]。我们只需将各辅助类工具条添加到我们想要凝视的物体上,比如菜单等,就可以实现凝视的功能[11]。可使用物体是指学生可通过各种形式,跟教室中的物体交互,比如通过手柄按键打开屏幕,选择观看相应的教学课程。
(3)人物移动控制实现
学生在移动时,同时要进行多项判定。首先是建筑物和教学场景的碰撞:当人物撞到不可移动的物体,则限制学生无法前行;如果在移动时接触到可交互物体,比如球、纸盒,则交互物体会跟人物碰撞,移动到另一位置。其次是头部碰撞:当头顶有物体时,会检测头顶的碰撞,如果碰撞则会短暂黑屏,回到正确的位置。
人们进入虚拟校园有两种移动方式。
第一种移动方式:触摸板移动。学生通过右手的触摸板操作主角进行移动,模拟平时校园中走路的动作。
第二种移动方式:射线碰撞瞬移。如果学生想以最快速度移动到某一点,则可通过触摸板上方向键,指向需要移动的点。如果句柄指向的点在可移动区域,学生就会瞬间移动到指定位置;如果句柄指向的位置不在可移动区域,则无法移动,学生需要重新指定移动的区域。
2.3 场景传送功能的实现
场景传送界面可方便学生快速移动到各个教室场景。学生按下手柄上的菜单按钮,默认打开场景传送界面。学生可以通过射线移动到想要到达的场景,扣动扳机,直接移动到想要到达的教室。菜单传送界面由多个控件,如Button、Toggle Group、Scroll View、Label组成,每个教学场景的图片相当于一个Toggle单选按钮。因为有多个场景无法同时在场景中显示,所以将Toggle Group放入Scroll View,选定属性,使其成为水平输入框。由于Scroll View控件不会根据已有的界面和控件自动调整各个控件的位置,所以本系统还加入了Content Size Fitter,设置最佳显示尺寸,自动调整菜单中的控件。场景传送界面如图5所示。
3 教学场景实现
3.1 物理教室实现
为了实现学生或老师通过笔在白板上实时绘制,制作了多种颜色的绘笔。每个绘笔有不同的颜色可选。绘笔添加了Box Coilder组件,使用者用手柄控制手在触碰到笔时,就会触发抓取事件。编写通过绘画脚本实现在白板上的绘制逻辑。物理教室场景如图6所示。
Painter脚本含有 Raycast函数,用来发射射线,实时计算返回笔触碰到白板时的坐标。画笔脚本识别与手部的连接点需贴合手的动作。当笔和白板碰撞时,会在白板上写字。橡皮擦脚本类似于画笔,但是喷出的颜色与白板颜色相同,通过覆盖实现擦除效果。
3.2 体育教室实现
模拟投篮球、踢足球等各种运动,首先要对球的材质和弹射力度进行设置和编写。为了让球的弹射更加逼真,运用了Untiy的碰撞事件OnCollisionEnter进行监听,并根据碰撞的角度、速度进行反弹点的实时计算。通过Vector向量获得弹射角度和值,再转换成Quaternion四元数,以避免万象角死锁。因为球被赋予了刚体属性,所以通过Untiy的righdbody施加力,可以模拟真实的施加场景。体育教室场景如图7所示。
3.3 多媒体教室实现
多媒体教室主要有2D投影和3D 360°全景视频两块。2D投影主要可以通过手柄射线的交互,观看视频录像。在投影屏上,添加Canvas组件ScreenCanvas,即可实现投影屏效果。为了实现ScreenCanvas,必须设置挂在 VRTK的VRTK_ UI Canvas脚本,这样手柄发出的射线才可以跟ScreenCanvas交互。设计中共有Buttom、Panel、Sliders三种控件,主要用来监控按钮的响应时间和视频拖拽条的响应时间。多媒体教室场景如图8所示。
4 结 语
虚拟现实技术作为新兴技术,有很好的发展前景。本文以虚拟教育、虚拟仿真为背景,研究和设计了虚拟校园,带来了虚拟的真实校园环境。虚拟校园是运用虚拟现实技术,结合现代教育的一种新型教育方式,未来很有可能让学生足不出户,就能学习各种知识。本文通过搭建Unity 3D环境,并使用HTC Vive设备交互,模拟了真实的校园环境,与多个教学场景,学生通过这个系统可以更好地学习知识。
注:本文通讯作者为包依勤。
参考文献
[1]宣雨松.Unity 3D游戏开发[M]. 2版.北京:人民邮电出版社,2018.
[2]胡良云.HTC Vive VR游戏开发实战[M].北京:清华大学出版社,2017.
[3]吴亚峰,刘亚志,于复兴.VR与AR开发高级教程基于Unity[M].北京:人民邮电出版社,2017.
[4] [美]乔纳森·林诺维斯.Unity虚拟现实开发实战[M].北京:机械工业出版社,2016.
[5]王寒,曾坤,张义红.Unity AR\\VR开发(从新手到专家)/游戏开发与设计[M].北京:机械工业出版社,2018.
[6] [英]Alan Thorn. Unity 5.x游戏开发实战[M].北京:电子工业出版社,2017.
[7]姜雪伟.Unity 3D实战核心技术详解[M].北京:电子工业出版社.2016.
[8] [美] Robert Nystrom.游戏编程模式[M].北京:人民邮电出版社,2015.
[9] [日] 岩井雅幸.精解uGUI-Unity UI设计与开发从入门到精通[M].北京:电子工业出版社,2017.
[10]何伟.Unity虚拟现实开发圣典[M].北京:中国铁道出版社,2016.
[11]陈嘉栋.Unity 3D脚本编程:使用C#语言开发跨平台游戏[M].北京:电子工业出版社,2016.