張佳杰 崔朝霞 何金寶
針對瀏覽者在虛擬場景中游覽迷失方向,缺少沉浸感的問題。提出一種有效的解決辦法,即通過添加虛擬化身使虛擬環(huán)境更活潑,更有吸引力。 利用虛擬化身,自動帶領瀏覽者參觀虛擬場景,充分了解環(huán)境。
虛擬現(xiàn)實技術是20世紀80年代末90年代初崛起的一項實用性很強的技術。它可以真實的模擬出現(xiàn)實世界的事物或環(huán)境,用戶投入到這種環(huán)境中,猶如“身臨其境”的感覺。但是,隨著虛擬現(xiàn)實的不斷深入,僅有景色、障礙物的三維場景已經(jīng)無法滿足人們視覺的需求,需要引入一些生動的人物角色,即虛擬化身,并在虛擬化身身上完成各類交互,來增加瀏覽者的沉浸感。
1 建立虛擬化身模型
當一個虛擬的三維場景建好后,為了使虛擬場景更活潑更具吸引力,在虛擬場景中設計一個虛擬化身是很有必要的。虛擬化身的設計手先就是建立虛擬化身模型。目前有許多建立虛擬人體模型的方法,根據(jù)現(xiàn)有的實驗條件和人體骨骼的構造,采用建模的方法建立虛擬化身模型。建模過程如下:
(1)繪出三維人體骨骼層次結構圖
(2)通過VRML語言中的坐標變換節(jié)點(Transform)、內聯(lián)結點(Inline)等進行設計生成人體三維骨骼圖。
(3)采用Avatar Studio軟件生成虛擬化身。通過Export VRML導出,生成wrl文件。使用Avatar Studio軟件導出的虛擬替身,生成的avatar.wrl文件存在類型定義不匹配的問題,需要修改類型定義。Avatar Studio生成的avatar.wrl文件的PROTO節(jié)點position域的定義為exposedField SFVec3f position 0 0 0與后面要在Script節(jié)點調用position域的定義類型不匹配,需要修改為eventIn SFVec3f position。
2 實現(xiàn)人性化的虛擬化身
要想得到逼真的虛擬化身,就需要使虛擬化身具有人性化,實現(xiàn)真實的人體動作。其中最基本的就是行走,即虛擬化身在虛擬場景中如何引導瀏覽者瀏覽場景,在遇到障礙物時如何避障。
通過Avatar Studio軟件生成的虛擬人能夠產生一些簡單動作,通過ROUTE節(jié)點的enentIn和eventOut域來進行傳遞,avatar.wrl文件的動作觸發(fā)代碼如下:
動效果,此時需要腳本語言。腳本語言是一種靈活的互動效果實現(xiàn)方式。VRML中常用的腳本語言是ECMAScript(典型的是JavaScript)、VrmlScript和Java。JavaScript和VrmlScript是VR Pad軟件自帶的兩種腳本語言,只適合在簡單的場景中使用,對于復雜的場景需要采用Java。這里通過加載path和obstacle文件實現(xiàn)虛擬人的導航路徑規(guī)劃。
目前VRML編程接口有以下四種方式:
1)內嵌在VRML的Script節(jié)點中的描述性腳本語言VrmlScript和JavaScript;
2)WWW瀏覽器+VRML插件方式,通過對VRML EAI外部創(chuàng)作接口進行編程,允許VRML世界與網(wǎng)頁其它對象相互溝通;
3)在VRML的Script節(jié)點中引用外部Java類,用來實現(xiàn)一些特殊的、VrmlScript語言所不能實現(xiàn)的功能;
4)應用VRML解釋器提供的Automation接口進行編程。
設計中主要使用了前三種編程接口,通過觸發(fā)器ProximitySensor來檢測用戶在場景中的移動,當有用戶進入或退出場景時,該節(jié)點產生事件。被感應的區(qū)域由size和center設定,它們在局部坐標空間定義一個矩形區(qū)域,該區(qū)域的各條邊平行于各個主坐標軸。當用戶進入該區(qū)域時,將產生兩個事件isActive為真和enterTime為當前時間,當用戶離開該區(qū)域時,將產生兩個事件isActive為假和exitTime為當前時間。當用戶在該區(qū)域時,位置的改變將會產生position_changed事件,方向的改變將產生orientation_changed事件。ProximitySensor的語法定義如下:
在Java程序中,通過EAI獲得該ProximitySensor的position_changed事件出口。通過EAI要求自動捕獲事件,即當事件發(fā)生時,外部的Java代碼自動獲得通知,并由參數(shù)獲得事件數(shù)據(jù)進行處理。
3 結束語
虛擬現(xiàn)實是一個充滿活力,具有巨大應用前景的高新技術領域。虛擬化身是虛擬現(xiàn)實領域一個很具有發(fā)展?jié)摿Φ姆较颉N闹型ㄟ^在虛擬場景中添加虛擬化身,來增加場景的活力和瀏覽者的沉浸感。未來虛擬化身將不止應用于虛擬場景中,也將走入現(xiàn)實世界,服務人類,實現(xiàn)工作休息兩不誤的狀態(tài)。
(作者單位:河北聯(lián)合大學遷安學院)