APP下载

基于Unity3D建筑施工虚拟培训系统的研究与实现*

2016-08-10闫兴亚崔晓云

计算机与数字工程 2016年7期
关键词:虚拟现实

闫兴亚 赵 杰 崔晓云

(西安邮电大学 西安 710061)



基于Unity3D建筑施工虚拟培训系统的研究与实现*

闫兴亚赵杰崔晓云

(西安邮电大学西安710061)

摘要虚拟现实技术已越来越多的被应用到各个领域,建筑施工虚拟培训系统是虚拟现实技术在建筑行业一个很好的应用。论文以Unity3D为开发平台,结合当前建筑施工实际培训需求,开发了建筑施工虚拟培训系统。采用C#语言,对碰撞检测、自动寻路、遮挡剔除、粒子系统、NGUI进行了研究和实现。实践结果表明,基于Unity3D 建筑施工虚拟培训系统具备良好的实用性、交互性、沉侵感、趣味性,起到了良好的培训效果。

关键词虚拟现实; Unity3D; 建筑培训

Class NumberTP391

1引言

近年来,随着计算机硬件及软件的不断发展,虚拟现实技术在教育、军事、建筑、娱乐等各个行业的应用越来越广泛[1]。采用现代化的计算机技术生成逼真的视、听、触觉等多重感应的虚拟环境,用户同虚拟环境中的物体进行交互,能够产生二维动画所不具备的现场沉浸感[2]。目前,学校培育建筑施工人才主要是通过书本理论学习、二维视频动画等途径,考虑到实际施工现场安全性的问题,无法让学生亲临施工现场进行实际操作,而传统的理论学习、二维视频动画不具有实践操作性、交互性等原因,无法很好地让学生进行施工流程技能培训。

Unity3D是由Unity technologies开发的一个用户轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个对编辑器、跨平台发布、地形编辑、着色器、脚本、网络、物理、版本控制等特性全面整合的专业游戏引擎[3]。由于其性价比高、开发流程简单、跨平台性及兼容性强等特点,越来越多虚拟现实项目将其作为开发平台。本文旨在基于Unity3D游戏引擎,以3DMax、Maya、Photoshop等软件为辅助工具,创建了一个集专业性、沉浸感、交互性、趣味性等特点的建筑施工虚拟培训系统。讨论了系统的设计模式,实现了包括碰撞检测、自动寻路、遮挡剔除、粒子系统、NGUI等关键技术。

2系统总体设计

基于软件工程的思想,建筑施工虚拟培训系统开发主要分为两个阶段:第一阶段是系统前期的分析策划和素材的搜集、整理、制作;第二阶段是在Unity3D中进行场景的搭建、用户界面的制作和系统各模块交互功能的实现。其流程如图1所示。首先,从需求分析出发,策划系统内容,确定系统各个模块的功能。其次,现场取材和搜集整理资料。现场取材主要是到施工现场去拍摄施工建筑和施工器械、工具各个方向的外部轮廓和局部细节图。这些图片一方面可以作为施工场景布局的参考图,也可以作为模型的贴图。搜集的资料主要包括:建筑AutoCAD平面图、相关建筑物设计图纸以及施工工艺流程的资料。再次,利用3Dmax或Maya等建模软件进行三维建模、施工工艺流程动画的制作以及视频渲染等,制作好后导出成Unity所支持FBX格式的三维模型文件和WAV格式的视频文件。最后,将三维模型文件和视频文件导入到Unity工程中进行系统第二阶段的开发。第二阶段的开发包括三方面的内容:第一、场景的搭建;其中主要包括建筑施工场地的搭建、周围环境、光照、阴影、天空、场景烘焙、碰撞检测等。第二、制作用户界面;其中包括一级主导航栏和系统内部功能模块菜单。第三、系统各模块功能的实现;这里是用C#语言进行模块功能的开发。最终将其发布成.EXE可执行文件。

图1 系统开发流程图

