适应多平台的油田安全作业仿真培训系统开发

时间:2022-09-06 08:07:47

适应多平台的油田安全作业仿真培训系统开发

摘要:该文从寻求适合多平台的软件着手,研究软件性能、分析系统功能需求、进行系统技术平台架构,研究系统实现中的关键技术,构建三维模型、虚拟角色,实现人机交互功能,搭建油田安全作业仿真培训系统,并进行适应多平台的系统。该系统能达到良好的培训效果,且能有效的帮助油田作业工熟悉和掌握正确规范的油田作业流程,适宜于在油田范围内推广。

关键词:仿真培训;Unity 3D;三维建模;人机交互

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2015)02-0243-03

Abstract: From seeking the software adapting to multi platforms publishing to start, the paper researches Software performance, analyses the function need of the system, carries out the architecture of technology platforms, studies the key technologies in system developing, constructs 3D models and virtual characters, realizes the function of human-computer interaction, builds the simulation system for training of oil-field safety task operation, publishes the system adapting to multi platforms. The system can achieve good training effect, can help the oil workers grasp the correct operation process, is suitable for promotion in the oil-field range.

Key words: Simulation training; Unity 3D; 3D modeling; Human-computer interaction

安全作业一直是油田的追求目标,为了增强油田工人作业操作的准确性,降低油田作业风险,油田安全作业培训逐渐被重视并发展起来,各种油田安全作业仿真培训系统应运而生。但这类仿真系统多以基于PC机固定终端并通过网络连接的方式实现,学习时间及培训地点固定,不能提供实时便捷的培训。随着平板电脑和智能手机的流行,移动学习开始兴起,得益于无时间地点限制,发展迅猛[1]。在此背景下,基于移动终端的培训软件开始大批量研发。适应不同平台的仿真系统开发方式截然不同,开发平台之间又存在着激烈的竞争,给开发者造成了一定的困扰,开发者很难选择从哪个平台入手开发,而把一款软件从一个平台移植到另一个平台也往往需要很大的工作量。

基于以上考虑,本文从寻求适合多平台的软件着手,研究软件性能、分析系统功能需求、进行系统技术平台架构,研究系统实现中的关键技术,搭建完成油田安全作业仿真培训系统,并进行适应Android移动终端和适应Windows固定终端的系统。

1 系统总体架构

1.1系统功能组成

对油田安全作业仿真培训系统的功能需求进行分析,得到系统功能应包括:系统数据信息下载,培训模块选择,用户登录,作业流程培训,工具选择,背景音乐开关,退出系统,培训成绩上传,系统信息维护等。其具体的功能结构如图1所示:

1.2系统技术平台架构

根据油田安全作业仿真培训系统的具体功能需求及需求,系统的开发架构于以下平台之上:Unity 3D游戏引擎,3ds Max三维建模软件,Photoshop CS图片处理软件,Oracle 10g数据库。

3ds Max用来进行系统的三维模型构建;Photoshop CS进行图片处理以用做三维模型的贴图,辅助提高三维模型的真实性;Oracle 10g数据库用来存储系统的用户信息、作业流程信息、培训成绩信息等;Unity 3D游戏引擎编程操作三维模型,从而完成油田各个作业流程的人机交互虚拟培训功能。

系统技术平台架构如下:

2 三维虚拟场景构建

三维虚拟场景构建采用的核心技术是三维建模技术,三维建模技术是依据现实世界中的对象及其属性将其转化为机器世界的数字化表示[2]。三维虚拟场景构建的流程包括:场景相关资料整理、三维模型构建、三维模型美化、三维动画制作、虚拟场景集成及进一步利用纹理贴图进行美化。

2.1 场景相关资料整理

为搭建油田各项作业的虚拟培训环境,需要先构建各项作业所包含真实场景及作业工具的三维虚拟模型,模型构建的好坏直接影响到油田各个作业场景的真实性及运行速率。

在搭建三维虚拟模型之前,需要先进行场景相关材料的整理。拍摄工具照片、了解工具内外部构造、丈量工具尺寸等,尽可能多且详细地获取真实场景及作业工具信息,这样构建出来的三维虚拟模型才会更加具备真实性。

