朱安慶, 胡安超
(1.江蘇科技大學 船舶與海洋工程學院,江蘇 鎮江 212003;2.江蘇現代造船技術有限公司,江蘇 鎮江 212003)
虛擬仿真教學一直是國內外關注的熱點,該教學方式為學生開展探究性自主實驗、合作學習和創新實踐提供了先進手段,開放平臺和豐富資源[1-2],為實驗室建設增添了活力。船舶制造是一個龐大的工程,造船廠占地面積大,設備眾多,一艘船舶的建造一般經過鋼材預處理、零件加工、部件加工、分段制造、分段預舾裝、分段涂裝、分段總組、總段搭載、船舶下水、碼頭舾裝、試航等過程,大型船舶建造過程多持續一年半或更長時間。
在高校傳統的教學中,針對船廠和生產過程認知相關的課程,教師普遍采用講解和展示二維圖片相結合的形式,部分高校還開設有船廠實地參觀等實踐課程,這些教學形式有一定的弊端:①教師課堂講解,學生數量多并且以被動的方式吸收知識,不能在課堂學習中發揮主動性,學習效果較差。②船廠參觀實踐教學,多為走馬觀花式,時間較短,學生不易產生整體的認知框架,船廠聲音嘈雜、施工環境差、危險系數高,現場教學相對困難。③專業實習消耗資金大、外出時間長、組織協調困難。
隨著我國對虛擬仿真實驗室教學的建設進入規模化、系統化、標準化、可持續化發展階段[3-4],現在結合三維建模技術和虛擬現實技術,將整個造船廠的布局、設備以及主要生產流程通過交互式的、沉浸式的形式展現出來,應用到高校相關課程的教學中,學生可以使用該系統反復觀摩“現場”,加上老師的講解,教學效果更好,同時避免了船廠參觀實踐中的安全隱患,因此這種新的教學方式對提升教學質量有積極影響。
基于Unity 3D軟件開發虛擬船廠的過程,實質上也就是開發虛擬現實內容的過程,按照某船廠的廠區規劃圖,首先應用三維建模軟件構建船廠資源的三維模型,然后將三維模型導入到Unity 3D軟件中,使用C#編程添加場景漫游、碰撞檢測、系統界面等功能,從而實現用戶在虛擬船廠中以第一人稱視角的方式觀察設備、廠房、船廠布局等,增加用戶對船廠的認知,達到預期教學效果。系統開發流程如圖1所示。

圖1 系統開發流程

