洪茜
(渤海船舶職業(yè)學(xué)院,遼寧葫蘆島 125005)
基于Unity3D的虛擬船舶電站模擬器研究
洪茜
(渤海船舶職業(yè)學(xué)院,遼寧葫蘆島 125005)
本文在介紹虛擬現(xiàn)實(shí)技術(shù)的基礎(chǔ)上,闡述了應(yīng)用最新專業(yè)引擎Unity3D軟件為開發(fā)工具,實(shí)現(xiàn)虛擬船舶電站模擬器的關(guān)鍵技術(shù)、系統(tǒng)結(jié)構(gòu)、技術(shù)路線和實(shí)施方案。該模擬器具有數(shù)據(jù)精準(zhǔn)、表現(xiàn)力強(qiáng)、基于網(wǎng)絡(luò)、交互性好的特點(diǎn)。該軟件的開發(fā)不僅可為教學(xué)提供實(shí)驗(yàn)平臺(tái),而且能夠方便的移植到其它實(shí)際應(yīng)用系統(tǒng)中,具有良好的實(shí)用價(jià)值。
船舶電站 Unity3D 模擬器 虛擬現(xiàn)實(shí)
依據(jù)我國(guó)海事主管部門及世界海事組織的相關(guān)要求,輪機(jī)等部門人員要獲得相應(yīng)等級(jí)的適任證書必須要參加船舶輪機(jī)模擬器的操作訓(xùn)練與考核評(píng)估[1],作為船舶輪機(jī)模擬器的重要組成部分——船舶電站模擬器的訓(xùn)練與評(píng)估是輪機(jī)等部門人員提高個(gè)人綜合素質(zhì)的需要,也是適應(yīng)現(xiàn)代化船舶日益自動(dòng)化、信息化、智能化發(fā)展的需求。目前船舶電站模擬器主要有兩種類型:一類是軟硬件結(jié)合的半實(shí)物船舶電站模擬器,它用硬件全部或部分模擬實(shí)船上的電站設(shè)備及其操作與顯示功能,操作真實(shí)性強(qiáng),但價(jià)格昂貴,不便于攜帶。另一類是純軟件的船舶電站模擬器即虛擬船舶電站模擬器,它是通過數(shù)學(xué)建模、軟件開發(fā)等計(jì)算機(jī)技術(shù),在計(jì)算機(jī)上實(shí)現(xiàn)的可視化模擬訓(xùn)練平臺(tái)。它可以將船舶電站設(shè)備全部虛擬到獨(dú)立的PC機(jī)上運(yùn)行,訓(xùn)練時(shí)只需用鍵盤和鼠標(biāo)在控制屏上實(shí)施操作,其價(jià)格便宜,無需維護(hù)。近年來隨著計(jì)算機(jī)虛擬現(xiàn)實(shí)技術(shù)的飛速發(fā)展,虛擬船舶電站模擬器越來越真實(shí),且升級(jí)方便,逐漸受到用戶的青睞,具有極大的發(fā)展前景。
1.1 Unity3D簡(jiǎn)介
Unity3D是一款專業(yè)游戲開發(fā)引擎,能夠提供方便、簡(jiǎn)潔的跨平臺(tái)游戲開發(fā),擁有高度優(yōu)化的DirectX和OpenGL圖形渲染管道。Unity3D采用層級(jí)式的可視化開發(fā)環(huán)境,一個(gè)完整的Unity3D程式由若干場(chǎng)景(Scene)組合而成,每個(gè)場(chǎng)景中又包含許多模型(GameObject),這些模型可以在Unity3D中創(chuàng)建、編輯或由其它軟件創(chuàng)建后導(dǎo)入。所有的模型都可以通過腳本控制它們的行為。最終在場(chǎng)景中所看到的內(nèi)容是由攝像機(jī)(Camera)來展示并控制的。Unity3D具有非常強(qiáng)大的物理引擎,能模擬現(xiàn)實(shí)世界中的物理現(xiàn)象。因此,Unity3D功能強(qiáng)大、易于使用、跨平臺(tái),非常適合于創(chuàng)建虛擬現(xiàn)實(shí)環(huán)境。
1.2 基于Unity3D的虛擬現(xiàn)實(shí)系統(tǒng)結(jié)構(gòu)
基于Unity3D的虛擬現(xiàn)實(shí)系統(tǒng)分為模型開發(fā)環(huán)境、虛擬現(xiàn)實(shí)環(huán)境和用戶系統(tǒng)環(huán)境三個(gè)部分,其中模型開發(fā)環(huán)境通過諸如3DSMAX 等三維軟件來進(jìn)行建模和材質(zhì)貼圖,開發(fā)完成后發(fā)布為.FBX格式文件。然后將.FBX文件導(dǎo)入U(xiǎn)nity3D軟件進(jìn)行系統(tǒng)合成和交互開發(fā),最終形成基于Unity3D引擎的虛擬現(xiàn)實(shí)環(huán)境,其中包括場(chǎng)景數(shù)據(jù)庫、Unity3D渲染引擎和碰撞檢測(cè)等交互處理程序,然后發(fā)布到服務(wù)器。當(dāng)收到基于用戶系統(tǒng)環(huán)境的請(qǐng)求后,將需要的文件發(fā)送至用戶計(jì)算機(jī)實(shí)現(xiàn)場(chǎng)景的渲染輸出、相機(jī)的跟蹤以及碰撞檢測(cè)等交互操作。整個(gè)系統(tǒng)結(jié)構(gòu)如圖1所示。
1.3 基于Unity3D的虛擬現(xiàn)實(shí)系統(tǒng)的關(guān)鍵技術(shù)
1) 實(shí)時(shí)顯示,在Unity3D引擎中,不需要像3DSMAX等軟件必須渲染才能產(chǎn)生畫面,因?yàn)槠鋬?nèi)置了渲染引擎,可以生成具有LOD層次細(xì)節(jié)的畫面,并進(jìn)行顯示效果優(yōu)化,即Unity3D是一個(gè)所見即所得的開發(fā)環(huán)境。
2) 場(chǎng)景漫游,Unity3D中內(nèi)置了第一人稱角色控制器,只要將控制器預(yù)置體拖放至場(chǎng)景中就可以模擬第一人稱在場(chǎng)景中進(jìn)行漫游;還可以通過檢測(cè)輸入控制攝像機(jī)的方式驅(qū)動(dòng)場(chǎng)景,從而實(shí)現(xiàn)任意視角的場(chǎng)景漫游。
3) 碰撞檢測(cè),在場(chǎng)景驅(qū)動(dòng)中必須設(shè)置物體物理屬性來避免“穿墻而過”,因此,每個(gè)物體都必須添加能夠執(zhí)行碰撞檢測(cè)的組件Component-Physics-Mesh Collider,從而使所有物體在不影響性能的前提下都具有碰撞檢測(cè)功能。
2.1 虛擬船舶電站模擬器系統(tǒng)結(jié)構(gòu)
虛擬船舶電站模擬器系統(tǒng)主要包括3D模型模塊、數(shù)學(xué)模型模塊以及教學(xué)功能模塊三部分[2]。其中3D模型用來構(gòu)建虛擬環(huán)境;數(shù)學(xué)模型用來實(shí)現(xiàn)系統(tǒng)與用戶的交互以及模型間的交互;教學(xué)功能模塊用來實(shí)現(xiàn)人機(jī)交互界面,船舶電站模擬器系統(tǒng)結(jié)構(gòu)如圖2所示。
2.2 3D模型模塊
該模塊以某集裝箱船的船舶電站為原型構(gòu)建了柴油發(fā)電機(jī)組、電站控制管理室、船舶電站配電屏以及相關(guān)負(fù)載的三維可視化虛擬場(chǎng)景,即將船舶電站設(shè)備場(chǎng)景都虛擬到服務(wù)器上[3]。
當(dāng)訓(xùn)練時(shí),訓(xùn)練人員的PC機(jī)將虛擬設(shè)備場(chǎng)景下載到本地機(jī)上,經(jīng)過瀏覽器插件實(shí)時(shí)渲染就可以得到船舶電站設(shè)備的虛擬場(chǎng)景,然后通過鍵盤和鼠標(biāo)進(jìn)行操作。利用這些虛擬設(shè)備場(chǎng)景可以實(shí)現(xiàn)的仿真訓(xùn)練主要有:
1)發(fā)電機(jī)組的起動(dòng)、手動(dòng)合閘供電與供電方式的轉(zhuǎn)換;
2)發(fā)電機(jī)的手動(dòng)并車與解列操作;
3)發(fā)電機(jī)突加、突卸負(fù)載的測(cè)試;
4)發(fā)電機(jī)的調(diào)壓、調(diào)頻特性與負(fù)荷分配特性測(cè)試;
5)發(fā)電機(jī)的保護(hù)功能;
6)應(yīng)急發(fā)電機(jī)手動(dòng)和自動(dòng)控制功能;
7)逼真地模擬各種電氣故障工況等。
2.3 數(shù)學(xué)模型模塊
船舶電站模擬器必須按照發(fā)電裝置和配電裝置的工作過程建立數(shù)學(xué)模型,用數(shù)學(xué)形式來表示其設(shè)備的控制、特性和狀態(tài)參數(shù)之間的關(guān)系,經(jīng)過適當(dāng)簡(jiǎn)化和假設(shè)后,通過計(jì)算機(jī)的運(yùn)算實(shí)現(xiàn)三維場(chǎng)景控制。因而,數(shù)學(xué)模型模塊主要包括兩類模型:一類是動(dòng)態(tài)數(shù)學(xué)模型,用來模擬發(fā)電機(jī)以及附屬設(shè)備和系統(tǒng)的動(dòng)態(tài)特性;另一類是邏輯和控制的數(shù)學(xué)模型,用來模擬船舶電站的控制操作、報(bào)警和保護(hù)等。其中發(fā)電機(jī)動(dòng)態(tài)數(shù)學(xué)模型比較復(fù)雜,由兩部分組成:一是轉(zhuǎn)子運(yùn)動(dòng)方程,主要反映發(fā)電機(jī)輸入機(jī)械功率和輸出電功率不平衡時(shí)引起的發(fā)電機(jī)轉(zhuǎn)速與轉(zhuǎn)子角度的變化。一是電磁回路方程,主要描述發(fā)電機(jī)定子、轉(zhuǎn)子繞組的電壓方程。
2.4 教學(xué)功能模塊
教學(xué)功能模塊針對(duì)仿真訓(xùn)練和教學(xué)的需要對(duì)界面進(jìn)行簡(jiǎn)化設(shè)計(jì)。整個(gè)界面包括機(jī)艙漫游、操作訓(xùn)練、參數(shù)設(shè)置,考核評(píng)分、系統(tǒng)監(jiān)控和故障設(shè)置等功能。通過這些功能可以真實(shí)地模擬船舶電站正常和非正常運(yùn)行工況以及常見故障,能夠進(jìn)行相關(guān)內(nèi)容的仿真訓(xùn)練。其中,操作訓(xùn)練仿真界面由計(jì)算機(jī)仿真場(chǎng)景來模擬四臺(tái)發(fā)電機(jī)的運(yùn)行和負(fù)載操作,主要包括:發(fā)電機(jī)機(jī)旁控制箱四個(gè)、主配電板一塊、應(yīng)急配電板一塊。主配電板包括四個(gè)發(fā)電機(jī)控制屏、一個(gè)并車屏、兩個(gè)380V負(fù)載屏和兩個(gè)220V負(fù)載屏。應(yīng)急配電板包括一個(gè)應(yīng)急發(fā)電機(jī)控制屏和一個(gè)應(yīng)急負(fù)載屏。
用戶可以隨時(shí)登錄服務(wù)器,以個(gè)人計(jì)算機(jī)瀏覽器為觀察窗口,通過鼠標(biāo)和鍵盤控制自己的視角和視點(diǎn),對(duì)虛擬場(chǎng)景進(jìn)行動(dòng)態(tài)漫游和實(shí)時(shí)仿真訓(xùn)練。另外,通過聲音、視頻、文字等輔助性的手段,可以形象地講授船舶電站系統(tǒng)的各個(gè)部件、功能及各評(píng)估項(xiàng)目的操作過程等。而且虛擬場(chǎng)景與數(shù)據(jù)庫相連,可以保存訓(xùn)練人員的所有操作記錄,可供教師對(duì)操作情況進(jìn)行檢查及評(píng)判
虛擬船舶電站模擬器平臺(tái)實(shí)現(xiàn)的主要步驟為:
1)使用3DSMAX創(chuàng)建船舶電站相關(guān)設(shè)備場(chǎng)景的三維數(shù)字化模型,并導(dǎo)入至Unity3D內(nèi)進(jìn)行編輯;
2)通過Unity3D的JavaScript腳本程序接口實(shí)現(xiàn)數(shù)學(xué)模型對(duì)虛擬場(chǎng)景的控制,從而驅(qū)動(dòng)三維虛擬設(shè)備動(dòng)作;
3)設(shè)計(jì)構(gòu)建人機(jī)交互界面;
4)將整個(gè)虛擬場(chǎng)景上傳至服務(wù)器。當(dāng)用戶使用時(shí),整個(gè)模擬器的虛擬場(chǎng)景就通過網(wǎng)絡(luò)下載到用戶計(jì)算機(jī),經(jīng)過瀏覽器的實(shí)時(shí)渲染,將具有交互性的三維虛擬設(shè)備和場(chǎng)景展示給用戶。
3.1 設(shè)備場(chǎng)景模型的創(chuàng)建
Unity3D對(duì)目前主流的三維模型文件格式都具有良好的支持,本系統(tǒng)使用3DSMAX軟件進(jìn)行設(shè)備和場(chǎng)景的建模,并用PhotoShop進(jìn)行材質(zhì)紋理的處理[4]。當(dāng)模型創(chuàng)建后,利用3DSMAX的導(dǎo)出功能將所有模型導(dǎo)出為.FBX格式,在導(dǎo)出時(shí)勾選嵌入的媒體項(xiàng),這樣所有的貼圖就會(huì)一起導(dǎo)出。然后,將.FBX文件放置在Unity3D工程文件的Assets目錄中,這樣在Unity3D的Project視圖中就能夠找到包括模型與材質(zhì)在內(nèi)的所有的資源文件。
在布置所有的設(shè)備和場(chǎng)景之前,需要為模型創(chuàng)建Prefabs(預(yù)置體),它是一個(gè)對(duì)象及其組件的集合,可以在場(chǎng)景中被多次重復(fù)使用,即多個(gè)相同的對(duì)象可以使用一個(gè)預(yù)置實(shí)例化。例如創(chuàng)建一個(gè)發(fā)電機(jī)控制屏的預(yù)置就可以實(shí)例化多個(gè)發(fā)電機(jī)控制屏,這樣可以減小虛擬場(chǎng)景的文件大小,從而提高虛擬場(chǎng)景下載到用戶計(jì)算機(jī)的速度,提高整個(gè)模擬器的性能。集控室主配電板虛擬場(chǎng)景效果如圖3所示。
3.2 實(shí)現(xiàn)對(duì)虛擬場(chǎng)景的控制
系統(tǒng)使用JavaScript語言編寫腳本,當(dāng)所有設(shè)備的數(shù)學(xué)模型分別用JavaScript語言實(shí)現(xiàn)后,保存為單獨(dú)的.JS文件,然后將這些腳本文件附加到相應(yīng)的模擬設(shè)備對(duì)象上,就可以實(shí)現(xiàn)對(duì)虛擬設(shè)備與場(chǎng)景的控制[5]。此外,系統(tǒng)提供了可以自由切換的自由行走和飛行兩種漫游方式實(shí)現(xiàn)機(jī)艙漫游控制,讓訓(xùn)練人員能夠?qū)φ麄€(gè)機(jī)艙有更好的觀察和了解,其中飛行模式的部分JS代碼如下所示:
3.3 人機(jī)交互界面的實(shí)現(xiàn)
系統(tǒng)的圖形用戶操作界面由一個(gè)主界面和多個(gè)子界面組成,主界面中設(shè)置多個(gè)按鈕引導(dǎo)用戶進(jìn)入機(jī)艙漫游、操作訓(xùn)練、參數(shù)設(shè)置等相關(guān)內(nèi)容,除了機(jī)艙漫游需要由鍵盤和鼠標(biāo)共同實(shí)現(xiàn)操作外,其它的圖形用戶界面均通過鼠標(biāo)進(jìn)行操作。Unity3D的圖形用戶界面由腳本實(shí)現(xiàn),這些腳本必須寫在OnGUI方法里,本系統(tǒng)OnGUI方法部分代碼如下所示:
本文將Unity3D的虛擬現(xiàn)實(shí)技術(shù)引入到虛擬船舶電站模擬器的研究與開發(fā)中,進(jìn)一步提高了船舶電站模擬器虛擬環(huán)境仿真效果的真實(shí)性,使得訓(xùn)練人員能夠在單獨(dú)的PC機(jī)上通過Internet進(jìn)行更加真實(shí)的船舶電站模擬訓(xùn)練和學(xué)習(xí),具有非常高的性價(jià)比。此外,本文研究討論的關(guān)鍵技術(shù)可以應(yīng)用于其它包括安全、醫(yī)學(xué)、電子、科技等相關(guān)的虛擬現(xiàn)實(shí)與仿真等領(lǐng)域。
[1] 中華人民共和國(guó)海事局. 中華人民共和國(guó)海船船員適任考試人綱[M]. 大連海事人學(xué)出版社, 2006.
[2] 施偉鋒. 船舶電站仿真系統(tǒng)軟件人機(jī)界面的開發(fā)[J].機(jī)電設(shè)備, 2001, (1) :21-28.
[3] 周立民. 船舶電站模擬器系統(tǒng)的研究和實(shí)現(xiàn)[D]. 大連海事大學(xué)碩士學(xué)位論文, 2005.
[4] 陽化冰,劉忠麗,劉忠軒等. 虛擬現(xiàn)實(shí)構(gòu)造語言[M].天津航空航天大學(xué)出版社.
[5] 王益斌. 基于Web3D虛擬船舶輪機(jī)模擬器實(shí)現(xiàn)方式的思考[J]. 中國(guó)水運(yùn), 2008, (7) :126-128.
Research on Virtual Simulator of Marine Power Station Based on Unity3D
Hong Qian
(Bohai Shipbuilding Vocational College, Huludao 125005, Liaoning,China )
By introducing virtual reality technology, this paper shows key technology, systematic structure,technical line and implementation scheme of virtual marine power station simulator using the latest professional engine Unity3D software .The simulator has many advantages, such as data precision, deeply impressive, web based and highly interactive. This software design can not only provide experiment platform for teaching, but also conveniently move to other kinds of practical application systems. It has a high application value.
marine power station; unity3D; simulator; virtual reality
TM621
A
1003-4862(2014)03-0053-04
2013-08-13
洪茜(1981- ), 女, 講師。研究方向:船舶電氣自動(dòng)化。