基于Unity3D的通信专业竞赛流程模拟演练系统

2014-07-18 18:41冯剑川杜轶焜伊鑫
电脑知识与技术 2014年13期

冯剑川 杜轶焜+伊鑫

摘要:针对院校各类型专业竞赛逐年增多但竞赛组织效率偏低的现状,基于Unity3D开发了通信专业竞赛流程模拟演练系统。该系统具有三维场景生成、可视化竞赛现场布置、竞赛流程模拟演练和方案报表生成等功能,有效提高了竞赛组织效率,具有广泛的应用前景和较高的推广价值。

关键词:Unity3D;竞赛流程;模拟演练

中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2014)13-2971-03

A Simulation System of Communication Competition Based on Unity3D

FENG Jian-chuan1, DU Yi-kun 2, YI Xin 1

(1.Bengbu Naval Petty Officer Academy, Bengbu 233012, China; 2.China Aerodynamics Research and Development Center with High-speed, Mianyang 621000, China)

Abstract: According to the actuality of the low organizational efficiency for all types of professional competitions which is increasing every year, , we design a professional communication competition process simulation training system based on Unity3D. The system has a three-dimensional scene generation, visualization contest site layout, process simulation and report generation capabilities. The work of this paper improves the efficiency of the organization of the competitions, with a wide range of applications and high promotional value.

Key words: Unity3D; competition process; simulation exercise

目前,院校组织的各类型专业竞赛逐年增多。通常,竞赛组织者根据竞赛总体要求,先期熟悉场地环境,之后进行竞赛准备方案撰写,主要包括场地布置、人员车辆分配调度、流程安排等,进而召集相关人员召开竞赛前期准备协调会,通报准备情况,部署竞赛组人员具体分工,之后按照时间节点检查落实情况。在竞赛前组织两至三次预演,熟悉整个流程,发现存在的问题并及时修正。

在组织竞赛过程中,普遍存在方案制定繁琐复杂、前期预演效率低下、人员组织协调难度大等诸多问题。因此,竞赛组织者迫切需要一种能够辅助其进行竞赛组织的工具。为解决以上问题,以通信类专业竞赛为切入点,该文提出“基于Unity3D的通信专业竞赛流程模拟演练系统”。Unity3D是一款专业3D引攀,具备跨平台发布、高效能优化、高性价比、AAA级画面渲染效果等特点。该引擎最大的优势是性价比高,并且可以发布成网页浏览的方式,不用下载客户端,就能直接体验[1]。该文所提出的通信专业竞赛流程模拟演练系统即基于该引擎开发。

1 系统的目标功能

1.1 可视化竞赛现场布置功能

改变以往“现场看、脑子想、纸上画”的场地布置方式,为竞赛组织者呈现三维可视化的竞赛现场,将竞赛所需器材设备用品等分门别类作为竞赛现场布置基本模块单元,使组织者可采用拖拽的形式进行竞赛场地可视化布置。同时,组织者可对布置的基本模块进行属性信息编辑,明确人员分工、对外协调和时间节点等信息,存入后台数据库,待实时查看最终效果且满意后,可将完整的场地布置信息报表输出。

1.2 竞赛流程模拟演练功能

改变以往大规模人员调动困难、组织协调复杂等竞赛前期模拟演练存在的问题,以竞赛时间轴为主线,在可视化竞赛现场的基础上,根据竞赛方案设定各时间节点人员位置编排、任务分工、行进路线、行进速率、到达时间等信息,先期在计算机上进行整个竞赛流程模拟演练,及时发现存在的问题,为进一步修改完善方案提供依据。待模拟演练效果满意后,可召集竞赛组人员在竞赛前期准备协调会期间进行流程展示宣讲[2]。

2 总体方案设计

2.1 系统总体构成

“通信专业竞赛流程模拟演练系统”由可视化场地布置和流程模拟演练两大模块构成,总体构成见图1。其中,可视化场地布置模块由三维场景生成、竞赛场地布置、场地方案报表生成等子模块组成。流程模拟演练模块由节点设定、模拟演练和流程方案报表生成等子模块组成。

