何雋


摘要:傳統損管訓練極易導致人員損傷、船舶或貨物的損壞。針對損管訓練在現實中難以完全開展的特殊性,但又需加強對損管人員的訓練,建立了船舶、損管工具和損管人員模型,展現各種損管情況,提出訓練思路,綜合使用3dsMax和Unity 3D軟件設計開發了船舶損管虛擬仿真訓練系統。該文詳細介紹了系統中堵漏傘工具對船艙圓形破口堵漏的開發過程。實踐證明,該系統界面友好,操作簡便,損管人員經過反復訓練,可有效提高觀察能力和決策速度,為損管訓練提供了一種解決方案。
關鍵詞:Unity 3D;損管;訓練;虛擬仿真;破口堵漏
中圖分類號:TP391.9? ? 文獻標志碼:A
文章編號:1009-3044(2019)17-0246-03
開放科學(資源服務)標識碼(OSID):
Abstract: Traditionally, the training of damaged pipes can easily lead to personnel injury, ship or cargo damage. In view of the particularity of the training of damaged pipes which is difficult to carry out completely in reality, but it is necessary to strengthen the training of damaged pipes personnel. A model of ship, damaged pipes tools and damaged pipes personnel is established, various damaged pipes are displayed, and training ideas are put forward. A simulation training system for damaged pipes of ships is designed and developed by using 3dsMax and Unity 3D software. This paper introduces in detail the development process of the leak plugging umbrella tool in the system to plug the circular break in the cabin. Practice has proved that the system has friendly interface, simple operation, and damaged personnel can effectively improve the observation ability and decision-making speed after repeated training. It provides a solution for damaged pipe training.
Key words: Unity 3D;damage control; training; simulation; breach of plugging
1 背景
船舶在航行過程中因觸礁碰撞、海水腐蝕管路,而導致破損進水的事故時有發生。船上人員面對此類破損災害,必須迅速采取正確的決策,否則進水情況將進一步擴大,甚至導致船舶沉沒。為保障或恢復船舶生命力所采取的預防、限制和消除損害的措施和行動,成為損害管制(以下簡稱損管)[1]。因此,損管人員必須掌握堵漏工具的使用方法,在平時有規律地進行損管訓練,才能在緊急情況下從容應對。但是常規實體的損管訓練存在高能耗、高污染、破壞性、高危險性和不可視性的缺點[2]。
隨著計算機技術的發展,虛擬仿真已經成為對各種復雜情況尤其涉及大能耗和具有危險性訓練時必不可少的一個內容。美俄英等發達國家在損管模擬訓練系統的研制上已有很多成功的范例,如美國的奧克蘭損管學校配備了具有搖擺功能的堵漏訓練倉。我國海軍也逐步建立了以仿真模擬為主的艦艇損管指揮訓練系統[3]。
本文鑒于Unity 3D強大的人機交互功能進行虛擬仿真損管訓練系統開發,將遠望號船和各類專業性堵漏工具在計算機中進行可視化處理,在PC端建立船舶虛擬仿真練環境,供學員學習操作工具和重復訓練,解決了現實中船艙分布區域廣、部分設備隱蔽性強難以觀察和了解危險隱患的問題。
2 訓練系統設計
2.1 總體設計
MVC框架在軟件開發中能夠對軟件的可靠性、規范性和可擴展性起到極大的促進作用[4]。本系統基于Unity 3D引擎進行開發,完全符合邏輯層、數據層、界面層分離的MVC思想,如下圖1所示:
2.2 模塊設計
本系統可供學員通過人機交互進行漫游,進入不同場景中觀察危險情況,當發現損管時,根據實際情況采用不同的仿真工具進行危急情況處置。因此損管訓練的模塊劃分如下:
工具學習模塊:損管訓練核心就是針對各種不同的險情進行準確的工具選擇。每種工具都有其適用范圍,使用方法也不盡相同。在此模塊中,訓練者可以從X軸向和Y軸向720度觀察工具的外形,學習到各種工具使用規程。
艙壁破口堵漏模塊:破口堵漏模塊中包含險情探測、裝備工具、堵漏操作,先進入場景通過探測得知破口形狀和大小,退出場景到指定地點對應選擇工具裝備到角色的背包系統中,再次進入場景對破口使用工具堵漏。
管路包扎模塊:管路包扎模塊包含險情探測、裝備工具、包扎操作,先進入場景通過探測得知管道破口類型,退出場景到指定地點對應選擇工具裝備到角色的背包系統中,再次進入場景對管道破口使用工具包扎。
系統計分模塊:完成上述損管訓練任務后,系統將對此次任務完成的情況做出總結,給出用時情況、險情個數、排險任務個數、使用工具種類數量和成績,還可以查看全過程信息和每個時間點的得分扣分統計。
3 損管訓練實現
虛擬訓練系統開發的過程中,3D模型的建立必不可少。在損管訓練中主要用到堵漏箱、T型螺桿、伸縮支柱、堵漏傘、肋骨支架、堵漏墊和堵漏袋等專業工具。損管人員使用損管虛擬仿真系統進行訓練時,首先會通過觀察模型去學習各種工具的使用方法和適用范圍。優秀的模型能夠給訓練者帶來直觀的體驗,增強訓練的效果。
本文主要討論船舶艙壁圓形破口堵漏場景的損管訓練。
3.1 3D模型
3.1.1 建模規范
比例規范:在場景中使用的3D模型之間比例必須一致,單位也需要與Unity 3D軟件統一,以“米”為單位。
模型規范:模型命名規范,以工具和角色模型的中心為軸心點,模型文件要控制面數,根據本系統將應用在PC平臺需控制在1500-4000個多邊形,刪除不可見的面,移除孤立的頂點,考慮在Unity 3D中運行內存。
材質規范:Unity 3D軟件只支持3dsMax的標準材質和多維/子物體材質,只能支持位圖類型的貼圖,只支持漫反射和自發光貼圖通道,以上特殊要求都要在建模過程中注意。
3.1.2 堵漏傘模型
圓形破口堵漏使用的主要工具是堵漏傘。為了在場景交互得到1:1的模型比例,首先要進行模型數據采樣,統計得到如下表1的堵漏傘模型的各方面數據:
根據上述數據,選擇標準基本體,使用車削、擠壓和切片等命令,完成傘面、骨架、傘棍和手柄等部件,再嵌套組合成白模,加上貼圖,就完成了堵漏傘3D模型。傘面建模見下圖2:
3.1.3 角色模型的骨骼蒙皮
在為了得到更加完整的訓練體驗,避免第一人稱視角移動鏡頭帶來的暈厥感和視野缺失,本系統采用第三人稱視角。第三人稱視角可以讓訓練者多角度清楚觀察自己在系統中擔任的角色,這就需要對角色進行到1:1真人大小的建模,此內容不再贅述。進入場景中可以大角度觀察周圍的環境,從而更快發現險情所在,這就需要讓角色模型在場景中活動起來。
首先,先對人物角色模型進行骨骼構筑,然后調整骨架位置和人物位置,再對部分骨骼數進行分段調整。其次,對模型添加蒙皮修改器,創建多個足跡,角色跳躍的動作成型了。此時,角色模型骨骼構筑和蒙皮效果如下圖3所示:
除了上述模型以外,船體及各艙室模型的建立過程不再贅述。
3.2 Unity 3D引擎
Unity 3D是一款支持多平臺的引擎,提供了豐富的圖形化界面,可供用戶創建交互內容,為開發虛擬仿真訓練系統提供了方便。
本系統中使用的3D物理引擎定義了物體的物理材料屬性、物體受力后的運動以及物體碰撞后的運動。其中主要用到了剛體(Rigidbody),它是激活物體物理屬性的主要組件,當剛體被綁定在角色上時,角色將立即受到重力影響;碰撞器(Collider)定義了對象在發生物理碰撞時的形狀[5];物理材質(Physics Material),當碰撞器交互時,它們的表面需要模擬材質的屬性;觸發器(Trigger)用來觸發事件,在本系統中,角色走到一個艙室會觸發隨機產生的艙壁破口或管道破損事件。射線(Ray)是所有3D游戲中都會使用到的一項技術,被廣泛使用到了路徑搜尋、AI邏輯和命中判斷,在本系統中主要用來探測災害情況。
3.3 系統實現
船舶艙壁產生圓形破口的情況下,會出現漏水情況,在場景中使用Unity 3D自帶的粒子系統,對粒子的速度、大小、存活時間、形狀和顏色等參數調整到合適的數值,模擬水粒子,增強艙壁漏水的視覺效果,使損管人員在仿真訓練中達到更加直觀的體驗。
通過工具選擇模塊的學習,損管人員應選擇堵漏傘工具,點擊圓形破口進行堵漏,使用代碼來實現點擊事件。堵漏傘的堵漏代碼如下:
把falg設置成false則是將閉合的堵漏傘經過一段時間替換為打開的堵漏傘,即完成破口堵漏。再將這個方法反射到Button中On Click()這個屬性中,選擇對應函數,完成此次鼠標點擊事件。
4 系統演示損管人員進入系統在工具學習之后,可選擇不同場景,體驗不同災害類型進行訓練。同一場景中也會因損管人員的進入,被隨機觸發2-3個不同類的災害,供勘察和判斷。選擇界面如圖4所示。
下圖5為系統堵漏模塊中其中一面艙壁出現破口的情況,損管人員可以探索破口類型,選擇對應的堵漏傘工具或其他多個工具添加到背包系統,并從中單擊選擇相應工具,按住Control鍵進行手持,再按F鍵使用射線技術完成堵漏:
完成本場景中所有損管任務后,可查看此次任務完成的成績,總共使用的時間、損管出現和完成的數量,以及使用工具的數量,如需要查看全過程信息和每個時間點的得分扣分統計,還可以進一步點擊對話框左下角按鈕,進入下一級界面,如下圖6所示:
5 結束語
本文主要研究了船舶損管訓練虛擬仿真系統的開發,重點針對使用堵漏傘進行圓形破口堵漏模塊的設計和實現過程。本系統采用3dsMax建立的模型導入到Unity 3D引擎中,構建船舶仿真模型,供損管人員進行全面高效的訓練,及降低了實地損管訓練的昂貴費用,又實現了訓練安全性。
參考文獻:
[1] 侯岳, 王康勃, 浦金云. 基于退役艦改裝的艦艇綜合損管教學訓練系統[J]. 實驗室研究與探索, 2019, 38(2): 214-217.
[2] 康雪麗. 海上運輸跨專業綜合實驗實訓平臺設計[D]. 大連: 大連海事大學, 2016.
[3] 厲行軍, 楊少波. 基于態勢的損管輔助決策系統[J]. 船海工程, 2018, 47(6): 14-17.
[4] 羅維, 張華. MVC程序設計[M]. 北京: 中國水利水電出版社, 2013(5).
[5] 石雷. 艦船抗沉損管訓練仿真系統研究[D]. 成都: 西南交通大學, 2015: 45.
【通聯編輯:謝媛媛】