APP下载

基于Unity3D的虚拟校园

2016-10-14刘发久

电子设计工程 2016年12期
关键词:漫游建模校园

刘发久

(山西农业大学信息学院,山西太谷030800)

基于Unity3D的虚拟校园

刘发久

(山西农业大学信息学院,山西太谷030800)

虚拟校园是数字校园建设的基础,它的研究和创建对以后数字校园的建设有重要的现实意义。文章以山西农业大学信息学院为例,采用多场景建模方法,构建了虚拟校园的三维场景。运用Unity3D跨平台引擎,结合C#脚本语言,实现人机交互控制。在虚拟校园环境中,用户可进行三维空间的漫游、导览,并能够方便、详尽的查询校园各部分的相关信息。系统运行效果良好、维护简单,说明了Unity3D是设计、开发虚拟现实平台的有效工具。

虚拟漫游;虚拟校园;Unity3D;游戏引擎

近几年随着计算机技术的发展,校园信息化建设也快速发展,而虚拟校园是校园信息化建设的重要组成部分[1]。传统的虚拟校园都是建立在二维平面地图和影像地图的基础上,已经不能满足学校对外招生宣传、校园导航、信息化管理的多元化功能需求[2]。三维虚拟校园基于虚拟现实技术和网络技术,它更直观形象,更逼近校园的实景,并具有更好的交互性,能够给使用者一种逼真、身临其境的感觉。当前,三维虚拟校园已成为校园门户网不可缺少的重要栏目,对学校的对外形象宣传、招生宣传、信息化管理将产生重要的作用。本文采用3DMax为场景建模工具,选用Unity3D游戏引擎为开发平台,设计、开发了基于Web环境的三维虚拟校园,并深入讨论了三维场景建模和漫游、交互设计中的一些关键技术。

Unity 3D是一套包括图形、声音、物理等功能的游戏引擎,提供了一个强大的关卡编辑器,支持大部分主流3D软件格式,使用C#或JavaScript等高级语言实现脚本功能,使开发者无需了解底层复杂的技术,快速地开发具有高性能、高品质的游戏产品。Unity3D是跨平台的3D游戏引擎,支持的平台包括PC、Mac、Linux、Web、IOS、Android、Xbox360、PS3等大部分主流游戏平台[3]。在很多时候,可以选择在PC平台开发和测试,然后只要很少的改动,就可以将游戏移植到其他平台。

1 虚拟校园开发流程与设计

1.1虚拟校园开发流程

虚拟校园的开发遵循软件开发的一般步骤,依次是分析、设计、开发、测试、修改反复且渐进的完成所规划的功能[4]。系统开发的流程可以分为两大部分:第一部份是构建校园的三维模型,其工作的主要内容是利用三维建模软件3DMax对校园地形、建筑和环境建模;第二部分是在虚拟校园环境中实现用户与环境间的交互,其工作的主要内容是编写互动脚本,利用脚本把静态的三维模型与Unity3D连接起来,赋予模型交互的能力。系统开发的详细流程如图1所示。

图1 虚拟校园开发流程

1.2虚拟校园设计

虚拟校园的设计目标是给使用者提供一个尽可能逼真的校园仿真环境,并实现用户与环境间的交互。虚拟校园的设计、规划如下:

1)用户可通过网络访问、浏览。为了适应不同的网络环境和硬、软件设备,仿真场景不能过大,本文将校园划分为6个子场景,并解决了子场景间的不可见问题。

2)校园三维展示功能。建立学校主要景观如教学楼、体育场、图书馆、宿舍楼等建筑物的精细模型,尽量接近现实。

3)漫游功能。用户可以通过键盘、鼠标控制在校园内随意游览,也可以通过导航菜单直接到达指定区域。

4)多媒体展示服务。可以在场景中嵌入视频、音频、文字等宣传资料,访问者到达特定区域后,可通过点播列表选择播放内容,现场感更强、三维展示更生动。

5)设置鸟瞰图、导航图方便用户对校园整体的了解。

2 虚拟校园的实现

2.1模型的构建

模型是虚拟校园的基础,能够直接影响到系统的仿真效果。校园模型主要包地表模型、建筑模型和环境模型。