图1 通信专业竞赛流程模拟演练系统总体构成

2.2 主要模块

“通信专业竞赛流程模拟演练系统”主要用于通信专业竞赛场地可视化布置,辅助竞赛组织者进行前期方案制定,并根据方案要求进行前期竞赛流程的模拟演练,以便于即时发现方案制定中存在的问题,从而有效提高竞赛组织效率。

1)可视化场地布置

该功能模块主要包含“三维场景生成”、“竞赛场地布置”、“场地方案报表生成”三个子模块。“三维场景生成”模块可实现通信专业竞赛场地的三维场景生成,为后续功能模块提供基础平台,这是整个系统可视化的基础;“竞赛场地布置”模块通过前期分析,将装设备、电脑、打印机、桌椅、标牌、横幅、指示牌等竞赛过程中所需器材设备用品等分别归类,生成竞赛用品布置基本模块单元库,基于前期生成的可视化三维竞赛场景,组织者可采用拖拽的形式进行竞赛场地可视化布置,实时查看最终效果。同时,组织者可对布置的基本模块进行属性信息编辑,明确人员分工、对外协调和时间节点等信息,存入后台数据库。在与竞赛组人员进行沟通交流的过程中,若发现不适宜之处,可及时修改相应属性信息,使方案更进一步趋于完善;在“场地方案报表生成”模块中组织者在竞赛场地布置完成查看最终效果且满意后,可将完整的场地布置信息报表按预定需求输出打印,方便查看。

2)流程模拟演练

该功能模块主要包含“节点设定”、“模拟演练”和“流程方案报表生成”三个子模块。“节点设定”模块以竞赛总体方案为依据,以竞赛时间轴为主线,在可视化三维竞赛场景的基础上,竞赛组织者可设定各时间节点人员的位置编排、任务分工、行进路线、速率等信息,并存入后台数据库;“模拟演练”模块在节点设定的基础上,竞赛组织者先期在计算机上进行整个竞赛流程的模拟演练,及时发现存在的问题并修改节点设定,使方案更进一步趋于完善;“流程方案报表生成”模块在流程模拟演练顺利结束后,竞赛组织者可将存于后台数据库中的竞赛流程方案报表输出打印。

3 系统实现

3.1 可视化竞赛现场三维场景生成

可视化竞赛现场通过对先期获得的竞赛现场建筑的CAD图纸进行相应整理,之后导入3dsMax软件实现场景建模。对三维模型的建立,主要依据实际场景本身的物理状态,即具体的大小尺寸,其原则就是在尽量减小面数的同时提高逼真度[3]。

3.2 竞赛场地布置和流程模拟演练

将3dsMax软件生成的可视化竞赛现场三维场景导入Unity3D引擎,在其中进行竞赛场地布置和流程模拟演练功能开发[4]。竞赛场地布置和流程模拟演练所需的大量人机交互功能均在该引擎中设计实现,具体如下:

1)利用刚体碰撞器物理引擎实现场景布置时的定位;

2)利用角色控制器进行视角转换以实现第一人称视角场景检视和第三人称视角流程模拟演练功能;

3)利用键盘鼠标自定义按键等输入控制事件实现人机交互;

4)利用路点功能设置人员行进路径以实现流程模拟演练;

5)利用MySQL实现场景布置信息和节点设定信息的后台数据库存储并报表输出。

3.3 方案报表生成

由于Unity3D本身提供的持久化数据仅能存取少量数据,故本系统采用第三方MySQL数据库存储场地布置方案和流程设定方案信息。MySQL是一个关系型数据库管理系统,相较于SQLServer数据库,其体积小、速度快、总体拥有成本低[5]。

为生成相应方案报表,系统采用MySQL数据库中自带的MySQL For Excel插件实现,该插件作为加载项嵌入Excel软件中,可将MySQL数据库中存储的信息导出至Excel表格中,方便后期打印输出,辅助竞赛组织者进行前期方案生成。

3.4 关键技术实现

1)竞赛场地布置

