張俏++焦戰(zhàn)
摘 要:文章介紹了virtools下快速開發(fā)場景漫游,通過輕松簡單的方式實現(xiàn)第一人稱、第三人稱漫游模式制作及切換,并解決人物穿越3D模型的問題,為非計算機類人員提供成熟便捷的虛擬仿真解決方案。
關鍵詞:Virtools;第三人稱;虛擬場景漫游
在眾多的虛擬仿真系統(tǒng)中,煤礦生產(chǎn)環(huán)境、龍卷風現(xiàn)場等很多高危場景、現(xiàn)實很難動態(tài)再現(xiàn)場景需要虛擬仿真,而在虛擬仿真環(huán)境制作中,最主要的是角色控制及視角控制技術。那么如何通過Virtools的模組開發(fā)一個簡單的虛擬仿真系統(tǒng),筆者將通過角色控制技術、攝像機控制技術、碰撞檢測技術來具體介紹基于virtools的虛擬仿真場景展示的關鍵技術。
1 虛擬仿真系統(tǒng)中的控制角色技術
虛擬仿真系統(tǒng)中的控制角色技術,最常用的通過游戲控制桿、鍵盤、鼠標等輸入接口設備控制角色的運動,在Virtools中提供已經(jīng)封裝好的兩個模組分別是:Character Controller模組和Unlimited Controller模組。
1.1 使用Character Controller設置角色動作
將角色Eva放入場景,將制作好的Characters/Animations/Skin Character Animations/Eva/的Run、Wait、Walk等動畫拖動放到角色身上,即添加好了角色的運動動畫。如圖1所示。
左鍵單擊Building Blocks/Characters/Movement/Character Controller模組拖到Eva角色模型上,在彈出的設置框中,分別指定Stand Animation(站立動畫)為wait、Walk Animation(前走動畫))為walk、Walk Backward Animation(后退動畫))為walk Bckwd和Run Animation(跑動動畫))為run。如圖2所示。
Virtools中默認的角色控制是使用游戲控制桿,通過以上設置即可實現(xiàn)通過游戲控制桿控制游戲角色的運動。如果需要用鍵盤控制需要Keyboard Mapper模組進行鍵盤按鍵映射,實現(xiàn)從鍵盤事件到游戲控制桿的映射。
左鍵單擊Building Blocks/Controllers/Keyboard/Keyboard Mapper模組拖到場景的角色模型上,在彈出的設置框依次添加key為A、D、S、W,Message下拉框分別選擇Joy_Left、Joy_Right、Joy_Down、Joy_Up。如圖3所示。
設置完畢兩個模組后,將Eva連線到模塊的on輸入口,完成的整個程序如圖4所示。
1.2 使用Unlimited Controller設置角色動作
Character Controller中只能設置常見的角色運動動作,而Unlimited Controller模組允許給角色加上多種復雜動作。例如:虛擬仿真中的角色維修機械動作、機器人的機械臂復雜操作動作作等。
將Building Blocks/Characters/Movement/Unlimited Controller模組添加到角色模型上,在彈出的設置框中,添加角色的動作動畫,每個動作對應一種Message。運行機制是當角色接收到某種Message時就會進行對應的動作。如圖5所示。
Unlimited Controller模組和Character Controller模組都是Virtools提供控制角色的模組,兩個模組默認都是游戲控制桿控制模式,仍然需要按上面步驟添加Keyboard Mapper才能將事件映射為鍵盤控制。當然也可以通過Virtools的機制將鼠標事件、按鈕事件通過Message發(fā)送給角色,實現(xiàn)鼠標按鈕的事件執(zhí)行角色動作,再這里筆者就不介紹了。
2 虛擬仿真系統(tǒng)中攝像機控制技術
虛擬仿真系統(tǒng)中攝像機控制技術,主要是通過3D Transformations下的兩個BB模塊的配合,實現(xiàn)第一人稱視角與第三人稱視角及相互切換功能。
2.1 第三人稱漫游模式
選擇合適角度新建一個攝像機,在攝像機上創(chuàng)建Script,按Ctrl單擊輸入新建BB模塊Keep At ConstantDistance和look At兩個模組并連線如圖6所示。
其中Keep At ConstantDistance模組的功能是讓攝像機始終保持在角色后方某個特定位置,Look At模組的功能是讓攝像機始終正對角色,通過兩個模塊的參數(shù)設置及可以實現(xiàn)攝像機始終跟隨在角色后上方,始終面向角色后背影,實現(xiàn)第三人稱視角。具體參數(shù)設置如圖7所示。
2.2 第一人稱漫游模式
第一人稱漫游模式是第一視角的漫游,可以將第三人稱的攝像機鑲嵌在角色的正前腦門上即可。也可以隱藏人物模型,充當?shù)谝蝗朔Q漫游模式。本案例筆者通過在主場景添加模組Switch On Key模組,設置F2和F3分別執(zhí)行Hide角色和Show角色來實現(xiàn)第一人稱模式和第三人稱模式及切換。Virtools連線如圖8所示。
3 虛擬場景展示
在虛擬場景展示中,經(jīng)常會出現(xiàn)角色融合到了物體中,所以碰撞檢測技術可以讓人物始終保持在可以瀏覽的場景中,避免出現(xiàn)穿墻等現(xiàn)象。Virtools碰撞檢測技術主要有Prevent Collision、Layer Slider、Object Slider三個BB模塊。本案例筆者采用Object Slider模組,用物體組的模式快速靈活實現(xiàn)角色與物體組合的碰撞檢測。
首先新建一個Group命名為collsion,在場景中選擇不能讓穿越的物體,右鍵Send To Group選擇collsion。將Collisions/3D Entity/Object Slider模組添加的角色身上,在彈出對話框設置Radius為0.4,group為collsion,也就是我們之前新建的存放物體的group。在案例完善過程中,新增加的非穿越物體,右鍵發(fā)送到collsion組合即可;可以穿越的物體,移除出collsion組合即可。
[參考文獻]
[1]劉明昆.三維游戲設計師寶典——Virtools開發(fā)工具篇[M].成都:四川電子音像出版中心,2005.
[2]祁冰.Virtools中控制人物的幾種方法[J].網(wǎng)絡安全技術與應用,2013(10):106-107.
[3]李煜.基于Virtools的益智類闖關游戲的設計與實現(xiàn)[J].電腦知識與技術,2013(27):27-30.