龍艷軍 陳幼君
(1.永州職業技術學院 網絡信息中心,湖南 永州 425006;2.永州職業技術學院 旅游管理系,湖南 永州 425006)
隨著信息技術的飛速發展,20世紀80年代出現的虛擬現實技術在軍事、教育、醫療和文化藝術等領域得到了廣泛的應用。虛擬現實(Virtual Reality,VR)也稱為靈境技術,它是由計算機及一些專用設備生成一種三維的,基于感知信息的模擬環境,用戶在此環境中利用設備產生身臨其境的感覺,從而以最自然的方式對虛擬世界進行體驗與交互[1]。虛擬訓練作為實裝訓練的重要補充,克服了實裝訓練中設備多、費用高、效益低等缺點,逐步成為教育培訓的有效手段[2]。
高職旅游管理專業旨在為旅游企業培養高素質的技能型實用人才,實訓教學一直是專業教學中的重點,一般是通過安排學生去實地景區進行實訓教學,完成教學任務。帶領學生外出實地景點教學雖然能夠達到理想的教學效果,但往往會帶來教學成本高、人員外出存在安全風險、管理難度大等問題,為解決此類問題,借助于Virtools虛擬現實工具,構建出一個分布式的虛擬學習環境,學習者以虛擬化身的方式可以在虛擬環境中互相交流、學習。Virtools采用了模塊化的開發技術,開發過程中可利用其所提供的600多個BB(Building Block)以及VSL和SDK編寫代碼設計自己的BB,這與其他3D軟件相比有很大的技術優勢,提高了開發效率[3]。
Virtools是由法國達索公司開發的一款互動程序開發工具,目前最新版本為Virtools5.0,其支持到DirectX9.0C。由于Virtools Dev不能進行3D建模,需要與3D Max、Maya等建模軟件一起使用,然后利用專門的導出插件導出為Virtools能夠識別的文件格式,通過在Virtools Dev中將這些元素進行整合,添加行為模塊,最后得到豐富的、交互的3D內容。除Virtools DEV以外,還有Virtools Server、Physics Pack、AI Pack、Xbox和VR Pack五個可選模塊。Virtools具有以下幾個方面的優勢:
(1)圖形化創作界面
Virtools提供了一個可視化、圖形化的編輯方式,在進行3D資源、2D幀等元素整合時采用流程圖的思維模式進行腳本編程,使開發流程更加直觀、簡便。
(2)提供網頁插件
Virtools提供了一個體積小、網絡傳輸速率快、占用資源少的網頁插件,使得所設計的3D作品可以網頁的形式存在,便于傳播與推廣。
(3)功能強大的VSL腳本語言
在Virtools中,一般是利用系統提供的600多個BB進行3D應用系統開發,即將BB賦在適當的對象或虛擬角色上,并以流程圖的方式決定BB的前后執行順序,實現可視化的交互腳本設計,同時將許多功能不同的程序模塊相互連接成應用程序,逐步編輯成完整的交互式虛擬世界。然而,當項目規模較大時,利用BB來進行就會表現不足,而VSL(Virtools Scripting Language)則采用書寫代碼的方式進行編程開發,大大提高了程序的可讀性和執行效率,實際上Virtools中每個自帶的BB都是用VSL腳本語言寫好之后封裝起來的。用戶在實際開發中可根據需要利用VSL創造出新的BB,來實現Virtools功能的擴展。
(4)Virtools Server
Virtools Server是Virtools的一個單獨的模塊,該模塊為Virtools構建分布式虛擬現實技術的核心模塊,其利用高效率的網絡引擎開發出分布式虛擬技術,并能與數據庫整合,快速的構建出多人聯機的虛擬現實應用系統。Virtools Server由Database module、Download Component module、Multiuser module以及Download module四個子模塊組成,其中Multiuser module可以簡單的創建基于TCP/IP網絡協議的B/S結構的多用戶環境,本系統的分布式虛擬環境就是采用該模塊來構建服務器端多用戶環境。
ThinkPHP開源框架是一款免費開源、快速、簡單的面向對象的輕量級PHP開發框架,遵循Apache2開源協議發布,是為了便捷Web應用開發和簡化企業級應用開發而誕生的。ThinkPHP框架借鑒了國外很多優秀的框架和模式,使用面向對象的開發結構和MVC模式,采用單一入口模式等,封裝了CURD和一些常用操作,在項目配置、類庫導入、模板引擎、查詢語言、自動驗證、視圖模型、項目編譯、緩存機制、SEO支持、分布式數據庫、多數據庫連接和切換、認證機制和擴展性方面均有獨特的表現[5],由于ThinkPHP是由國人開發的軟件中間件,有著豐富的中文說明文檔以及大量成功的案例,因此使用ThinkPHP能大大提高系統的開發速度和開發效率。
為了解決實地旅游實訓中的有關問題,對傳統的專業實訓教學進行改革和創新,利用虛擬現實技術與計算機網絡技術,對旅游專業所開設的實訓和對專業的整體教學進行精心的分析和深入的研究,所以構建的虛擬旅游教學系統要實現以下目標:
(1)基于Web的學習平臺。用戶只要能上網,就能訪問虛擬旅游實訓教學系統,實現教育資源利用最大化。
(2)支持多人在線。用戶以虛擬化身的方式進入虛擬環境,彼此能夠“看到”對方,能互相交流、學習。
(3)高仿真的學習景點。以實際的教學景點為原型,利用虛擬現實技術進行仿真,提供逼真的沉浸式體驗,用戶如同身臨其境般完成各項學習任務。
(4)實驗數據的動態保存。學習者在學習的過程中,能夠對實驗后的信息進行保存,便于以后進行復習,歸納和總結學習要點。
(5)完善的評價功能。能對學生的學習過程進行評判,對整個學習結果、用時等進行綜合評價,并給出相應的評分,可極大的減輕教師繁重的教學任務。
(6)系統可擴展性。系統要考慮今后的知識更新,不斷滿足發展的需求。
為了使學生能夠隨時隨地訪問系統,并且減少客戶端的安裝以及維護工作量,系統采用了瀏覽器/服務器模式(B/S,Browse/Server),其架構形式如圖1所示:

圖1 分布式旅游實訓教學系統B/S架構
圖1中服務器端由PHP網站(采用ThinkPHP開發)、Virtools Multiuser Server以及MySQL數據庫系統組成,Virtools開發的虛擬景區以VMO文件的形式存儲在PHP網站中。在瀏覽器端,嵌入了能執行Virtools的VMO文件的3D Life Player插件。
當用戶登錄旅游實訓教學系統網站后,點擊相應的虛擬景點的鏈接,服務器會將該景點的HTML網頁以及VMO文件經過Internet下載到本地瀏覽器,并由嵌入到瀏覽器中的3D Life Player執行。同時在服務器端的Virtools Multiuser Server會實時的監聽遠程客戶端的請求,當用戶需要上傳實驗數據時,即連接VMO文件內部數據Array陣列與MySQL數據庫進行對應動態數據傳遞。

圖2 分布式旅游實訓系統功能組織圖
分布式旅游實訓教學系統是一個支持多用戶通過網絡進行漫游的系統,也是進行旅游教學的系統。系統與教學內容緊密結合,并提供輔助教學功能,其功能如圖2所示:
圖2為分布式旅游實訓教學系統的功能,分為用戶平臺和管理平臺兩大部分,用戶平臺主要是用戶進行實際學習平臺,又分為虛擬實訓平臺和輔助平臺,虛擬實訓平臺是根據課程內容需要構建的仿真實地的教學景點,可以根據需要添加景點,虛擬角色可以隨意進入任何一個虛擬景區,多個角色可以同時進入同一虛擬景區中,彼此之間可以互相交流、學習,同時能在虛擬導游的帶領下完成景區相關知識點的學習。輔助平臺由系統注冊及登錄、系統簡介與須知等一些輔助功能組成,同時提供了試題抽取和考試評估功能,實現學習者在虛擬景區學完之后進行考核,以評估所學習的效果。管理平臺主要提供用戶管理和新聞管理,用戶管理主要是進行如用戶添加、用戶刪除等,新聞管理主要是進行新聞發布、新聞鎖定等。
分布式旅游實訓教學系統的開發主要分三個階段:構建模型、功能實現、作品發布。
Virtools不具備建模功能,本項目采用了3D Max來建模,完成虛擬景點、虛擬角色的建模以及虛擬角色的動作制作,然后利用Virtools專門提供的導出插件將場景、角色模型及動作文件導出為.NMO格式,在Virtools DEV中,建立資源庫文件,并將*.NMO文件導入到相應的分類文件夾中[6]。因為Virtools對模型是實時渲染的,因此在使用建模軟件建模的時候,要盡可能減少面數,以節約處理時間,減少資源消耗。在主場景中,角色的活動路徑沒有到達房屋的背面,房屋的背面是不可見的,因此,房屋背面的墻體可以不用建模,以節約渲染時間[7]。同時哦了保障流暢的運行速度,虛擬角色的多邊形面數一般應低于3000個面。
本系統以網絡為構架,使用ThinkPHP構建虛擬旅游實訓系統主站系統,使用Virtools Multiuser Server構建分布式多人交互系統,MySQL為后臺數據庫系統。目前,應用于分布式虛擬現實的網絡通信模型主要有兩種,對等型(P2P)和客戶機/服務器(C/S)[8]。本文采用C/S通信模型,即系統中設有一臺中心服務器,它負責協調各仿真實體的仿真活動,維護共享虛擬環境的一致性,客戶機只負責實體的仿真計算和場景的顯示等任務[9]。