地表模型可根据校园的等高线地形图生成,首先用CAD对其进行预处理,然后导入3DMax生成由不规则三角形面构成的地表模型。建筑模型可根据校园平面规划设计图和楼宇的立面图生成,将这些图导入3DMax中生成精确的三维建筑模型。对于建筑物表面的细节例如阳台、门窗、护栏等并没有单独建模,而是采用纹理映射的方法,用纹理图片来代替复杂的模型结构。环境模型主要包括树木、花草和植被。校园场景中有大量的树木,为了降低场景的复杂度,并未对树木建模,而是采用广告牌的制作方式。花草和植被采用了纹理映射的方法。在模型的构建中还考虑到对模型的优化,通过采用删除不可见面、减少材质数量、压缩贴图等优化方法,简化了模型,减少了模型的大小[5]。

图2 虚拟校园模型

2.2场景设计

如果场景中包含了过多的模型,就会增加系统的载入时间和执行时间,导致用户在操作上出现长时间的等待。为了改善这种情况,系统采用了多场景模式,即将校园划分为多个完全独立的子场景,并对每个子场景单独建模。通过对校园的分割,减少了子场景中的模型数量,降低了子场景的复杂度,提高了渲染速度。在多场景模式中,用户希望在哪个子场景中漫游,就载入哪个子场景而无须载入全部校园信息,这减少了系统的载入时间,使其更适合网络浏览。本文将校园分为校门、教学楼和实验楼,图书馆,体育馆,体育场和宿舍区1,食堂和宿舍区2等6个子场景,子场景间按“九宫格”的方式排布,其分布如图3所示。

图3 校园场景布局

由于子场景的独立性,各子场景之间是完全不可见的,也就是说用户在某个子场景中不可能看到其它子场景中的景物,但这并不符合实际情况,比如,站在图书馆门前应该能看到体育馆的侧面轮廓。传统的解决方法是在子场景的边界设置绿化带、雕塑等建筑物来遮挡用户的视线,但这会影响仿真效果,降低用户的体验感。本文通过对子场景的扩展有效解决了子场景间的不可见问题,其扩展原则是:扩展有相邻子场景的边界,扩展的宽度为用户的视距,然后将相邻子场景边界处视距范围内的景物映射到扩展区域的相应位置。图4为扩展后的教学楼和实验楼子场景,图中实线矩形框表示扩展前的场景区域,虚线矩形框表示扩展区域,实心矩形表示建筑物,可以看到在扩展区域的景物实际上是相邻子场景对应区域的映像。

图4 扩展后的教学楼和实验楼场景

2.3交互设计与实现

将创建好的校园场景模型导入Unity3D开发环境,然后使用C#编写互动脚本实现用户与环境间的交互[6]。系统的交互设计主要包括校园漫游、场景链接交互和信息交互。

2.3.1校园漫游

漫游是虚拟校园的主要功能,系统支持用户以第一人称视角在校园中参观、浏览。用户借助鼠标和键盘在校园中运动,↑、↓、←、→键分别控制向前、向后、向左、向右运动,鼠标用于改变行进方向。实现校园漫游功能的步骤如下:

1)构建虚拟人物。导入人物模型,并命名为Player;新建一台摄影机(Camera),将摄影机放到Player的头部,并将其设置为Player的子对象,将环境观察视角切换到摄影机,实现了第一人称视角;为Player添加一个胶囊碰撞体(CapsuleCollider)组件,用来感知碰撞和模拟碰撞后的效果,例如,碰到墙后会停下来,调节胶囊的大小,使其刚好包裹Player;为Player添加一个刚体(Rigibody)组件,使Player的运动符合物理规则,例如,由于受到重力作用,跳起后不会飞向天空而是会重新落回地面。

2)控制虚拟人物运动。为了使虚拟人物运动,需要创建脚本PlayerMove,并将脚本指定给Player。下面举例向前运动的代码。

3)实例化虚拟人物。由于在每个场景中漫游都需要使用虚拟人物,因而创建Player的Prefab,并命名为PlayerPrefab;使用PlayerPrefab,通过编写脚本InstantiatePlayer实例化虚拟人物,并将脚本指定给每个场景中的空对象。下面举例实例化虚拟人物的代码。

