曾文輝



摘要:因為人力、場地和時間等因素的限制,舉辦一場全校師生的地震實訓演練的成本是十分高的。而傳統的視頻教學、書籍授課和板報宣傳又達不到理想的教學效果,所以虛擬仿真技術的引入正好解決了以上問題。校園地震演練結合虛擬仿真技術將校園模型和地震演練交互進行數據模擬化,可以輸出基于不同VR平臺的虛擬仿真實訓系統。該虛擬仿真實訓系統將會與傳統地震演練相輔相成,達到深化師生避震、逃生等知識的作用。
關鍵詞:地震;虛擬仿真;相輔相成
中圖分類號:TP311? ? 文獻標識碼:A
文章編號:1009-3044(2020)23-0061-02
地震是一種破壞力極大的自然災害,我國的地震活動表現為震源淺、分布廣、頻度高、強度大,我國是一個震災嚴重的國家,人民的性命和財產因此受到極大的威脅。諸如1976年的唐山大地震、2008年的汶川大地震,其造成的死亡人數和財產損失是極其巨大的,這給遭受地震災害的人民帶來了極為沉重的損失。 而高校是人流非常密集的地方,當發生地震時會有大量的學生進行避震和逃生,所以必須定時舉行全體師生地震演練,現場地震演練所需成本高,不宜長時間和頻繁舉行,所以虛擬仿真技術的引入,恰好能彌補這方面的缺點。利用虛擬仿真技術進行災難場景建模,使用Unity 3D引擎里進行烘焙渲染,利用動畫系統將角色避震和逃生的過程模擬出來,最后使用程序將整個仿真系統進行交互開發。
1 系統的整體設計
本仿真系統是基于Unity 3D引擎進行開發,以頭戴式仿真頭盔(HTC View或者Oculus rift)作為輸出平臺。頭戴式仿真設備作為輸出平臺的仿真系統在操控上是區別于傳統鼠標和鍵盤的,是使用手柄設備進行交互。所以在交互設上必須匹配手柄上的交互控件,模擬正常人類雙手進行設計(參考圖1)。在設計上分為場景設計、UI設計兩個部分。
1.1 場景設計
本系統的場景設計使以我校為背景進行設計和建模。根據地震的等級強度,地震場景分為兩種,第一種是1~4級地震所造成的出現裂紋的場景建筑,第二種是4級以上地震所造成的崩塌的場景建筑。
利用3ds Max等三維建模軟件進行建模,第一種模型主要是因為地震等級不高,破壞程度小,所以建筑僅出現了裂痕。在地震時,建筑的裂痕是漸變出現的效果,所以建模時需要裂痕從不同的方向進行漸變出現。在正常的開發流程中,應該使用3ds Max等建模軟件將場景模型創建出來,然后調整模型的線條和點,呈現出建筑模型的裂痕效果,這樣做的優點是真實程度高,視覺效果好,但是缺點同樣非常突出,模型三角面數量增加,交互成本高,效率低。由于建筑對于仿真系統本身視覺來說是遠景,所以采取了模型疊加裂痕效果圖片的方式進行效果呈現(效果參考圖2)。由于Unity的UGUI系統Image組件具備3D模式和漸變參數,所以裂痕效果將采用Image組件進行呈現。那么只需在Photoshop中行進裂痕效果的透明背景圖片制作,然后導入Unity中進行開發。將Canvas組件的渲染模式Render Mode修改為World Space模式(3D模式),Image組件Image Type參數修改為Filled,最后使用程序將控制Fill Amount參數進行裂痕效果的漸變出現(參數修改參考圖3)。
第二種場景模型主要是地震等級高,破壞程度高,對建筑造成崩塌、脫落等損壞效果。在開發的過程中就需要在3ds Max等模型軟件中對完整的建筑模型進行切割,將建筑在地震中呈現出破碎或者崩塌效果。在建筑崩塌的效果中不但要呈現出破碎效果,還需要處理好破碎后,建筑碎片的貼圖問題,破碎的切面必須粗糙,貼圖符合水泥等材質,以求達到真實的效果。在Unity中破碎效果是可以使用破碎插件進行開發的,因為Unity商店具有非常豐富的插件資源。本系統之所以不使用插件,是因為手動破碎能讓建筑的切面變得更加真實,能更好地處理切面的材質問題,而且能讓系統的運行效率更高,所以在開發中首選了手動破碎(破碎前后的效果參考圖4和圖5)。
1.2 UI設計
本仿真系統是以頭戴式仿真頭盔(HTC View或者Oculus rift)作為輸出平臺,在顯示模式上是區別于傳統顯示器的。頭戴式仿真頭盔視覺角度有110°,模擬人類真實的第一人稱視角,所以顯示的空間是三維的。Unity官方給這個新的UI系統賦予的標簽是:靈活、快速和可視化。簡單來說,對于開發者而言,就是有三個優點:效率高效果好,易于使用、擴展,以及與Unity的兼容性高。本系統將會采用官方的UGUI系統的World Space渲染模式進行開發,該模式是3D UI的渲染模式。整個仿真系統主要的UI界面有主標題UI界面和手柄提示UI界面。
主標題UI界面是整個仿真系統的開始場景,和游戲里的進入游戲的主UI界面一樣,主要的區別是在于普通的UI界面是二維的,而本仿真系統的UI界面是三維的。創建一個Canvas畫布,設置Render Mode渲染模式為World Space,將畫布的Scale的X、Y、Z值設置為0.001,這樣能將3D UI的尺寸縮放到正常大小。在Canvas畫布中創建一個Image組件作為背景面板,然后分別創建Text文本組件和按鈕組件,分別設置圖片和文字參數,最后進行界面排版(效果參考圖6)。
手柄提示UI界面是交互操作的步驟提示。該UI界面需要將Canvas畫布創建到控制角色的手柄對象下作為子物體,讓UI提示面板就可以跟隨手柄移動。和主標題UI界面一樣,創建相應的UI組件,設置參數,最后進行界面排版。當按下手柄的菜單按鍵時彈出提示UI界面(效果參考圖7)。
2 交互實現
Unity是使用C#腳本進行交互開發的,本仿真系統是基于頭戴式虛擬設備進行開發的,所以在開發的過程中所使用的大部分功能API都是基于SteamVR Plugin插件進行調用的。交互的實現主要有攝像頭震動,模擬地震時的震動效果,通過調節不同的參數,進行地震等級的模擬。還有就是手柄與UI,手柄與物品模型的交互開發。
2.1 攝像機震動
頭戴式頭盔設備的顯示主要是通過攝像機Canera進行渲染,所以在模擬地震震動的過程中需要分別控制攝像機Camera的Position和Rotation兩個參數。攝像機Camera的Postion和Rotation參數的控制并不是簡單的變化,而是需要根據參數和隨機時間有一個變化的過程,模擬真實地震的震動過程和人眼在地震是視覺效果。想要達到這種效果,代碼上使用了Update方法,該方法是每一幀都執行,那么參數的變化也會每一幀都變化,達到一段時間內變化的過程,代碼片段如下:
void Update()
{
Vector3 posAddShake = Vector3.zero;
Vector3 rotAddShake = Vector3.zero;
posAddShake+=CameraUtilities.MultiplyVectors(c.UpdateSha
ke(), c.PositionInfluence);
rotAddShake+=CameraUtilities.MultiplyVectors(c.UpdateSha
ke(), c.RotationInfluence);
transform.localPosition = posAddShake;
transform.localEulerAngles = rotAddShake;
}
2.2 手柄交互
傳統的仿真系統主要是鼠標和鍵盤作為交互工具,而以頭戴式仿真頭盔(HTC View或者Oculus rift)作為輸出平臺的仿真系統是基于SteamVR Plugin插件進行開發,使用手柄進行交互的機制,模擬真實人類的手。
頭戴式仿真頭盔手柄和Unity UGUI的交互是區別于傳統的鼠標的,需要用到SteamVR Plugin插件所提供的API進行手柄交互操作。選擇所需交互的UI控件,例如Button,然后掛載SteamVR Plugin插件提供的Interactable.cs腳本,該腳本是手柄與所有對象交互的基礎腳本,所以手柄與對象交互,就必須掛載該腳本。手柄交互的API主要有OnHandHoverBegin(Hand hand):當手柄觸碰到相應對象時觸發該方法,OnHandHoverEnd(Hand hand):當手柄停止觸碰相應對象時觸發該方法,HandHoverUpdate(Hand hand):當手柄觸碰到相應對象時每幀調用,以上三個方法都是操控HTC View手柄時相對應的方法。具體的UI交互代碼片段如下:
private void HandHoverUpdate(Hand hand)
{
if(hand.GetStandardInteractionButtonDown()||((hand.controller!=null)&&hand.controller.GetPressDown(Valve.VR.EVRButtonId.k_EButton_SteamVR_Trigger)))
{
}
}
3 展望
自然災害的實訓在現實演練中是成本非常高的,而虛擬仿真技術的誕生恰好能解決此類問題。但虛擬仿真設備的高昂價格、技術開發的成本高、開發時間長等問題讓普通用戶望而卻步。所以隨著技術的發展,必須降低虛擬現實設備的成本,大力發展可視化開發,降低軟件的開發難度。
參考文獻:
[1] 李梓涵,吳鴻岳,張明璐,等.虛擬仿真技術在中學災害教育培訓中的應用研究[J].電子元器件與信息技術,2020,4(3):153-155,160.
[2] 張佳佳,梁鍇,張廣智,等.三維地震勘探虛擬仿真實驗設計[J].實驗技術與管理,2020,37(2):128-131.
[3] 王漢杰. 地震災害應急救援仿真演練系統的設計與實現[D].武漢:華中科技大學,2019.
[4] 史雙雙,趙強.虛擬仿真在地震應急演練中的應用[J].山西建筑,2017,43(26):52-53.
[5] 趙晶,李建亮,李福海.虛擬現實技術在地震應急救援訓練基地中的應用[J].華北地震科學,2016,34(2):63-66.
【通聯編輯:梁書】