APP下载

基于虚拟现实技术的地震演练系统设计与实现

2020-02-03李敏张世遨钱珣

电子技术与软件工程 2020年19期
关键词:演练虚拟现实建模

李敏 张世遨 钱珣

(绵阳职业技术学院 四川省绵阳市 621000)

1 引言

地震是地球运动的常态。我国位于世界两大地震带之间,地震断裂带十分活跃。唐山大地震、汶川大地震造成人员死伤和财产损失都十分惨烈。由于地震的不可预知性和不确定性,居安思危,防灾减灾是地震灾难管理的首要工作。教育部要求学校组织学生进行紧急疏散训练,只有当疏散演练普遍化、规范化、长期化时,才能使师生形成条件反射,才能在灾难发生时形成自觉的行为反应。

目前,地震演练主要的训练方式有三种:

(1)群体性的紧急疏散演练。然而,疏散演练无法模拟实际地震时的场景,大多数学生体会不到地震时的紧张感,紧急疏散很难达到应有的效果。不仅如此,学校组织紧急疏散时要投入大量的人力保证学生的安全,一旦组织不到位,很容易发生踩踏事件,从而导致危险发生[1]。

(2)虚拟地震屋。由地震小屋实体、液压运动平台、控制台并辅以声效光影,为演练者展示一个立体的地震环境,使演练者与环境融为一体,全方位展示地震的整个过程,让演练者感受地震。操作人员通过控制台操作液压运动平台,从而模拟出地震效果,包括横波、纵波及颠簸等[2],在很大程度上提高了演练者的心理素质。自“5.12”汶川大地震后,我国各地多个城市建设的防灾减灾教育馆、博物馆都有这样的地震体验馆,如中国地震科普教育馆、北京地震与建筑科学教育馆、四川省防灾减灾教育馆等等。

然而,建造这种地震屋需要大量的资金和空间,需要专门的操作人员,一般一次只能容纳10-15 人。由于时间空间的限制,到现场进行训练的人数和训练次数有限,不能达到强化训练的目的。

(3)虚拟现实技术,又称VR (Virtual Reality,VR)技术。通过虚拟现实技术生成一个接近真实的虚拟环境,提供视觉、听觉、触觉等感官的模拟及运动感知模拟,让演练者借助一些设备与虚拟环境中的对象进行交互,实时、自由地观察三维空间内的事物,产生身临其境的感觉。演练者在高真实感和可交互的虚拟地震场景中进行地震逃生与疏散演练,不受时间空间的限制,多次重复强化演练,实现安全,便捷,廉价的演练效果。

2 地震演练系统功能

本系统利用 Unity3D 引擎和HTCVIVE 设备,结合虚拟现实技术和3D 建模技术,设计并开发完成了类似于游戏体验的虚拟现实地震演练系统。系统构建了虚拟校园场景和虚拟角色,采用第一人称视觉进行地震和余震模拟,虚拟人群行为模拟,演练者行动模拟,逃生及救助行为模拟,给用户带来沉浸式的体验和丰富的交互方式。

图1:系统流程图

图2:观看地震避险动画

图3:漫游校园

图4:VR 操作提示

科学研究发现,地震发生时,至关重要的是要有清醒的头脑和镇静自如的态度,要避免惊慌,科学避险[3]。可利用的避险时间是10 -30 秒的短暂时间。由于时间紧迫,每秒都是自救的关键,容不得半点迟疑。在地震及余震逃生过程中,开启生命倒计时,用户必须在10 秒之内安全躲避或逃生,如果演练失败,未能逃入临时安全区(厕所,室内三角形区域)之类的安全躲避点,不能进入下一个场景。系统构建了教室和寝室两个地震虚拟场景,分别引导演练者进行不同的地震逃生演练,系统流程如图1所示。

(1)用户戴好 VR 设备后,进入虚拟世界。首先观看一段地震避险动画,如图2所示,然后以无人机的第三人称视觉方式漫游校园,按照光圈提示进入一栋教学楼四楼的一间教室,如图3所示。

图5:地震避险答题测试