2.2 三维模型构建、美化及动画制作

在完成场景的相关材料整理之后,可着手利用3ds Max软件进行三维模型的构建工作,其中包括工具模型和角色模型。构建三维模型时应注意模型的面数问题,模型面数越多代表构建的模型越精细,模型的真实度越高,但应考虑模型的真实性和场景运行效率之间的均衡,所以在保证模型尽可能和真实物体相像的基础上,构建模型所用的面数越少越好。

模型构建完成以后,一般只是外形和真实工具相像,逼真度不高,其主要原因是缺乏和真实工具相似的物理属性,这就需要我们在max中继续对其进行美化,为其设置材质和贴图,从而提高物体的逼真性,该功能可以利用max自带的材质编辑器来完成[3]。该过程中需要配合使用Photoshop进行贴图的处理。

角色模型在系统中要展示一定的动作,因此需要在max中为其进行动画的设计和制作,以便后期导入Unity 3D中进行调用。

至此,模型构建、美化及动画制作工作彻底完成。

2.3 虚拟场景集成

在max中构建完成的模型需要在Unity 3D中进行调用并进行虚拟交互功能的编程实现。但max格式的模型文件不可以直接被Unity 3D调用,需要将其导出为fbx格式的文件,才可以在Unity 3D中进行调用[4]。

将导出的fbx格式模型文件存放在Unity 3D工程文件夹下的Assets文件夹中,打开工程文件时Unity 3D会自动将模型、材质、贴图及三维动画导入。导入完成后将Project面板下的模型文件通过拖拽的方式放到Scene中,调整模型位置并对模型进行相关属性的设置。

为了提高虚拟三维场景的真实性,需要在场景中添加灯光并对其进行设置。为完成系统中的人机交互操作,需要在场景中添加主摄像机等元素。

至此,虚拟场景的集成工作完成。

2.4 集成场景的进一步真实化

为了进一步提高模型的质感,提高场景的真实感,依据现实生活中真实物体的物理属性,可以在Unity 3D中对虚拟模型进行纹理贴图及Shader脚本的设置。Shader是随着可编程渲染管线诞生的,为渲染管线中的特定处理阶段提供算法。Unity 3D中内置了ShaderLab语言,可以设置模型材质和阴影。以法线贴图为例:

3 系统仿真培训功能的实现

3.1系统仿真培训功能的设定

该仿真系统的培训功能如下:

1)系统按照每项具体作业进行模块划分。每个作业模块将该作业过程中所包含的每个操作工序划分为一个培训点,并根据培训角色对培训点进行相关数据的分类存储。

2)每个模块均可以分角色登录(角色划分按照油田实际作业中作业工的职能来进行划分)。

3)用户登录后系统自动从数据库中调用该作业模块中该用户的操作工序培训试题,用户即可通过鼠标键盘等交互设备进行人机交互操作,完成该模块作业流程的仿真培训。

作业模块中包含的操作工序试题类型分为三大类:文字选择题、工具选择题和物体选择题。文字选择题主要考核作业工在该作业模块中符合作业流程的每一步操作工序内容。选择正确的操作工序后,如果该工序不需要工具,则直接进行正确的操作工序内容动作播放;如果该工序需要工具,则进行工具选择题的考核,需要用户选择正确的工具。用户选择完正确的工具后,进入物体选择题,选择该工具所要操作的具体物体。只有正确地完成了工具选择题和物体选择题,才可以进入正确的操作工序内容动作播放。重复以上过程直至完成整个作业流程。

4)作业模块培训完成后,自动计算用户成绩并提交进行数据信息的本地存储。

5)通过成绩上传功能完成用户培训成绩的服务器端入库操作。

6)管理人员通过系统信息维护网页来查看作业工的培训情况,进行数据的统计与分析,掌握培训情况并适时做出调整。

3.2 系统用到的关键技术

为完成系统的所有功能,在系统开发过程中用到了很多的关键技术,下面选取一些比较有代表性的进行阐述。

3.3.1 数据的存储与传输

本文所开发的系统为适合不同平台的单机版,系统所用的数据信息全部储存在服务器端的Oracle数据库中。在使用时用户在客户端先进行数据信息的下载,具体流程是将服务器端数据库中所需的数据(如用户信息、各模块的操作工序信息等)封装进行传输,再在客户端进行解析,并写入客户端加密的txt文件中,供客户端程序调用。

