趙智 戴禎杰
[摘 要]虛擬現實技術是利用計算機技術建立一種逼真的虛擬環境,在這個環境中,人們的視覺、聽覺和觸覺等的感受像是在真實的環境中一樣,即有“身臨其境”的感覺,人們可以沉浸在這個環境中與環境進行實時交互。通過虛擬現實技術,對3DMax的虛擬現實技術VT插件進行分析,探討3DMax輸出為nmo的一般方法。實現角色和動畫輸出為nmo格式文件兩種不同的方式。闡述在Virtools中對角色模型和動畫文件進行有效的管理的原理,最后給出Virtools調用角色模型、加載預設動作的方法。
[關鍵詞]3DMax VT插件 角色模型 動畫文件
[中圖分類號] TP391.41 [文獻標識碼] A [文章編號] 2095-3437(2014)18-0108-02
一、虛擬現實技術概述
虛擬現實技術是利用計算機技術建立一種逼真的虛擬環境,在這個環境中,人們的視覺、聽覺和觸覺等的感受像是在真實的環境中一樣,即有“身臨其境”的感覺,人們可以沉浸在這個環境中與環境進行實時交互。這就是它所謂的“沉浸性”、“實時性”和“主動的交互性”。
從廣義上講,只要是通過三維模型實現一些人機交互操作就可以稱為虛擬現實。更嚴謹的界定是指通過對三維模型的操作、定義,然后應用于相應場景中,并賦予該模型功能性的表現。換言之,只有在同時具備了產品、場景、腳本這三項要素時,才是真正完整的“虛擬現實”。
二、基于Virtools角色模型與動畫的導出和導入
在三維動畫設計領域,作為三維動畫制作軟件的3DMax和Maya具有優秀的建模和仿真能力,但3D交互功能略顯滯后。Virtools是一種虛擬現實軟件,作為3DMax和Maya的后續開發軟件,它可以對3D組件進行交互式實時控制,實現部分虛擬現實功能,特別是游戲開發、計算機輔助教學方面具備獨特優勢。
用3DMax(或Maya)與Virttools組合模式,使得3D交互技術以其逼真的場景、友好的交互界面等優勢而在更多的領域得到廣泛的應用。這一組合模式應用于多媒體輔助教學中,可以使教師模擬出更加逼真的交互情景,讓課件更加生動引人。
近年來對Virtools的理論與應用研究均取得了多方面的成果。如劉明昆的《就是要做3D游戲3DMax場景篇》[1],描述了運用3DMax制作3D游戲的場景,為輸出Virtools做好準備。劉明昆的《就是要做3D游戲》[2]和《VT游戲創作秘笈》[3]描述了運用Virtools制作3D游戲的經驗與技巧,通過實例詳細介紹了制作3D游戲的方法和流程,書中展示了作者多年積累的豐富經驗與運用Virtools嫻熟的技巧。但是,對以下問題沒有明確闡述:
(1)如何在3DMax中,將制作好的角色的模型和動畫輸出為nmo格式的文件?
(2)角色文件與動畫文件如何關聯的?
(3)Virtools是如何對角色文件與動畫文件進行管理的?
本文對介紹Virtools的基本功能,通過對3DMax下VT插件的研究,分析3DMax輸出為nmo的一般方法,進而通過實例,用兩種不同的方式,實現角色和動畫輸出為nmo格式文件,接著闡述在Virtools中對角色模型和動畫文件進行有效的管理,最后給出Virtools調用角色模型、加載預設動作的方法。
(一)MAX輸出VT的準備
對于3DMax,max源文件,不管是場景或包含有動畫信息的文件,都是以.max格式存放,因此,在3DMax下制作好的角色動畫以max格式保存,將max格式通過VT插件輸出,生成Virtools可以接受的格式文件,以實現交互功能的制作。Virtools支持nmo、cmo等格式,其中,VT插件生成的文件格式為nmo格式。Virtools可直接打開cmo格式文件而不能直打開nmo格式文件,使用nmo格式文件可用導入的方式導入至場景中,比較規范的操作是將這類文件復制到在Virtools中已經建立好的資料文件庫相應的文件夾中,然后通過資料文件管理器在場景中用導入的方式調用。
(二)角色與動作輸出
1.導出角色模型和動畫
將MAX角色與動作輸出為VT的nmo格式文件中,可包含動作也可不包含動作兩種形式,在輸出面板中作適當的選取實現輸出的要求。MAX輸出的模型分為三種,即Exprot as Objects、Export as a Character和Export Animation Only。
選取Exprot as Objects選項,通常用于輸出場景。當選擇這種方式輸出時,右邊的三個文本框(即Character Name、Animation和Starting Camera)僅其中一個是有效,只能把整個場景作為一個文件名輸出。對于輸出角色的模型可選取這種方式輸出一個不帶動畫信息的角色的模型。
選取Export as a Character選項,輸出一個帶有動畫信息的角色模型,選中該選項,右邊的Character name 和Animation name文本框可用,在相應的文本框中分別輸入角色和動畫名字,這些名字可被Virtools交互模塊識別。
選取Export Animation Only選項,只輸出動畫信息,所輸出的動畫文件的名字與之對應的角色的名字可以不同。
2.從MAX中導出模型與動畫實例
設已有角色模型model.max并已梆定骨骼,wait.fig、run.fig和attack動畫信息文件,則有兩種導出方法。
方法一,分別導出角色模型和動畫,步驟如下:
(1)在3DMax中打開model.max文件,打開導出對話框,選擇Export as a Character,在右側第一個活動文本框中輸入model,第二個文本活動文本框置空,則輸出文件為model.nmo,并且只包含角色模型,沒有動畫信息。
(2)給model的骨骼加載wait.fig動畫信息,打開導出對話框,選擇Export Animation Only,此時在右側唯一一個活動文本框中輸入wait,則輸出文件為wait.nmo,并且只包含wait動畫信息;同理輸出只包含動畫信息的run.nmo和attack.nmo文件。
方法二,導出包含動畫信息的角色模型,步驟如下:
(1)在3DMax中打開model.max文件并為相應的骨骼加載wait.fig動畫文件,打開導出對話框,選擇Export as a Character,在右側第一個活動文本框中輸入model,第二個文本活動文本框輸入wait,則輸出文件為model.nmo,并且只包含wait動畫信息。
(2)依照方法一的單獨輸出動畫信息文件的方法,輸出只包含動畫信息的run.nmo和attack.nmo文件。
(三)VT中角色和動畫的導入
1.導入角色和動畫
在virtools中,新建一個資源文件(設選取路徑為F:\ abc),然后將以上(按方法一)生成的nmo文件復制到F:\ abc \ Characters \ Animations中,選擇abc資原庫,依次展開其Category下級菜單character->animations,model.nmo、wait.nmo、run.nmo和attack.nmo文件出現在右側列表框中。
選中model.nmo并載入場景;分別將動畫文件wait.nmo、run.nmo和attack.nmo通過拖放方式分別加載到model角色上,操作完成后,展開Level Manager下的Glogal,進而展開character,即出現層級關系,此時,model角色已經帶有wait.nmo、run.nmo和attack.nmo三個預設動畫。
2.識別角色動畫交互模塊及調用
導入角色模型并加載預設動畫后,角色的動畫只能被Virtools交互模塊識別,要看到預設角色的動作,需要加入相應的BB模組。方法如下:
首先,在Level Manager面板下的lever \ Global \ Character \ model上單擊右鍵,在彈出的菜單中選擇Create Script,創建model的Script。
其次,切換到Schematicdm面板,在從BB面板中選取character \ Movement \ Unlimited Controller模塊并作如下設置:雙擊Unlimited Controller模塊后,在設置界面中,將Message欄下的Joy_Up所對應的Animation為run,第3行空白處的Animation為wiat,使角色呈待機狀態。完成以上設置后,按測試按鈕,可以看到角色處于等待的動作,至此,角色及動畫的導入以及測試已完成。
三、小結
本文闡述了用3DMax(或Maya)與Virttools組合模式中,角色與動畫導出及導入的方法,要在Virtools場景中調用角色和預設動畫,須在3DMax(或Maya)三維軟件中完成角色建模和動畫的制作,并通過相應的轉換軟件插件按正確的方式將其導出,這樣才能導入到Virtools中,進而制作出具有交互功能產品。因此,利用3DMax(或Maya)與Virttools組合制作帶有角色交互的功能,完成角色與動畫的導出與導入,才能為制作角色的交互做好了準備,換言之,角色與動畫導出與導入,是制作流程中關鍵的一個步驟,掌握了這一步驟才能制作出帶有角色的交互功能。
[ 參 考 文 獻 ]
[1] 劉明昆.就是要做3D游戲3DMax場景篇[M].北京:中國青年出版社,2010.
[2] 劉明昆.就是要做3D游戲——Virtools秘笈篇[M].北京:中國青年出版社,2010.
[3] 劉明昆.VT游戲創作秘笈[M].北京:中國青年出版社,2010.
[責任編輯:黃緊德]