莊楚鑫 劉宏宇
摘 要:高校圖書館擁有非常豐富的實(shí)體圖書資源,一般僅面向本校師生開放,由此出現(xiàn)資源利用率低、分配不均等問題。為解決上述問題,提出一種基于Unity3D的圖書館虛擬閱讀系統(tǒng),通過Unity3D軟件進(jìn)行環(huán)境模擬和搭建,再使用C#語(yǔ)言實(shí)現(xiàn)人機(jī)交互,將虛擬閱讀和虛擬漫游相結(jié)合,實(shí)現(xiàn)在虛擬環(huán)境中行走與閱讀。實(shí)驗(yàn)表明,該系統(tǒng)可讓用戶沉浸在虛擬環(huán)境中學(xué)習(xí)和閱讀,能夠滿足大眾閱讀需求。
關(guān)鍵詞:虛擬現(xiàn)實(shí);Unity3D;虛擬圖書館;虛擬閱讀;虛擬漫游
DOI:10. 11907/rjdk. 191614
中圖分類號(hào):TP319 ? 文獻(xiàn)標(biāo)識(shí)碼:A??????????????? 文章編號(hào):1672-7800(2020)003-0168-04
Library Virtual Reading System Based on Unity3D
ZHUANG Chu-xin, LIU Hong-yu
(School of Electronics and Information, Guangdong Polytechnic Normal University, Guangzhou 510665,China)
Abstract: University libraries are rich in book resources, but because many universities libraries are only open to their teaching staff and students, it often leads to the problem of unequal distribution of resources. Therefore, in order to solve this problem, we proposed a virtual reading system of library based on Unity3D. Through the simulation and construction of environment with Unity3D software, interaction was realized with C# language, so as to complete the combination of virtual reading and virtual tour and meet the needs of walking and reading in the virtual environment. Experiments show that the system can meet the requirements of the public reading books, and users can immerse themselves in the virtual environment for learning and reading.
Key Words: virtual reality;Unity3D;virtual library;virtual reading;virtual?wandering
0 引言
虛擬現(xiàn)實(shí)技術(shù)(Virtual Reality Technology,簡(jiǎn)稱VR技術(shù))是仿真技術(shù)與計(jì)算機(jī)圖形學(xué)、人機(jī)接口技術(shù)、多媒體技術(shù)、傳感技術(shù)、網(wǎng)絡(luò)技術(shù)等多種技術(shù)的集合[1-4],是計(jì)算機(jī)領(lǐng)域中一門富有挑戰(zhàn)性的交叉技術(shù)前沿學(xué)科。虛擬現(xiàn)實(shí)技術(shù)具有沉浸性、構(gòu)想性和交互性三大特性,簡(jiǎn)稱為“3I”特性,如圖1所示。虛擬現(xiàn)實(shí)技術(shù)主要包括模擬環(huán)境、感知、自然技能和傳感設(shè)備等。模擬環(huán)境是指通過計(jì)算機(jī)搭建逼真的三維立體模型,為虛擬環(huán)境提供交互場(chǎng)景。目前,三維建模主要通過3DMax和Unity3D等建模軟件搭建,此類軟件能較真實(shí)地仿造構(gòu)建出逼真的立體環(huán)境,給人以身臨其境般的感覺。感知是指利用感官對(duì)物體獲得有意義的印象,也指人的聽覺、觸覺、視覺等,而虛擬現(xiàn)實(shí)技術(shù)可以讓人們?cè)谔摂M環(huán)境中接收到這些感覺,因此也稱為多感知。自然技能與傳感設(shè)備是一個(gè)組合,即通過傳感設(shè)備和計(jì)算機(jī)實(shí)現(xiàn)人的頭部轉(zhuǎn)動(dòng)和手部活動(dòng),從而與虛擬環(huán)境進(jìn)行即時(shí)交互,增加代入感,給人一種身臨其境的感受。
因此,虛擬現(xiàn)實(shí)技術(shù)既指通過計(jì)算機(jī)模擬構(gòu)建三維立體虛擬環(huán)境,借助視覺反饋設(shè)備和其它感官反饋設(shè)備與其虛擬環(huán)境即時(shí)交互,由此給予體驗(yàn)者一種身臨其境的感知享受,此外還能完成現(xiàn)實(shí)生活中難以完成的行為和信息展示[5-7]。
VR技術(shù)的概念自1963年被提出以來(lái),經(jīng)過數(shù)十年的理論發(fā)展與應(yīng)用,已經(jīng)逐漸應(yīng)用于教育、房地產(chǎn)、娛樂、影視等各領(lǐng)域。在教育方面,越來(lái)越多的學(xué)校已將VR技術(shù)用于教學(xué)以達(dá)到擴(kuò)區(qū)域、超時(shí)空、拓展創(chuàng)新教育的目的。2013年,美國(guó)Google公司開發(fā)了一款“遠(yuǎn)征”教育系統(tǒng),該系統(tǒng)主要通過VR技術(shù)實(shí)現(xiàn)讓學(xué)生足不出戶,就能看到一個(gè)繽紛多彩的新世界。美國(guó)是VR技術(shù)的發(fā)源地,因此美國(guó)VR技術(shù)水平基本可以代表目前國(guó)際VR水平。國(guó)內(nèi)虛擬現(xiàn)實(shí)技術(shù)發(fā)展起步相對(duì)較晚,且其應(yīng)用場(chǎng)景主要集中在中小型科研團(tuán)隊(duì)和企業(yè)。大企業(yè)中VR產(chǎn)品比較成熟的是HTC廠商,其與Valve游戲公司合作開發(fā)的虛擬現(xiàn)實(shí)頭盔VIVE,以及目前迭代比較完善專供游覽參觀的莫高窟“數(shù)字敦煌”。在教育領(lǐng)域,圖書館虛擬閱讀相關(guān)研究較少:截至2019年5月,在知網(wǎng)檢索“VR”+“圖書館”關(guān)鍵詞,僅有35篇相關(guān)文章;檢索“Unity3D”+“圖書館”關(guān)鍵詞,僅有4篇相關(guān)文章;檢索“VR”+“虛擬閱讀”關(guān)鍵詞,僅有36篇文章;檢索“虛擬現(xiàn)實(shí)”+“圖書閱讀”關(guān)鍵詞,只有7篇文章,而且此類文章大多是關(guān)于VR+圖書的概念或者圖書館虛擬漫游實(shí)現(xiàn)等,并沒有實(shí)現(xiàn)圖書館虛擬閱讀的實(shí)例化。通過知網(wǎng)和Scholar檢索可以看出,國(guó)內(nèi)在VR技術(shù)應(yīng)用于圖書館方面的研究相比國(guó)外有所欠缺。但是,隨著物聯(lián)網(wǎng)、傳感器等技術(shù)的發(fā)展以及5G技術(shù)的布局,VR技術(shù)也將日漸普及。雖然VR技術(shù)還逐漸趨向成熟,但無(wú)論是國(guó)內(nèi)還是國(guó)外,仍有較大探索空間,技術(shù)的發(fā)展和迭代都需要大量科技人員的努力。本文將VR技術(shù)應(yīng)用于圖書館虛擬閱讀,為用戶提供更好的學(xué)習(xí)環(huán)境,讓讀者靜心于虛擬學(xué)習(xí)氛圍中,提高學(xué)習(xí)效果和學(xué)習(xí)效率。
近幾年,有很多研究者使用Unity3D開發(fā)室內(nèi)漫游系統(tǒng)。肖建良[8]開發(fā)了基于Unity3D的室內(nèi)漫游系統(tǒng),用戶可以自由地漫游、瀏覽并與環(huán)境交互;李婧暉[9]開發(fā)了基于HTC Vive和Unity3D的虛擬現(xiàn)實(shí)校園漫游系統(tǒng),用戶使用頭戴設(shè)備和手柄可在某個(gè)空間內(nèi)實(shí)現(xiàn)精準(zhǔn)度極高的移動(dòng)定位,從而實(shí)現(xiàn)在虛擬校園環(huán)境中的自由移動(dòng)并與環(huán)境互動(dòng);王愛軍[10]開發(fā)了基于Unity3D的博物館虛擬漫游系統(tǒng),該系統(tǒng)實(shí)現(xiàn)了中國(guó)博物館場(chǎng)景漫游系統(tǒng)展示及應(yīng)用;汪俊峰[11]開發(fā)了基于Unity3D的圖書館三維查詢系統(tǒng),實(shí)現(xiàn)圖書館三維展示和圖書館分布查詢等功能。通過查閱文獻(xiàn),絕大部分應(yīng)用于圖書館的虛擬現(xiàn)實(shí)技術(shù),仍然只是實(shí)現(xiàn)了虛擬漫游或者720°全景觀賞,沒有進(jìn)一步擴(kuò)充虛擬閱讀場(chǎng)景。因此,為了有效提高資源利用率、豐富全民閱讀書籍資源,使用Uinty3D技術(shù)[12-15]搭建圖書館虛擬閱讀系統(tǒng),使得讀者既可以在校園內(nèi)漫游,還能進(jìn)入圖書館漫游并閱讀書籍,讓讀者真正沉浸于虛擬學(xué)習(xí)環(huán)境中。在VR技術(shù)支持下,資源得以有效合理應(yīng)用,也有利于營(yíng)造一種良好的全民閱讀環(huán)境,促進(jìn)大范圍、跨區(qū)域、全覆蓋的公民素質(zhì)大提升。
1 系統(tǒng)架構(gòu)
軟件平臺(tái)主要通過3DMax、Unity3D和C#實(shí)現(xiàn),其中3DMax用于一些較復(fù)雜模型建模,將建好的模型按FBX格式文件導(dǎo)出,將該格式文件和相應(yīng)渲染圖等導(dǎo)入U(xiǎn)nity3D中,并在Unity3D中進(jìn)行擺放和進(jìn)一步渲染。軟件平臺(tái)設(shè)計(jì)如圖2所示。Unity3D主要用來(lái)接收3DMax導(dǎo)入的模型,若出現(xiàn)渲染缺失的情況再重新用Unity3D工具渲染,并且對(duì)導(dǎo)入的模型作一個(gè)總體渲染加調(diào)光等操作,使得模型更加逼真,讓用戶視覺體驗(yàn)更好。一些簡(jiǎn)單模型和場(chǎng)景布局也是在Unity3D軟件中完成,最后整合所有模型,完成整個(gè)圖書館及書籍建模。系統(tǒng)現(xiàn)有書籍主要以圖片形式插入,因此可以拓展書籍?dāng)?shù)量及類型等。模型建好后使用C#腳本語(yǔ)言做一個(gè)人機(jī)交互的腳本,包括行走(主要是攝像機(jī)的移動(dòng))、場(chǎng)景切換、防碰撞(遇到有阻擋物體時(shí)不能通過)以及書籍翻閱(可以通過鼠標(biāo)或者左右鍵實(shí)現(xiàn)該功能)等腳本,以實(shí)現(xiàn)用戶在圖書館內(nèi)進(jìn)行虛擬漫游和虛擬閱讀,拓展圖書館虛擬場(chǎng)景,提高學(xué)習(xí)效果。此外,為了讓場(chǎng)景更加豐富,也為了更好地保護(hù)珍貴書籍和名畫等,在系統(tǒng)中既實(shí)現(xiàn)了圖書館的虛擬漫游和虛擬閱讀,又實(shí)現(xiàn)了展覽館的虛擬漫游及虛擬閱讀,拓展了系統(tǒng)應(yīng)用范圍,使得該系統(tǒng)更加適合大眾學(xué)習(xí)使用。軟件實(shí)現(xiàn)流程如圖3所示。
2 系統(tǒng)設(shè)計(jì)
2.1 3DMax建模
搭建圖書館建筑物時(shí)有很多復(fù)雜物體,例如書架、桌椅、電腦等實(shí)物,因此首要選擇3DMax工具進(jìn)行建模。3DMax具有性價(jià)比高、上手容易以及資源豐富等優(yōu)點(diǎn),非常適合復(fù)雜物體建模。在搭建過程中,圖書館內(nèi)的桌椅、書架等都使用3DMax建模,并對(duì)建模好的實(shí)物進(jìn)行渲染等操作,使得模型更逼真,讓讀者可以沉浸于虛擬環(huán)境中。將所有建好的模型在3DMax軟件中以FBX格式導(dǎo)出,再導(dǎo)入U(xiǎn)nity3D中擺放和渲染。Unity3D以厘米為單位,因此在使用3DMax建模時(shí)也選擇以厘米為單位,這樣導(dǎo)入U(xiǎn)nity3D后才不會(huì)出問題。3DMax主要用于書架、圖書館等物體建模,將模型形狀和外觀充分表現(xiàn)出來(lái),給人一種非常真實(shí)的感覺。其中,3DMax圖書館樓梯模型如圖4所示。
2.2 Unity3D渲染與建模
復(fù)雜物體通過3DMax建模完成后,將所有實(shí)物導(dǎo)入U(xiǎn)nity3D中。Unity3D主要完成小物體、環(huán)境(如樹木花草等)以及書籍建模,最后整個(gè)環(huán)境的渲染也在Unity3D中進(jìn)行。整個(gè)圖書館建模完畢后,再在Unity3D軟件中對(duì)相應(yīng)的物體編寫C#腳本,例如點(diǎn)擊建模好的書籍,插入C#腳本后編寫翻閱書籍等操作,使得系統(tǒng)可以進(jìn)行虛擬漫游和虛擬閱讀(包括翻書等功能)。其中,書架和書籍模型如圖5所示。
2.3 C#腳本編寫
整個(gè)系統(tǒng)中,包括幾個(gè)重要腳本編寫,有攝像機(jī)前后左右移動(dòng)代替虛擬漫游、防碰撞代碼、翻書代碼等。通過編寫代碼,可以實(shí)現(xiàn)在整個(gè)系統(tǒng)中進(jìn)行虛擬漫游和虛擬閱讀,讓參與者沉浸于虛擬環(huán)境中。虛擬漫游主要是利用鍵盤或者鼠標(biāo)控制攝像機(jī)移動(dòng),實(shí)現(xiàn)第一人稱視角的觀賞和閱覽。虛擬閱讀主要通過鼠標(biāo)或者左右鍵實(shí)現(xiàn)書籍虛擬翻閱,并閱覽書本里的內(nèi)容,通過閱讀提升用戶知識(shí)面,提高學(xué)習(xí)效率。防碰撞是指在移動(dòng)過程中,如遇到阻礙物則無(wú)法通過的一種設(shè)置。此外,通過場(chǎng)景切換實(shí)現(xiàn)進(jìn)出圖書館和展覽館。攝像機(jī)移動(dòng)部分代碼和翻書部分代碼分別如下:
//攝像機(jī)移動(dòng)部分代碼
Void Update(){
rotationX += Input.GetAxis("Mouse X") + cameraSensitivity * Time.deltaTime;
rotationY += Input.GetAxis("Mouse Y") + cameraSensitivity * Time.deltaTime;
…
if (Input.GetKey(KeyCode.LeftShift) || InputGetKey(KeyCode.RightShift)){
transform.position += transform.forward * (normalMoveSpeed * fastMoveFactor) * ?????????????????????????? Input.GetAxis("Vertical") * Time.deltaTime;
transform.position += transform.right * (normalMoveSpeed * fastMoveFactor) * ???????????????????????????????? Input.GetAxis("Horizontal") * Time.deltaTime;
}
else if (Input.GetKey (KeyCode.LeftControl) || Input.GetKey (KeyCode.RightControl))
{
transform.position += transform.forward * (normalMoveSpeed * slowMoveFactor) * ????????????????????????? Input.GetAxis("Vertical") * Time.deltaTime;
transform.position += transform.right * (normalMoveSpeed * slowMoveFactor) * ??????????????????????????????? Input.GetAxis("Horizontal") * Time.deltaTime;
}
else {
transform.position += transform.forward * normalMoveSpeed * Input.GetAxis(“Vertical”) * ???????????? ???????? Time.deltaTime;
transform.position += transform.right * normalMoveSpeed * Input.GetAxis("Horizontal") * ?????????????? ???????? Time.deltaTime;
}
…
}
//翻書部分代碼
public void FlipRightPage(){
float Fr = (ContriledBook.EndBottomRight.x + ContriledBook.EndBottomLeft.x)/2;
float Fl = ((ContriledBook.EndBottomRight.x + ContriledBook.EndBottomLeft.x)/2)*0.9f;
…
Timing.RunCoroutine(FlipRTL(Fr, Fl, …));
}
Public void FlipLeftPage(){
float Fr = (ControledBook.EndBottomRight.x + ControledBook.EndBottomLeft.x) / 2;
float Fl = ((ControledBook.EndBottomRight.x - ControledBook.EndBottomLeft.x) / 2)*0.9f;
…
Timing.RunCoroutine(FlipLTR(Fr, Fl, …));
}
3 實(shí)驗(yàn)結(jié)果
通過整個(gè)系統(tǒng)建模和腳本代碼編寫,基本完成了圖書館的虛擬漫游和虛擬閱讀。用戶可以通過點(diǎn)擊鍵盤的前后左右或者W、S、A、D 4個(gè)鍵位完成虛擬漫游,通過點(diǎn)擊鼠標(biāo)轉(zhuǎn)換選擇觀賞方向;使用者還可以通過點(diǎn)擊鼠標(biāo)完成書籍選擇和翻書閱讀功能,沉浸在閱讀的過程中,享受閱讀帶來(lái)的愉悅;此外,系統(tǒng)還能調(diào)整燈光的亮暗程度。通過系統(tǒng)開發(fā),可以對(duì)高校圖書館的圖書資源進(jìn)行有效整合利用,開放虛擬化的高校圖書館,激發(fā)讀者學(xué)習(xí)和閱讀興趣,從而提升公民整體素養(yǎng)。系統(tǒng)測(cè)試結(jié)果如圖6和圖7所示。
圖6展示了系統(tǒng)完成翻書功能,通過點(diǎn)擊相應(yīng)書籍,再通過鼠標(biāo)移動(dòng)完成書籍翻閱,從而實(shí)現(xiàn)虛擬閱讀。如果需要增加書籍張數(shù),可以通過添加相應(yīng)圖片等方式,將其添加到書本相應(yīng)位置,既滿足人們對(duì)珍貴書籍的閱讀和觀賞需求,還能保護(hù)珍貴書籍不受破壞。圖7是圖書館外部部分模型,當(dāng)攝像機(jī)移動(dòng)到圖書館門前設(shè)定位置時(shí),則會(huì)切換到圖書館內(nèi)部場(chǎng)景,然后在圖書館內(nèi)進(jìn)行漫游并點(diǎn)擊書籍閱讀。
實(shí)驗(yàn)證明,使用Unity3D技術(shù)完成圖書館虛擬漫游和虛擬閱讀是可行的,且非常有價(jià)值和意義。將虛擬閱讀和虛擬漫游進(jìn)行結(jié)合,完成在圖書館內(nèi)進(jìn)行自由虛擬漫游及虛擬閱讀,基本滿足了大眾書籍閱讀需求。而且,為了拓展場(chǎng)景的廣泛性,系統(tǒng)還構(gòu)建了展覽館建筑,完成展覽館的虛擬漫游以及珍貴名畫的虛擬觀賞。
4 結(jié)語(yǔ)
系統(tǒng)主要以3DMax作為建模工具,完成復(fù)雜物體建模。利用Unity3D進(jìn)行整個(gè)圖書館環(huán)境布置及渲染,最后通過C#腳本語(yǔ)言與系統(tǒng)進(jìn)行交互,完成圖書館虛擬閱讀系統(tǒng)開發(fā)。本實(shí)驗(yàn)主要實(shí)現(xiàn)圖書的虛擬閱讀及虛擬漫游,使得圖書館的實(shí)體圖書資源可以得到合理利用,方便在校學(xué)生學(xué)習(xí)。并且,該系統(tǒng)還可以滿足普通大眾的閱讀需求。通過虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)虛擬圖書閱讀還能保護(hù)稀有和珍貴書籍不受破壞。后續(xù)研究中將加入硬件模塊,通過虛擬眼鏡和手柄,完成進(jìn)一步虛擬閱讀和書籍翻閱等操作,拓展系統(tǒng)應(yīng)用范圍。
參考文獻(xiàn):
[1]趙沁平. 虛擬現(xiàn)實(shí)綜述[J]. 中國(guó)科學(xué):F輯:信息科學(xué),2009,39(1):2-3.
[2]張毅. 虛擬現(xiàn)實(shí)技術(shù)的發(fā)展現(xiàn)狀與展望[J]. 電腦迷,2017(11):32.
[3]陸穎雋. 虛擬現(xiàn)實(shí)技術(shù)在數(shù)字圖書館的應(yīng)用研究[D]. 武漢:武漢大學(xué),2013.
[5]周曉燕,崔然. 國(guó)外VR技術(shù)與虛擬圖書館研究綜述[J]. 情報(bào)科學(xué),2018,36(3):164-166.
[5]李敏,韓豐. 虛擬現(xiàn)實(shí)技術(shù)綜述[J]. 軟件導(dǎo)刊,2010,9(6):141-144.
[6]曹磊. 國(guó)外虛擬現(xiàn)實(shí)的現(xiàn)狀與趨勢(shì)[J]. 競(jìng)爭(zhēng)情報(bào),2017,13(2):51-52.
[7]黃奕宇. 虛擬現(xiàn)實(shí)(VR)教育應(yīng)用研究綜述[J]. 中國(guó)教育信息化,2018(1):11-16.
[8]肖建良,張程,李陽(yáng). 基于Unity3D的室內(nèi)漫游系統(tǒng)[J]. 電子設(shè)計(jì)工程,2016,24(19):54-56.
[9]李婧暉,甘勝江. 基于HTC Vive和Unity3D的虛擬現(xiàn)實(shí)校園漫游系統(tǒng)開發(fā)研究[J]. 科技資訊,2018,16(10):14-15.
[10]王愛軍,李中永,顏世波. 基于Unity 3D的博物館虛擬漫游系統(tǒng)設(shè)計(jì)[J]. 湖南工程學(xué)院學(xué)報(bào):自然科學(xué)版,2019(1):49-53,59.
[11]汪俊峰,王星東,張海龍. 基于Unity3D的圖書館三維查詢研究[J]. 河南科技,2018(11):14-15.
[12]陶健林. 基于Unity3D的虛擬家裝漫游系統(tǒng)[J]. 科教文匯:下旬刊,2018(12):172-181.
[13]魏育坤. 基于Unity3D的虛擬現(xiàn)實(shí)交互系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子技術(shù)與軟件工程,2018(14):45-46.
[14]馬越超. 基于Unity3D的三維數(shù)字校園漫游平臺(tái)[J]. 包頭職業(yè)技術(shù)學(xué)院學(xué)報(bào),2016,17(4):3-4,7.
[15]吳保文,楊柏軍. 基于3ds Max與Unity 3D的虛擬展廳圖片更新的實(shí)現(xiàn)[J]. 文山學(xué)院學(xué)報(bào),2016,29(6):56-58.
(責(zé)任編輯:孫 娟)
收稿日期:2019-05-17
基金項(xiàng)目:“攀登計(jì)劃”廣東大學(xué)生科技創(chuàng)新培育專項(xiàng)資金資助項(xiàng)目(pdjh2018b0296)
作者簡(jiǎn)介:莊楚鑫(1993-),男,廣東技術(shù)師范大學(xué)電子與信息學(xué)院碩士研究生,研究方向?yàn)閰^(qū)塊鏈、信息安全、虛擬現(xiàn)實(shí);劉宏宇(1995-),男,廣東技術(shù)師范大學(xué)電子與信息學(xué)院碩士研究生,研究方向?yàn)樯疃葘W(xué)習(xí)、信息安全、虛擬現(xiàn)實(shí)。