郭圣,胡輝煌,李軍
(湖南涉外經(jīng)濟學(xué)院信息科學(xué)與工程學(xué)院,長沙 410081)
隨著近些年來計算機技術(shù)的迅猛發(fā)展其三維仿真技術(shù)、虛擬現(xiàn)實技術(shù)、三維電子地圖技術(shù)等多個領(lǐng)域也逐漸引起了人們的廣泛關(guān)注。本文是以“湖南涉外經(jīng)濟學(xué)院”為案例而設(shè)計出的一款基于PC 端Unity3D 平臺開發(fā)的“智慧校園”應(yīng)用系統(tǒng)。用戶可以選擇不同視角在三維校園地圖中體驗三維漫游和情景交互功能。本系統(tǒng)將結(jié)合時下流行的VR 技術(shù)將學(xué)校以三維的形式展示校園真實場景來增強用戶體驗,從而達到學(xué)校宣傳的目的。
“智慧校園系統(tǒng)”的功能框架,如圖1 所示,本系統(tǒng)由三大模塊組成:
第一部分是最為核心的功能——尋址功能,系統(tǒng)將用戶選取的校園輸入地點作為起始地點,然后再由用戶選擇終點位置,點擊查詢后本系統(tǒng)將利用Unity3D中Navigation 組件(該組件使用網(wǎng)格算法實現(xiàn))的來計算起點與終點間的最短路徑,并由尋路機器人帶領(lǐng)用戶前往目的地;
第二部分是查詢功能:包括查詢校園歷史、校園榮譽、校園開展的專業(yè)、校園景點用戶點擊菜單中的校園簡介,可以查詢到湖南涉外經(jīng)濟學(xué)院的歷史,開展的專業(yè),所獲得的榮譽等信息;校園景點信息查詢,用戶可以通過景點名稱查詢到與之對應(yīng)的景點或者建筑物的相關(guān)圖片以及文字介紹信息,還可以通過點擊對應(yīng)的景點跳轉(zhuǎn)按鈕,將視角切換至三維地中對應(yīng)的景點的位置。
第三部分是附加功能:附加功能主要具體包括系統(tǒng)退出功能、小地圖顯示功能和背景音樂調(diào)節(jié)功能等。
退出功能:將系統(tǒng)打包成PC 端后,提供退出功能;
小地圖顯示功能:在地圖的右上方添加一個小地圖,讓用戶在操作界面中也能清楚的知道自己當(dāng)前所在位置;
背景音樂調(diào)節(jié)功能:當(dāng)用戶走進校園的樹林中可以聽到鳥兒清脆的聲音,在湖邊也聽到潺潺的流水聲,在校園其他地方漫游可以聽到動人的背景音樂;使其虛擬校園世界更加真實有趣。
圖1 智慧校園系統(tǒng)的功能框架圖
“智慧校園系統(tǒng)”界面設(shè)計框架,如圖2 所示。主要功能為“最短路徑查詢”(最短路徑計算并顯示),“學(xué)校簡介”(對學(xué)校信息,專業(yè),師資力量,所獲榮譽等進行介紹),“景點簡介”(對校園的景點以及建筑物進行介紹),退出(退出系統(tǒng)),“背景音樂調(diào)節(jié)”(對背景音樂進行調(diào)節(jié)),“小地圖”(顯示學(xué)校平面圖)?!爸腔坌@系統(tǒng)”界面設(shè)計框架,如圖2 所示。主要功能為“最短路徑查詢”(最短路徑計算并顯示),“學(xué)校簡介”(對學(xué)校信息,專業(yè),師資力量,所獲榮譽等進行介紹),“景點簡介”(對校園的景點以及建筑物進行介紹),退出(退出系統(tǒng)),“背景音樂調(diào)節(jié)”(對背景音樂進行調(diào)節(jié)),“小地圖”(顯示學(xué)校平面圖)。
圖2 智慧校園系統(tǒng)的界面設(shè)計框架圖
2.2.1 尋址功能實現(xiàn)
Navigation 簡介:Navigation 是 Unity3D 提供的導(dǎo)航的組件,可以對地圖進行烘培,顯示可以行走的區(qū)域,實現(xiàn)路徑尋址的功能。
NavMesh(導(dǎo)航網(wǎng)格)是3D 虛擬世界中用于實現(xiàn)動態(tài)物體自動尋址的一種技術(shù),將場景中的復(fù)雜的結(jié)構(gòu)組織關(guān)系簡化帶有一定信息的網(wǎng)格,在這些網(wǎng)格的基礎(chǔ)上通過一系列的計算來實現(xiàn)自動尋路。
(1)在unity 的InSpector 面板中將要參與網(wǎng)格導(dǎo)航的物體上勾選Navigation Static 選項。
(2)打開網(wǎng)格尋路的面板(Window->Navigation)選擇調(diào)整的烘培半徑(Agent Radius)、角色可以通過高度(Agent Height)等參數(shù),然后進行地形的烘培。
(3)在尋路 NPC 上添加尋路組件(Nav Mesh agent)。
(4)創(chuàng)建一個校園建筑物名稱與坐標(biāo)的關(guān)系哈希表(Hashtable),作為映射表
(5)編寫控制NPC 尋路和人機交互的交互C#腳本,定義獲取用戶輸入終點的下拉菜單,根據(jù)獲取下拉菜單輸入的建筑物名稱,根據(jù)獲取用戶輸入的信息查看Hashtable 得到該建筑物的三維坐標(biāo),使用Nav Mesh agent 組件中的SetDestination(終點的三維坐標(biāo))方法進行尋址,該方法參數(shù)接收一個三維坐標(biāo),并移動掛載了的該尋路組件的NPC 進行移動尋址;尋址結(jié)束為判斷當(dāng)前尋址物體與終點坐標(biāo)的距離小于1f,使用Unity 中 Vector3.Distance(Vector3,Vector3)判斷尋址機器人是否到達目的地,當(dāng)函數(shù)返回值小于1f 認定以到達目的,大于1f 繼續(xù)尋址,實現(xiàn)該功能的代碼請查看附件。
2.2.2 校園簡介實現(xiàn)
編寫了 ShoolHistory()、ShoolHonor()、SchoolMajor()三個方法分別用來綁定校園歷史、校園榮譽、開設(shè)專業(yè)的Button 控件,獲取一個text 控件來輸出對校園信息的文字描述(Text.text=“文字描述”)。
2.2.3 景點簡介實現(xiàn)
(1)創(chuàng)建獲取用戶的輸入名稱的下拉菜單(Drop?Down)。
(2)創(chuàng)建輸出圖片、文字信息的UGUI 控件Image和Text。
(3)根據(jù)用戶輸入,輸出對應(yīng)的信息,使用unity 中提供的動態(tài)加載圖片的技術(shù),其實現(xiàn)代碼如下所示:
2.2.4 音樂模塊功能實現(xiàn)
(1)在第一人稱視角的膠囊體上添加Audio Listen?er 組件(類似與現(xiàn)實中的耳朵),用于收聽虛擬校園中的聲音。
(2)在地圖中有樹和湖的地方添加碰撞器,在這些碰撞器上添加Audio Source 組件(用于播放音樂)。
(3)編寫控制音樂播放的C#腳本:第一步獲取碰撞器上的Audio Source 組件,使用觸發(fā)檢測函數(shù)On?CollisionEnter()、OnCollisionExit()來實現(xiàn)不同場景的音樂播放,當(dāng)用戶進入碰撞器的范圍OnCollisionEnter()方法自動執(zhí)行,在該函數(shù)中寫入播放音樂的方法Au?dio Source.PlayOneShot(“音樂片段名”),當(dāng)用戶離開碰撞器的范圍OnCollisionExit()方法自動執(zhí)行,這時在該方法中寫播放背景音樂的,這樣就實現(xiàn)音樂模塊的功能。
在系統(tǒng)中按下“Z”快捷鍵調(diào)出菜單界面,其菜單界面由六部分組成,具體包括學(xué)院簡介、景點簡介、路徑查詢、課程推薦、聲音調(diào)節(jié)、退出系統(tǒng)六個部分;菜單界面內(nèi)容顯示如圖3 所示。我們將介紹的導(dǎo)航程序位于路徑查詢模塊中,選擇路徑查詢選項并進入路徑查詢界面如圖4 所示。
圖3 菜單界面
圖4 路徑查詢界面
進入路徑查詢界面后,先點擊“起點”的下拉菜單來選擇初始出發(fā)地點,然后點擊“終點”的下拉菜單來選擇你的目的地接著點擊查詢按鈕,如圖5 所示。程序?qū)⒃诤笈_開始執(zhí)行路徑查詢操作,當(dāng)路徑計算完畢之后將在人物前方調(diào)出一個尋路機器人,用戶只需跟隨機器人即可到達目的地,如圖6 所示,自此尋路完成。
圖5 導(dǎo)航地點選擇
圖6 尋路機器人
本文給出了基于選擇思想的不改變數(shù)據(jù)的原始位置而對數(shù)據(jù)進行排序的算法并利用C#語言編程實現(xiàn)了該算法的動態(tài)演示,該算法可用于解決實際工作中的一些相關(guān)問題,具有一定的實際意義。用C#語言實現(xiàn)的動態(tài)演示程序則有助于讀者更好地理解和把握該算法的基本思想和實現(xiàn)過程。
攝像機可視范圍參數(shù)調(diào)節(jié)對場景影響結(jié)果如表1所示。
表1 攝像機可視范圍參數(shù)對場景的影響結(jié)果
從表1 可以清晰看出,通過對攝像機可視范圍參數(shù)進行調(diào)節(jié),當(dāng)Graphcs<40 時畫面就會出現(xiàn)掉幀,卡頓的現(xiàn)象,攝像機可視范圍過大容易導(dǎo)致幀數(shù)過低,從而造成畫面卡頓;而攝像機可視范圍過于小則會導(dǎo)致用戶體驗差,場景模糊等問題。為了使其畫面的清晰與操作流暢,綜上考慮選取攝像機可視范圍的參數(shù)為200,此時能夠在幀數(shù)與場景清晰度達到較好的平衡。
“虛擬校園漫游系統(tǒng)”主要實現(xiàn)了校園導(dǎo)航、路徑查詢、場景漫游、小地圖、登錄、注冊等功能。系統(tǒng)的界面簡潔明了,操作便捷。在建模方面主要是把校園環(huán)境、教學(xué)樓、宿舍樓、圖書館、體育館等主要建筑進行了細致的建模,使其通過三維立體的方式呈現(xiàn)出來。真實的校園模型不僅有利于教師和學(xué)生進一步了解學(xué)校,還能在無形之中提升學(xué)校魅力,尤其在學(xué)校宣傳、招生和展示學(xué)校風(fēng)貌等方面有著積極作用。當(dāng)然我們對于校園的三維模型建設(shè)方面還存在很大的優(yōu)化空間,對于體驗感的提升還可以考慮采用更加精細的校園模及逼真的貼圖紋理去實現(xiàn)。