圖3 建立3D角色對象和建立分布式用戶對象腳本
在Virtools DEV中完成功能的設計,主要有客戶端與服務器端的網絡連接;虛擬化身與虛擬環境之間以及虛擬化身相互之間的碰撞檢測;設定整個虛擬環境的地面屬性,以便虛擬化身能始終保持在地面上行走等。圖3表示建立3D角色對象和建立分布式用戶對象腳本的連線腳本。
在完成所有功能設計之后,使用Virtools Dev文件菜單下的“Save for Web”命令將作品保存為*.VMO格式的文件。這樣,只要在客戶端安裝有Virtools瀏覽器3D Life Play播放插件,結合ThinkPHP所設計的權限管理系統,經過授權的用戶登錄到系統后就可以將*.VMO下載到客戶端執行,從而實現虛擬學習環境的瀏覽。
分布式虛擬旅游實訓教學系統有利于學習者沉浸在系統所設置的虛擬教學景區中,充分調動學習者各種感官進行學習,可以讓學習者在一種自由發展的狀態中開展學習,可以自主的選擇學習內容、學習重點、學習方式,給予學習者充分的體驗和想象空間,直觀立體地了解各種顯性知識,通過對不同的虛擬教學景區進行反復的操練,有助于提高教學質量和效果。輔助平臺提供了對學習者在虛擬場景中所學到的知識進行考查功能,提供大量教學資料和多為專業教學的教學環節和實訓環節提供了有益的補充。同時系統中精心設計的虛擬景區環境,基于Web的運行方式,不僅提高學習效果,增強了用戶體驗,還可實現資源的重用,經濟、社會效益明顯。
[1]孫倩.基于3DS MAX的三維建模及其在Virtools環境中的應用[J].中國科技信息,2008,(12).
[2]朱晨光,朱元昌,邸彥強.Virtools中的虛擬示波器設計與實現[J].計算機與數字工程,2012,7(273):160-163.
[3]楊清文,房施東,楊光,吳碩.基于Virtools的某火炮技術檢查訓練仿真研究[J].計算機測量與控制,2012.20(2),407-410.
[4]羅虹,王士勇.基于Virtools技術的虛擬教學系統的設計與實現[J].現代教育技術,2007.10(17):57-60.
[5]百度文庫.ThinkPHP2.0完全開發手冊[EB/OL].http://wenku.baidu.com/view/1df09ec108a-1284ac8504329.html,2012-06-14.
[6]李欣.分布式認知視角下的智能授導系統的設計與開發[J].電化教育研究,2008,1:52-58.
[7]吳靜,何強.基于Virtools的教學軟件設計與實現[J].微計算機信息,2010.6(26):199-201.
[8]Zhang Ling,Lin Qingping,Robert Gay,et al.An autonomouse decentralized multi-server framework for large scale collaborative virtual environments[J].International Journal of Image andGraphics,2007,.7(2):353-375.
[9]徐海鋒.分布式虛擬環境的網絡通信機制研究與應用[J].微計算機信息,2008,24(3):150-152.