基于VR 的地震避险训练系统设计与实现
2020-12-28阿那尔
李 琨,郝 亮,阿那尔
(内蒙古自治区地震局,内蒙古 呼和浩特 010010)
0 引言
一方面,我国受到亚欧和环太平洋两大地震带的交叉影响,有着十分活跃的地震活动,仅在2008—2017年间,就有汶川、玉树、雅安、于田、九寨沟等地震发生,死亡、失踪人数达10 万之众。另一方面,随着我国城镇化水平不断提高,人口密集场所越来越多,一旦发生破坏性地震,如何紧急避险,如何将人员快速转移至安全地带,将是保证生命安全的重要问题。而日常科学、合理的地震避险训练是解决这一问题的必要手段。例如,四川绵阳安县桑枣中学,校长在平时就非常重视应急疏散训练,在汶川地震发生时, 2200 多名学生和上百名老师在 1 分 36 秒内撤离教室,无一人伤亡[1]。
1 地震避险训练现状
现阶段地震应急避险培训主要有两个方面:
(1) 书面、人员或设备讲解,主要途径有发放宣传册、展馆讲解、地震安全员入校或进单位讲解。
局限性:被动、枯燥,缺乏互动性和融入感,难以触动身体和心理的应激反应。同时,因为场馆和专业讲解人员少,社会覆盖面小。
(2) 组织灾难避险训练,联合相关主管部门组织各单位进行灾难疏散、避险训练。
局限性:地震准确预报是公认的世界难题,唯一一次因准确预报而避免伤亡的是1975年2月4 日发生在我国的海城地震,其余破坏性地震在世界范围内均未准确预报,因此,就现阶段来说,熟练掌握地震应急避险技能更有利于规避地震风险。在对目前公众地震应急需求的调查中,只有3.46%的受访者认为地震预报在规避地震风险中具有更重要的地位,而79.24%的受访者认为掌握应急避险技能比依赖地震预报更有利于规避地震风险[2]。而另一方面,传统地震应急避险训练,由于前期组织工作量大,需要停工、停课,组织成本、时空成本过高,现实中往往会尽量压低训练次数,甚至不训练。
2 虚拟现实技术在地震避险训练中的显著优势
2.1 虚拟现实的定义
虚拟现实(Virtual Reality,简称VR),由美国人Jaron Lanier 在1980年代提出。由计算机及外围接口设备组成,在计算机上生成图形系统,通过接口设备实现控制、交互,而组成的三维沉浸系统。
2.2 虚拟现实的特性
早在 1993年,Burdea G 和 Coiffet PZHI就提出了虚拟现实3I 特征的“三角形”模型。
图1 虚拟现实特性Fig.1 Characteristics of virtual reality
沉浸性:即用户在系统中所感知到的真实感。越是理想的系统越使用户真假难分。
交互性:即系统对用户做出的反馈。越是理想的系统其反馈越及时、自然而全面。
想象性:即用户在系统中的能动性。越是理想的系统越能够使用户主动的探索,寻找答案,从而形成新的认知。
2.3 显著优势
相较于传统地震避险宣传教育,由于VR的特点,使得场景中的信息表达具有高逼真度、高认知率、信息展示效果突出,任何互动行为都有即时的反馈,有一定的效果优势。
基于VR 的地震避险训练,没有地点和时间的限制,只要具备软硬件条件即可实施,便于在科普馆、社区文化站、学校等地点布设,甚至可以自行下载,随时训练,在时空灵活性上有优势。
显著降低组织者的组织成本、参与者的参与成本及实际耗材的使用成本,被培训者可以根据需要,随时巩固培训效果,相较于传统应急避险训练,具有显著的成本优势。
对于倒塌、火灾、泄露等现实中不变模拟、实训的场景,可以在虚拟现实中模拟实现,进行培训。
通过虚拟现实中被训者的表现和反馈,可以及时对培训效果进行评价,并可对系统及时修正、改进。
2.4 VR 技术在国内外地震灾害领域的应用
有希腊研究员在2006年,就使用基于计算机的VR 技术开发了一套模拟地震环境的儿童安全教育系统,实践结果表明,该系统对儿童(甚至智障儿童),能有效的降低灾难突发时,他们的恐慌程度;在2015年6 月,美国RYOT公司制作了首部基于VR 自然灾害纪录片,该片重现了尼泊尔7.8 级地震中巴克塔普尔和新图巴尔恰克两个重灾区地震来临时的场景,使观者仿佛置身于崩塌的碎石和废墟中;在2018年纪念汶川地震十周年时,中国国家地震局使用VR 技术制作了汶川地震的纪录片,重现了地震现场的悲怆与震撼,再现了抗震救援的众志成城和从重建到重生的不屈精神。近年来随着VR 技术的不断成熟,在自然灾害、消防安全、矿山救援、实验室安全等诸多方面都得到了广泛的应用,展现了其有效性和广阔的前景。
3 基础环境及硬件平台
本系统的开发环境为 Unity3D 引擎 ,硬件选用HTC VIVE 作为虚拟实现设备,运行环境为Steam VR Plugin。
Unity3D 是 Unity Technologies 公司开发的跨平台的VR 开发引擎,具有一键发布跨平台的特性,具备强大的资源整合和综合编辑能力,拥有丰富的光影和物理特效。
HTC VIVE 是 HTC 公司和 Valve 公司共同研发的VR 实现设备,依托于Valve 公司的Steam VR 技术实现沉浸式的交互体验。其由头盔、两个手柄和两个定位器组成(图2)。头盔视角110°,刷新率90 赫兹,单屏分辨率1080×1200,双屏分辨率2160×1200。两个手柄均配有红外传感器和五个按钮,传感器用于追踪手柄位置及位移,按键详见图5。两个定位器均采用Light House 技术,用于扫描用户位置及姿态。
Steam VR Plugin 是由 Valve 公司基于Unity3D 针对头戴VR 设备开发的插件,其通过对头戴设备系统的管理和控制实现与Unity3D场景的交互。
图2 虚拟实现设备Fig.2 Virtual implementation device
4 基于 Unity3D 的地震避险训练系统的开发
系统的开发可分为三个阶段,依次为虚拟建模阶段,场景搭建阶段,功能实现阶段,在虚拟建模阶段主要包括三维建模,标签贴图,动画制作模块;在场景搭建阶段主要包括场景渲染,音效加载,场景控制;功能实现阶段主要包括碰撞触发,角色动作,剧情任务等。流程如图3 所示。
图3 虚拟地震避险系统开发流程图Fig.3 Development flow chart of Virtual Earthquake avoidance system
4.1 虚拟建模
虚拟建模主要负责场景要素设计与制作,包括三维建模、标签贴图、动画制作。
三维建模是在Maya 软件中对训练系统中所需要的场景、物体等进行几何建模,包括场景的设计、布局以及场景内物体的设计。
标签贴图是在PhotoShop 里对二维图形图像进行处理,绘制室内外装饰、标识、建筑物玻璃、浮雕等标签贴图,如黑板、相框、国旗、玻璃等。
在3DSMax 里创建虚拟训练的相关动画,如通过关键帧控制物体移动或沿某个轴旋转,以添加物体滑动和倾倒的效果;对选中对象添加噪波位置并设定相关参数,以添加振动的效果等。
模型建成后压缩并生成FBX 文件导入Unity3D 中,在模型导入Unity3D 时,三维建模软件中重复出现的模型,导入Unity3D 中以后会被识别成不同的网格信息(Mesh),且Mesh Filter 组件只能够载入单个Mesh,所以,本例是用一个文件导出所有要用到的Mesh,之后在Unity3D 中分别调用。
4.2 场景搭建
场景搭建主要负责对三维模型和动画进行视觉和音效的渲染,并对场景加载和状态进行管理。
视觉渲染即场景渲染是指三维模型的光照、阴影,随着角色的移动实时呈现各个角度的场景效果,通过 Occlusion Culling 对阴影、光照、材质等场景进行优化。通过粒子系统来模拟粉尘、火花、地面龟裂等特效,如图4 所示。
图4 场景渲染图例Fig.4 Scene rendering legend
声音加载是通过为主摄像机添加audio listener 组件,同时对场景和物体对象添加audio source 组件实现,如地震的轰鸣、桌椅滑动和倾倒声音、玻璃破碎的声音和其他警示音等。
场景控制:每一个场景都是都是一个独立的.unity 文件,对其进行编号并加载到ScenesIn Build 列表中,通过使用 Application 类的静态成员函数 Load Level() 可以实现场景加载。对Unity3D 中Time 类的 timeScale 属性进行控制,以实现对游戏状态的管理。
4.3 功能实现
在场景搭建完成后,需要控制角色的动作以触发剧情的发展,从而实现系统的功能,在这个过程中贯穿着角色动作、剧情任务和碰撞触发三个模块。
在角色动作中我们选择了HTC VIVE 的头盔和手柄替代了传统的键盘和鼠标,以增强沉浸效果。通过头盔的扭转可以观察周围环境和确定行动的方向,通过碰撞检测以确定第一人称角色和周围物体对象的关系,通过手柄按钮调用触发功能以实现抓取和事件触发(图5)。具体实现过程如下:
角色动作在Steam VR Pugin 和VRTK 环境中实现,首先将Steam VR Pugin 和VRTK 插件导入Unity3D 中;将用户至于场景靠近中心位置区域,根据场景模型的大小调整Steam VR Pugin 预制件 [Camera Rig], [Camera Rig] 的子类 Camera(head)、Contorller(left)、Controller(right),分别对应用户头部显示器和左右手柄。设置好 [Camera Rig] 后,即可对场景进行360度观察;在手柄对象上挂载VRTK 的 VRTK_ControllerEvents 脚本,对手柄按钮事件进行监听,手柄键位如图5-②所示,在 [Camera Rig]挂载 VRTK 的 VRTK_HeightAdjustTeleport 脚本负责瞬间移动的执行,Simple Pointer 脚本从控制器尾部发出一个有色光束来模拟激光束(默认Grip 键激活),确定移动的目标点后直接改变[CameraRig] 的坐标实现瞬间移动;VRTK_InteractTouch 脚本负责触碰功能,VRTK_Interact-Grab 负责抓取功能(Tigger 设为抓取激活键);以调用 GameObject.SetActive 的方法对二维菜单进行激活(Application Menu 键)。
图5 手柄键位图Fig.5 Handle button diagram
剧情任务包括两个方面,一方面负责不同剧情场景按顺序执行,一个剧情结束后,按编号顺序进入到下一个剧情,直到所有剧情执行完,任务结束。另一方面,管理每一个剧情中道具的使用,消息提示,事件等。流程如图6所示。
图6 剧情任务流程图Fig.6 The flow chart of plot task
碰撞触发主要负责碰撞的检测和触发,碰撞检测即感知场景中物体对象的存在,通过盒式碰撞和基于网格的MeshCollider,来实现角色与周围物体对象的碰撞检测。将VRTK 的VRTK_InteractableObject 脚本挂载在物体对象上,并调整相应参数,以实现相应物体的抓取和功能触发。
5 评估与讨论
在测试环节中,根据培训方式及测试内容,把36 个学员均分成A、B 两组进行相同时间的学习,A 组发放宣传册书面学习,B 组进入虚拟系统学习,两小时后,系统更换同类别不同的场景,并删除标签和语音提示进行测试,A组有6 人(占30%) 通过全部测试平均用时5分12 秒,其余学员没通过测试的环节主要发生在未进行头部保护、靠近易破碎区域、靠近塌陷区域、靠近导电的水流。B 组有13 人(占72.2%) 通过全部测试,平均用时3 分32 秒,5 名没有通过测试的学员中3 例为未弯腰前行。通过A、B 组实验来看,虚拟系统相对于传统书面学习,无论在通过成功率还是逃生用时方面均有大幅提高,但也反映出弯腰前行提示度不够,需进一步加强。
根据年龄及受教育层次,把另外36 个学员均分为C、D 两组,一组为8-14 周岁的小学和初中学生;另一组学员年龄为16-52 周岁,学历为高中至硕士。C、D 两组进行相同时间的学习,两小时后,系统更换同类别不同的场景,并删除标签和语音提示进行测试,C 组通过人数为 13 人(72.2%),平均通过时间 3 分 21秒;D 组通过人数为14 人(77.8%),平均通过时间3 分30 秒。两组结果比较接近,说明通过系统进行训练后,不同年龄段,不同受教育水平的学员都能取得较好的成绩。
测试结果表明,虚拟技术在地震应急避险训练中能够弥补传统地震安全教育的不足,能够提高学员的认知和理解水平,且不同年龄段、不同教育程度的学员都能取得较好的成绩,具有普遍的适用性。
以上测试均以房间模式进行,房间模式需装定位器,训练需通过角色小范围动作配合完成,互动性更好,空间需要1.5m×2.0m≤3m×4m,可广泛地布设于单位、学校和社区文化站等。在推广测试过程中,年龄过高或体质较弱的测试者小概率会出现晕动症,针对晕动症和不能满足1.5m×2.0m 最小空间要求的情况,可采取坐立模式,坐立模式不需要装定位器,也不需要身体动作配合,仅需手柄光束定位,在坐姿或站姿状态下即可完成全过程。
测试中,在有标签和语音提示的情况下,最长通过时间≤4 分钟,以学校为例,每个学生完成学校和家庭(大概率场景) 两个场景最长用时≤8 分钟,7 套设备可以在40 分钟内完成对一个标准班(35 人) 的培训,即用7 套设备就可以在一节科学课或活动课完成对一个班的培训。
随着更多不同场景的加入,不断提高真实感和沉浸感,虚拟技术在地震应急避险训练中将会发挥更广泛的作用。