韓君利
(遼沈工業(yè)集團(tuán)有限公司,遼寧沈陽(yáng),110045)
底排火箭復(fù)合增程彈由引信、防潮墊、炸藥、彈丸殼體、火箭推進(jìn)劑、火箭發(fā)動(dòng)機(jī)、噴管、點(diǎn)火炬、底排藥劑、底排殼體、彈帶組成。其二維裝配圖如下圖1所示。根據(jù)底排火箭復(fù)合增程彈的裝配圖,使用ProE軟件對(duì)各個(gè)零件進(jìn)行三維建模如2—6所示。
圖1 底排火箭復(fù)合增程彈CAD裝配圖
在ProE軟件中繪制的零件模型,默認(rèn)的是“prt”格式,并不能在3ds Max中正常識(shí)別,需要我們轉(zhuǎn)換成能正常識(shí)別的“stl”格式的文件,然后進(jìn)行導(dǎo)入。打開3ds Max軟件,然后點(diǎn)擊“導(dǎo)入”,選擇要導(dǎo)入的文件,所有零部件導(dǎo)入后的效果如圖7所示。模型導(dǎo)入后通過移動(dòng)和旋轉(zhuǎn)對(duì)零件的位置和方向進(jìn)行調(diào)整,調(diào)整到合適的位置。
圖2 火箭推進(jìn)劑
圖3 引信
圖4 防潮墊
圖5 彈體
圖6 炸藥
圖7 零件導(dǎo)入示意圖
把導(dǎo)入的每個(gè)零件的位置擺放正確后,通過設(shè)置坐標(biāo)來確定零件的正確位置。然后設(shè)置關(guān)鍵幀,每移動(dòng)一次零件的位置,記錄一次關(guān)鍵幀,設(shè)置每一個(gè)動(dòng)作為50幀。最后通過每一次移動(dòng)零件位置,記錄下關(guān)鍵幀,最終完成底排火箭復(fù)合增程彈模型的裝配,形成一個(gè)完整的動(dòng)畫。
系統(tǒng)的主界面主要是為用戶提供一個(gè)進(jìn)入其它場(chǎng)景的入口,是一個(gè)二維的場(chǎng)景,直接使用NGUI來搭建,完成后的效果如圖8所示。
圖8 系統(tǒng)主界面
首先將設(shè)計(jì)界面所需的圖片準(zhǔn)備好,然后打包成NGUI的Atlas,這時(shí)就完成了將UI設(shè)計(jì)時(shí)的圖片元素集的生成,在進(jìn)行UI設(shè)計(jì)時(shí)就可以隨時(shí)到這個(gè)圖集中進(jìn)行調(diào)用。
其次,NGUI中默認(rèn)不顯示中文字體,所以需要進(jìn)行中文字體的制作。對(duì)于字體的制作,可從互聯(lián)網(wǎng)下載中文字體添加到字體目錄,這樣在進(jìn)行字體選擇時(shí)就可以選擇相應(yīng)的中文字體。NGUI提供了兩種字體方案,即動(dòng)態(tài)字體(Dynamic Font),和靜態(tài)字體(Normal Font)。本設(shè)計(jì)對(duì)于字體的顯示選擇靜態(tài)字體。這種方式需要提前預(yù)估需要用到的文字,然后使用BM Font軟件制作紋理,導(dǎo)入到NGUI生成字體預(yù)制才能使用[2]。
場(chǎng)景的設(shè)計(jì)是系統(tǒng)設(shè)計(jì)的關(guān)鍵部分,好的場(chǎng)景能夠完美的顯示系統(tǒng)的特點(diǎn)和實(shí)現(xiàn)系統(tǒng)功能。這樣在進(jìn)行系統(tǒng)應(yīng)用時(shí),使用者通過系統(tǒng)的既定功能,就可完成對(duì)所設(shè)計(jì)的底排火箭復(fù)合增程彈進(jìn)行操作訓(xùn)練。
將3ds Max中制作出的裝配動(dòng)畫以“FBX”的格式導(dǎo)出后,打開Unity3D的裝配場(chǎng)景,把動(dòng)畫文件首先拖進(jìn)到Project窗口中的Assets文件夾中,然后選中該文件后,就可以在Inspector視圖的Import Settings面板中,編輯該模型的導(dǎo)入設(shè)置。在Inspector視圖的Import Settings面板中,有一個(gè)Animations子面板,該面板的主要作用是可以對(duì)模型的動(dòng)畫片段進(jìn)行編輯[3]。導(dǎo)入后的模型動(dòng)畫是一個(gè)完整的裝配動(dòng)畫,根據(jù)需要,要把它拆分成若干個(gè)獨(dú)立的動(dòng)畫片段,每一個(gè)動(dòng)畫片段播放的是一個(gè)零件的裝配,拆分后的動(dòng)畫片段如圖9所示。
圖9 拆分后的動(dòng)畫片段
在交互過程中,場(chǎng)景中的對(duì)象要對(duì)鼠標(biāo)的單擊作出相應(yīng)的反應(yīng),所以要對(duì)場(chǎng)景中的對(duì)象添加碰撞檢測(cè),然后當(dāng)鼠標(biāo)接觸對(duì)象時(shí)通過相應(yīng)的程序代碼就可實(shí)現(xiàn)場(chǎng)景中對(duì)象的相應(yīng)動(dòng)作。在Unity3D中,做碰撞檢測(cè)有三種方法[4]。第一種是碰撞器,第二種是觸發(fā)器,最后一種是射線檢測(cè)。碰撞器是一群組件,它包含了很多種類,本設(shè)計(jì)采用碰撞器。
碰撞器設(shè)置之后,如果要實(shí)現(xiàn)一個(gè)片段的動(dòng)畫跳轉(zhuǎn)到另一片段動(dòng)畫,使用腳本控制它們可能是一個(gè)潛在的復(fù)雜工作。而Unity3D的Mecanim動(dòng)畫系統(tǒng)借用了計(jì)算機(jī)工程師熟知的一個(gè)概念,那就是狀態(tài)機(jī)來簡(jiǎn)單的控制和序列化動(dòng)畫[5]。而底排火箭復(fù)合增程彈的拆裝必須要按照正確的裝配順序進(jìn)行裝配,所以每一個(gè)片段的動(dòng)畫轉(zhuǎn)換到另一個(gè)片段的順序是唯一的,不能互換順序,所以在Animator[6]窗口中設(shè)計(jì)各個(gè)片段動(dòng)畫的關(guān)系如圖10所示。
圖10 裝配動(dòng)畫狀態(tài)機(jī)
在系統(tǒng)運(yùn)行時(shí),首先播放一段動(dòng)畫,這段動(dòng)畫是將一個(gè)裝配好的底排火箭復(fù)合增程彈進(jìn)行拆解,相當(dāng)于一段教程,培訓(xùn)者通過觀看底排火箭復(fù)合增程彈的拆解,就會(huì)了解到正確的裝配順序,從而快速而準(zhǔn)確地完成火箭復(fù)合增程彈的裝配。觀看完這段動(dòng)畫,就可進(jìn)行裝配操作,在操作過程中設(shè)計(jì)有操作考評(píng)系統(tǒng),通過這個(gè)考評(píng)系統(tǒng),可使操作者知道自己的裝配順序是否正確,最終順利完成裝配底排火箭復(fù)合增程彈的任務(wù)??荚u(píng)系統(tǒng)設(shè)計(jì)的思路是,滿分為100分,用戶點(diǎn)擊零件進(jìn)行裝配,如果用戶裝配順序錯(cuò)誤,每錯(cuò)誤一次,就會(huì)減去10分,當(dāng)總分低于60分時(shí),系統(tǒng)會(huì)彈出對(duì)話框提示你重新裝配,如圖11所示,這時(shí)就要重新播放底排火箭復(fù)合增程彈的拆解,然后才能開始裝配,這也就相當(dāng)于重新進(jìn)行系統(tǒng)操作。
圖11 提示重新裝配界面