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