





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