2.3.2场景链接交互

虚拟校园由6个场景构成,用户可通过场景间的交互链接自由地选择漫游场景。系统提供两种场景链接方式:其一是当用户到达场景中的特定位置时,通过触发碰撞事件实现场景间的链接;其二是用户通过导航菜单直接链接到指定场景。文中主要介绍通过触发碰撞事件实现场景链接的方法,其实现步骤如下:

1)创建Cube对象,调整Cube的位置和大小,使其刚好包括场景中的某个扩展区域;将Cube的Box Collider组件的Is Trigger属性设为真;删除Cube的Mesh Renderer组件;用扩展区域所对应的场景名命名对象。

2)编写场景链接脚本,并将其添加到Cube对象上。下面举例场景链接的代码。

3)重复执行以上操作,为场景的每一个扩展区域创建对应的Cube对象

2.3.3信息交互

用户在漫游的过程中,可以通过信息交互,方便、快捷地查询校园各部分的相关信息。系统提供两种信息交互方式:其一是通过点击物体实现信息交互。例如,用户点击公告板可以弹出信息浏览子窗体,查询学校最新公告和课程表等信息;其二是通过触发碰撞事件实现信息交互。比如,当用户到达图书馆门口,就会出现图书馆的信息提示菜单,用户可选择通过视频、音频或文字介绍,查询图书馆的历史、建筑布局和馆藏书籍等信息。碰撞交互的过程与场景链接的过程类似,本文主要介绍点击交互的实现方法。点击交互应用了3D拾取技术,即由摄影机和屏幕上的点击位置确定一条射线,射线射向世界空间,最先和射线相交的物体就是被选中的物体。下面举例是查询公告板信息的部分代码。

3 结束语

文中将虚拟现实技术应用到数字化校园建设中,采用多场景建模方法,利用3DMax构建了三维校园模型。借助Unity3D游戏引擎实现了校园漫游,场景链接交互和信息交互。最后利用Unity3D的多平台部署功能,将其发布到Web平台。用户通过网络在计算机上进行漫游,对校园景观、校内的各种设施和服务等获得身临其境的感受。通过系统的开发,也证明了Unity3D是设计、开发虚拟现实平台的有效工具。

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

[2]欧阳攀,李强,卢秀慧.基于Unity3D的虚拟校园开发研究与实现[J].现代电子技术,2013,4(2):19-22.

[3]金玺曾.Unity 3D手机游戏开发[M].北京:清华大学出版社,2013.

[4]李远鑫,蒋海鸥,徐亦飞,等.基于Web3D的交互式虚拟社区[J].计算机工程,2011,37(11):289-290.

[5]刘海川,王小鹏,王磊.虚拟校园模型构建及优化[J].电子科技,2010(11):1-3.

[6]任宏萍,周犇.基于Virtools的虚拟校园在线交互设计与实现[J].计算机工程与科学,2011,33(11):117-119.

Virtual campus based on Unity3D

LIU Fa-jiu
(College of information,Shanxi Agricultural University,Taigu 030800,China)

Virtual campus is the foundation of digital campus construction,the research on it has great significance to the further study on digital campus.Taking college of information,Shanxi Agricultural University as an example,this paper adopt the modeling method in multi-scene and build 3D scene of virtual campus.The Unity3D cross-platform engine and C#script language are applied on man-machine interactive control.The virtual campus enables the users to navigate the 3D virtual space,to guide and browse,and to inquire conveniently about relevant campus information at full length.The system runs well and maintain expediently,which means Unity3D is an effective tool for designing and developing a virtual reality platform.

virtual system of navigating;virtual campus;Unity3D;game engine

TN02

A

1674-6236(2016)12-0037-03

2015-06-27稿件编号:201506227

刘发久(1958—),男,辽宁大连人,硕士,教授。研究方向:游戏开发、虚拟现实、人工智能。

猜你喜欢

漫游建模校园
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
霹雳漫游堂
校园的早晨
春满校园
NASA漫游记
三元组辐射场的建模与仿真
边走边看:漫游海底 梦想成真