基于Virtools的3D虚拟浏览技术在数字图书馆建设中的应用*——以首都师范大学图书馆3D图书导航系统为例
王硕
首都师范大学图书馆 北京 100048
摘要

以首都师范大学图书馆3D虚拟图书导航系统为例,详细介绍基于3DsMax和Virtools技术所开发的图书馆实景虚拟图书路径导航应用案例。重点介绍3D建模和Virtools交互功能的实现,使用户可以通过OPAC书目查询和URL网址两种方式进入虚拟图书馆导航系统,实现馆内图书的虚拟检索和路径导航,并实现多人实时信息交互和多媒体共享,为用户提供一个真实的虚拟图书馆漫游场景。

关键词: 3DsMax; Virtools; 虚拟数字图书馆
中图分类号:TP391.9
Application of 3D Virtual Browsing Technology in Digital Library Construction Based on Virtools ——3D Books Navigation System of Capital Normal University Library
Wang Shuo
Capital Normal University Library, Beijing 100048, China
Abstract

Taking Capital Normal University Library 3D virtual books navigation system as an example, the paper introduces the application case of virtual books navigation in our country based on technology of 3DsMax and Virtools. It mainly discusses how to create 3D models and realize the interactivity when the users visit the system via Web OPAC or URL. The system implements and realizes virtual books searching and path navigation, real-time messages exchanging, multi-media sharing functions as well as a real virtual library ramble scene.

Keyword: 3D studio Max; Virtools; Virtual digital library
1 引言

随着计算机技术和网络技术的迅速发展,数字图书馆的建设与应用性研究进入新阶段。3D虚拟现实技术通过构建逼真的场景和身临其境的用户体验使虚拟世界越来越接近现实生活,也使构建3D虚拟环境受到人们的欢迎。受“第二人生”(Second Life)[ 1]在线3D虚拟世界的影响,国内外数字图书馆开始了3D虚拟技术的应用研究,并纷纷组织力量进行虚拟图书馆的研究、设计和建模。国外对虚拟图书馆的应用研究主要关注于如何在Second Life中创建自己的虚拟3D图书馆,如开普顿大学(University of Cape Town,UCT)在Second Life平台上建立3D虚拟数字图书馆(The Digital Bleek and Lloyd Collection)[ 2]。国内数字图书馆则更加注重自身的设计和开发,如中国国家图书馆采用Quest3D软件开发的3D虚拟浏览系统[ 3]、北京林业大学基于RIA技术开发的三维场景图书馆服务系统[ 4]。 可见,如何建立一个可视化、可感知的三维虚拟图书馆已经成为数字图书馆建设的新课题。

本文以首都师范大学(简称首师大)图书馆3D虚拟图书导航系统为例,介绍了系统的设计方案和制作流程,阐释了系统的建模和功能的实现,并在此基础上对虚拟图书馆建设的应用前景做出推论。

2 首师大图书馆3D图书导航系统设计方案
2.1 应用软件选择

系统建设所采用的软件有:功能强大的平面设计软件PhotoshopCS5、三维物体制作模型软件3DsMax9.0和三维环境虚拟实境编辑软件Virtools4.0。

PhotoshopCS5[ 5]是美国Adobe公司旗下的平面图像处理软件之一。在本系统主要用于完成对实物照片的图像处理和虚拟图书馆所有3D模型的贴图处理。

3DsMax9.0[ 6]即3D Studio Max 9.0,是美国Autodesk公司旗下的一款三维动画、模型和渲染软件。本系统主要使用3DsMax9.0软件完成图书馆整体环境、馆内设施及设备和人物角色的模型构建、模型渲染以及人物角色的动画设计工作,还原一个逼真的图书馆虚拟环境,并将场景及模型导出供Virtools处理调用。

Virtools4.0[ 7]是法国Dassault Systemes公司开发的具备丰富的互动行为模块的实时3D环境虚拟实境编辑软件。本系统主要使用该软件导入由3DsMax制作的三维模型并对其进行处理,实现虚拟图书检索的导航定位和路径指引、人物漫游的路径处理、人物的在线交流等。

2.2 系统设计与实施流程

在3D虚拟空间设计方面,有学者认为3D虚拟学习环境应具备场景保真和用户交互两部分特点:在场景保真方面,通过建立3D模型模拟真实的学习环境,保证视图切换和对象动作的流畅,保持对象行为的一致性,同时还应具有设定用户性别、立体声音和用户知觉反应的功能;在用户交互方面,实现用户对3D虚拟环境中所有行为的控制,如视图的切换、导航和控制对象的行为,实现用户语音/文字的交流和角色动作的交流,并能够控制虚拟环境的属性和运行状态,提供用户构建对象模型及设置对象行为的功能[ 8]。首师大图书馆3D虚拟图书导航系统在设计中考虑并体现了实物的保真性和读者可交流沟通两个显著特点,采用3DsMax建模技术和Virtools交互技术实现了首师大图书馆内部建筑结构和馆藏布局的在线流畅展示、图书架位的人工模拟导航、虚拟空间中音频及视频的共享、人物角色性别的区分以及角色在虚拟场景中的实时交流等功能。