图6:教室逃生

图7:走廊逃生

(2)此时演练者进入第一人称视觉模式,在用户界面提示下,如图4所示,熟悉虚拟环境中手柄交互操作的方法,进行地震避险答题测试,如图5所示。

(3)当测试成绩大于60 分之后,虚拟地震开始,虚拟角色行为引导正确躲避及逃生,语音引导第一人称演练者正确躲避及逃生,余震发生时,检验演练者沿着教室、走廊、楼梯的逃生路径及方法,如图6 和图7所示。

(4)逃生至操场后,对受伤同学给予救助。如图8 和图9所示。

(5)系统提供了语音引导,当演练者出现不正确的行为,如演练者在地震时靠近教室窗户,语音提示“当前教室是四楼,不能跳窗”;如演练者在寝室遭遇地震时,语音提示“去厕所、四周墙角或者床下躲避”;看见受伤的同学,语音提示“寻找绷带,帮助受伤的同学”,如图10所示等等。系统提供了行为引导,当教室地震时,虚拟角色的正确躲避动作引导;当演练者从建筑物逃生出来,虚拟环境中有红色箭头指引,指引演练者逃往空旷的广场或者操场,如图11所示。

图8:取绷带

图9:包扎受伤同学

3 地震演练系统实现

3.1 场景及角色设置

虚拟现实演练的主要特点是沉浸性、交互性和自主性,沉浸感主要来自视觉和听觉,视觉由场景中模型的精准、光影材质贴图的真实感来体现,听觉方面,主要根据演练进度播放不同的背景音乐和语音提示来实现。

本系统使用 3dsMax 建模,包括校园建筑、操场、地形、虚拟人物等,建模分为以下几个步骤:

3.1.1 图片收集和处理

通过拍摄,获取校园的建筑、地形等场景所需要的材质和贴图,使用 Photoshop 对图片素材进行处理。

3.1.2 场景建模

图10:语音引导

图11:行为引导

在 3dsMax 中对校园建筑图及地形图进行建模,根据建筑图片、建筑的AutoCAD 源文件及测量的地形图来保证场景的真实比例。为了保证模型后期导入unity3D 中的显示正确,模型不能有超过四边面的非法面和非法点。为确保系统运行时的流畅性,场景中的所有对象在保障真实度的情况下尽可能进行点线面的优化,如采用精简的单面建模、删除模型中遮挡隐藏的面、去除模型中相互交错的模型元素;细节(如门窗)用简单面片建模,后期用贴图或者镂空贴图表现等方法。

3.1.3 虚拟角色建模

本系统演练者是第一人称视觉,为了进行地震人物逃散模拟及震后互救行为模拟,系统设置了低模的虚拟角色,进行了角色的建模、骨架绑定、蒙皮和动作设置。角色的动作包括站立、行走、交流、蹲下、攀谈、包扎等,部分动作如图12所示。

3.1.4 调整UV 贴图

由于unity3D 只默认 3ds Max 的标准材质,将各类模型结合UV 贴图(UVWMap),综合调整贴图纹理的方向、大小及清晰度,对于纹理坐标精度要求高的模型,需要分UV(Unwrap UVW)再调整贴图。为了后期在unity3D 中方便导入及管理,模型和贴图的名称必须规范且对应。

3.1.5 导出三维模型

模型完成后,将模型在3dsMax 中轴坐标居中,同时将场景的世界坐标归零,导出成FBX 文件时,需要进行正确的贴图和动画导出参数设置。

3.1.6 材质光影设置

将模型导入unity3D 后,在引擎中对材质的属性进行细化,包括材质的反射、折射两类属性,通过金属值、不透明度、高光、粗糙度及折射率等参数进行设置;为了使场景光照充分、阴影投射正确,采用全局光照,使用平行光、聚光灯、点光源模拟自然光照效果,使VR 场景光影有层次感和真实感。

3.2 交互控制技术