用户运行客户端仿真模块,培训完毕后相关数据存储到本地加密的txt文件中,在有网络连接时将该文件中的数据信息上传至服务器上,服务器对数据信息进行拆解,并存入服务器端的数据库中。

3.3.2 相机控制

仿真培训系统离不开视点的交互,通过视点交互才能保证用户正确地观察和操作场景中的物体,本系统实现时采用摄像机来模拟用户的视点,通过对相机位置及角度的控制来模拟人的视点变化。

在培训时,随着模块操作工序的变化,用户会随着场景中的工具或者角色的位置变化而移动视点,即需要调整摄像机的位置和角度。本系统在模拟该功能时充分考虑到方法的通用性,为摄像机设置父物体;这样当用户的视点需要变化时,只需要更改摄像机的父物体,并进行适当的摄像机角度调整,即可达到准确变换视点来观察物体的目的。方法描述如下:

3.3.4动画控制

Unity 3D平台可以引用max中的动画文件,但是在导出时动画和模型不能分离,模型不可以重复利用,并且会增大系统的内存占用。因此,本系统中对物体的动作控制大部分是通过直接在Unity 3D平台上编写功能代码的方式来实现的,只是这种功能代码只能针对某个具体物体进行,不可复用。因此,本系统在进行动画控制时还利用了Unity 3D提供的两种动画控制组件:Animation和Animator,这两种组件编写的动画可复用。

Animation是利用初始状态和终了状态来创建补间动画,如虚拟场景中物体的移动、旋转等简单操作。动画创建完成后命名保存,并在引用该动画的物体代码中直接调用,示例代码如下:

animation.CrossFade ("rotate");//播放名称为rotate的动画

Animator主要用来进行动画状态的切换,在本系统中用它来进行虚拟角色的动作切换:由跑步切换为站立,由站立切换为打手势等;这种动作切换比较连贯且不会有停顿的感觉。Animator和Animation结合,可以自由地对虚拟场景中的物体自由进行动画状态切换和动画播放。

4系统的多平台

Unity 3D具有良好的跨平台特性,,系统模块一次开发后,进行极少的代码调整及设置,可为适合不同平台的最终作品,如Windows、Android、Mac、Wii、iPhone和Windows phone 8平台。还可以通过Unity web player插件为网页版,运行于Mac 和Windows平台之上。

本文所开发的系统,在进行适合不同平台的代码调整后,通过适合不同版本的设置,最终为适合Windows系统的单机版exe格式,运行在PC机固定终端之上;同时也为适合Android系统的apk单机版格式,运行在安装Android系统的移动终端设备之上;无论哪种版本,运行结果均良好。

5 结束语

基于Unity 3D游戏引擎平台开发的油田安全作业仿真培训系统,逼真度高,运行稳定,交互性良好,其适宜为多平台可运行系统的特性弥补了当前油田培训系统运行平台单一的缺陷。于Android移动终端的版本具有不联网随时随地可培训的特点,深受在外作业油田作业工的喜爱。运行于两种平台之上的系统均能达到良好的培训效果,能有效地帮助油田作业工熟悉和掌握正确规范的油田作业流程,防止误操作引起的各种风险。同时,系统开发时完全依据油田作业规范进行,适宜于在油田范围内推广。

参考文献:

[1]董健. 一款基于Unity3D的移动平台游戏的设计[J]. 软件工程师,2014,17(12):34-35.

[2]曲宝,赵娅,赵琦. 基于Virtools的虚拟家居漫游系统的设计与实现[J]. 计算机工程与科学,2009,31(12):130-133.

[3]刘金明,马铁民,王娜. 基于Unity3D的电动机虚拟仿真展示平台设计[J]. 黑龙江八一农垦大学学报,2014,26(6):66-68.

[4]马瑞. 基于Unity3D的多平台三维虚拟数字校园的设计与实现[J]. 蚌埠学院学报,2014,3(4):13-16.

上一篇:基于B/S的农产品网络营销分析系统的设计 下一篇:百万红卫兵井冈山大串连