1概述
近年来,随着我国居民汽车拥有量的快速增加,一方面极大地推动了我国经济的发展和人们出行的便利性;另一方面,也导致交通事故频频发生。特别是由于我国目前大部分的交通路况复杂,很多道路普遍存在人车混行的交通状况。再加上驾驶员在行车过程中,往往以自我为中心,很少有礼让行人的习惯;而行人往往会寻找空隙,随意穿行,导致行人特别是少年儿童被撞的交通事故经常发生[1]。专家指出,通过有效的交通安全教育和交通技能训练,可以大大降低过马路时发生意外的概率[2]。所以对行人尤其是广大少年儿童进行有效地道路安全穿行训练,培养起良好的道路穿行习惯,加强其对交通环境潜在危险的认识,对降低交通事故的发生率具有重要意义。然而目前交通安全教育形式单一,缺乏能体验的交通安全教育三维仿真环境[3],导致教学效果很差。所以通过虚拟现实技术设计和开发一个交通安全教育和技能训练系统,让训练者不仅能够真实地感受到道路交通事故所引发的安全后果,而且通过多次训练后可以根据道路上过往车辆的速度、距离,熟练掌握能够安全的穿行的时机和方式,提高自身对安全车速和车间距的判断能力,从而减少和避免交通事故的发生。
2交通安全教育和技能训练系统总体设计
本系统主要采用MAYA三维制作软件来创建虚拟动态交通场景和各种虚拟物体,使用Unity3D三维游戏开发引擎来设计和实现系统的人机交互功能。系统主要由数据管理、交通体验场景生成、声音设置、交通规则安全教育和交通安全技能训练等功能模块组成。各模块的主要功能如下:1)数据管理模块:主要用于保存和设置训练者的个人信息和系统的数据信息。训练者的个人信息包括个人资料、历史记录、行走的初始状态和速度等数据;系统的数据信息包括场景数据信息、汽车信息、交通规则数据库等。2)交通体验场景生成模块:主要是利用MAYA三维制作软件创建的场景物体如道路、建筑物、交通标志、车辆、虚拟儿童、教师、警察以及天空背景等三维物体,生成逼真的三维虚拟交通场景。3)声音仿真模块:为增强虚拟场景的真实感,添加一些烘托气氛的声音,如汽车的喇叭声,轮胎与地面间的摩擦声以及人在发生交通危险时发出的尖叫声等,让用户能融入虚拟交通环境气氛中去,与虚拟环境中的人物产生强大的共鸣。4)交通规则安全教育模块:该模块主要通过设置多个违反交通规则的行为和调用相应的场景,实现对少年儿童进行遵守交通规则教育。5)交通安全技能训练模块:该模块为本系统的最重要模块,主要用来训练行人特别是少年儿童安全横穿道路的技能,提高他们综合处理交通流信息的能力。具体是在系统中采用游戏模式,设置从初级到高级五个关卡,通过创建五个没有红绿灯的车流道路交通场景,每个场景按照游戏关卡的级别设置不同的车流密度和汽车行驶速度。级别越高,车流密度越大,汽车行驶速度越高。然后根据训练者通过鼠标和键盘控制虚拟行人的行走速度和穿越的时机,从低级到高级在不同的速度和不同的车间距的车流中横穿道路来进行反复训练,直到横穿道路时都不会与汽车发生碰撞,获得20分的积分后,才允许往前进入下一关场景进行训练,最后完成全部关卡并获得100分后才表示取得一次训练成功,以此通过多次训练后,可以提高少年儿童对机动车行驶状况的综合判断能力,减少交通事故的发生。
3系统关键技术问题的研究与实现
3.1动态交通场景设计与实现
动态虚拟交通场景是指在静态虚拟城市道路的交通场景中融入交通系统中所有动态的交通活动,在本系统中主要指在虚拟城市道路场景中加入用于训练的汽车和行人、随机行驶的车辆等虚拟物体交通行为,以及对它们的运动进行控制,让它们能够在虚拟交通环境中实现匀速、加速、减速行驶和超越、等待等功能。由于构建上述动态虚拟交通场景比较复杂,本系统先采用专业的三维建模软件Maya来创建静态三维虚拟城市道路场景和动态虚拟物体,并为行人等动态物体创建骨骼和蒙皮后,通过移动骨骼就可以进行动态物体的动作设计,从而为各种运动的虚拟人和物体设计出系统所需要的各种动作,比如虚拟行人的站立、行走和奔跑,汽车等交通工具的行驶,还有路人的自由动作等。然后将以上的交通道路的静态场景和设计好行为的动态虚拟物体在Maya中经过贴图、设置灯光、渲染等工作后,导出保存为FBX文件格式,即可将场景模型导入到Unity3D项目文件的“Assets”文件夹中[4]。场景模型导入Unity3D后就可以用C#或JavaScript脚本语言对场景中的各种虚拟物体的动作进行设计,完成它们在场景中的各种运动,实现动态虚拟交通场景。比如将导入的汽车模型放置于道路上,并在汽车上添加如下的脚本,就可使其以一定的速度向前行驶:}系统中为了让训练者体验到更加真实的交通情景和游戏的难度,整个系统设计成五个不同的交通场景,分别对应着由低到高的五个游戏关卡需要穿越的道路,随着训练游戏关卡的升级,场景中汽车的速度和密度会不断地增大,让训练者能在不同速度的车流中得到训练,增强训练的效果。三维动态虚拟交通场景如下图1所示:
3.2三维虚拟物体之间的碰撞检测技术研究与实现
碰撞检测是虚拟现实系统中的一个重要功能,有了它可以使用户以更自然的方式与虚拟现实场景中的对象进行交互,否认虚拟行人走在路上就可能会“穿墙而过”,汽车在路上行驶就会“钻进地下”等不真实的现象发生。另外,本系统在交通安全技能训练过程中需要检测虚拟儿童与汽车是否发生碰撞,碰撞后不能出现汽车“穿人而过”的现象发生,而且要做出响应,比如发生惨叫和人被撞倒在地等,所以碰撞检测在系统设计时是一个必须要解决的关键问题。这里我们采用的设计方法是先给场景中可能会与其他物体发生碰撞的虚拟物体如路边建筑、道路设施、树木和地面以及汽车和行人等都设置成刚体,然后为它们添加盒状碰撞器,这样它们之间就可以产生碰撞的效果。具体在Unity3d中的设置虚拟物体为刚体和添加碰撞器的参数如图2所示。至于行人与汽车发生的碰撞后的响应,考虑到本系统的主要训练者为少年儿童,为了不让交通事故场面过于惨烈,所以在设计虚拟人与汽车发生碰撞时,没有设计成行人被撞时的惨烈效果,而只是提示“GAMEOVER”表示行人已与汽车发生碰撞,本次游戏结束,同时界面上出现三个按钮,分别为“退出”、“重新开始”和“返回首页”三个按钮,“退出”按钮实现退出系统功能,“重新开始”按钮实现重新载入游戏功能,“返回首页”按钮实现返回主界面功能,具体响应结果示意图如图3所示。主要脚本如下:在交通规则安全教育模块中为了禁止虚拟行人行走到机动车道上而不走人行道,必须对道路添加碰撞器及相应的脚本,实现每次用户行走到道路上时,屏幕中会出现“请走人行道”的提示,并且主角会退回到人行道上,提示字会在三秒后自动消失,提示信息示意图如图4所示。为了提高参与训练者的兴趣,本系统采用游戏模式来完成技能训练模块中的五个关卡不同难度的训练过程,每当训练者完成一个路口的穿越,系统视窗右上角的分数会增加20分,并且视窗中会出现“成功穿越”的文字,系统提示信息示意图如图5所示。当训练者完成从低到高难度全部五个路口的穿越后,屏幕会显示“游戏胜利”。
3.3人机之间的交互控制技术研究与实现
人机交互控制是虚拟现实技术的重要特征。通过人机交互手段可以让训练者能够像在现实中一样对在虚拟环境中任意行走和对其中的物体进行实时地操作,并能从虚拟环境中得到反馈的信息等。本系统中需要实现利用键盘或鼠标对交通体验场景中的摄像机视角进行旋转变换,对虚拟行人的行走和站立以及行走速度和行走方向等进行交互控制。
4结论
采用maya构建的三维虚拟动态交通场景,利用Unity3d技术对系统中碰撞检测和人机交互等关键技术的研究和实现,开发出三维虚拟交通安全教育和技能训练系统,为行人尤其是广大少年儿童提供一种全新的安全教育和训练平台,克服了以往交通安全教育形式单一、互动性差、参与性不够等缺点。系统经试运行后,训练者普遍反应能够非常直观的给他们身临其境的感觉,而且人机交互性好,趣味性高,能够较好地实现交通安全知识教育和技能训练的目标。
作者:王梅亮 顾键萍 单位:丽水学院工程与设计学院