本演练系统使用 HTC VIVE 的VR 头盔与手柄的操作实现人机交互。HTC VIVE 以激光定位技术追踪头盔和手柄的位置,进行用户在真实空间里走动的动作捕捉与空间定位,通过相关的追踪设备获取相关信息,然后由后续的程序处理这些信息,从而获得所有物体的空间信息,最终通过对所有空间信息的整合来捕捉使用者的动作,而虚拟环境会根据不同的动作做出相应的反馈,由此完成用户与演练系统之间的交互[4]。

VR 头戴式显示器能查看具有沉浸感的周围环境以及改变用户行走的方向。按下手柄上的滑动面板及侧键可以使演练者选择答题、前后左右移动、开门、上下楼梯等,扣下手柄上的扳机可以发射射线、答题、拿取实物等。

3.2.1 VR 的人机交互实现

演练系统的交互在 Unity 3D 中利用插件SteamVR 和 VRTK 实现,SteamVR 插件实现摄像机的视角功能,其自带的预制体和程序能够检测物体是否被用户凝视、通过手柄发出一条激光束、瞬移物体、手柄集成脚本以及 SteamVR 核心脚本等。

VRTK 插件是 SteamVR 插件的扩展,VRTK 的重要功能包括发出射线、手柄事件、抓取物体、被抓取物体、触碰物体、轮廓高亮等属性操作[5]。

3.2.2 采用柏林噪声模拟地震效果

地震发生时,房屋摇晃、物体坠落、人群惊慌躲避,为了逼真表现地震效果,本系统采用柏林噪声(perlinnoise)进行地震模拟,柏林噪声是一个非常强大的算法,经常用于程序生成随机内容,在游戏、电影等多媒体领域广泛应用,算法发明者Ken Perlin 也因此算法获得奥斯卡科技成果奖[6]。在unity 中,perlinnoise 是Mathf 下的一个函数,本系统自定义NoiseGen 类,调用柏林噪声模拟地震,并把它封装起来,再在wiggle 里具体调用,运行后的地震效果如图13所示,主要代码如下:

图12:虚拟角色动作图

图13:地震摇晃效果图

图14:上下楼梯

3.2.3 使用json 解析地震逃生答题

JSON(JavaScript Object Notation,JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率[7]。

本系统编写了一个解析json 字符串的代码,调用了unity 的读取TXT 文件的类TextAsset,来实现地震逃生题目TXT 文件及答案的读取,同时将答案比较及评分结果、演练者在地震、余震的逃生路径及时间记录保存至TXT 文件,作为后续演练者行为分析的原始数据。

3.2.4 使用move 函数实现移动功能

本演练系统中,移动是最常见的交互,本系统利用控制器面板返回的Vector3 编写了一个move 函数,让所有的移动都调用该函数。第一人称视觉上下楼梯时,为了更逼真模拟上下楼梯有视野变化的效果,将每一级台阶做成单独的模型,且设置为单独的立方体碰撞体,整段楼梯就不会显示为一个斜坡,从而达到视野变化的效果,如图14所示,主要代码如下:

4 结语

本系统主要用于训练用户的地震逃生技能,通过实验,结果表明,利用虚拟现实技术构建防震安全虚拟训练,能有效弥补传统的文字视频等防震安全教育中的不足,提高受教育者的认知和理解程度;能解决校园真实地震演练中设备需求多、人员需求广、演练成本高、物资消耗多、开展频率低、训练效果差、安全系数低的问题;能克服时空障碍,建立灵活的学习过程,构建一种真正的以学生为中心的虚拟学习环境;能提高学生的安全逃生系数,提高紧急疏散的效果;能促进学生相互协作、相互帮助。

《国家教育事业发展“十三五”规划》强调要全力推动信息技术与教育教学深度融合,综合利用互联网、大数据、人工智能和虚拟现实技术探索未来教育新模式。随着虚拟现实技术成为新一代信息技术的代表,本系统将对学生安全教育起到积极的作用。

猜你喜欢

演练虚拟现实建模
首次演练
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
REALITY BITES
虚拟现实技术向科幻小说借灵感
未雨绸缪演练忙
三元组辐射场的建模与仿真
浅谈虚拟现实