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