在真3D环境下进行竞赛场地布置,具有较好的沉浸式真实感。如何实现真3D环境下物品摆放的三维坐标精确控制,是竞赛场地布置功能需要着重解决的问题。为使组织者可采用拖拽的方式进行竞赛场地可视化布置,需要相应的拖拽算法,主要解决如何将鼠标的二维坐标移动转换成三维世界的移动向量,该算法流程如下图2所示。

图2 Unity3D拖拽功能实现流程

2)模拟演练

流程模拟演练可鉴定通用塔防游戏的设计思路[6],通过创建二维数组保存场景信息,摄像机始终由上至下俯视整个场景,自定义路径节点引导人员按规定速率行动,并实时记录行动耗时信息。为使路径节点人员能够按设定程序依次有序行进演练,自定义路径节点信息设定完毕后,需要对设定信息进行冲突检测,防止逻辑混乱,出现一人在同一时间分处不同两地的情形。设置人员寻路的流程如图3所示。

图3 设置人员寻路流程

4 结束语

本系统初期可满足院校通信类专业竞赛流程模拟演练,使竞赛组织者可进行竞赛场地可视化布置,有效辅助其进行前期方案制定。同时,可依照组织者的需求进行竞赛前期的整体流程模拟演练,以便于即时发现方案制定中存在的问题,从而有效提高竞赛组织效率。此外,该系统具有较好的推广性,结合各院校其它专业竞赛具体要求进行二次开发,即可满足其专业竞赛的模拟演练功能。后期若构建全校的三维模型,可将该系统推广到全校大型活动时的流程模拟演练。

参考文献:

[1] 王星捷,李春花.基于Unity3D平台的三维虚拟城市研究与应用[J].计算机技术与发展,2013(4):241-244.

[2] 张博伦,王宁,马慧敏.有限状态机在模拟演练系统中的应用[J].计算机系统应用,2013(2):100-104.

[3] 高月.3ds Max建筑模型完全学习手册[M].科学出版社,2010:97-105.

[4] 宣雨松.Unity3D游戏开发[M].北京:人民邮电出版社,2012:105-140.

[5] 朱一凡,陈曦.基于PHP语言的MySQL数据库的多种输出方案[J].无线互联科技,2013(8):58-59.

[6] 金玺曾.Unity3D手机游戏开发[M].北京:清华大学出版社,2013:210-218.

2)流程模拟演练

该功能模块主要包含“节点设定”、“模拟演练”和“流程方案报表生成”三个子模块。“节点设定”模块以竞赛总体方案为依据,以竞赛时间轴为主线,在可视化三维竞赛场景的基础上,竞赛组织者可设定各时间节点人员的位置编排、任务分工、行进路线、速率等信息,并存入后台数据库;“模拟演练”模块在节点设定的基础上,竞赛组织者先期在计算机上进行整个竞赛流程的模拟演练,及时发现存在的问题并修改节点设定,使方案更进一步趋于完善;“流程方案报表生成”模块在流程模拟演练顺利结束后,竞赛组织者可将存于后台数据库中的竞赛流程方案报表输出打印。

3 系统实现

3.1 可视化竞赛现场三维场景生成

可视化竞赛现场通过对先期获得的竞赛现场建筑的CAD图纸进行相应整理,之后导入3dsMax软件实现场景建模。对三维模型的建立,主要依据实际场景本身的物理状态,即具体的大小尺寸,其原则就是在尽量减小面数的同时提高逼真度[3]。

3.2 竞赛场地布置和流程模拟演练

将3dsMax软件生成的可视化竞赛现场三维场景导入Unity3D引擎,在其中进行竞赛场地布置和流程模拟演练功能开发[4]。竞赛场地布置和流程模拟演练所需的大量人机交互功能均在该引擎中设计实现,具体如下:

1)利用刚体碰撞器物理引擎实现场景布置时的定位;

2)利用角色控制器进行视角转换以实现第一人称视角场景检视和第三人称视角流程模拟演练功能;

3)利用键盘鼠标自定义按键等输入控制事件实现人机交互;

