基于Unity3D的虚拟校园漫游系统
作者:郑立国 王栋柱 罗江林 张蕊
来源:《电子技术与软件工程》2015年第01
        现以吉林动画学院虚拟校园开发为例,研究了以Unity3D引擎作为虚拟现实的开发平台,采用3ds Max为场景建模工具,结合JavaScript脚本语言实现交互控制,达到游览校园的目的。该漫游系统运行效果较好,说明将Unity3D引擎用于虚拟校园的实现具有实用与参考价值。
        【关键词】虚拟现实 Unity3D 校园漫游 交互技术
        虚拟校园建设是校园信息化的重要组成部分。传统的虚拟校园都是建立在二维平面地图和影像地图的基础之上,已经不能满足学校对外招生宣传、校园导航、信息化管理的多元化功能需求。利用最新的计算机虚拟现实技术和网络技术,产生了最先进的三维虚拟校园技术,三维技术比二维平面更加直观形象,更接近于校园的实景。近几年,很多高校都开展了虚拟校园建设工作,构建数字校园。
        1 系统概述
        本文介绍了基于Unity3D综合型游戏开发技术在虚拟校园漫游系统中的应用。Unity3D是由Unity Technologies开发的专业游戏引擎,可以让玩家轻松创建三维视频游戏、实时三维动画、建筑可视化等类型互动内容的多平台的综合型游戏开发工具,是目前最具发展前景的专业游戏引擎。现以吉林动画学院校园为虚拟漫游空间,3DMax建模软件为场景建模工具,在Unity3D开发平台下实现校园漫游系统,具有一定人机交互能力的,有利于用户更加便利、直观的了解学校。
        2 系统开发流程
        根据校园的规模和特点,本系统主要采用3ds Max软件进行建模,Photoshop等图像处理软件处理贴图,将模型导入Unity引擎中添加组件以及交互脚本,最后利用Unity发布系统。系统开发的流程如图1所示。
        2.1 数据和素材采集
        校园的数据主要包括整个校园建筑、道路、树木、草坪的位置和尺寸。一种方式是利用校园CAD规划图纸,另外一种方式就是实地测量。由于条件所限,这里的数据主要利用百度地图的测距功能采集校园整体尺寸,结合实地测量确定尺寸。
        校园的素材主要包括校园各主要建筑物表面、墙面、道路、花草、树木等的电子照片。利用Photoshop等图像处理软件将这些照片进行处理,做成3D模型贴图。
        2.2 三维建模
        对虚拟校园场景中的主要建筑、道路、树木、花草等进行三维建模。由于场景中的各物体都比较复杂,所以采用专业的建模软件3ds Max等进行三维建模,然后对物体进行材质贴图,使模型更具有视觉真实感。
        2.3 Unity3D漫游
        将建模得到的模型导入Unity3D成为游戏对象(GameObject),然后添加Unity3D组件和脚本,为游戏对象赋予交互功能,从而构建一个完善的校园场景和具有一定交互性的虚拟校园漫游系统。
        2.4 发布
        漫游系统制作完成后,只需在“File”菜单里的“Build Settings”子菜单中选择对应的打包平台,Unity便可轻松实现跨平台的打包和发布。
        3 关键技术
        3.1 场景建模技术
        场景建模有两种方式,一种是使用 Unity3D自身提供的建模功能,另一种是从外部导入第三方软件所建模型。Unity3D内置了一些常见的3D模型如长方体、球、圆柱体、胶囊、平面等,其内置的标准资源包也能够进行复杂建模,如地形、树木、水、草等。Unity3D支持第三方软件建模,可以从外部导入模型,常见支持的格式包括fbxobj3ds等。3ds Max是一款优秀的三维软件,利用它能够创建高品质的三维模型。在3ds Max中对实物进行建模,然后将模型文件保存为fbx格式,勾选嵌入的媒体,便可将贴图同模型一起导出。将fbx文件放入Unity3D工程中Assets目录下,Unity3D将会自动识别,在Project视图中就能够到模型与材质等相关的资源文件。如图2所示。
        3.2 交互技术
        虚拟漫游是校园漫游系统的关键,交互功能是实现漫游的重点。Unity3D已经实现了跳跃这些逻辑操作,并且将它们封装成了角控制器组件,不用
编写任何代码可以轻松实现第一人称主角。第一人称视角的控制原理其实是控制摄像机对象的移动,所以屏幕显示的始终是主角正前方的画面。在Unity3D中将角控制器组件导入工程后,将Project视图中的“First Person Controller”拖到Hierarchy视图中,此时它是以一个胶囊体对象的形式出现在Scene视图中。在Inspector视图中设置其位置,但y轴一定要高于地面,因为角控制器是具有一定物理引擎的,运行程序后当它发现地面没有支撑物,就会感应重力落到地面之下。在Inspector视图中可以看到这个对象共绑定了三个脚本,“MouseLook”脚本用来控制第一人称视角如何通过鼠标来移动整个视图,“CharacterMotor”脚本用来监听键盘事件,控制主角移动。“FPSInputController”脚本用来监听“Space”按键,实现第一人称视角的跳跃功能。也可以在这三个官方提供的脚本基础上进行拓展功能,从而达到更好的控制效果。如增加QE键盘事件,控制主角向转身,这样就可以完全使用键盘控制主角在系统中漫游。下面例举向右转身的代码:
        function Update() {
        ifInput.GetKeyKeyCode.E)){
        transform.RotateVector3.up*Time.deltaTimer*speed);
        }
        }
        3.3 碰撞检测技术
        碰撞检测是模拟物体遇到障碍物时物理反应,例如主角遇到墙壁时,则不能继续前进。碰撞检测是漫游系统的最基本条件。游戏对象如果需要感应碰撞,那么必须给其添加碰撞器。Unity3D一共为对象提供了5种碰撞器,分别是Box ColliderSphere ColliderCapsule ColliderWheel ColliderMesh Collider。设置物体的物理属性,给每个对象添加相应的碰撞器,物体便能够执行组件实现碰撞检测,主角就不会穿墙而过。也可以在脚本语言中实现控制基本碰撞检测。
        3.4 运行效果
        由于本系统采用了多平台的Unity3D引擎,它的发布运行不需要额外的安装程序,单机时直接点击EXE文件即可运行。效果如图3所示。
        4 结语
        随着虚拟现实技术的不断发展,借助目前流行的Unity3D引擎生成三维虚拟校园漫游系统是一个很好选择。本系统实现了场景驱动、交互,使用户能够通过运行该系统游览整个校园的风貌,对学校的宣传起到了积极的作用。事实证明,Unity3D是一款适合制作游戏的专业引擎,用它来开发虚拟校园,具有很好的用户体验。
        参考文献
        [1]欧阳攀,李强,卢秀慧.基于3d地图实景地图Unity3D的虚拟校园开发研究与实现[J].现代电子技术,20134):19-22.
        [2]朱惠娟.基于Unity3D的虚拟漫游系统[J].计算机系统应用,201210):36-39.
        [3]宣雨松.Unity3D游戏开发[M].北京:人民邮电出版社,2012.
        作者简介
        郑立国(1964-),男,黑龙江省人。现为吉林禹硕动漫游戏科技股份有限公司研究员。
主要从事企业管理研究。
        作者单位
        吉林禹硕动漫游戏科技股份有限公司 吉林省长春市 130012