首师大图书馆3D虚拟图书导航系统主要具备以下5大功能:

(1)图书架位3D导航。通过OPAC书目查询系统接口进入3D导航系统,系统自动导航至所搜索图书的位置。

(2)虚拟空间浏览。通过网址进入虚拟图书馆,用户可以在楼层间自由跳转、漫游,可通过导航功能漫游至指定位置,同时也可链接进入OPAC书目查询系统检索图书。

(3)用户实时信息交互。系统可实现本层和本馆两种会话模式下的用户交流。

(4)链接数字期刊。用户到达期刊所在书架后,双击期刊封面即可打开其与数字期刊之间的链接,在线浏览期刊内容。

(5)多媒体展示。系统管理员通过后台管理上传声音、视频、网页等多媒体文件,实现多媒体资源的真实再现。

3D虚拟图书导航系统的实施主要分5个阶段:收集图书馆建筑资料、馆内实物拍照、建模、贴图和功能实现。具体实施流程如图1所示:

图1 3D虚拟图书导航系统实施流程

3 系统建模

首师大图书馆3D虚拟图书导航系统使用3DsMax软件进行建模,建模包括图书馆场景建模和人物角色建模两部分。

3.1 图书馆场景建模

图书馆场景建模是指对图书馆内部环境、馆内设施及设备进行建模,通过实物拍照、建立三维模型、材质贴图、灯光设置及生成烘焙材质4个步骤实现。

(1)实物拍照

建模之初,必须对现实场景进行拍照取样,为后期模型贴图提供素材。本系统中的虚拟图书馆场景仅涉及与读者活动相关的图书馆地上7层,拍照区域包括借还处、中外文阅览室(含报刊和中文新书阅览室)、电子阅览室、古籍阅览室等。拍照设施及设备包括馆内咨询台、书架及期刊架、桌椅等所有读者可见的馆内设施及设备。

(2)建立三维模型

搭建图书馆基本场景;完成馆内各项设施和设备的单独建模;根据现实中楼层的布置情况配置虚拟场景中设施设备的位置和数量。

为避免网页加载速度过慢的问题,三维建模时系统采用了分楼层加载方式,将图书馆7层分开建模,而每项设施和设备的建模也同样需要考虑加载速度问题,因此在保证模型外观接近真实的基础上尽量简化模型。简化模型一般采取两种办法:简化模型的结构,减少模型上不必要的凸起和凹陷,以减少冗余的“面”,从而减少模型存储的数据量;或者利用“视觉欺骗”达到三维立体效果,即使用贴图做模型的材质来体现复杂的结构。

(3)材质贴图

将建好的三维模型通过UV展开功能展开成二维平面,并导出模型平面线框图,在Photoshop软件中对每个面做贴图,最后生成一张UV贴图,作为材质赋予相应的模型。

(4)灯光设置及生成烘焙材质

添加材质贴图后,为避免渲染时画面失真,需要给模型添加灯光,打造阴影效果,使物体更立体更真实。由于添加灯光及阴影等信息会大大增加数据运算量,因此要将阴影烘焙到模型表面的贴图上,即把阴影信息也保留在材质贴图上,将光照信息变成普通贴图,避免CPU做大量运算。

3.2 人物角色建模

首师大图书馆3D虚拟图书导航系统中人物角色按性别设计了男女两种角色模型,并设计等待和行走两种动画效果。

人物角色的创建主要包括创建人物模型、创建骨骼、蒙皮和动画等。其中,人物的建模和贴图过程与物体建模类似,不同之处在于还需要为人物角色创建骨骼,并将模型与骨骼绑定在一起,这个绑定的过程称为“蒙皮”。骨骼蒙皮之后可以使人物模型随骨骼运动。

骨骼蒙皮之后,使用Character Studio制作人物角色动画。在人物角色动画制作方面,非常重要的一点是要理解骨骼对象的结构。骨骼的链接与几何体链接不同,每个链接在其底部都具有一个轴点,骨骼可以围绕该轴点旋转。移动子级骨骼时,实际上是在旋转其父级骨骼。 本系统采用3DsMax9.0软件提供的BIPER骨骼结构,并采用它的蒙皮连接式骨骼支配模型制作具有肌肉形变感觉的人物动画的设定。人物角色的骨骼系统如图2所示:

3.3 导出三维模型

完成三维建模后,利用3DsMax Exporter插件分别导出图书馆场景模型和人物角色模型,并将导出的模型以.nmo扩展名保存。