3系统关键技术

3.1碰撞检测

碰撞检测是模拟现实环境中的人物及物体在遇到障碍物时发生的本能反应。例如,当人物遇到墙壁,如果没有设计碰撞检测,则人物会穿过墙壁出现失真现象[4]。在现实中,应该是当人物前进方向上遇到墙壁时,则停止前进,而不是穿过墙壁。此时,应该对人物及墙壁添加碰撞器组件。碰撞检测是整个建筑施工培训系统最基本的要求。在Unity3D中,共有六种形状碰撞器,分别是Box Collider、Sphere Collider、Capsule Collider、Mesh Collider、Wheel Collider、Terrain Collider。根据场景中模型的实际形状来添加相应的碰撞器,比如,人物可以添加一个Capsule Collider,墙壁可以添加一个Box Collider。然后系统计算碰撞器的碰撞范围就可以实现碰撞检测。如图2所示,给建筑施工场地的宣传栏添加了一个Box Collider碰撞器。

图2 碰撞检测

3.2自动寻路

Unity自从3.5版本之后,增加了NavMesh寻路功能。在此之前,Unity只能通过第三方插件(如Astar寻路插件等)做寻路功能。不过由于不是自带的功能,所以在设定网格和烘焙的过程难免会出现很多不便[5]。在Window下拉列表中可以看到Navgation,点击后在原来的Inspector面板的旁边会出现Navigation的面板,如图3所示。

图3 自动寻路烘焙面板

其中Object面板是对应当前选择的物体,旁边的Bake面板是对应全局选项的。在Scene Filter选项中,All(全部)、Mesh Renderers(渲染的网格)、Terrains(地形)是对Hirarchy面板里选择显示物体的一个筛选过滤。只有将Navigation Static选项勾上才能将当前的物体作为具有寻路功能的地形。OffMeshLink Generation选项是选择该物体是否根据高度、可跳跃宽带等全局的选项自动生成OffMeshLink。Navigation Layer是对参与寻路功能物体的一个分类,用层来分类,默认有三个层可以选择,当然也可以自己添加层。将Navigation面板中Object的各项参数设置好以后,进入Bake选项卡进行烘焙,然后再通过代码来实现人物的自动寻路。其主要代码如下所示:

private NavMeshAgent agent;

void Start()

{

//获取组件

agent = GetComponent();

}

void Update()

