摘要:虛擬漫畫系統對于現今這個社會意義是非常重大的。因此,本文就基于Unity3D的漫游系統的設計進行了分析,根據JavaScript和C#的腳本詳對各個關鍵技術進行了簡述,以期為未來的虛擬漫游系統帶來一些參考。
關鍵詞:Unity3D;漫游系統;虛擬現實;NGUI
一、 Unity3D平臺
Unity3D屬于一種綜合型的開發工具,其開發是由UnityTechnologies進行的,如實時三維動畫、三維視頻游戲以及建筑可視化等。同時,其也屬于一個全面整合專業的跨平臺游戲引擎。Unity3D的高易用性和移植性均都是由于其開發平臺采取的渲染及軟件架構這兩種方式,使其開發的漫游系統能夠在網頁上運行,有效提升用戶的體驗感。
二、 基于Unity3D漫游系統設計模式
虛擬漫游系統需從設計者的需求分析入手,從而劃分系統的各個模塊功能,同時還要采用軟件工程的思想。為了減低許多用戶對于在其虛擬環境中的迷失感,系統就需增設一些較為重要的輔助工具,如顯示人物坐標,增設指南針以及小地圖等,進而使用戶的漫游體驗更加接近現實,具有體現出較高的真實性。
(一) 功能模塊
針對大多數漫游系統而言,其均設置了用戶自動尋路的功能,比如在路過一段比較小的峽谷或是危險性較高的路面時,能夠在用戶不操作人物的前提下,安全到達目的地,此功能不僅可減少對用戶的專業技能要求,而且還拓寬了用戶的使用范圍,將漫游效果達到了最佳,進而實現了廣泛使用軟件的目的。
虛擬漫游系統想要實現用戶在場景中的自由漫游,就應保證漫游有一定的較高真實性,如人物在實際生活中不能穿過房子等固體,這類的就需加設物體碰撞器件在系統中,從而達到碰撞檢測技術的目的。同時,漫游系統不可缺少的主要組成部分就是交互功能,在Unity3D中,想要實現上方、下方、左方以及右方的移動功能,往往都是使用WSAD來達到目的。UI界面的設計也是不可忽視的一種交互功能,在大部分的系統中,用戶往往都是利用導航菜單或對話框進而來達到人機交互功能,另外,大部分的PC用戶都習慣用鼠標來進行操作,所以為了與其操作相符,開發者要想人物可以自動的達到鼠標的點擊位置就可利用U3D中的腳本。由此可說明,漫游系統中絕對不能缺少的一部分就是界面交互設計。
(二) 虛擬場景生成
所有漫游系統的場景需求往往都來源于實際需求。基于此,就應依據系統的需要采用航拍或實地等技術來實現實景數據的采集,且還可通過Maya、3DMax等來實現模型的建立。場景中天空的繪制可以采取Unity的Skyboxes包來實現。為了使環境更加真實化,就需將光源、湖泊以及植被等現實中的事物加設進場景中,其中使得在構建虛擬環境的過程可以更順利,就可利用Unity引擎自身所具備的功能包。
三、 關鍵技術探究
(一) 基于NGUI的UI制作
對于所有的系統來說,UI就是其不能缺少的重要組成部分,其在3D系統中可以為用戶提供更優的體驗感和更好的用戶之間的交互性。U3D系統引擎自身具備API,進而可以進行設計界面,但同時由于插件技術的不斷發展,進而本文就UI的制作選取了,選擇了NGUI插件來進行完成。NGUI編寫UnityD插件,需要相關人員嚴格按照KISS原則來進行,同時還需運用C#語言進行。另外,需NGUI的各種功能進行封裝進而形成腳本,之后再把NGUI包導入U3D環境,在這之后就會增加了一個NGUI的組件,同時要在NGUI組件中構建需要的UI種類,進而就可為用戶提供強大性非常大的進行事件通知的框架。對于用戶和開發者來說,NGUI插件可有效系統的性能及其擴展性。
在進行具體開發時,NGUI插件所發揮的作用就是可以高速且方便地制作按鈕、標簽以及頭像等,且NGUI只利用一個腳本就可以達到屏幕自適應功能的目的,從而系統地發布就又增設了較好的條件。同時,在進行具體實現時,圖片的制作往往會選擇圖形處理工具,且可對NGUI插件中的AtlasMaker進行利用,Sprite精靈的生成通過UI來實現,將其位置及大小進行調整,然后具體功能的實現就可以通過腳本來進行。
(二) 自動尋路
實現漫游系統自動尋路功能需將JavaScript、NavMesh以及C#腳本進行結合并加以利用。同時,在Unity的菜單中,將Navigation進行點擊選中,進而就會馬上在Inspector的旁邊顯示出Navigation面板。
在Unity的自動尋路功能中,利用OffMeshLink來實現復雜性較高的場景自尋路。如場景中出現樓梯或者橫向跨越時,進而人物的安全漫游就可通過OffMeshiLink來實現,如果想實現更加真實的現實模擬,則需要在Bake選項設置中。
場景路徑的烘焙工作則需公國層的概念來完成。首先,不同劃分NavigationLayer,之后實現對系統場景中漫游層的烘焙就可以采用Bake來進行,之后為漫游人物增設NavMeshAgent,進而對于人物在漫游層的選項就可在Inspector面板中體現出來,最后再把NavMesh不同的環境進行設置后,進而就可利用腳本來實現系統中場景人物的自動尋路功能。
(三) 粒子系統
粒子系統是一種在三維計算機圖形學中模擬特定模糊現象的技術,在虛擬漫游中,經常使用粒子系統模擬的有火、爆炸、煙、水流、火花、落葉、霧、雪、云、霧、塵以及流星尾跡等抽象視覺效果等。另外,U3D中的Particles包中有包含Dust、Water、Smoke等,能夠將其直接加入場景進而達到實現模擬效果的目的。
(四) 碰撞檢測
漫游系統最基本要求就是一個全方位的碰撞檢測,而模擬實際環境中的物體就是碰撞檢測最為基本的作用,以至于在遇見障礙物能夠進行本能的反應。例如,如果在場景中人物遇見房屋或比較堅硬的大規模物件時,就需停止前進,不然就會在一定程度上削弱漫游的真實性,更為嚴重的話還會徹底失去漫游模擬的意義。
四、 結語
本文簡述了Unity3D引擎在虛擬漫游系統中的應用,并提出了以U3D漫游系統為基礎的設計方法,對U3D引擎中的自動尋路功能以及碰撞檢測等進行了討論,以期為以后的開發工作者提供一些有價值參考。
參考文獻:
[1]王彩玲,劉瑞香,宋釗.基于Unity3D的虛擬校園漫游的設計與實現[J].科技視界,2015(05).
作者簡介:
于連鑫,四川省成都市,電子科技大學成都學院圖形藝術系。