表1 船廠主要資源匯總
當三維模型制作完成后,模型所包含的信息,如尺寸、單位、模型分類塌陷、命名、坐標、軸心調整、材質貼圖等必須符合制作的規范,這樣有利于模型在軟件之間導入導出以及模型的編程控制管理。以下為建模時應注意的幾個要點:
(1)單位。Unity 3D系統默認單位為m,在最新的Unity 3D 5.x版本中,其系統默認的比例因子(Scale Factor)更改為1,這樣不管在3D Max中模型的系統單位是什么(如mm、cm、m、km),只要模型顯示單位比例是1 m,那么導入Unity 3D后,默認顯示的效果仍然是1 m[5]。開發過程中系統單位和顯示單位比例都設置成m。
(2)模型的坐標。所有模型的初始坐標設置在原點,模型的軸心設置在物體中心。在3D Max中可以使用修改命令中的僅影響軸和居中到對象命令進行調整,注意在調整完后要將僅影響軸命令關閉,防止產生誤操作。
(3)命名規范。要注意模型的命名規范,不能出現重名,模型名稱最好使用英文和數字命名,否則在Unity 3D中的會出現一些問題,例如:在Unity 3D中使用中文命名的模型在實例化時會出現一定的延時[6]。
建模方面。3D Max最好使用可編輯多邊形建模,多邊形建模是最常用、最經典的建模途徑[7],將要編輯的模型轉化為可編輯多邊形,而后對該模型的子對象進行修改和編輯。建模完畢后,要對模型進行檢查,合并斷開的頂點,移除孤立的頂點,這樣可以減少模型面數,提高場景運行速度。在3D Max中當有縮放操作時要對模型進行重置變換,這樣可以消除縮放比例輸入框的記錄,避免后續產生誤操作。對于鏡像后生成的模型需要進行翻轉法線操作。
依據某船廠廠區規劃圖紙,圖紙為DWG格式,將圖紙導入到3D Max中并以二維平面的形式顯示,各個場地的相對位置可以按照此圖紙放置,對于車間設備的布局可以參考船廠車間布局圖,對于廠房和設備的詳細尺寸,由于技術文件的保密性不易獲取其CAD設計圖紙,建模時可以按照經驗選擇適當的比例大小。
虛擬船廠的開發使用的貼圖一部分為使用相機實地采集的用于制作模型的貼圖平面素材,例如:單梁半門式起重機和雙梁橋式起重機圖片等,另一部分貼圖為根據實際場景取材于網絡,如鋼材表面銹蝕效果的貼圖、窗戶的貼圖、廠房房頂的效果貼圖等。
Unity 3D是一個讓用戶輕松創建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的多平臺的綜合型游戲開發工具,是一個全面整合的專業游戲引擎[8]。Unity 3D不光局限在游戲開發領域,還可以用來進行虛擬現實內容開發,作為一種集成的創作工具,近年來越來越多的人將Unity 3D推廣到工業制造的過程演示、交互式的第一人稱視角場景漫游、虛擬裝配等等[9],使得Unity 3D在工業虛擬現實領域的應用越來越多。
報警管理數據庫與Web服務器、數據采集Buffer機采用2臺高性能服務器,數據采集機、實時報警操作站采用10臺普通服務器。另外根據網絡架構增加工業用防火墻和交換機。
模型建模完畢,材質貼圖也賦予到相應的模型上,將所有的模型按照廠區規劃圖和車間布局圖擺放到位,并把所有模型打包成組,將該組導出成FBX模型,要注意的是模型在導出對話框中要設置模型Y軸向上,這樣與Unity 3D軟件中的坐標系保持一致,“嵌入的媒體”選項要保持選中,這樣模型上帶有的貼圖文件在導入到Unity 3D后會保存在單獨的文件夾中,避免發生貼圖丟失的現象。再新建工程,將從3D Max中導出的FBX模型導入到新建工程中。
新建一個場景,將導入的FBX模型拖到Scene視圖中,這樣新建的船廠模型就顯示在了Scene視圖中,新建的場景默認會有主相機(Main Camera)、平行光(Directional Light)兩個游戲物體,Main Camera相當于觀察場景的“眼睛”,“眼睛”看到的會顯示在Game視圖中,Directional Light相當于場景中的“太陽”,它增強整個場景的亮度。在廠房的內部,為了使一些模型更亮、顯示效果更好,可以添加多個Point light(電光源),它以一個點為中心向外散發光照,照亮周邊模型。
另外還需要添加山、水、天空的模型,這部分模型使用Unity 3D制作,水的模型可以從Unity 3D自帶的標準資源包中導入,天空的效果使用標準資源中的天空球來模擬,山的效果使用Unity 3D的Terrain(地形)來制作[10-11],需要注意的是,地形制作過程中山上樹木分布盡量稀疏一些,這樣可以降低場景渲染對計算機硬件的要求。船廠制作完成鳥瞰效果圖如圖2所示。

圖2 虛擬船廠鳥瞰效果圖
在對學生的教學過程中,船廠資源布局和生產過程的認知是非常重要的,開發的系統功能主要有:船廠虛擬漫游、生產過程動畫展示、虛擬裝配和人機交互界面。
(1) 船廠虛擬漫游。船廠的漫游分為兩部分,一部分是在地面上以第一人稱視角的方式,察看船廠內設備、生產過程等資源,控制方式為鼠標和鍵盤。在Unity 3D中實現第一人稱視角漫游可以使用軟件標準資源(標準資源如果在安裝軟件時沒有一同安裝,需要在Unity 3D的資源商店下載導入)中第一人稱控制器(Character Controller)下的預設體“First person controller”,將這個預設體放置在場景中,調整位置離地面大約1.6 m即可,這樣模擬人的視線高度,同時加上膠囊檢測碰撞器,這樣在碰到船廠場景中的其他物體時可以有一定的物理碰撞效果而不至于穿過其他物體。
另外一部分功能是在船廠上方俯瞰整個廠區布局,這有利于整個生產場地分布的認知。這部分功能的實現可以使用C#腳本控制場景中的攝像機來實現,具體操作方式為:鼠標左鍵控制視角旋轉,右鍵控制視角平移,滾輪控制視角的縮近和拉遠。
(2) 生產過程動畫展示。針對鋼材加工流水線、型材成形加工、合攏等工藝過程,使用3D Max編輯關鍵幀動畫來展現這些工藝過程,隨模型一并導入到Unity 3D中,使用Unity 3D動畫(Mecanim)系統來開發虛擬場景中的動畫效果。
(3) 用戶界面(user inteface,UI)。系統的主界面和漫游場景中的UI交互使用Unity 3D自帶的UGUI系統制作,UGUI是Unity官方自帶的UI系統,自從Unity 4.6版本以后,UGUI系統有了質的飛躍,現在逐漸代替其他的UI插件成為Unity軟件中UI開發的主流[12]。開發中的主界面、聲音開關、關閉按鈕以及UI圖標切換效果等都是用UGUI系統制作。制作的主界面如圖3所示。

