范志鋒 徐敬青
1(武昌工學(xué)院機(jī)械工程學(xué)院 湖北 武漢 430065)2(湖北省綠色風(fēng)機(jī)協(xié)同創(chuàng)新中心 湖北 武漢 430065)3(陸軍工程大學(xué)石家莊校區(qū) 河北 石家莊 050003)
末制導(dǎo)炮彈是一種高技術(shù)彈藥,能夠?qū)崿F(xiàn)對目標(biāo)的精確打擊[1]。與傳統(tǒng)無控彈藥相比,末制導(dǎo)炮彈內(nèi)部含有復(fù)雜的光電系統(tǒng)。在長期儲存過程中,為確保其質(zhì)量,需要利用專用檢測儀器對末制導(dǎo)炮彈內(nèi)部的光電系統(tǒng)開展性能檢測。文獻(xiàn)[1]介紹了利用虛擬儀器開展末制導(dǎo)炮彈檢測的具體實現(xiàn)方法,但基于虛擬儀器的末制導(dǎo)炮彈性能檢測操作過程較為繁瑣,需要對操作人員開展專門的末制導(dǎo)炮彈性能檢測訓(xùn)練,才能勝任該項工作。文獻(xiàn)[2]介紹了一種末制導(dǎo)炮彈檢測彈的設(shè)計方案,認(rèn)為開展末制導(dǎo)炮彈性能檢測訓(xùn)練,需要使用末制導(dǎo)炮彈性能檢測儀和相應(yīng)的檢測彈。根據(jù)文獻(xiàn)[2]中介紹的方法開展末制導(dǎo)炮彈性能檢測訓(xùn)練,存在的主要問題是:要想實現(xiàn)“人手一套”,費用較高,推廣應(yīng)用較難。
近年來,隨著計算機(jī)軟硬件技術(shù)的不斷發(fā)展,虛擬現(xiàn)實技術(shù)已經(jīng)成功應(yīng)用到教育、醫(yī)療、建筑、航天、汽車、導(dǎo)航、軍事等社會各個行業(yè)和領(lǐng)域[3-9]。虛擬現(xiàn)實技術(shù)是一種能夠產(chǎn)生與真實場景在視覺、聽覺以及觸覺等方面及其相似的虛擬場景的計算機(jī)技術(shù),用戶通過必要的交互設(shè)備,在虛擬場景中進(jìn)行交互操作,達(dá)到身臨其境的效果,具有強(qiáng)大的沉浸性、交互性和構(gòu)想性等特征[10-11]。本文克服文獻(xiàn)[2]中的方法開展末制導(dǎo)炮彈檢測訓(xùn)練的缺點,以虛擬現(xiàn)實技術(shù)為理論指導(dǎo),基于Unity3D、3DMAX、Dreamweaver和Photoshop等軟件,設(shè)計末制導(dǎo)炮彈檢測訓(xùn)練系統(tǒng),提供末制導(dǎo)炮彈檢測虛擬訓(xùn)練功能,以解決院校和彈藥檢測機(jī)構(gòu)缺乏訓(xùn)練條件的現(xiàn)實問題。
目前,虛擬現(xiàn)實系統(tǒng)主要分為4類:桌面虛擬現(xiàn)實系統(tǒng)、沉浸式虛擬現(xiàn)實系統(tǒng)、增強(qiáng)虛擬現(xiàn)實系統(tǒng)和分布式虛擬現(xiàn)實系統(tǒng)[12]??紤]系統(tǒng)的開發(fā)費用和運行成本,末制導(dǎo)炮彈檢測訓(xùn)練系統(tǒng)采用桌面虛擬現(xiàn)實技術(shù)進(jìn)行開發(fā),即開發(fā)的訓(xùn)練系統(tǒng)是一套軟件,利用鼠標(biāo)進(jìn)行人機(jī)交互操作。整個系統(tǒng)既能夠?qū)崿F(xiàn)單機(jī)運行,也能夠?qū)崿F(xiàn)基于局域網(wǎng)多人在線訓(xùn)練。
為提高末制導(dǎo)炮彈檢測訓(xùn)練效果,系統(tǒng)應(yīng)具備檢測知識學(xué)習(xí)功能、檢測虛擬操作功能以及訓(xùn)練考核功能。
根據(jù)系統(tǒng)應(yīng)具備的功能,末制導(dǎo)炮彈檢測訓(xùn)練系統(tǒng)設(shè)計5個功能模塊:訓(xùn)練幫助、靜態(tài)展示、訓(xùn)練演示、虛擬訓(xùn)練、訓(xùn)練考核。
訓(xùn)練幫助模塊主要以文字和圖片等形式,介紹系統(tǒng)的功能、檢測操作步驟、系統(tǒng)操作使用說明等內(nèi)容。
靜態(tài)展示模塊采用交互操作的形式,主要以圖片配合文字說明,展示末制導(dǎo)炮彈檢測操作過程中需要使用的所有設(shè)備工具以及被測對象。
訓(xùn)練演示模塊采用視頻的形式,自動演示末制導(dǎo)炮彈檢測的操作步驟。
虛擬訓(xùn)練模塊采用交互操作的形式,保證訓(xùn)練者按照正確的檢測流程進(jìn)行末制導(dǎo)炮彈檢測虛擬訓(xùn)練。
訓(xùn)練考核模塊采用交互操作的形式,可以對末制導(dǎo)炮彈檢測訓(xùn)練者實施考核,在考核結(jié)束后,能自動對訓(xùn)練者進(jìn)行評分。
根據(jù)系統(tǒng)的功能和模塊,結(jié)合軟件開發(fā)的一般流程,本文將末制導(dǎo)炮彈檢測訓(xùn)練系統(tǒng)開發(fā)過程分為5個步驟:
(1) 廣泛收集末制導(dǎo)炮彈檢測操作的各種素材,包括圖片、文字、聲音、視頻等,并對原始素材對象進(jìn)行特征分析和歸類,以供后續(xù)建模使用。
(2) 對檢測設(shè)備工具、檢測對象、訓(xùn)練操作環(huán)境等素材采用3D MAX進(jìn)行三維靜態(tài)建模,以檢測操作真實動作為依據(jù),通過3D MAX軟件自帶的腳本功能生成的檢測動作模型,并輸出FBX格式文件。
(3) 在Unity 3D軟件中載入FBX文件,以檢測操作真實流程為依據(jù),編寫C#腳本實現(xiàn)交互,輸出靜態(tài)展示、虛擬訓(xùn)練、訓(xùn)練考核等3個獨立的功能模塊。
(4) 使用Apowersoft錄屏軟件,錄制虛擬訓(xùn)練全過程操作視頻,輸出訓(xùn)練演示模塊。
(5) 運用Dreamweaver和Photoshop軟件設(shè)計交互界面,將完成的靜態(tài)展示、虛擬訓(xùn)練、訓(xùn)練考核以及訓(xùn)練演示模塊插入相應(yīng)的網(wǎng)頁中,并添加訓(xùn)練幫助模塊,完善后打包發(fā)布成網(wǎng)頁版訓(xùn)練系統(tǒng)。
系統(tǒng)的具體開發(fā)流程如圖1所示。
圖1 系統(tǒng)開發(fā)流程
由于篇幅限制,本文只對系統(tǒng)實現(xiàn)的一些主要技術(shù)環(huán)節(jié)進(jìn)行說明。
系統(tǒng)需要建立的三維模型包括兩類:一是檢測過程中需要使用的設(shè)備工具和檢測彈;二是檢測訓(xùn)練操作環(huán)境。
三維建模主要在3D MAX軟件中進(jìn)行開發(fā),最終輸出FBX格式文件。三維建模按照靜態(tài)建模、動態(tài)建模、FBX文件輸出3個步驟進(jìn)行。
三維靜態(tài)模型的建立包括創(chuàng)建模型、編輯材質(zhì)和渲染3個步驟。上述兩類三維模型的創(chuàng)建模型方法類似。在3DMAX中均采用多邊形建模方法(polygon)進(jìn)行建模。任何物體都是由點、線、面所組成的,本文需要建立的模型都是以基本形狀為基礎(chǔ),通過改變點、線、面來修正造型。對于部分比較復(fù)雜的模型,可以在建立基礎(chǔ)模型后通過修改命令進(jìn)行調(diào)整。
為了提高三維靜態(tài)模型的逼真程度,部分三維模型的表面需要使用貼圖,如檢測儀內(nèi)置的使用說明書、設(shè)備的銘牌等。對于該類貼圖,一般采用相機(jī)拍攝圖片,然后用Photoshop軟件對圖像進(jìn)行調(diào)節(jié),放大或者縮小貼圖尺寸,使貼圖適應(yīng)模型的大小,并更改圖像顏色使其與模型匹配。建立的部分三維靜態(tài)模型見圖2。
(a) 電阻檢測儀 (b) 性能檢測儀
(c) 檢測彈 (d) 檢測操作臺圖2 系統(tǒng)部分三維模型
3D MAX軟件自帶的各類腳本可實現(xiàn)單步虛擬檢測操作的各類動作。在得到檢測設(shè)備工具和檢測彈以及檢測訓(xùn)練操作環(huán)境的三維靜態(tài)模型后,依據(jù)末制導(dǎo)炮彈檢測操作的真實動作,對模型添加對應(yīng)的動作腳本,生成單步三維動態(tài)模型。
在生成三維動態(tài)模型后,在3D MAX軟件中輸出FBX格式文件。FBX格式文件包含了模型主要的三維數(shù)據(jù)元素以及二維、音頻和視頻媒體元素,有利于下一步使用Unity 3D軟件進(jìn)行交互構(gòu)建。
本文研究的末制導(dǎo)炮彈檢測訓(xùn)練系統(tǒng)是一套桌面虛擬現(xiàn)實系統(tǒng),交互操作是通過鼠標(biāo)實現(xiàn)的。交互構(gòu)建是在Unity 3D軟件中通過編寫C#腳本實現(xiàn)的,是整個系統(tǒng)開發(fā)的核心。下面對3個交互模塊的一些典型環(huán)節(jié)腳本代碼進(jìn)行說明。
1) 靜態(tài)展示模塊 靜態(tài)展示模塊的交互操作,主要要求訓(xùn)練人員用鼠標(biāo)移動到檢測設(shè)備工具或檢測彈后,系統(tǒng)會自動高亮顯示該對象并且提示該對象的具體名稱,用鼠標(biāo)左鍵點擊該對象后,會彈出該介紹該對象的詳細(xì)圖片。部分C#代碼如下:
void OnGUI(){
//描邊顯示文字
if (isShowTip) {
GUIStyle bb=new GUIStyle ();
//GUI文字
bb.normal.background=null;
//GUI背景為空
bb.normal.textColor=new Color (1,0,0);
//字體顏色
bb.fontSize=25;
//字體大小為25
GUIStyle cc=new GUIStyle ();
cc.normal.background=null;
cc.normal.textColor=new Color (0,0,0);
cc.fontSize=25;
GUI.Label(new Rect(Input.mousePosition.
x+22.5f,Screen.height-Input.mousePosi
tion.y-20f,100,40),_name,cc);
//顯示字體位置
GUI.Label(new Rect(Input.mousePosition.
x+20f,Screen.height-Input.mousePosi
tion.y-20f,100,40),_name,bb);
}
}
2) 虛擬訓(xùn)練模塊 虛擬訓(xùn)練模塊的交互操作,主要要求是在操作界面上實時顯示操作步驟的前提下,訓(xùn)練人員用鼠標(biāo)移動到正確的位置并點擊左鍵后,系統(tǒng)開始播放相應(yīng)的檢測動作,直到完成整個檢測操作流程。
編寫C#代碼,主要完成預(yù)先存儲鼠標(biāo)在操作界面中的位置信息,并判斷當(dāng)前鼠標(biāo)位置信息是否與預(yù)定的儲存位置發(fā)生碰撞的功能。當(dāng)判斷射線檢測到發(fā)生碰撞時,即將鼠標(biāo)移動到操作對象處時,鼠標(biāo)指針變?yōu)橹甘炯^,當(dāng)訓(xùn)練人員點擊鼠標(biāo)左鍵時,播放動畫。部分C#代碼如下:
void Click() {
var gg=Input.mousePosition;
//存儲鼠標(biāo)點信息
Ray ray=Camera.main.ScreenPointToRay (gg);
//存儲由相機(jī)發(fā)出的射線信息
RaycastHit hitInfo;
//存儲涉嫌碰撞信息
if (Physics.Raycast (ray, out hitInfo)) {
//判斷射線檢測
Name=hitInfo.collider.transform.name;
//存儲射線碰撞到的物體名字
if (Input.GetMouseButtonDown (0)) {
//如果點擊鼠標(biāo)左鍵
switch (Name) {
//判斷物體名字
case "0":
playAnimbbb (0);
//播放打開抽屜的動畫
break;
case "1":
playAnimbbb (1);
//播放檢測工具取出的動畫
foreach (var item in UIgj._instance.uizong) {
//顯示物體,遍歷數(shù)組
item.SetActive (true);
}
3) 訓(xùn)練考核模塊 訓(xùn)練考核模塊的交互操作,與虛擬訓(xùn)練模塊的交互操作類似,不同的是訓(xùn)練考核模塊的操作界面上不實時顯示操作步驟,同時增加考核計分功能。實現(xiàn)當(dāng)訓(xùn)練人員需要查看操作步驟時,系統(tǒng)將扣除相應(yīng)步驟的分?jǐn)?shù),并在打分板上顯示所有的扣分步驟和最終的得分。部分C#代碼如下:
public void xianshi(){
//顯示提示文字
if (isPre1) {
isPre1=false;
}
if (aa.isPlaying==true) {
isPre=false;
} else {
if (tsLab.enabled==false) {
fen (5);
//扣除分?jǐn)?shù)
tsLab.enabled=true;
ls.Add (tsLab.text);
for (int i=0; i for (int j=i; j ooo[i].text=ls[i]+"[000000FF]-5分[000000FF]"; } //記錄窗口中顯示扣分步驟以及扣除的分?jǐn)?shù) } } } } public void fen(int i){ //減分函數(shù) if (num>0) { num-=i; } GameObject.Find ("ff").GetComponent } public void jilu(){ //記錄按鈕打開和關(guān)閉 if (ison1) { zz.SetActive (true); ison1=false; } else{ zz.SetActive (false); ison1=true; } } 本文研究的末制導(dǎo)炮彈檢測訓(xùn)練系統(tǒng)界面,用Photoshop軟件進(jìn)行設(shè)計。設(shè)計的登錄界面如圖3所示。 圖3 系統(tǒng)登陸界面 將設(shè)計的界面導(dǎo)入Dreamweaver軟件,將各個獨立的模塊進(jìn)行系統(tǒng)集成,最終得到打包發(fā)布的網(wǎng)頁版系統(tǒng)。系統(tǒng)最終生成的主文件名為index.html,是一個網(wǎng)頁格式的文件。系統(tǒng)在單機(jī)運行時,只需要雙擊index.html,就進(jìn)入圖3所示的登錄界面。系統(tǒng)在局域網(wǎng)運行時,只需要輸入Web地址,同樣進(jìn)入系統(tǒng)登錄界面。 本文將虛擬現(xiàn)實技術(shù)應(yīng)用于末制導(dǎo)炮彈檢測訓(xùn)練領(lǐng)域,運用3D MAX進(jìn)行了三維建模,運用Unity 3D實現(xiàn)了交互操作,運用Photoshop設(shè)計了系統(tǒng)界面,運用Dreamweaver實現(xiàn)了系統(tǒng)集成,最終發(fā)布完成了網(wǎng)頁版的末制導(dǎo)炮彈檢測訓(xùn)練系統(tǒng)。該系統(tǒng)實現(xiàn)了末制導(dǎo)炮彈檢測操作全過程模擬,為開展相應(yīng)的訓(xùn)練提供了平臺,具有良好的推廣應(yīng)用前景。同時該系統(tǒng)的設(shè)計思路為類似的彈藥檢測虛擬訓(xùn)練系統(tǒng)設(shè)計提供了參考。3.3 界面設(shè)計與系統(tǒng)集成發(fā)布
4 結(jié) 語