李敏 張世遨 錢(qián)珣
(綿陽(yáng)職業(yè)技術(shù)學(xué)院 四川省綿陽(yáng)市 621000)
地震是地球運(yùn)動(dòng)的常態(tài)。我國(guó)位于世界兩大地震帶之間,地震斷裂帶十分活躍。唐山大地震、汶川大地震造成人員死傷和財(cái)產(chǎn)損失都十分慘烈。由于地震的不可預(yù)知性和不確定性,居安思危,防災(zāi)減災(zāi)是地震災(zāi)難管理的首要工作。教育部要求學(xué)校組織學(xué)生進(jìn)行緊急疏散訓(xùn)練,只有當(dāng)疏散演練普遍化、規(guī)范化、長(zhǎng)期化時(shí),才能使師生形成條件反射,才能在災(zāi)難發(fā)生時(shí)形成自覺(jué)的行為反應(yīng)。
目前,地震演練主要的訓(xùn)練方式有三種:
(1)群體性的緊急疏散演練。然而,疏散演練無(wú)法模擬實(shí)際地震時(shí)的場(chǎng)景,大多數(shù)學(xué)生體會(huì)不到地震時(shí)的緊張感,緊急疏散很難達(dá)到應(yīng)有的效果。不僅如此,學(xué)校組織緊急疏散時(shí)要投入大量的人力保證學(xué)生的安全,一旦組織不到位,很容易發(fā)生踩踏事件,從而導(dǎo)致危險(xiǎn)發(fā)生[1]。
(2)虛擬地震屋。由地震小屋實(shí)體、液壓運(yùn)動(dòng)平臺(tái)、控制臺(tái)并輔以聲效光影,為演練者展示一個(gè)立體的地震環(huán)境,使演練者與環(huán)境融為一體,全方位展示地震的整個(gè)過(guò)程,讓演練者感受地震。操作人員通過(guò)控制臺(tái)操作液壓運(yùn)動(dòng)平臺(tái),從而模擬出地震效果,包括橫波、縱波及顛簸等[2],在很大程度上提高了演練者的心理素質(zhì)。自“5.12”汶川大地震后,我國(guó)各地多個(gè)城市建設(shè)的防災(zāi)減災(zāi)教育館、博物館都有這樣的地震體驗(yàn)館,如中國(guó)地震科普教育館、北京地震與建筑科學(xué)教育館、四川省防災(zāi)減災(zāi)教育館等等。
然而,建造這種地震屋需要大量的資金和空間,需要專(zhuān)門(mén)的操作人員,一般一次只能容納10-15 人。由于時(shí)間空間的限制,到現(xiàn)場(chǎng)進(jìn)行訓(xùn)練的人數(shù)和訓(xùn)練次數(shù)有限,不能達(dá)到強(qiáng)化訓(xùn)練的目的。
(3)虛擬現(xiàn)實(shí)技術(shù),又稱(chēng)VR (Virtual Reality,VR)技術(shù)。通過(guò)虛擬現(xiàn)實(shí)技術(shù)生成一個(gè)接近真實(shí)的虛擬環(huán)境,提供視覺(jué)、聽(tīng)覺(jué)、觸覺(jué)等感官的模擬及運(yùn)動(dòng)感知模擬,讓演練者借助一些設(shè)備與虛擬環(huán)境中的對(duì)象進(jìn)行交互,實(shí)時(shí)、自由地觀察三維空間內(nèi)的事物,產(chǎn)生身臨其境的感覺(jué)。演練者在高真實(shí)感和可交互的虛擬地震場(chǎng)景中進(jìn)行地震逃生與疏散演練,不受時(shí)間空間的限制,多次重復(fù)強(qiáng)化演練,實(shí)現(xiàn)安全,便捷,廉價(jià)的演練效果。
本系統(tǒng)利用 Unity3D 引擎和HTCVIVE 設(shè)備,結(jié)合虛擬現(xiàn)實(shí)技術(shù)和3D 建模技術(shù),設(shè)計(jì)并開(kāi)發(fā)完成了類(lèi)似于游戲體驗(yàn)的虛擬現(xiàn)實(shí)地震演練系統(tǒng)。系統(tǒng)構(gòu)建了虛擬校園場(chǎng)景和虛擬角色,采用第一人稱(chēng)視覺(jué)進(jìn)行地震和余震模擬,虛擬人群行為模擬,演練者行動(dòng)模擬,逃生及救助行為模擬,給用戶(hù)帶來(lái)沉浸式的體驗(yàn)和豐富的交互方式。
圖1:系統(tǒng)流程圖
圖2:觀看地震避險(xiǎn)動(dòng)畫(huà)
圖3:漫游校園
圖4:VR 操作提示
科學(xué)研究發(fā)現(xiàn),地震發(fā)生時(shí),至關(guān)重要的是要有清醒的頭腦和鎮(zhèn)靜自如的態(tài)度,要避免驚慌,科學(xué)避險(xiǎn)[3]??衫玫谋茈U(xiǎn)時(shí)間是10 -30 秒的短暫時(shí)間。由于時(shí)間緊迫,每秒都是自救的關(guān)鍵,容不得半點(diǎn)遲疑。在地震及余震逃生過(guò)程中,開(kāi)啟生命倒計(jì)時(shí),用戶(hù)必須在10 秒之內(nèi)安全躲避或逃生,如果演練失敗,未能逃入臨時(shí)安全區(qū)(廁所,室內(nèi)三角形區(qū)域)之類(lèi)的安全躲避點(diǎn),不能進(jìn)入下一個(gè)場(chǎng)景。系統(tǒng)構(gòu)建了教室和寢室兩個(gè)地震虛擬場(chǎng)景,分別引導(dǎo)演練者進(jìn)行不同的地震逃生演練,系統(tǒng)流程如圖1所示。
(1)用戶(hù)戴好 VR 設(shè)備后,進(jìn)入虛擬世界。首先觀看一段地震避險(xiǎn)動(dòng)畫(huà),如圖2所示,然后以無(wú)人機(jī)的第三人稱(chēng)視覺(jué)方式漫游校園,按照光圈提示進(jìn)入一棟教學(xué)樓四樓的一間教室,如圖3所示。
圖5:地震避險(xiǎn)答題測(cè)試
圖6:教室逃生
圖7:走廊逃生
(2)此時(shí)演練者進(jìn)入第一人稱(chēng)視覺(jué)模式,在用戶(hù)界面提示下,如圖4所示,熟悉虛擬環(huán)境中手柄交互操作的方法,進(jìn)行地震避險(xiǎn)答題測(cè)試,如圖5所示。
(3)當(dāng)測(cè)試成績(jī)大于60 分之后,虛擬地震開(kāi)始,虛擬角色行為引導(dǎo)正確躲避及逃生,語(yǔ)音引導(dǎo)第一人稱(chēng)演練者正確躲避及逃生,余震發(fā)生時(shí),檢驗(yàn)演練者沿著教室、走廊、樓梯的逃生路徑及方法,如圖6 和圖7所示。
(4)逃生至操場(chǎng)后,對(duì)受傷同學(xué)給予救助。如圖8 和圖9所示。
(5)系統(tǒng)提供了語(yǔ)音引導(dǎo),當(dāng)演練者出現(xiàn)不正確的行為,如演練者在地震時(shí)靠近教室窗戶(hù),語(yǔ)音提示“當(dāng)前教室是四樓,不能跳窗”;如演練者在寢室遭遇地震時(shí),語(yǔ)音提示“去廁所、四周墻角或者床下躲避”;看見(jiàn)受傷的同學(xué),語(yǔ)音提示“尋找繃帶,幫助受傷的同學(xué)”,如圖10所示等等。系統(tǒng)提供了行為引導(dǎo),當(dāng)教室地震時(shí),虛擬角色的正確躲避動(dòng)作引導(dǎo);當(dāng)演練者從建筑物逃生出來(lái),虛擬環(huán)境中有紅色箭頭指引,指引演練者逃往空曠的廣場(chǎng)或者操場(chǎng),如圖11所示。
圖8:取繃帶
圖9:包扎受傷同學(xué)
虛擬現(xiàn)實(shí)演練的主要特點(diǎn)是沉浸性、交互性和自主性,沉浸感主要來(lái)自視覺(jué)和聽(tīng)覺(jué),視覺(jué)由場(chǎng)景中模型的精準(zhǔn)、光影材質(zhì)貼圖的真實(shí)感來(lái)體現(xiàn),聽(tīng)覺(jué)方面,主要根據(jù)演練進(jìn)度播放不同的背景音樂(lè)和語(yǔ)音提示來(lái)實(shí)現(xiàn)。
本系統(tǒng)使用 3dsMax 建模,包括校園建筑、操場(chǎng)、地形、虛擬人物等,建模分為以下幾個(gè)步驟:
3.1.1 圖片收集和處理
通過(guò)拍攝,獲取校園的建筑、地形等場(chǎng)景所需要的材質(zhì)和貼圖,使用 Photoshop 對(duì)圖片素材進(jìn)行處理。
3.1.2 場(chǎng)景建模
圖10:語(yǔ)音引導(dǎo)
圖11:行為引導(dǎo)
在 3dsMax 中對(duì)校園建筑圖及地形圖進(jìn)行建模,根據(jù)建筑圖片、建筑的AutoCAD 源文件及測(cè)量的地形圖來(lái)保證場(chǎng)景的真實(shí)比例。為了保證模型后期導(dǎo)入unity3D 中的顯示正確,模型不能有超過(guò)四邊面的非法面和非法點(diǎn)。為確保系統(tǒng)運(yùn)行時(shí)的流暢性,場(chǎng)景中的所有對(duì)象在保障真實(shí)度的情況下盡可能進(jìn)行點(diǎn)線面的優(yōu)化,如采用精簡(jiǎn)的單面建模、刪除模型中遮擋隱藏的面、去除模型中相互交錯(cuò)的模型元素;細(xì)節(jié)(如門(mén)窗)用簡(jiǎn)單面片建模,后期用貼圖或者鏤空貼圖表現(xiàn)等方法。
3.1.3 虛擬角色建模
本系統(tǒng)演練者是第一人稱(chēng)視覺(jué),為了進(jìn)行地震人物逃散模擬及震后互救行為模擬,系統(tǒng)設(shè)置了低模的虛擬角色,進(jìn)行了角色的建模、骨架綁定、蒙皮和動(dòng)作設(shè)置。角色的動(dòng)作包括站立、行走、交流、蹲下、攀談、包扎等,部分動(dòng)作如圖12所示。
3.1.4 調(diào)整UV 貼圖
由于unity3D 只默認(rèn) 3ds Max 的標(biāo)準(zhǔn)材質(zhì),將各類(lèi)模型結(jié)合UV 貼圖(UVWMap),綜合調(diào)整貼圖紋理的方向、大小及清晰度,對(duì)于紋理坐標(biāo)精度要求高的模型,需要分UV(Unwrap UVW)再調(diào)整貼圖。為了后期在unity3D 中方便導(dǎo)入及管理,模型和貼圖的名稱(chēng)必須規(guī)范且對(duì)應(yīng)。
3.1.5 導(dǎo)出三維模型
模型完成后,將模型在3dsMax 中軸坐標(biāo)居中,同時(shí)將場(chǎng)景的世界坐標(biāo)歸零,導(dǎo)出成FBX 文件時(shí),需要進(jìn)行正確的貼圖和動(dòng)畫(huà)導(dǎo)出參數(shù)設(shè)置。
3.1.6 材質(zhì)光影設(shè)置
將模型導(dǎo)入unity3D 后,在引擎中對(duì)材質(zhì)的屬性進(jìn)行細(xì)化,包括材質(zhì)的反射、折射兩類(lèi)屬性,通過(guò)金屬值、不透明度、高光、粗糙度及折射率等參數(shù)進(jìn)行設(shè)置;為了使場(chǎng)景光照充分、陰影投射正確,采用全局光照,使用平行光、聚光燈、點(diǎn)光源模擬自然光照效果,使VR 場(chǎng)景光影有層次感和真實(shí)感。
本演練系統(tǒng)使用 HTC VIVE 的VR 頭盔與手柄的操作實(shí)現(xiàn)人機(jī)交互。HTC VIVE 以激光定位技術(shù)追蹤頭盔和手柄的位置,進(jìn)行用戶(hù)在真實(shí)空間里走動(dòng)的動(dòng)作捕捉與空間定位,通過(guò)相關(guān)的追蹤設(shè)備獲取相關(guān)信息,然后由后續(xù)的程序處理這些信息,從而獲得所有物體的空間信息,最終通過(guò)對(duì)所有空間信息的整合來(lái)捕捉使用者的動(dòng)作,而虛擬環(huán)境會(huì)根據(jù)不同的動(dòng)作做出相應(yīng)的反饋,由此完成用戶(hù)與演練系統(tǒng)之間的交互[4]。
VR 頭戴式顯示器能查看具有沉浸感的周?chē)h(huán)境以及改變用戶(hù)行走的方向。按下手柄上的滑動(dòng)面板及側(cè)鍵可以使演練者選擇答題、前后左右移動(dòng)、開(kāi)門(mén)、上下樓梯等,扣下手柄上的扳機(jī)可以發(fā)射射線、答題、拿取實(shí)物等。
3.2.1 VR 的人機(jī)交互實(shí)現(xiàn)
演練系統(tǒng)的交互在 Unity 3D 中利用插件SteamVR 和 VRTK 實(shí)現(xiàn),SteamVR 插件實(shí)現(xiàn)攝像機(jī)的視角功能,其自帶的預(yù)制體和程序能夠檢測(cè)物體是否被用戶(hù)凝視、通過(guò)手柄發(fā)出一條激光束、瞬移物體、手柄集成腳本以及 SteamVR 核心腳本等。
VRTK 插件是 SteamVR 插件的擴(kuò)展,VRTK 的重要功能包括發(fā)出射線、手柄事件、抓取物體、被抓取物體、觸碰物體、輪廓高亮等屬性操作[5]。
3.2.2 采用柏林噪聲模擬地震效果
地震發(fā)生時(shí),房屋搖晃、物體墜落、人群驚慌躲避,為了逼真表現(xiàn)地震效果,本系統(tǒng)采用柏林噪聲(perlinnoise)進(jìn)行地震模擬,柏林噪聲是一個(gè)非常強(qiáng)大的算法,經(jīng)常用于程序生成隨機(jī)內(nèi)容,在游戲、電影等多媒體領(lǐng)域廣泛應(yīng)用,算法發(fā)明者Ken Perlin 也因此算法獲得奧斯卡科技成果獎(jiǎng)[6]。在unity 中,perlinnoise 是Mathf 下的一個(gè)函數(shù),本系統(tǒng)自定義NoiseGen 類(lèi),調(diào)用柏林噪聲模擬地震,并把它封裝起來(lái),再在wiggle 里具體調(diào)用,運(yùn)行后的地震效果如圖13所示,主要代碼如下:
圖12:虛擬角色動(dòng)作圖
圖13:地震搖晃效果圖
圖14:上下樓梯
3.2.3 使用json 解析地震逃生答題
JSON(JavaScript Object Notation,JS 對(duì)象簡(jiǎn)譜) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ECMAScript (歐洲計(jì)算機(jī)協(xié)會(huì)制定的js規(guī)范)的一個(gè)子集,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言,易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率[7]。
本系統(tǒng)編寫(xiě)了一個(gè)解析json 字符串的代碼,調(diào)用了unity 的讀取TXT 文件的類(lèi)TextAsset,來(lái)實(shí)現(xiàn)地震逃生題目TXT 文件及答案的讀取,同時(shí)將答案比較及評(píng)分結(jié)果、演練者在地震、余震的逃生路徑及時(shí)間記錄保存至TXT 文件,作為后續(xù)演練者行為分析的原始數(shù)據(jù)。
3.2.4 使用move 函數(shù)實(shí)現(xiàn)移動(dòng)功能
本演練系統(tǒng)中,移動(dòng)是最常見(jiàn)的交互,本系統(tǒng)利用控制器面板返回的Vector3 編寫(xiě)了一個(gè)move 函數(shù),讓所有的移動(dòng)都調(diào)用該函數(shù)。第一人稱(chēng)視覺(jué)上下樓梯時(shí),為了更逼真模擬上下樓梯有視野變化的效果,將每一級(jí)臺(tái)階做成單獨(dú)的模型,且設(shè)置為單獨(dú)的立方體碰撞體,整段樓梯就不會(huì)顯示為一個(gè)斜坡,從而達(dá)到視野變化的效果,如圖14所示,主要代碼如下:
本系統(tǒng)主要用于訓(xùn)練用戶(hù)的地震逃生技能,通過(guò)實(shí)驗(yàn),結(jié)果表明,利用虛擬現(xiàn)實(shí)技術(shù)構(gòu)建防震安全虛擬訓(xùn)練,能有效彌補(bǔ)傳統(tǒng)的文字視頻等防震安全教育中的不足,提高受教育者的認(rèn)知和理解程度;能解決校園真實(shí)地震演練中設(shè)備需求多、人員需求廣、演練成本高、物資消耗多、開(kāi)展頻率低、訓(xùn)練效果差、安全系數(shù)低的問(wèn)題;能克服時(shí)空障礙,建立靈活的學(xué)習(xí)過(guò)程,構(gòu)建一種真正的以學(xué)生為中心的虛擬學(xué)習(xí)環(huán)境;能提高學(xué)生的安全逃生系數(shù),提高緊急疏散的效果;能促進(jìn)學(xué)生相互協(xié)作、相互幫助。
《國(guó)家教育事業(yè)發(fā)展“十三五”規(guī)劃》強(qiáng)調(diào)要全力推動(dòng)信息技術(shù)與教育教學(xué)深度融合,綜合利用互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能和虛擬現(xiàn)實(shí)技術(shù)探索未來(lái)教育新模式。隨著虛擬現(xiàn)實(shí)技術(shù)成為新一代信息技術(shù)的代表,本系統(tǒng)將對(duì)學(xué)生安全教育起到積極的作用。