圖3 系統主界面
(4) 虛擬裝配。船舶裝配是一項龐大的工程,從一塊塊鋼板到一艘整船,包括部件裝配、分段裝配、分段總組等工藝過程[13],虛擬裝配的功能用來以交互式的方式展現制造過程,而不以三維動畫的形式展示,學生使用該系統可以通過鼠標等輸入設備,將裝配用到的零部件拖放到合適的位置來完成裝配,不同的裝配方法有不同的裝配順序,這樣學生對裝配方法、船舶建造過程掌握更深刻。圖4所示為分段制造車間的裝配仿真場景。

圖4 分段裝配仿真
本文介紹的船舶制造虛擬仿真教學系統發布成PC端的可執行文件,安裝在計算機機房的電腦上,每個學生可以通過顯示器、使用鼠標鍵盤控制,以第一人稱視角的方式在虛擬船廠中漫游,虛擬船廠中的主要生產過程在虛擬場景中循環展示,學生可以在漫游的過程中觀摩生產流程,配上教師的講解可以達到事半功倍的效果,系統安裝在計算機機房,對硬件要求不高,成本較低,有利于推廣應用。隨著虛擬現實硬件設備技術發展,眾多體驗良好的虛擬外設,例如:HTC Vive、oculus rift、CAVA系統等[14],能將虛擬現實軟件中開發的內容集成到硬件中,在教學中使用硬件設備可以擁有更好的沉浸式體驗。
此外,虛擬仿真教學系統并不能涵蓋到教學體系的任何一個部分,教學也不能一味的追求虛擬仿真化,在虛擬仿真教學的基礎上,應該盡可能地讓學生接觸實際,充分體現虛實結合、互相補充、能實不虛的原則[15-16]。
本文介紹的基于Unity 3D的船舶制造虛擬仿真教學系統,可以應用到船廠認知、造船生產過程認知等相關的課程教學上,使用Unity 3D開發完成后將其發布到PC端,將其安裝在教學場所的機房,學生可以打開程序瀏覽整個船廠,伴隨教師的講解,使得對船廠和生產過程的認識更加深入。
隨著三維建模技術和虛擬現實技術的不斷發展,對于虛擬現實內容的開發會變得越來越簡便,以后會不斷完善虛擬船廠中的人機交互、總段總組、船舶下水等過程的仿真,積極推廣在教學中的應用。
參考文獻(References):
[1] 王衛國,胡今鴻.國外高校虛擬仿真實驗教學現狀與發展[J]. 實驗室研究與探索,2015.34(5):214-219.
[2] 朱 柱. 基于Unity3D的虛擬實驗系統設計與應用研究[D]. 武漢:華中師范大學, 2012.
[3] 王小燕, 戴蔚荃, 章 玲,等. 標準化建設對基礎實驗教學影響的實證研究[J]. 實驗室研究與探索, 2012, 31(7):149-152.
[4] 祖 強, 魏永軍. 國家級虛擬仿真實驗教學中心建設現狀探析[J]. 實驗技術與管理, 2015(11):156-158.
[5] 何 偉.Unity虛擬現實開發圣典[M].北京:中國鐵道出版社,2016.
[6] 呂文梅, 宋代廣. 基于Unity3D與3Dmax的虛擬船舶液壓系統三維模型展示[J]. 軟件導刊, 2014(6):74-76.
[7] 劉 鑫.3DS Max中多邊形建模的理論與實踐研究[J]. 電腦編程技巧與維護,2016(10):88-89.
[8] 倪 萌.基于Unity3D的汽車發動機虛擬裝配訓練考評系統的設計與實現[D]. 北京工業大學,2014.
[9] 周彥鵬. 基于Unity 3D的虛擬現實游戲設計與制作[J]. 電子世界, 2017(7):173.
[10] 張 敏. 基于Unity 3D的三維地形建模[J]. 湖南工業職業技術學院學報, 2014(6):16-18.
[11] 王 龍, 王文科. 高度圖在Unity3D地形建模中的應用研究與分析[J]. 數字技術與應用, 2014(10):74-74.
[12] 劉國柱. UNITY3D/2D游戲開發從0到1[M]. 北京:電子工業出版社, 2015.
[13] 魏 鑫. 船舶分段裝配工藝淺析[J]. 課程教育研究:學法教法研究, 2014(15):28.
[14] 于 沛. 基于智能視頻的虛擬現實體驗系統研究與實現[D]. 成都:電子科技大學, 2015.
[15] 楊建良. 電類基礎課程實驗教學“虛實結合”模式的構建[J]. 成都:實驗室研究與探索, 2014, 33(7):101-104.
[16] 李 莉, 張 英, 成 軍,等. 分子生物學虛實結合實驗教學模式的初探[J]. 實驗室研究與探索, 2016, 35(10):225-227.