基于Unity 3D的船舶制造虚拟仿真教学系统构建
2018-07-09朱安庆胡安超
朱安庆, 胡安超
(1.江苏科技大学 船舶与海洋工程学院,江苏 镇江 212003;2.江苏现代造船技术有限公司,江苏 镇江 212003)
0 引 言
虚拟仿真教学一直是国内外关注的热点,该教学方式为学生开展探究性自主实验、合作学习和创新实践提供了先进手段,开放平台和丰富资源[1-2],为实验室建设增添了活力。船舶制造是一个庞大的工程,造船厂占地面积大,设备众多,一艘船舶的建造一般经过钢材预处理、零件加工、部件加工、分段制造、分段预舾装、分段涂装、分段总组、总段搭载、船舶下水、码头舾装、试航等过程,大型船舶建造过程多持续一年半或更长时间。
在高校传统的教学中,针对船厂和生产过程认知相关的课程,教师普遍采用讲解和展示二维图片相结合的形式,部分高校还开设有船厂实地参观等实践课程,这些教学形式有一定的弊端:①教师课堂讲解,学生数量多并且以被动的方式吸收知识,不能在课堂学习中发挥主动性,学习效果较差。②船厂参观实践教学,多为走马观花式,时间较短,学生不易产生整体的认知框架,船厂声音嘈杂、施工环境差、危险系数高,现场教学相对困难。③专业实习消耗资金大、外出时间长、组织协调困难。
随着我国对虚拟仿真实验室教学的建设进入规模化、系统化、标准化、可持续化发展阶段[3-4],现在结合三维建模技术和虚拟现实技术,将整个造船厂的布局、设备以及主要生产流程通过交互式的、沉浸式的形式展现出来,应用到高校相关课程的教学中,学生可以使用该系统反复观摩“现场”,加上老师的讲解,教学效果更好,同时避免了船厂参观实践中的安全隐患,因此这种新的教学方式对提升教学质量有积极影响。
1 系统构建方案
基于Unity 3D软件开发虚拟船厂的过程,实质上也就是开发虚拟现实内容的过程,按照某船厂的厂区规划图,首先应用三维建模软件构建船厂资源的三维模型,然后将三维模型导入到Unity 3D软件中,使用C#编程添加场景漫游、碰撞检测、系统界面等功能,从而实现用户在虚拟船厂中以第一人称视角的方式观察设备、厂房、船厂布局等,增加用户对船厂的认知,达到预期教学效果。系统开发流程如图1所示。
图1 系统开发流程
2 船厂资源三维建模
2.1 船厂建模资源分析
表1 船厂主要资源汇总
2.2 三维模型建模及相关规范
当三维模型制作完成后,模型所包含的信息,如尺寸、单位、模型分类塌陷、命名、坐标、轴心调整、材质贴图等必须符合制作的规范,这样有利于模型在软件之间导入导出以及模型的编程控制管理。以下为建模时应注意的几个要点:
(1)单位。Unity 3D系统默认单位为m,在最新的Unity 3D 5.x版本中,其系统默认的比例因子(Scale Factor)更改为1,这样不管在3D Max中模型的系统单位是什么(如mm、cm、m、km),只要模型显示单位比例是1 m,那么导入Unity 3D后,默认显示的效果仍然是1 m[5]。开发过程中系统单位和显示单位比例都设置成m。
(2)模型的坐标。所有模型的初始坐标设置在原点,模型的轴心设置在物体中心。在3D Max中可以使用修改命令中的仅影响轴和居中到对象命令进行调整,注意在调整完后要将仅影响轴命令关闭,防止产生误操作。
(3)命名规范。要注意模型的命名规范,不能出现重名,模型名称最好使用英文和数字命名,否则在Unity 3D中的会出现一些问题,例如:在Unity 3D中使用中文命名的模型在实例化时会出现一定的延时[6]。
建模方面。3D Max最好使用可编辑多边形建模,多边形建模是最常用、最经典的建模途径[7],将要编辑的模型转化为可编辑多边形,而后对该模型的子对象进行修改和编辑。建模完毕后,要对模型进行检查,合并断开的顶点,移除孤立的顶点,这样可以减少模型面数,提高场景运行速度。在3D Max中当有缩放操作时要对模型进行重置变换,这样可以消除缩放比例输入框的记录,避免后续产生误操作。对于镜像后生成的模型需要进行翻转法线操作。
依据某船厂厂区规划图纸,图纸为DWG格式,将图纸导入到3D Max中并以二维平面的形式显示,各个场地的相对位置可以按照此图纸放置,对于车间设备的布局可以参考船厂车间布局图,对于厂房和设备的详细尺寸,由于技术文件的保密性不易获取其CAD设计图纸,建模时可以按照经验选择适当的比例大小。
虚拟船厂的开发使用的贴图一部分为使用相机实地采集的用于制作模型的贴图平面素材,例如:单梁半门式起重机和双梁桥式起重机图片等,另一部分贴图为根据实际场景取材于网络,如钢材表面锈蚀效果的贴图、窗户的贴图、厂房房顶的效果贴图等。
3 虚拟船厂的构建
3.1 Unity 3D 软件简介
Unity 3D是一个让用户轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎[8]。Unity 3D不光局限在游戏开发领域,还可以用来进行虚拟现实内容开发,作为一种集成的创作工具,近年来越来越多的人将Unity 3D推广到工业制造的过程演示、交互式的第一人称视角场景漫游、虚拟装配等等[9],使得Unity 3D在工业虚拟现实领域的应用越来越多。
报警管理数据库与Web服务器、数据采集Buffer机采用2台高性能服务器,数据采集机、实时报警操作站采用10台普通服务器。另外根据网络架构增加工业用防火墙和交换机。
3.2 模型导入到Unity 3D引擎
模型建模完毕,材质贴图也赋予到相应的模型上,将所有的模型按照厂区规划图和车间布局图摆放到位,并把所有模型打包成组,将该组导出成FBX模型,要注意的是模型在导出对话框中要设置模型Y轴向上,这样与Unity 3D软件中的坐标系保持一致,“嵌入的媒体”选项要保持选中,这样模型上带有的贴图文件在导入到Unity 3D后会保存在单独的文件夹中,避免发生贴图丢失的现象。再新建工程,将从3D Max中导出的FBX模型导入到新建工程中。
3.3 添加船厂外景
新建一个场景,将导入的FBX模型拖到Scene视图中,这样新建的船厂模型就显示在了Scene视图中,新建的场景默认会有主相机(Main Camera)、平行光(Directional Light)两个游戏物体,Main Camera相当于观察场景的“眼睛”,“眼睛”看到的会显示在Game视图中,Directional Light相当于场景中的“太阳”,它增强整个场景的亮度。在厂房的内部,为了使一些模型更亮、显示效果更好,可以添加多个Point light(电光源),它以一个点为中心向外散发光照,照亮周边模型。
另外还需要添加山、水、天空的模型,这部分模型使用Unity 3D制作,水的模型可以从Unity 3D自带的标准资源包中导入,天空的效果使用标准资源中的天空球来模拟,山的效果使用Unity 3D的Terrain(地形)来制作[10-11],需要注意的是,地形制作过程中山上树木分布尽量稀疏一些,这样可以降低场景渲染对计算机硬件的要求。船厂制作完成鸟瞰效果图如图2所示。
图2 虚拟船厂鸟瞰效果图
4 虚拟仿真教学系统的应用
4.1 船舶制造虚拟仿真教学系统的功能
在对学生的教学过程中,船厂资源布局和生产过程的认知是非常重要的,开发的系统功能主要有:船厂虚拟漫游、生产过程动画展示、虚拟装配和人机交互界面。
(1) 船厂虚拟漫游。船厂的漫游分为两部分,一部分是在地面上以第一人称视角的方式,察看船厂内设备、生产过程等资源,控制方式为鼠标和键盘。在Unity 3D中实现第一人称视角漫游可以使用软件标准资源(标准资源如果在安装软件时没有一同安装,需要在Unity 3D的资源商店下载导入)中第一人称控制器(Character Controller)下的预设体“First person controller”,将这个预设体放置在场景中,调整位置离地面大约1.6 m即可,这样模拟人的视线高度,同时加上胶囊检测碰撞器,这样在碰到船厂场景中的其他物体时可以有一定的物理碰撞效果而不至于穿过其他物体。
另外一部分功能是在船厂上方俯瞰整个厂区布局,这有利于整个生产场地分布的认知。这部分功能的实现可以使用C#脚本控制场景中的摄像机来实现,具体操作方式为:鼠标左键控制视角旋转,右键控制视角平移,滚轮控制视角的缩近和拉远。
(2) 生产过程动画展示。针对钢材加工流水线、型材成形加工、合拢等工艺过程,使用3D Max编辑关键帧动画来展现这些工艺过程,随模型一并导入到Unity 3D中,使用Unity 3D动画(Mecanim)系统来开发虚拟场景中的动画效果。
(3) 用户界面(user inteface,UI)。系统的主界面和漫游场景中的UI交互使用Unity 3D自带的UGUI系统制作,UGUI是Unity官方自带的UI系统,自从Unity 4.6版本以后,UGUI系统有了质的飞跃,现在逐渐代替其他的UI插件成为Unity软件中UI开发的主流[12]。开发中的主界面、声音开关、关闭按钮以及UI图标切换效果等都是用UGUI系统制作。制作的主界面如图3所示。
图3 系统主界面
(4) 虚拟装配。船舶装配是一项庞大的工程,从一块块钢板到一艘整船,包括部件装配、分段装配、分段总组等工艺过程[13],虚拟装配的功能用来以交互式的方式展现制造过程,而不以三维动画的形式展示,学生使用该系统可以通过鼠标等输入设备,将装配用到的零部件拖放到合适的位置来完成装配,不同的装配方法有不同的装配顺序,这样学生对装配方法、船舶建造过程掌握更深刻。图4所示为分段制造车间的装配仿真场景。
图4 分段装配仿真
4.2 船舶制造虚拟仿真系统的教学方式
本文介绍的船舶制造虚拟仿真教学系统发布成PC端的可执行文件,安装在计算机机房的电脑上,每个学生可以通过显示器、使用鼠标键盘控制,以第一人称视角的方式在虚拟船厂中漫游,虚拟船厂中的主要生产过程在虚拟场景中循环展示,学生可以在漫游的过程中观摩生产流程,配上教师的讲解可以达到事半功倍的效果,系统安装在计算机机房,对硬件要求不高,成本较低,有利于推广应用。随着虚拟现实硬件设备技术发展,众多体验良好的虚拟外设,例如:HTC Vive、oculus rift、CAVA系统等[14],能将虚拟现实软件中开发的内容集成到硬件中,在教学中使用硬件设备可以拥有更好的沉浸式体验。
此外,虚拟仿真教学系统并不能涵盖到教学体系的任何一个部分,教学也不能一味的追求虚拟仿真化,在虚拟仿真教学的基础上,应该尽可能地让学生接触实际,充分体现虚实结合、互相补充、能实不虚的原则[15-16]。
5 结 语
本文介绍的基于Unity 3D的船舶制造虚拟仿真教学系统,可以应用到船厂认知、造船生产过程认知等相关的课程教学上,使用Unity 3D开发完成后将其发布到PC端,将其安装在教学场所的机房,学生可以打开程序浏览整个船厂,伴随教师的讲解,使得对船厂和生产过程的认识更加深入。
随着三维建模技术和虚拟现实技术的不断发展,对于虚拟现实内容的开发会变得越来越简便,以后会不断完善虚拟船厂中的人机交互、总段总组、船舶下水等过程的仿真,积极推广在教学中的应用。
参考文献(References):
[1] 王卫国,胡今鸿.国外高校虚拟仿真实验教学现状与发展[J]. 实验室研究与探索,2015.34(5):214-219.
[2] 朱 柱. 基于Unity3D的虚拟实验系统设计与应用研究[D]. 武汉:华中师范大学, 2012.
[3] 王小燕, 戴蔚荃, 章 玲,等. 标准化建设对基础实验教学影响的实证研究[J]. 实验室研究与探索, 2012, 31(7):149-152.
[4] 祖 强, 魏永军. 国家级虚拟仿真实验教学中心建设现状探析[J]. 实验技术与管理, 2015(11):156-158.
[5] 何 伟.Unity虚拟现实开发圣典[M].北京:中国铁道出版社,2016.
[6] 吕文梅, 宋代广. 基于Unity3D与3Dmax的虚拟船舶液压系统三维模型展示[J]. 软件导刊, 2014(6):74-76.
[7] 刘 鑫.3DS Max中多边形建模的理论与实践研究[J]. 电脑编程技巧与维护,2016(10):88-89.
[8] 倪 萌.基于Unity3D的汽车发动机虚拟装配训练考评系统的设计与实现[D]. 北京工业大学,2014.
[9] 周彦鹏. 基于Unity 3D的虚拟现实游戏设计与制作[J]. 电子世界, 2017(7):173.
[10] 张 敏. 基于Unity 3D的三维地形建模[J]. 湖南工业职业技术学院学报, 2014(6):16-18.
[11] 王 龙, 王文科. 高度图在Unity3D地形建模中的应用研究与分析[J]. 数字技术与应用, 2014(10):74-74.
[12] 刘国柱. UNITY3D/2D游戏开发从0到1[M]. 北京:电子工业出版社, 2015.
[13] 魏 鑫. 船舶分段装配工艺浅析[J]. 课程教育研究:学法教法研究, 2014(15):28.
[14] 于 沛. 基于智能视频的虚拟现实体验系统研究与实现[D]. 成都:电子科技大学, 2015.
[15] 杨建良. 电类基础课程实验教学“虚实结合”模式的构建[J]. 成都:实验室研究与探索, 2014, 33(7):101-104.
[16] 李 莉, 张 英, 成 军,等. 分子生物学虚实结合实验教学模式的初探[J]. 实验室研究与探索, 2016, 35(10):225-227.