高秉澤 顧宇紅
摘要:Unity 3D是重要的虛擬現實開發軟件,但這個軟件通過地形編輯、物理引擎、著色器等重點解決了三維世界的虛擬可視化,而對于信息的存儲,交互查詢和信息的延展展示、信息資源的管理,沒有直接的工具,本文通過分析Unity 3D的信息存儲模式,提出了在Unity 3D中解決數據處理的方法和手段。
關鍵詞:Unity 3d;漫游系統;數據處理
現今隨著電腦硬件設備的升級,在信息系統的展示中,更多采用了三維可視化的方式,而實現三維可視化化,需要引入三維開發引擎去支撐,Unity 3D是一個重要的三維動畫制作引擎,但Unity 3D本身主要解決的是三維素材的操作,而對原來比較典型的信息處理,沒有提供相應模塊,這對以信息展示為主要目的的校園漫游系統來說,是一個急需解決的問題。
0.引言
本課題研究的起因是在完成一個校園全景漫游系統,這個系統基于Unity 3D動畫引擎軟件,以校園的具體場景為基礎,通過三維立體模型,完成一個虛擬的校園場景,這個場景可以具有沉浸式的體驗,可以通過多種媒體進行立體信息展示。由于該項目開發是基于Unity 3D技術,所以在系統發布上,可以兼顧PC端、蘋果端、網頁端、手機端和VR眼鏡等平臺,一次開發,多端使用,從而提高了項目的完成質量。
Unity是一個可以和硬件結合,特別是可以通過VR眼睛等設備,讓學生親手動手,接觸各種VR行業的實際應用,通過軟硬件技術的結合,培養學生的動手能力和編程水平,學生通過項目開發,完成3D場景的再現,提供代入性,全局性和時效性場景,
本項目以校園全景漫游為研究對象,在完成部分DEMO案例項目的基礎上,實現了基于Unity的校園3D全境漫游,并獲江蘇省大學生創新創業項目省級立項。
1.項目背景
漫游系統以完善的校園網絡為基礎,通過建設基于3D的模型系統,提供一個可以虛擬展現的校園環境,特別是在使用VR眼鏡等特殊設備的狀況下,可以得到一個全新的體驗,但在這個基礎上,如果能引人相關數字化信息系統進行交互,引入一個虛擬的社區場景體驗,對漫游系統來說,具有更有益的價值。所以本項目通過構建數字校園,利用虛擬現實技術將真實的校園場景通過數字化模型再現到計算機中,用戶對所構建的三維虛擬場景可以進行自由漫游,并隨場景和個人操作,提供個性化的信息推送和互動,這種個性化推送和互動基于系統的信息化系統。
2.項目研究的目標及主要內容
漫游系統數據處理主要解決的問題,包括虛擬校園漫游系統具備良好友善的用戶界面,用戶可以通過操作鼠標和鍵盤實現對整個場景的漫游。具體可分為兩個方面的漫游:一方面,用戶可以通過導航圖點擊想要到達的地點,切換到當地的自動相機視角,實現自動漫游。另一方面,用戶可以通過點擊屏幕下方的按鈕切換到當地的相機視角,實現自由漫游。在進入具體場景中,可以推送場景信息,并把公告欄等即時信息進行推送。后臺可以記錄漫游人數等。
3.項目創新特色
虛擬校園漫游系統能展示校園風采,提升校園形象。項目不僅僅能現實校園建筑形狀、地理形態的展現,而是可以提供豐富的交互信息。第一人稱漫游是指用戶通過鼠標和鍵盤在虛擬校園中根據自己的興趣自由的行走觀看。校園漫游系統將校園內的建筑功能信息等一些展示信息存放到數據庫中,用戶可以通過鼠標點擊、鍵入等互動行為在相應的位置呼出這些信息,并且能獲得個人所特有的信息推送模式。
4.項目研究技術路線
項目的開發平臺是Unity,為使開發項目能支持信息化系統,需要為項目選擇一個數據交換的方式,在Unity中,對于信息的存儲,現有以下幾種方式:
1)通過存儲本地文件方式記錄信息
2)通過Cookie在電腦存儲信息
3)通過SQLite在本地存儲數據
4)通過My SQL遠程處理數據
對于以上數據處理的方式,各有優缺點,如果采用的是前三種方式,數據信息采用本地化存儲,而采用My SQL可以支持信息的運程存儲,能為多個用戶的信息交換提供支持,但在從目前的漫游系統看,由于需要客戶端都登錄統一的網絡,對基于VR眼鏡類設備,需要手機端和網絡端的同步,對系統的要求比較高,所以項目采用了基于了SQLite本地存儲數據的形式。
SQLite是一個小型化的數據庫,它包含一個相對較小的C程序庫, SQLite支持跨平臺,操作簡單,如果項目是發布于VR設備,由于整個SQLite數據庫體積只有4M多一些,在設備存儲上也沒有壓力。
在Unity項目中的信息管理中,引入的小型化SQLite數據庫,從而對校園信息進行存儲和更新。通過在添加SQLite數據庫相關的三個Dll文件(Mono.Data.Sqlite.dll”、“sqlite3.dll”、“System.Data.dll),并且把三個文件都放置在Plugins文件夾下完成數據庫的部署,通過腳本調用SQL語音,對SQLite數據庫進行操作,完成對場景交互信息的記錄和更新操作。
其中,
數據定義操作:
void Awake() {
OpenDB("Data Source=./sqlite3.db"); //調用OpenDB函數來連接數據庫
}
數據連接操作:
public void OpenDB(string connectionString){
try{
dbConnection = new SqliteConnection(connectionString); //實例化數據庫連接對象
dbConnection.Open(); //打開數據庫
}
數據查詢操作
public SqliteDataReader ExecuteQuery(string sqlQuery){ /// 執行查詢sqlite語句操作
dbCommand = dbConnection.CreateCommand(); //創建一個數據庫命令對象
dbCommand.CommandText = sqlQuery; //將CommandText(命令文本)設置為接收到的SQL語句
reader = dbCommand.ExecuteReader(); //執行命令語句并將返回的結果集賦給reader
return reader; //返回結果集
}
5.項目的調試
項目完成后,把對應代碼掛載在主攝像機上,通過用戶點擊,完成人機交互,在項目的部署中,注意調試范圍,如果是在電腦端運行,需要將項目的API兼容性,調整為API Compatibility Level(兼容級別),并且在Inspector面板中的Other Settings中,把開發支持設置為“.NET 2.0”。對于通過VR眼睛端運行,需配置開發環境對應的Android SDK和JDK,如果是MAC OX X平臺下則不需掛載SDK即可使用。
結束語
本課題是江蘇省大學生創新創業省級立項項目“基于Unity的校園3D全境漫游”項目的一個子課題,課題的研究對象主要是處理Unity項目的信息內容,課題解決了一個具體的應用場景,但這個課題可以快速擴展到其他領域,包括VR虛擬科技館、VR培訓場景、VR營銷、VR消防演習等。課題在教師的辛勤指導,同學的團結協助,完成這個子項目的研究。江蘇省蘇州經貿職業技術學院計算機應用技術專業在VR項目上,能通過項目踐行應用型人才培養和產業崗位需求的有效銜接,在貫徹執行學生“433”成才工程建設中,能發好力,做好功,項目組中的學生也都能認真按項目計劃推進任我,項目組指導老師都是經驗豐富的教師,并曾指導學生參加省技能大賽獲獎,項目順利實現完成推進,達成預期建設目標。
參考文獻
[1] 史悅 顧宇紅.基于Unity 3D的校園全景漫游系統的實現[J] 錦繡.2020(35)
[2] 勵丹妮 盧禹軒 胡智宇. 基于Unity3D的中國民航大學校園虛擬漫游系統研究[J] 數字技術與應用. 2020(4)
[3] 姬喆. 基于VR虛擬漫游技術的交互設計應用研究[J] 現代電子技術. 2019(15)
[4] 康艷霞. 虛擬校園漫游系統的設計與實現[J] 信息與電腦. 2019(19)
[5] 劉顏東. 虛擬現實技術的現狀與發展[J] 中國設備工程. 2020(07)
[6] 劉霞 李曉華. 基于 Unity3D 的虛擬校園漫游系統[J] 科技視界. 2020(6)
作者簡介:
顧宇紅(1970-),蘇州經貿職業技術學院教師,本科,講師,專業方向是軟硬件信息系統部署,虛擬現實與動畫設計。2020年江蘇省大學生創新創業訓練項目指導老師。
高秉澤,蘇州經貿職業技術學院18計應33班學生,江蘇省大學生創新創業訓練計劃2020年立項項目“基于Unity的校園3D全境漫游”共同主持人。
(蘇州經貿職業技術學院 江蘇 蘇州 215009)