图书馆7层建筑的全部场景模型过于庞大,如一次加载7层信息会增加计算机负担,降低运行速度,因此采用分层导出方式,以便在Virtools处理中分层浏览,提高计算机的加载速度。

人物角色模型中设定有角色动画,因此需把每个动作单独导出并命名,这样才能在使用Virtools导入模型时将人物角色模型的每个动作导入到Building Blocks下的Characters中,为后续使用Virtools设定人物角色行为提供行为模块。

4 系统功能实现

在使用Virtools工具操作前,需要将导出的扩展名为.nmo的3D模型文件导入到Virtools中,图书馆场景模型和人物角色模型作为Virtools的Resource资源,人物角色的动画模型作为Virtools的Building Blocks行为模块。导入模型文件后再使用Virtools工具进行3D模型的虚拟实境编辑。

4.1 三维图书架位导航和虚拟空间浏览

图书架位3D导航在功能实现方面和虚拟空间浏览原理相同,都需要存储和查找图书馆OPAC中的图书信息、确定路径导航、添加小地图观察人物在场景中的位置。

(1)存储和查找OPAC图书信息

将图书馆OPAC中的图书信息存储到MySQL数据库中,图书信息包括:书号、书名、排架号、所在楼层、图书类型。当用户检索图书时,系统会通过ODBC连接到MySQL数据库,并通过Virtools中的Execute SQL Statement模块从数据库中获取需检索数据并将检索结果保存到一个Array数组中,检索结果如图3所示:

图3 Array检索数据信息

图3可以看到相关书籍的书号、书名、所在楼层和所在书架的排架号。

(2)确定导航路径路径导航图如图4所示:

图4 路径示意图

书架旁边白色的十字是引导用户到达指定位置的目标参考点,由Virtools中3D Frame 框架实现。为了计算从当前位置到目标点的路径且不穿越物体,需要在场景中标出哪些模型是障碍物,以便系统计算出一条有效路径。Virtools通过Grid网格标出不可穿过的区域,并通过Layer Slider模块实现对不可穿过动作的控制。

在查找到图书所在楼层等信息后,通过Switch On Parameter模块实现楼层的跳转,并通过Get SubString、Get Row、Test和Op这4个模块确定该书所在的书架,具体模块关系如图5所示:

图5 书架定位模块关系

当确定检索书所在书架后,会由ProadcastMessage模块向主程序发送一个消息,在接收消息模块后,程序会启动路径生成及导航功能,如图6所示:

图6 路径跳转模块关系

图6中有三个模块:Grid Path Init用于初始化路径,告知系统哪些区域不可以穿过等;Grid Path Solver是路径生成工具,根据给定的路径Layer层、起点和终点,自动生成路径;而Charactor Grid Path Follow则是使角色根据Grid Path Solver生成的路径自动行走到目标点。

至此,用户就可以自动导航至目标图书或是自己在虚拟图书馆中自由浏览。

(3)创建小地图

为了使用户了解自己所在虚拟空间中的具体位置,需要添加小地图功能。如图7所示,系统中的小地图指以红点、箭头和二维平面图大小缩放方式,反映用户在当前场景的实时位置与正面朝向,其中红点表示用户,红色箭头表示用户的前进方向。

小地图的实现过程分为三个步骤:将3D场景转化成二维平面图;添加一个2D Frame和两个3D Frame,其中2D Frame 表示地图中的用户,3D Frame 分别表示地图的左上角位置A和右下角位置B;通过VSL Script计算用户在小地图中的位置,参考公式:用户在地图中位置=用户当前位置-A的位置/B位置-A位置,位置关系示意图如图 8所示:

图8 位置关系图

VSL Script--smallmap代码实现如下:

void main()

{

/------变量定义------/

Vector lefttop,rightbottom,objecter,result;

Vector2D Tran,center;

Rect rect;

/------获取参考点的位置信息------/

left_top.GetPosition(lefttop);

right_bottom.GetPosition(rightbottom);

charactor.GetPosition(objecter);

/-----计算角色在小地图中的位置-----/

result=(objecter-lefttop)/(rightbottom-lefttop);

center.Set(result.x,result.z);

rect.SetTopLeft(center-ScalFactor);

rect.SetBottomRight(center+ScalFactor);

/----设定角色在小地图中的位置----/

charactor2D.SetSourceRect(rect);

}

4.2 用户实时信息交互

系统实现了用户在本层和本馆两种会话模式下的实时信息交互。本层实时信息交互是指只有在同一层的用户才可以进行交流,而本馆实时信息交互是指进入虚拟图书馆的所有用户都可以进行交流。

用户实时信息交互的实现分为两步:

(1)实现多人连线,即在虚拟图书馆中的多名用户间实现相互通信,这需要Join Session、Create Session等模块实现。具体方法是通过Create Session创建会话,确定允许会话交流的人数;然后通过Join Session连接会话,并根据Connection ID号确定会话对象;由Get Incoming User和Get Outgoing User模块管理会话过程中进入和离开的Connection ID。

(2)实现实时信息交互。在实现多人连线后,通过Network Send Message模块把想要发送的内容和目标通过网络发送出去, 并通过Network Wait Message模块接收Network Send Message模块发送的消息,从而使读者在虚拟场境中进行实时信息交互。

4.3 链接数字期刊

首师大图书馆的3层和7层分别馆藏有中文期刊和外文期刊。数字期刊链接功能是指用户漫游至期刊所在位置,通过双击期刊封面后系统自动链接至期刊所对应的数字期刊库,如在虚拟图书馆三层的期刊架位前,双击“国际社会科学杂志”封面,系统会直接链接到馆藏全文库中该数字期刊。

实现链接数字期刊的功能需要在安装目录下添加储存数字期刊链接地址信息的TXT文本文件(见图9),在Virtools中创建Array数组,该数组中第一列显示数字期刊的对象编码(见图10),并在Script脚本中通过调用对象编码实现期刊链接。

图9 数字期刊链接地址

4.4 多媒体展示

多媒体展示包括声音、视频、网页、图片等多媒体资源的展示。系统管理员通过后台管理上传多媒体资源实现用户端的资源分享。目前系统中的视频展示主要是指系统可模拟图书馆内电视、大厅LCD屏等设备播放相关音视频资源与信息,以保证实现多媒体设备实景展示。

5 结语

本文以首师大图书馆3D虚拟图书导航系统为例,提出了实用的3D虚拟图书馆设计方案,介绍了3D虚拟图书导航系统的制作流程,详细阐述了利用3DsMax工具进行图书馆场景建模和人物角色建模的步骤及相关注意事项,并重点描述了使用Virtools实现系统功能的方法。通过对首师大图书馆3D图书导航系统建设实施流程的完整剖析,希望能在应用案例的准备与实用经验的借鉴上为数字图书馆的虚拟化建设做出有益的探索。

目前,本系统已正式投入使用,并有良好的应用前景。系统具有较强的扩展性,可对图书馆的馆藏布局结构和图书信息进行更新维护,并为进一步开发用户实时信息交互功能预留了端口。随着3D虚拟数字图书馆研究的深入和相关技术的发展,虚拟图书导航系统的部分功能还可以加强和完善,如人物角色的个性化设计、多媒体应用的丰富、用户信息实时交互功能的完善;同时,也可以根据读者服务需求扩增相关功能,如仿照游戏设计在虚拟图书馆中引入剧本,提升读者在虚拟图书馆中的使用体验;与其他系统互连实现网上3D影院,拓展多媒体资源的服务渠道;发展虚拟远程教育等。总之,如何将虚拟现实技术与图书馆的资源与服务关联起来,以更好地推动数字图书馆的发展,提高图书馆的现代化服务水平是该领域的永恒课题。

参考文献
[1] Second Life[EB/OL]. [ 2009-12-13]. Second Life[EB/OL]. [2009-12-13]. http://secondlife.com/whatis/. [本文引用:1]
[2] Versfeld R, Lee S, Fox E, et al. Digital Library in a 3D Virtual World: The Digital Bleek and Lloyd Collection in Second Life[C]. In: Proceedings of the 14th European Conference on Research and Advanced Technology for Digital Libraries. LNCS 6273, Berlin: Springer-Verlag, 2010: 550-553. [本文引用:1]
[3] 李雪. 虚拟现实技术在国家图书馆的应用[J]. 科技情报开发与经济, 2009, 19(30): 27-28. [本文引用:1]
[4] 潘春华. 基于RIA技术的三维场景图书馆服务系统设计与实现[J]. 图书情报工作, 2010, 54(13): 112-114. [本文引用:1]
[5] Adobe Photoshop CS5 [EB/OL]. [ 2011-03-05]. Adobe Photoshop CS5 [EB/OL]. [2011-03-05]. http://www.adobe.com/products/photoshop.html. [本文引用:1]
[6] Autodesk 3Ds Max Products [EB/OL]. [ 2011-04-15]. Autodesk 3Ds Max Products [EB/OL]. [2011-04-15]. http://usa.autodesk.com/3ds-max/. [本文引用:1]
[7] 3DVIA Virtools [EB/OL]. [ 2011-04-05]. 3DVIA Virtools [EB/OL]. [2011-04-05]. http://www.3ds.com/products/3dvia/3dvia-virtools/. [本文引用:1]
[8] Dalgarno B, Lee M J W. What are the Learning Affordances of 3-D Virtual Environments?[J]. British Journal of Educational Technology, 2010, 41(1): 10-32. [本文引用:1]