4)利用路点功能设置人员行进路径以实现流程模拟演练;

5)利用MySQL实现场景布置信息和节点设定信息的后台数据库存储并报表输出。

3.3 方案报表生成

由于Unity3D本身提供的持久化数据仅能存取少量数据,故本系统采用第三方MySQL数据库存储场地布置方案和流程设定方案信息。MySQL是一个关系型数据库管理系统,相较于SQLServer数据库,其体积小、速度快、总体拥有成本低[5]。

为生成相应方案报表,系统采用MySQL数据库中自带的MySQL For Excel插件实现,该插件作为加载项嵌入Excel软件中,可将MySQL数据库中存储的信息导出至Excel表格中,方便后期打印输出,辅助竞赛组织者进行前期方案生成。

3.4 关键技术实现

1)竞赛场地布置

在真3D环境下进行竞赛场地布置,具有较好的沉浸式真实感。如何实现真3D环境下物品摆放的三维坐标精确控制,是竞赛场地布置功能需要着重解决的问题。为使组织者可采用拖拽的方式进行竞赛场地可视化布置,需要相应的拖拽算法,主要解决如何将鼠标的二维坐标移动转换成三维世界的移动向量,该算法流程如下图2所示。

图2 Unity3D拖拽功能实现流程

2)模拟演练

流程模拟演练可鉴定通用塔防游戏的设计思路[6],通过创建二维数组保存场景信息,摄像机始终由上至下俯视整个场景,自定义路径节点引导人员按规定速率行动,并实时记录行动耗时信息。为使路径节点人员能够按设定程序依次有序行进演练,自定义路径节点信息设定完毕后,需要对设定信息进行冲突检测,防止逻辑混乱,出现一人在同一时间分处不同两地的情形。设置人员寻路的流程如图3所示。

图3 设置人员寻路流程

4 结束语

本系统初期可满足院校通信类专业竞赛流程模拟演练,使竞赛组织者可进行竞赛场地可视化布置,有效辅助其进行前期方案制定。同时,可依照组织者的需求进行竞赛前期的整体流程模拟演练,以便于即时发现方案制定中存在的问题,从而有效提高竞赛组织效率。此外,该系统具有较好的推广性,结合各院校其它专业竞赛具体要求进行二次开发,即可满足其专业竞赛的模拟演练功能。后期若构建全校的三维模型,可将该系统推广到全校大型活动时的流程模拟演练。

参考文献:

[1] 王星捷,李春花.基于Unity3D平台的三维虚拟城市研究与应用[J].计算机技术与发展,2013(4):241-244.

[2] 张博伦,王宁,马慧敏.有限状态机在模拟演练系统中的应用[J].计算机系统应用,2013(2):100-104.

[3] 高月.3ds Max建筑模型完全学习手册[M].科学出版社,2010:97-105.

[4] 宣雨松.Unity3D游戏开发[M].北京:人民邮电出版社,2012:105-140.

[5] 朱一凡,陈曦.基于PHP语言的MySQL数据库的多种输出方案[J].无线互联科技,2013(8):58-59.

[6] 金玺曾.Unity3D手机游戏开发[M].北京:清华大学出版社,2013:210-218.

2)流程模拟演练

该功能模块主要包含“节点设定”、“模拟演练”和“流程方案报表生成”三个子模块。“节点设定”模块以竞赛总体方案为依据,以竞赛时间轴为主线,在可视化三维竞赛场景的基础上,竞赛组织者可设定各时间节点人员的位置编排、任务分工、行进路线、速率等信息,并存入后台数据库;“模拟演练”模块在节点设定的基础上,竞赛组织者先期在计算机上进行整个竞赛流程的模拟演练,及时发现存在的问题并修改节点设定,使方案更进一步趋于完善;“流程方案报表生成”模块在流程模拟演练顺利结束后,竞赛组织者可将存于后台数据库中的竞赛流程方案报表输出打印。

3 系统实现

3.1 可视化竞赛现场三维场景生成

