韓君利
(遼沈工業集團有限公司,遼寧沈陽,110045)
底排火箭復合增程彈由引信、防潮墊、炸藥、彈丸殼體、火箭推進劑、火箭發動機、噴管、點火炬、底排藥劑、底排殼體、彈帶組成。其二維裝配圖如下圖1所示。根據底排火箭復合增程彈的裝配圖,使用ProE軟件對各個零件進行三維建模如2—6所示。

圖1 底排火箭復合增程彈CAD裝配圖
在ProE軟件中繪制的零件模型,默認的是“prt”格式,并不能在3ds Max中正常識別,需要我們轉換成能正常識別的“stl”格式的文件,然后進行導入。打開3ds Max軟件,然后點擊“導入”,選擇要導入的文件,所有零部件導入后的效果如圖7所示。模型導入后通過移動和旋轉對零件的位置和方向進行調整,調整到合適的位置。

圖2 火箭推進劑

圖3 引信

圖4 防潮墊

圖5 彈體

圖6 炸藥

圖7 零件導入示意圖
把導入的每個零件的位置擺放正確后,通過設置坐標來確定零件的正確位置。然后設置關鍵幀,每移動一次零件的位置,記錄一次關鍵幀,設置每一個動作為50幀。最后通過每一次移動零件位置,記錄下關鍵幀,最終完成底排火箭復合增程彈模型的裝配,形成一個完整的動畫。
系統的主界面主要是為用戶提供一個進入其它場景的入口,是一個二維的場景,直接使用NGUI來搭建,完成后的效果如圖8所示。

圖8 系統主界面
首先將設計界面所需的圖片準備好,然后打包成NGUI的Atlas,這時就完成了將UI設計時的圖片元素集的生成,在進行UI設計時就可以隨時到這個圖集中進行調用。
其次,NGUI中默認不顯示中文字體,所以需要進行中文字體的制作。對于字體的制作,可從互聯網下載中文字體添加到字體目錄,這樣在進行字體選擇時就可以選擇相應的中文字體。NGUI提供了兩種字體方案,即動態字體(Dynamic Font),和靜態字體(Normal Font)。本設計對于字體的顯示選擇靜態字體。這種方式需要提前預估需要用到的文字,然后使用BM Font軟件制作紋理,導入到NGUI生成字體預制才能使用[2]。
場景的設計是系統設計的關鍵部分,好的場景能夠完美的顯示系統的特點和實現系統功能。這樣在進行系統應用時,使用者通過系統的既定功能,就可完成對所設計的底排火箭復合增程彈進行操作訓練。
將3ds Max中制作出的裝配動畫以“FBX”的格式導出后,打開Unity3D的裝配場景,把動畫文件首先拖進到Project窗口中的Assets文件夾中,然后選中該文件后,就可以在Inspector視圖的Import Settings面板中,編輯該模型的導入設置。在Inspector視圖的Import Settings面板中,有一個Animations子面板,該面板的主要作用是可以對模型的動畫片段進行編輯[3]。導入后的模型動畫是一個完整的裝配動畫,根據需要,要把它拆分成若干個獨立的動畫片段,每一個動畫片段播放的是一個零件的裝配,拆分后的動畫片段如圖9所示。

圖9 拆分后的動畫片段
在交互過程中,場景中的對象要對鼠標的單擊作出相應的反應,所以要對場景中的對象添加碰撞檢測,然后當鼠標接觸對象時通過相應的程序代碼就可實現場景中對象的相應動作。在Unity3D中,做碰撞檢測有三種方法[4]。第一種是碰撞器,第二種是觸發器,最后一種是射線檢測。碰撞器是一群組件,它包含了很多種類,本設計采用碰撞器。
碰撞器設置之后,如果要實現一個片段的動畫跳轉到另一片段動畫,使用腳本控制它們可能是一個潛在的復雜工作。而Unity3D的Mecanim動畫系統借用了計算機工程師熟知的一個概念,那就是狀態機來簡單的控制和序列化動畫[5]。而底排火箭復合增程彈的拆裝必須要按照正確的裝配順序進行裝配,所以每一個片段的動畫轉換到另一個片段的順序是唯一的,不能互換順序,所以在Animator[6]窗口中設計各個片段動畫的關系如圖10所示。

圖10 裝配動畫狀態機
在系統運行時,首先播放一段動畫,這段動畫是將一個裝配好的底排火箭復合增程彈進行拆解,相當于一段教程,培訓者通過觀看底排火箭復合增程彈的拆解,就會了解到正確的裝配順序,從而快速而準確地完成火箭復合增程彈的裝配。觀看完這段動畫,就可進行裝配操作,在操作過程中設計有操作考評系統,通過這個考評系統,可使操作者知道自己的裝配順序是否正確,最終順利完成裝配底排火箭復合增程彈的任務。考評系統設計的思路是,滿分為100分,用戶點擊零件進行裝配,如果用戶裝配順序錯誤,每錯誤一次,就會減去10分,當總分低于60分時,系統會彈出對話框提示你重新裝配,如圖11所示,這時就要重新播放底排火箭復合增程彈的拆解,然后才能開始裝配,這也就相當于重新進行系統操作。

圖11 提示重新裝配界面