





【摘要】在信息數(shù)字化、可視化、虛擬化的演變進程中,虛擬現(xiàn)實技術(shù)為數(shù)字圖書館的發(fā)展和演變開闊了全新的視野。文章分析了虛擬現(xiàn)實技術(shù)在圖書館應用的國內(nèi)外現(xiàn)狀,界定了虛擬現(xiàn)實圖書館的概念并闡述了其特點與優(yōu)勢。在此基礎上,以圖書館虛擬漫游系統(tǒng)為例,介紹了使用UDK(Unreal Development Kit)引擎和3dsmax開發(fā)虛擬圖書館漫游系統(tǒng)的過程和技術(shù)問題,提出了一套開發(fā)高真實、高交互的3D虛擬圖書館漫游系統(tǒng)的可行方案。
【關(guān)鍵詞】虛擬現(xiàn)實;圖書館;漫游系統(tǒng);UDK
一、引言
隨著信息時代的到來,人們的學習方式和閱讀方式發(fā)生了巨大的變化,這使實體化知識中心的圖書館隨之向數(shù)字化、虛擬化的方向演變。隨著處理器技術(shù)的大幅度提高及圖形繪制技術(shù)、數(shù)字信號處理技術(shù)的發(fā)展,虛擬現(xiàn)實技術(shù)被引入圖書館領(lǐng)域,正在影響著圖書館的發(fā)展方向。
2008年6月,加拿大人Chris Thiessen發(fā)布了名為Zoomii的網(wǎng)上書店。另外,SeeondLife作為3D虛擬世界的先鋒,建立了一個“線上烏托邦”,因其開源性,用戶可以在3D虛擬世界中建設任何建筑。但遺憾的是,目前在SecondLife中,無論是建模貼圖還是功能與服務,在數(shù)字化虛擬圖書館方面的建設還停留在一個初期階段。
在國內(nèi),2008年9月,我國第一套可交互的虛擬圖書館系統(tǒng)——“國家圖書館虛擬現(xiàn)實系統(tǒng)”正式投入使用,創(chuàng)造了中國首家非接觸式“3D虛擬數(shù)字圖書館”,體現(xiàn)了數(shù)字圖書館的虛擬化發(fā)展趨勢。2010年5月,水晶石公司參與設計開發(fā)的網(wǎng)上世博展館,直觀地呈現(xiàn)了上海世博園的三維場景,訪問者可通過拖動鼠標直接觀賞世博園區(qū)的全貌,場館外景還提供日景和夜景兩種光照模式,使觀眾獲得更多的視覺體驗,吉祥海寶作為導覽精靈全程為訪問者講解。網(wǎng)上世博館成為我國場館漫游系統(tǒng)的又一成功案例。虛擬現(xiàn)實技術(shù)在國家圖書館和網(wǎng)上世博館中的成功應用,為圖書館進行創(chuàng)新服務提供了借鑒經(jīng)驗。
二、虛擬現(xiàn)實技術(shù)與虛擬現(xiàn)實圖書館
1 虛擬現(xiàn)實技術(shù)
“虛擬現(xiàn)實”(Virtual Reality,VR)是近年來興起的高新技術(shù),是指利用計算機和高速多媒體系統(tǒng)產(chǎn)生一個三維的虛擬世界,使用戶能夠根據(jù)自己的愿望實時地操縱和改變在虛擬世界中所處的環(huán)境,是一種以其高度的沉浸性、交互性、想象性逼真地模擬人在自然環(huán)境中視、聽、動等行為的人機交互技術(shù)。它從根本上改變了人與計算機系統(tǒng)的交互方式,縮短了用戶與計算機間的距離,為各類工程的大規(guī)模數(shù)據(jù)可視化提供了新的描述方法,是一種全新的人機交互界面技術(shù)。目前,虛擬現(xiàn)實所涉及的研究應用領(lǐng)域包括軍事、醫(yī)學、心理學、教育、科研、商業(yè)、影視等,被公認為是2l世紀重要的發(fā)展學科以及影響人們生活的重要技術(shù)之一。
2 虛擬現(xiàn)實圖書館
虛擬現(xiàn)實圖書館顧名思義就是虛擬與現(xiàn)實的結(jié)合,是虛擬圖書館與傳統(tǒng)圖書館各取所長的結(jié)合體,是建立在VR技術(shù)基礎之上,通過三維建模構(gòu)建出來的和真實圖書館環(huán)境一致的數(shù)字化3D場館,在集成圖書信息檢索和虛擬閱讀等功能后,可以形成一套完備的圖書館仿真系統(tǒng)。使用者可以像步入真實圖書館一樣,暢游于各個閱覽室,或者使用虛擬查詢臺檢索圖書信息。3D可視化的交互界面在使用體驗上更接近真實圖書館,可以為使用實體圖書館提供學習和訓練的計算機環(huán)境,形成“先前參觀”的經(jīng)驗,為實體場館的使用做好準備。
虛擬現(xiàn)實圖書館的功能主要從讀者服務、資源整合和宣傳與培訓三個層面設定。
讀者服務層面:(1)實現(xiàn)自主漫游功能,讓讀者在圖書館場景中通過操作鼠標、鍵盤自主漫游或系統(tǒng)預設的路線自動游覽;(2)實現(xiàn)Web3D在線功能,使得服務對象從到館用戶擴展到所有網(wǎng)絡用戶,實現(xiàn)在線3D漫游,解決系統(tǒng)使用的時空限制;(3)實現(xiàn)虛擬教學功能,增加游戲性元素,寓學于樂。
信息資源整合方面:(1)信息資源的立體化呈現(xiàn),即對信息資源的物理載體進行虛擬模型的制作,又適當?shù)丶尤胛淖帧⒄Z音、圖像、視頻等媒體,改善館藏資源導覽平面化的現(xiàn)狀:(2)建立各種資源間的聯(lián)結(jié),實現(xiàn)相關(guān)資源信息的推送機制。例如展示某一歷史事件時,可以將與之相關(guān)的視、音頻及文本信息整合在虛擬圖書館中,使知識更加的立體和系統(tǒng)。
培訓與宣傳方面:(1)在高校新生教育方面,為新生提供虛擬場景漫游,節(jié)約新生到館學習所需的人力物力,提高培訓質(zhì)量、擴大培訓規(guī)模;(2)使上網(wǎng)用戶獲得漫游體驗,擴大圖書館影響力,吸引更多的學習者走進實體圖書館,同時對圖書館起到展示和宣傳的作用。
三、圖書館漫游系統(tǒng)設計
1 建筑布局設計
虛擬現(xiàn)實圖書館一般根據(jù)實體場館制作建筑的室內(nèi)外三維模型,主要包括主體建筑和周邊場景兩部分。本研究案例中的實體場館建筑共三層,由各藏書室和報刊閱覽室、各類展廳、多功能報告廳、電子閱覽室等組成。館內(nèi)設有開放式的閱覽中庭,從一層直通玻璃頂棚,通透、明亮、人性化的設計顛覆了傳統(tǒng)圖書館的沉悶環(huán)境,給讀者營造一個休閑放松的閱讀氛圍。圖書館的平面設計草圖如圖1所示:
2 模型實現(xiàn)
各區(qū)域及功能如表1所示:
2 漫游系統(tǒng)交互功能設計
虛擬現(xiàn)實漫游系統(tǒng)的主要功能是導讀、信息資源的整合及讀者服務的優(yōu)化,所以本項目在實施過程中重在漫游及人機交互功能的實現(xiàn)。交互設計內(nèi)容如下:
(1)通過鍵盤、鼠標實現(xiàn)自主漫游,到達場館任意位置。
(2)預設漫游路線為訪問者提供向?qū)Х铡?/p>
(3)自動觸發(fā)事件,如訪問者漫游至門附近時,門自動打開,離開后門自動關(guān)閉;漫游到各展廳門口時會自動觸發(fā)Flash動畫對展廳進行簡單介紹。
(4)U1人機交互界面的設計。
四、開發(fā)流程及關(guān)鍵技術(shù)
虛擬現(xiàn)實圖書館項目的開發(fā)從三維建模開始到最終產(chǎn)品的發(fā)布,用到多個開發(fā)工具,經(jīng)歷多個制作環(huán)節(jié)。
1 開發(fā)工具的選取
目前實現(xiàn)虛擬漫游的方式主要有兩種,一種是三維全景虛擬現(xiàn)實(基于圖像繪制技術(shù)),另一種是3D模型虛擬現(xiàn)實(基于三維建模技術(shù))。本項目采用后者,主要的制作軟件有:3ds max、Photoshop、CrazyBump、Unreal Development Kit(簡稱UDK)和Flash,開發(fā)流程及工具如表2所示:
(1)主要的建模技術(shù)
在建模過程中用到的三維建模技術(shù)有:1)基礎幾何體建模,如大廳沙發(fā)的制作;2)樣條線建模,如樓體墻體與窗框的制作:3)多邊形建模,如藝術(shù)雕塑的制作等。在實際建模過程中,任何一個對象的建模方法都不是唯一的,需要根據(jù)具體形態(tài)以及設計者的使用習慣來確定最優(yōu)的建模方法,以達到快速高效的目的。總的原則是:以盡可能少和簡單的操作,在盡可能少的時間內(nèi)滿足設計要求。本項目的主體建筑模型如圖2所示。
(2)模型優(yōu)化及UV展開
在建模時要考慮到整個系統(tǒng)的綜合性能,在保證模型的真實度的前提下需對模型進行優(yōu)化。精簡模型,既可使模型達到最優(yōu),又可為模型UV的展開提供便利。模型UV展開蕾要用到UVW展開和UVW貼圖兩個修改器,貼圖通道設為1,該通道的UV要求紋理相同的模型面UV最大限度的重疊,以便提高貼圖利用率。但一套UV不能滿足烘焙燈光貼圖的要求,還要為模型添加一套無重疊的UV,為了保留通道1的貼圖紋理,燈光貼圖的UV通道設為2。主要用UVW展開制作燈光貼圖。模型“WhiteWall”的燈光貼圖的UV展開界面如圖3所示。
(3)貼圖素材的制作
貼圖是物體表面的紋理,利用貼圖可以在不增加模型面數(shù)的情況下,表現(xiàn)出更多的細節(jié),以增加模型質(zhì)感,完善模型造型,使創(chuàng)建的三維場景更接近現(xiàn)實。為了讓材質(zhì)更具真實感,要在CrazyBump中用漫反射貼圖生成法線貼圖和高光貼圖等。CrazyBump生成的貼圖如圖4所示。
保存貼圖時,要選用UDK支持的,tga格式,且大小要為2的n次冪,如512×512或512×1024或1024×1024等,無alpha的貼圖保存為24位,帶通道的要保存32位。
(4)碰撞制作與模型導出
場景中的碰撞物體要以“UCX~”為前綴命名,若模型所帶的碰撞物體太多,可在其后加上序號,例如:UCX glass01。將修改好的模型逐個導出為UDK引擎支持的ASE或FBX格式文件。若導入到UDK中的模型出現(xiàn)面不光滑現(xiàn)象時,要在3ds Max中修改面的平滑組,使相鄰的面不在一個平滑組內(nèi)。
3 UDK中場景交互的實現(xiàn)
(1)靜態(tài)模型與貼圖導入
模型與貼圖的導入主要在UDK的內(nèi)容瀏覽器中完成。資源導入后,要先對靜態(tài)模型進行碰撞檢測。三維場景中的碰撞檢測對于提高場景真實性、增強虛擬環(huán)境的沉浸感有至關(guān)重要的作用。如果模型在3D中沒有制作碰撞模型,可以用Collision命令在UDK中自動生成碰撞。
模型導入UDK后,軸心會自動位于3ds Max中的原點位置(在max中軸心相對于原點的位置即是模型相對于自身軸心的位置),所以只要在UDK中將所有模型軸心位置設成同一坐標,即可使模型快速對齊位置。
(2)UDK中材質(zhì)制作
普通材質(zhì)的制作只要在對應的資源包中新建一個材質(zhì),在彈出的材質(zhì)編輯器中拖入相對應的貼圖,把貼圖連接到材質(zhì)的對應的通道即可。特殊材質(zhì)(如玻璃等需要有反射和透明的材質(zhì))需要在材質(zhì)編輯器中設置參數(shù)。由于系統(tǒng)運行實時反射時需要大量的計算,為保證運行流暢,玻璃一般采用假反射。
(3)自動漫游的實現(xiàn)
系統(tǒng)中的自動漫游主要包括過場動畫與系統(tǒng)預設的路徑漫游兩部分。自動漫游的實現(xiàn)主要用到了UDK中的攝像機動畫,主要制作步驟如下:1)在場景中添加攝像機:2)打開Kismet,添加Matinee編輯器;3)為其添加一個“CameraGroup”,通過關(guān)鍵幀來記錄攝像機的位置動畫,利用線性插值運算實現(xiàn)平滑動畫;4)如果場景中有多個攝像機,可添加攝像機導演組來實現(xiàn)對各個攝像機動畫播放順序的控制。
(4)開關(guān)門觸發(fā)動畫的實現(xiàn)
交互功能主要通過事件觸發(fā)來實現(xiàn)。UDK中的事件觸發(fā)組件包括自動觸發(fā)、交互觸發(fā)等多種類型。本系統(tǒng)中門的開關(guān)以及展廳介紹均為自動觸發(fā),主要通過Kismet中的Matinee動畫實現(xiàn),具體參數(shù)設置如圖5所示:
4 虛擬人物角色的實現(xiàn)
在虛擬現(xiàn)實圖書館的漫游活動中加入角色會使體驗更加真實生動。本項目實現(xiàn)的人物漫游可以通過鍵盤或鼠標任意控制人物的行進路線和觀察視角,效果如圖6所示。
(1)虛擬人物的制作與導出
在3ds Max中制作人物的美術(shù)資源,包括創(chuàng)建模型、繪制貼圖、綁定骨骼和添加動作等。UDK支持3dsMax中的Bone和Biped骨骼系統(tǒng);蒙皮綁定可以使用Max的Skin和Physique修改器;通過Max的CS角色動畫系統(tǒng)為角色制作動畫序列,如行走動畫、看書動畫、站立動畫等。在UDK中動畫和模型是分離的,可以在一個動畫文件中存儲多個動畫序列最后通過UDK的骨骼物體導出插件ActorX導出,保存為,psk格式的文件,動作序列通過ActorX Animation Manager管理窗口導,出為psa格式的文件。
(2)UDK中導入人物模型及動作
導入骨架網(wǎng)格物體模型時動畫文件不能直接導入,要先在內(nèi)容瀏覽器中建立一個Animset(動畫集)導入,psa文件。
為角色添加的物理屬性中將碰撞幾何體(CollisionGeometry)設置為Sphyl/Sphere。建立動畫樹(AnimTree)文件,具體設置如圖7所示。在AnimNodeSequence屬性中確定勾選“Playing”和“Looping”選項,以保證角色在運行時能夠自動循環(huán)播放動作。
(3)制作第三人稱視角
將世界屬性中的游戲類型(Game Type)改為“UTGame”。并通過Camem Actor與Kismet制作第三人稱視角。首先調(diào)整攝像機位置和角度,使攝像機目標點與默認角色的目視目標點大致一致。之后在Kismet中通過事件、動作和變量的連接,使“Camera Actor”一直伴隨角色移動。程序連接如下圖8。
(4)替換和修改角色模型
在UDK安裝目錄下將“Character Mesh”后的路徑修改為自己模型的路徑與全名。將“PhysAsset”修改為自己模型的物理資源路徑,“AnimSets(O)”修改為自己模型動畫集文件的路徑。將“AnimTreeTemplate”后面的路徑修改為自己模型的動畫樹路徑。
5 用戶UI界面實現(xiàn)
用戶UI界面的實現(xiàn)主要使用新版UDK自帶的ScaleformGFX工具和flash制作完成。
(1)在Adobe擴展管理程序Adobe Extension Manager cs5中安裝UDK安裝目錄Binaries/GFx/CLIK Tools下的ScaleformExtensions.mxp文件,如圖9所示。
(2)安裝后要對Scaleform Launcher進行設置。在Flash中打開“Scaleform Launcher”打開Binaries/GFx Lfl的exe文件并復制Player name中的內(nèi)容到“profile name”中。用同樣的方法把另一個文件也添加進去。
在Flash中打開UDKGame/Flash/Fonts目錄下的,fla格式的文件,將字體映射設為黑體后進行測試。在UDK中找到UDKHUD文件夾中的udk hud文件重新導入。
(3)角色距離觸發(fā)界面元素顯隱程序?qū)崿F(xiàn),即當人物走近時彈出flash界面,當人物離開時停止播放flash的交互效果。在flash中完成動畫制作后并導入UDK中使川。在場景中添加觸發(fā)器(Add Trigger)并修改觸發(fā)半徑。Kismet中,讓觸發(fā)器觸發(fā)新建的動作:GFx UI/open GFx movie。
(4)把flash貼在面上:Flash中建立兩個圖層來存放圖片序列并加入命名為“stop”和“on”的控制代碼,以實現(xiàn)通過角色與物體問的距離來控制flash動畫的播放或停止,兩圖層首幀寫入的代碼如下:
Functionwalkanime (toggle:Boolean):Void {if(toggle) {yp01.gotoAndPlay(“stop”); }showScoresO;}
Functionwalkanimestop (toggle:Boolean):Void {if(toggle) {yp01 .gotoAndPlay(“on”); }showScores( );}
導入動畫后將flash動畫賦予新建的材質(zhì)。在Kismet中的open GFx movie的屬性選擇myStart.uc文件。在Kismet中的程序連接如圖10所示:
6 產(chǎn)品打包發(fā)布
系統(tǒng)的發(fā)布輸出主要用到UDK安裝包下Tools中的Unreal Fronted工具。運行后根據(jù)操作提示,進行適當?shù)脑O置便可完成項目的打包發(fā)布。
五、結(jié)論與展望
虛擬現(xiàn)實圖書館已列入《圖書館學概論》的學術(shù)體系中,虛擬現(xiàn)實圖書館為圖書館學理論提供了新的研究視角和研究方向,為圖書館學的概念體系與結(jié)構(gòu)體系注入了新的科學內(nèi)涵,有利于整個圖書館事業(yè)的繁榮與發(fā)展。虛擬現(xiàn)實圖書館導覽系統(tǒng)可用于全方位展示圖書館,使訪問者快速了解圖書館布局并獲得在線學習體驗。UDK提供有多人在線交互支持,在下一步研究中,將進一步研究多人在線的虛擬圖書館交流合作以及虛擬場館與圖書館數(shù)據(jù)庫系統(tǒng)的鏈接與整合,以實現(xiàn)真正意義上的虛擬現(xiàn)實圖書館。虛擬現(xiàn)實技術(shù)在圖書館中的應用,盡管還不十分成熟,但已初步顯示了其廣闊的應用前景,并引起了人們的高度重視和廣泛興趣,是一個值得深入研究的領(lǐng)域。本文基于UDK游戲引擎對虛擬現(xiàn)實數(shù)字圖書館的場景漫游做了探索和嘗試,其方法與技術(shù)對各種實體場館、機構(gòu)的虛擬展示以及對虛擬校園的建設有一定借鑒意義。