{

if (Input.GetMouseButtonDown(0))

{

//摄像机到点击位置的的射线

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

RaycastHit rayhit;

if (Physics.Raycast(ray, out rayhit))

{

//判断点击的是否地形

if (!rayhit.collider.name.Equals("Terrain"))

{

return;

}

//点击位置坐标

Vector3 point = rayhit.point;

//转向

transform.LookAt(new Vector3(point.x, transform.position.y, point.z));

//设置寻路的目标点

agent.SetDestination(point);

}

}

3.3遮挡剔除

遮挡剔除的主要思想是当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染[6]。在虚拟现实项目的开发过程中,通常场景很大,场景内的物体较多,如果将整个场景进行渲染的话势必会增加draw calls的数量,大大降低了系统的运行效率。Unity内置的遮挡剔除功能使其只对摄像机视野范围之内的物体进行渲染,从而降低了系统的渲染负荷,提高了系统的运行效率。其直观表现就是系统运行得更加流畅,不会出现卡顿的现象。在Window下拉列表中可以看到Occlusion culling,点击后在原来的Inspector面板的旁边会出现Occlusion的面板,如图4所示,选中要进行遮挡剔除的物体,分别勾上Occluder Static和Occludee Static,它们表示当前物体要进行遮挡剔除。然后对需要遮挡剔的除物体进行烘焙(Bake),烘焙完成之后,进入到/isualization面板选择需要进行遮挡剔除的摄像机,这样,系统就只会渲染在该摄像机视野范围之内的物体了。实验表明,运用遮挡剔除后系统运行的更加流畅了。

图4 Occlusion面板

3.4粒子系统

粒子系统在Unity中是用来制作烟、雾、蒸汽、火焰、落叶和其他一些特效。一个粒子系统由三个部分组成,分别是粒子发射器(Particle Emitter)、粒子动画(Particle Animator)和粒子渲染器(Particle Renderer)。粒子发射器产生粒子,粒子动画在时间轴上移动它,粒子渲染器在屏幕上渲染它们[7]。图5是用Unity的粒子系统做的一个火焰特效。

图5 粒子系统火焰特效

在本系统中,为了使施工工艺及环境更加真实化,使用粒子系统制作了一些电焊火花及环境特效。达到了对现实施工的逼真模拟效果。

3.5基于NGUI的UI制作

UI是任何系统中都必不可少的一部分,好的UI设计从视觉上能体现软件的用途和特点,操作起来简单舒适[8]。Unity4.6之前的版本自带的UI系统是GUI,它是通过系统自带的API来实现UI的,其最大的缺点是不能实现可视化的编辑,其位置、大小、及图片资源都需要代码去实现,并且每次运行后才能看见效果,开发起来很不方便。为此,本文采用NGUI来完成UI的制作。

NGUI(Next-Gen UI)是使用C#语言编写的一个Unity插件[9]。它将各个功能都封装成了脚本,并且将常用的一些组件做成了预设物,它可以在编辑状态下来任意调整位置及大小,还可以添加一些UI特效。在本系统中,利用NGUI插件制作了系统导航栏,系统菜单栏、按钮、工具箱、小地图、答题面板、等界面。同时NGUI的Anchor能够使各个UI元素具有屏幕自适应功能,使系统能够适应不同分辨率的屏幕。

4系统效果展示

基于Unity3D的建筑施工虚拟培训系统包括施工工艺、仿真实操、在线考评、构配件认知、安全管理、资源库六个模块。系统效果及部分功能模块截图如图6~图8所示。

图6 施工工艺

图7 仿真实操

图8 构配件认知

其中,施工工艺是对建筑施工工艺流程的一个三维展示,本文以基坑周边防护为例,用户通过点击箭头指示就可以一步一步的观看基坑周边防护的搭建流程及具体步骤,并在系统的右下角配以语音、文字解说,实现对施工工艺流程的全面介绍。仿真实操是用户通过完成系统设置的任务,获得相应的道具,然后才能继续完成工艺流程。该模块使得系统具有一定的娱乐性,激发用户的学习兴趣。在线考评是进入系统的后台考评系统,是对培训者理论知识的一个考评。构配件认知是对建筑施工过程中所使用的构配件进行全面的介绍,在该模块中,用户可以360°的去认知构配件的细部结构,并且滚动鼠标滚轮可以放大、缩小,在系统的右边有语音、文字对构配件的介绍。资源库是对施工工艺中各个步骤所用到的参数(如:立杆埋入地表的数值,两个立杆之间的间距等),构配件的型号、规格参数等的一个视频介绍。安全管理是施工过程中所涉及的安全问题的一些安全准则,是以图文表格的形式进行介绍。

5结语

本文对基于Unity3D的建筑施工虚拟培训系统做了详细的研究。在文中着重讨论了系统设计模式及系统实现的关键技术。随着技术的进步,虚拟培训系统必将成为发展的趋势,并将会在各个领域出现。本系统的开发将会为其他领域的虚拟培训系统以及虚拟现实项目的开发提供一定的参考价值,同时具备推广应用价值。

参 考 文 献

[1] 相茂英,马纯永,韩勇,等.基于Unity3D的化工设备虚拟培训系统研究[J].计算机技术与发展,2014(7):196-200.

XIANG Maoying, MA Chunyong, HAN Yong, et al. Research on Chemical Equipment Virtual Training System Based on Unity3D[J]. Computer Technology and Development,2014(7):196-200.

[2] GAN Jiansong. The key technology of indoor roaming based on Unity3d[J]. Journal of Yancheng Institute Of Technology(Natural Science Edition),2011(4):56-59.

[3] ZHU Yu. Design and research of roaming system based on Unity3D[J]. Information Security and Technology,2014(12):78-81.

[4] 王彩玲,刘瑞香,宋钊.基于Unity3D的虚拟校园漫游的设计与实现[J].科技视界,2015(7):18-20.

WANG Cailing, LIU Ruixiang, SONG Zhao. Design and Realization of Virtual Campus Roaming Based on Unity3D[3]. Science & Technology Vision,2015(7):18-20.

[5] ZHU Huijuan. Virtual Roaming System Based on Unity3D[J]. Computer System Application,2012(10):36-39,65.

[6] REN Guodong, CHEN Linhua, TAO Xuefeng, et al. Information Visualization System of Virtual Museum Based on Unity3D[J]. Computer System Application,2013(9):86-90,59.

[7] 孙浩鹏,李杨.面向虚拟现实的蜗壳内流体现象研究[J].科技创新与应用,2013:33-41.

SUN Haopeng, LI Yang. Research on the phenomenon of fluid flow in the spiral case of virtual reality[J]. Technology Innovation and Application,2013:33-41.

[8] 李锦青.WEB UI控件库的开发[J].长春理工大学学报(自然科学版),2009(1):129-131.

LI Jinqing. Development of WEB UI Controls[J]. Journal of Changchun University of Science and Technology(Natural Science Edition),2009(1):129-131.

[9] ZENG Senlin. Visual Simulation Research of Cross Platform Virtual Driving Based on Unity3D[D]. Central South University,2013.

[10] LI Zhijun. Virtual Reality Design and Research of Ship Rudder Engine Room Based on Unity3D[D]. Dalian: Dalian Maritime University,2014.

[11] 李益.基于Unity3d的磨矿车间虚拟仿真系统[D].大连:大连理工大学,2014.

LI Yi. Virtual Simulation System of Grinding Workshop Based on Unity3d[D]. Dalian: Dalian University of Technology,2014.

[12] 倪萌.基于Unity3D的汽车发动机虚拟装配训练考评系统的设计与实现[D].北京:北京工业大学,2014.

NI Meng. Design and Implementation of Virtual Assembly Training Evaluation System for Automobile Engine Based on Unity3d[D]. Beijing: Beijing University of Technology,2014.

收稿日期:2016年1月20日,修回日期:2016年2月23日

作者简介:闫兴亚,男,硕士,教授,研究方向:虚拟现实与增强现实。赵杰,男,硕士研究生,研究方向:虚拟现实与增强现实。崔晓云,女,硕士研究生,研究方向:虚拟现实与增强现实。

中图分类号TP391

DOI:10.3969/j.issn.1672-9722.2016.07.020

Research and Implementation of Construction Virtual Training System Based on Unity3D

YAN XingyaZHAO JieCUI Xiaoyun

(Xi’an University of Posts and Telecommunications, Xi’an710061)

AbstractVirtual reality technology has been applied to more and more fields. Virtual training system of construction is a good application of virtual reality technology in the construction industry. In this paper, Unity3D is the development platform, combined with the actual training needs of the construction, developing the virtual training system of construction. The collision detection, automatic routing, occlusion culling, particle system, NGUI are studied and implemented with C# language. The practical results show that the virtual training system of construction based on Unity3D has good practicability, interaction, and it has a good training effect.

Key Wordsvirtual reality, Unity3D, construction training

猜你喜欢

虚拟现实
虚拟现实技术在中学校园中的应用
国外虚拟现实(VR)教育研究与启示
基于虚拟现实技术的历史建筑保护与维修
REALITY BITES
虚拟现实产业进入高速发展期
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
虚拟现实炫酷来袭走出实验室坎坷漫长
虚拟现实技术不能根本改变新闻
浅谈虚拟现实