文/王建 譚星
虛擬現(xiàn)實(shí)技術(shù)(Virtual Reality,簡稱VR)正在迅猛發(fā)展,可以使用戶沉浸到創(chuàng)建的虛擬環(huán)境中。我國是地質(zhì)災(zāi)害多發(fā)國家,嚴(yán)重危害民眾生命財(cái)產(chǎn)安全,影響國家經(jīng)濟(jì)有序發(fā)展,“應(yīng)急產(chǎn)業(yè)”受到各國政府和民眾越來越多的關(guān)注,相應(yīng)的安全生產(chǎn)、應(yīng)急、救援技術(shù)和產(chǎn)品研發(fā)應(yīng)用也得到了高度重視。利用計(jì)算機(jī)虛擬仿真技術(shù)模擬重現(xiàn)各種應(yīng)急場景的真實(shí)性具有危險(xiǎn)性小、成本低等優(yōu)點(diǎn)。Unity3D軟件是一個創(chuàng)建三維視頻互動動畫的多平臺綜合開發(fā)工具,效果逼真,已成為開發(fā)VR項(xiàng)目的主流引擎。通過3D視頻動畫的地震場景,可以讓人們意識到地震的危害,從而更加關(guān)注地震信息,提高安全意識以及掌握地震災(zāi)害來臨時(shí)的各種應(yīng)急方法和急救措施。
使用Unity 3D做一個地震的應(yīng)急模型,包含地面震動、地震波、房屋的倒塌及周圍場景變化。
房屋模型是地震場景的核 心體現(xiàn),模擬地震通過房屋模型所體現(xiàn)??紤]到需要做倒塌效果,采用堆積木的形式建立房屋模型,一層層的堆砌最終形成一個完整的房屋,然后房屋的倒塌效果便可以通過一塊塊的模型運(yùn)動來體現(xiàn)。本次采用一個主題房屋以及兩個背景房屋來模擬地震,地面震動使用窗口抖動來實(shí)現(xiàn)。
添加碰撞體組件。碰撞體是物理效果組件里面的一種,分為了3D和2D組件,碰撞體組件要與實(shí)際物體一起添加到Game Object中才能觸發(fā)出各自的碰撞效果,如果兩個物體撞在一起,只有在有碰撞體組件是才能發(fā)生碰撞,否則將會互相穿透而過。本文采用主要的碰撞體組件為盒碰撞體(Box Collider)與網(wǎng)格碰撞體(Mesh Collider),這兩類碰撞體共同完成整個程序的地震效果。
包括兩部分:一部分作為可表現(xiàn)效果的碰撞模型,一部分為非碰撞模型即背景貼圖,需要用到Unity 3D里面的Cube工程,在Game Object中的3D project可以找到需要的Cube對象,將其添加進(jìn)模型職中??梢栽诘孛嬖O(shè)置多個Cube,對每個Cube對象進(jìn)行盒碰撞體組件的添加,賦予其物理碰撞效果,與房屋中添加了物理碰撞效果組件的物體發(fā)生正確碰撞。
地震波是地震來臨所產(chǎn)生的劇烈波動,有橫波和縱波,本文選用橫波效果,由一個圓環(huán)組成的來回振動的地震波模型,需要為圓環(huán)添加Animator模塊,如圖1所示。此模型制作簡單,表現(xiàn)逼真,通過圓環(huán)的緩慢收縮和舒張來表現(xiàn)地震來臨前的地震波波動,當(dāng)來臨時(shí)伴隨這房屋的倒塌,地震波的收縮和舒張變得更劇烈,與房屋倒塌相對照。
鏡頭的運(yùn)動軌跡用來標(biāo)明地震發(fā)生,分為兩個部分,第一部分是地震來之前的輕微抖動,第二部分為地震過程當(dāng)中的劇烈抖動,可設(shè)置兩個過程的鏡頭軌跡。初始鏡頭設(shè)置為整個模型的右下角位置,設(shè)定完畢后需要用程序與鏡頭關(guān)聯(lián),以鏡頭的移動為基礎(chǔ),做出抖動的效果,例如固定X,Y軸不動,使鏡頭的Z軸在原點(diǎn)對稱兩端做上下移動可以做出地震來臨前的緩慢振動,然后使鏡頭的整個Z平面做快速的上下移動模擬地震來臨時(shí)的劇烈振動的效果,鏡頭控制部分程序如下:
在電腦運(yùn)行的地震前后對比圖如圖2所示,前后場景變化效果較為明顯,實(shí)現(xiàn)房屋倒塌且伴隨地震的振動,達(dá)到了地震應(yīng)急場景模擬的基本要求,整個房屋的倒塌破損度高,流暢度也能達(dá)到要求,其他的模型也能按照預(yù)期的效果完成。經(jīng)過手機(jī)測試,測試手機(jī)也能較好兼容整個應(yīng)用程序,呈現(xiàn)的效果與軟件渲染效果基本一致,導(dǎo)出的視頻約8秒,存儲量為1.5MB。
本文采用Unity3D軟件及C#語言編程設(shè)計(jì)了地震應(yīng)急場景模擬,較好地實(shí)現(xiàn)地震時(shí)房屋倒塌、地表振動和周圍景物破壞,播放流暢度達(dá)到要求,體現(xiàn)了虛擬現(xiàn)實(shí)技術(shù)在應(yīng)急仿真模擬方面的優(yōu)勢。
圖1:地震波模型的Animator模塊
圖2:地震前后對比圖