可视化竞赛现场通过对先期获得的竞赛现场建筑的CAD图纸进行相应整理,之后导入3dsMax软件实现场景建模。对三维模型的建立,主要依据实际场景本身的物理状态,即具体的大小尺寸,其原则就是在尽量减小面数的同时提高逼真度[3]。

3.2 竞赛场地布置和流程模拟演练

将3dsMax软件生成的可视化竞赛现场三维场景导入Unity3D引擎,在其中进行竞赛场地布置和流程模拟演练功能开发[4]。竞赛场地布置和流程模拟演练所需的大量人机交互功能均在该引擎中设计实现,具体如下:

1)利用刚体碰撞器物理引擎实现场景布置时的定位;

2)利用角色控制器进行视角转换以实现第一人称视角场景检视和第三人称视角流程模拟演练功能;

3)利用键盘鼠标自定义按键等输入控制事件实现人机交互;

4)利用路点功能设置人员行进路径以实现流程模拟演练;

5)利用MySQL实现场景布置信息和节点设定信息的后台数据库存储并报表输出。

3.3 方案报表生成

由于Unity3D本身提供的持久化数据仅能存取少量数据,故本系统采用第三方MySQL数据库存储场地布置方案和流程设定方案信息。MySQL是一个关系型数据库管理系统,相较于SQLServer数据库,其体积小、速度快、总体拥有成本低[5]。

为生成相应方案报表,系统采用MySQL数据库中自带的MySQL For Excel插件实现,该插件作为加载项嵌入Excel软件中,可将MySQL数据库中存储的信息导出至Excel表格中,方便后期打印输出,辅助竞赛组织者进行前期方案生成。

3.4 关键技术实现

1)竞赛场地布置

在真3D环境下进行竞赛场地布置,具有较好的沉浸式真实感。如何实现真3D环境下物品摆放的三维坐标精确控制,是竞赛场地布置功能需要着重解决的问题。为使组织者可采用拖拽的方式进行竞赛场地可视化布置,需要相应的拖拽算法,主要解决如何将鼠标的二维坐标移动转换成三维世界的移动向量,该算法流程如下图2所示。

图2 Unity3D拖拽功能实现流程

2)模拟演练

流程模拟演练可鉴定通用塔防游戏的设计思路[6],通过创建二维数组保存场景信息,摄像机始终由上至下俯视整个场景,自定义路径节点引导人员按规定速率行动,并实时记录行动耗时信息。为使路径节点人员能够按设定程序依次有序行进演练,自定义路径节点信息设定完毕后,需要对设定信息进行冲突检测,防止逻辑混乱,出现一人在同一时间分处不同两地的情形。设置人员寻路的流程如图3所示。

图3 设置人员寻路流程

4 结束语

本系统初期可满足院校通信类专业竞赛流程模拟演练,使竞赛组织者可进行竞赛场地可视化布置,有效辅助其进行前期方案制定。同时,可依照组织者的需求进行竞赛前期的整体流程模拟演练,以便于即时发现方案制定中存在的问题,从而有效提高竞赛组织效率。此外,该系统具有较好的推广性,结合各院校其它专业竞赛具体要求进行二次开发,即可满足其专业竞赛的模拟演练功能。后期若构建全校的三维模型,可将该系统推广到全校大型活动时的流程模拟演练。

参考文献:

[1] 王星捷,李春花.基于Unity3D平台的三维虚拟城市研究与应用[J].计算机技术与发展,2013(4):241-244.

[2] 张博伦,王宁,马慧敏.有限状态机在模拟演练系统中的应用[J].计算机系统应用,2013(2):100-104.

[3] 高月.3ds Max建筑模型完全学习手册[M].科学出版社,2010:97-105.

[4] 宣雨松.Unity3D游戏开发[M].北京:人民邮电出版社,2012:105-140.

[5] 朱一凡,陈曦.基于PHP语言的MySQL数据库的多种输出方案[J].无线互联科技,2013(8):58-59.

[6] 金玺曾.Unity3D手机游戏开发[M].北京:清华大学出版社,2013:210-218.