摘要:Virtools是目前開發(fā)虛擬漫游系統(tǒng)和游戲功能強大的整合軟件。該文主要通介紹在Virtools軟件環(huán)境下設置場景元素的重力、碰撞屬性,角色動作控制和攝象機設置等,實現可以人機交互的虛擬建筑場景漫游系統(tǒng)。
關鍵詞:虛擬建筑;漫游系統(tǒng);Virtools
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2008)34-2020-02
The Disgning and Developping of Building Field Virtual Walkthrouth System Based on Virtools
LUO Yong-hong
(Computer Department, Yiwu Industrial Commercial College, Yiwu 322000, China)
Abstract: Currently, Virtools is a powerfull integration software which be used to develop virtual walkthrough system and games. This paper presents how to set up the collision attribute, gravity attribute, character control and camera in the Virtools software, to realize human interactions of building field virtual walkthrough system.
Key words: building field; virtual walkthrough; Virtools
1 引言
近幾年來,建筑物尤其室內建筑的虛擬漫游吸引了很多人的目光。虛擬漫游技術是虛擬現實(VR)技術的重要分支,在建筑、旅游、游戲、航空航天、醫(yī)學等多種行業(yè)發(fā)展很快。由于有可貴的3I特性——沉浸感、交互性和構想性,使得沿用固定漫游路徑等手段的其他漫游技術和系統(tǒng)無法與之相比。虛擬建筑是指客觀上并不存在是完全虛構的,或者雖有設計數據但尚未建造的建筑物。虛擬建筑場景漫游是一種應用越來越廣泛、前景十分看好的技術領域。在建筑設計、城鄉(xiāng)規(guī)劃、室內裝潢等建筑行業(yè),在虛擬戰(zhàn)爭演練場和作戰(zhàn)指揮模擬訓練方面,在游戲設計與娛樂行業(yè),乃至在促進未來新藝術形式誕生等方面,它都大有用武之地,而且代表著這些行業(yè)的新技術和新水平。
2 虛擬建筑場景漫游系統(tǒng)的功能設計
為了能夠真實地展示整個虛擬建筑的環(huán)境,我們需要一個角色能夠在虛擬環(huán)境中被用戶控制。角色可以按照用戶的需求在場景中做走、跑、轉身、等待、開門等動作。角色的運動路徑由用戶控制。在漫游視覺效果上,用戶可以根據個人視覺習慣選擇角色視角模式或追蹤觀察模式。場景模型中門的運動效果可以根據實際生活中的自動門和手動門結合場景中角色的距離或動作進行相應的交互動作。在運動和交互的過程中還需要讓角色像現實生活一樣,不能漂浮在地面上或穿墻而過。
3 虛擬建筑場景漫游系統(tǒng)的設計原理
給系統(tǒng)中的任何對象要添加交互或行為方式,都需要使用Virtools軟件提供的“行為模塊(Building Blocks)”。Building Blocks原意為堆積木,其包含的行為按照相應的規(guī)則和條理拖放給相應的對象,并按設計員的邏輯思維執(zhí)行。行為模塊的結構如圖2所示。
其中水平方向上的引腳代表腳本事件流程控制:
On/Off:流程的輸入為開或關;
Contact/No Contact:流程的輸出為有結果或沒結果。
垂直方向上的引腳代表參數數據處理流程,上方是參數的輸入,下方是參數運算的輸出。
行為模塊的執(zhí)行流程:
1) 行為模塊尚未被啟動;
2) 至少一個“流程輸入”被驅動,這時行為模塊開始運作;
3) 行為模塊讀取“參數輸入”數值,并以此數值為指示運作;
4) 至少一個“流程輸出”被驅動,這時行為模塊停止動作;
5) 部分的行為模塊就會停止運作,回到1)的狀態(tài),但是部分行為模塊會再自行驅動,并進入3)的狀態(tài)。
整個運行過程根據行為模塊流程的連接方式有:
一次執(zhí)行:In→Out。
重復執(zhí)行:Loop In→Loop Out。
選擇執(zhí)行(由用戶決定):On/Off→On Exit/Off Exit。
要使整個系統(tǒng)能夠流暢地按設計者的思維方式來執(zhí)行,還需要將這些行為模塊進行連接,我們稱為“行為連接”,以執(zhí)行流程的聯系工作。在執(zhí)行過程中會有某個行為模塊的參數輸出是另一個行為模塊的參數輸入,此時我們需要進行“參數連接”,來負責數據的傳遞,如圖3所示。
4 虛擬建筑場景漫游系統(tǒng)的關鍵技術與方法
4.1 角色動作控制
角色控制常用的行為模塊有“角色控制(Character Controller)”,“鍵盤控制(Keyboard Controller)”,“不限量的動作控制(Unlimited Controller)”,“鍵盤地圖(Keyboard Mapper)”。“Character Controller”行為模塊只能設置4個基本動作(stand、walk、walk backward、ran)。“Keyboard Controller”只有系統(tǒng)默認的數字鍵盤上8(控制前進)、4(控制左轉)、6(控制右轉)、2(控制后退),不能根據用戶的需要進行設置。“Unlimited Controller”可以填加用戶想要的所有動作。“Keyboard Mapper”可以把鍵盤上所有的鍵按設計員的需求進行隨意設置。前兩者主要用于角色的基本動作控制,后兩者適用擁有多種動作數據以上的角色,可以做更細節(jié)的人物動作控制。
4.2 角色重力設置
為了讓角色始終在地面上運動,而不是陷入地面或漂浮在空氣中,需要設置虛擬對象中地面的“Floor”屬性。要使角色能夠識別“Floor”并保持在地板上運動,還需要給角色添加行為模塊“Enhangce Character Keep On Floor”。
4.3 角色碰撞設置
虛擬的環(huán)境要表現真實世界的狀況還需要建立角色和墻面、物體等的碰撞屬性。在沒有設置碰撞效果的情況下,角色會穿越墻面或物體。碰撞效果的建立有3種方式:
1) 建立對象的碰撞屬性(Obstacle attribute);
2) 建立組合對象(Group);
3) 繪制碰撞范圍(Grid與Layer)。
碰撞效果的設計邏輯就是無論使用哪種方法,首先告訴Virtools誰是“障礙物”或障礙物的范圍,最后是告訴Virtools誰要受“障礙物”的影響,需要給受“障礙物”的影響的對象添加“Prevent Conllision”行為模塊,“Object Slider”行為模塊或“Layer Slider”行為模塊。
4.4 角色陰影設置
陰影設置牽涉到兩個對象,陰影的產生對象(角色)和陰影的呈現對象(地板、墻面等)。我們需要對陰影的產生對象添加ShadowCaster行為模塊,對陰影的呈現對象逐個給它們的“Attribute”設置添加“Shadow Caster Receiver”屬性。
4.5 門開關控制
門開關動作主要有兩種類型:自動門和手動門。自動門需要通過判斷進門的對象和門之間的距離來確定開關。判斷角色與門之間的距離通常用“Preximity”行為模塊。我們可以通過設定“Preximity”的距離參數。當小于參數值是時候執(zhí)行“開門”,大于參數值的時候執(zhí)行“關門”。門的運動主要用“Bezier Progression”、“Rotate”和“Translate”行為模塊來實現。“Bezier Progression”是用來控制對象扭曲運動的,扭曲的方式如果是旋轉就用“Rotate”,位移則用“Translate”。如果是手動門,需要對門設置一個等待消息的行為模塊“Wait Massage”。如果想讓整個效果更逼真,還可以給角色制作開門的動作。
4.6 影機設置
在漫游系統(tǒng)的視覺效果上主要采用攝象機來完成。在很多游戲和漫游系統(tǒng)中主要采用的是第一人稱攝象機和跟隨攝象機。第一人稱攝象機的設置位置很重要,一般需要調整角色的位置然后添加攝象機,效果為角色眼睛看到的環(huán)境。跟隨攝象機除了需要設置攝象機與角色的距離,還需要用“Keep at Constant Distance”行為模塊來讓攝象機與角色保持一定的距離,然后用“Look At”行為模塊來讓攝像機開始。
5 總結與展望
本文通過講解Virtools的設計原理,分析系統(tǒng)的功能結構,給讀者展示了在Virtools環(huán)境中開發(fā)設計虛擬建筑漫游系統(tǒng)的過程。所有的腳本都通過了測試。
系統(tǒng)在設計上還可以加上Culling以增加執(zhí)行的效能,但設計和計算Culling是非常復雜,在這里沒有做詳細描述。對于房間的一些裝飾物品可以增加LOD Object屬性,這樣也可以增加執(zhí)行的效能,使物體在遠處時顯示最少的面,在近處時顯示最多的面。
參考文獻:
[1] 胡小強.虛擬現實技術[M].北京:北京郵電大學出版社,2005.
[2] 劉祥.虛擬現實技術輔助建筑設計[M].北京:機械工業(yè)出版社,2005.
[3] 張宇.Creating animation for Games 3ds Max8 Virtools游戲動畫設計[M].北京:海洋出版社,2006.
[4] 傅晟,彭群生.一個桌面型虛擬建筑環(huán)境實時漫游系統(tǒng)的設計與實現[J].計算機學報,21(9):793-799.
[5] 陳華斌,王彤.虛擬建筑環(huán)境實時漫游系統(tǒng)的設計和實現[J].西南交通大學學報,36(1):53-56.