田 博
(遼寧機(jī)電職業(yè)技術(shù)學(xué)院,遼寧 丹東 118009)
近年來(lái)動(dòng)作捕捉技術(shù)已被廣泛地應(yīng)用于三維動(dòng)畫(huà)的制作,然而由于動(dòng)作捕捉設(shè)備廠商和捕捉技術(shù)原理的不同,導(dǎo)致動(dòng)作捕獲數(shù)據(jù)的文件格式多種多樣,且沒(méi)形成統(tǒng)一的標(biāo)準(zhǔn)。常見(jiàn)的動(dòng)作捕捉數(shù)據(jù)格式有 BVH、BVA、HTR、ASF/AMC等。[1]BVH(Biovision Hierarchy)是Biovision 等設(shè)備對(duì)人體運(yùn)動(dòng)進(jìn)行捕獲后產(chǎn)生文件格式的文件擴(kuò)展名,是一種通用的人體特征動(dòng)畫(huà)文件格式,廣泛地被當(dāng)今流行的各種動(dòng)畫(huà)制作軟件所支持。[2]BIP是3DS MAX Biped骨骼特有的文件格式,用來(lái)存儲(chǔ)Biped骨骼的運(yùn)動(dòng)數(shù)據(jù)。無(wú)論是BVH還是BIP都是應(yīng)用頻率極高的動(dòng)作數(shù)據(jù)文件,但這兩個(gè)高應(yīng)用頻率的動(dòng)作數(shù)據(jù)在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí)還存在著較大的困難。 3DS MAX的Biped骨骼在讀取運(yùn)動(dòng)捕捉系統(tǒng)的BVH文件時(shí),往往會(huì)出現(xiàn)無(wú)法識(shí)別軌跡名稱(chēng)的錯(cuò)誤,這是由于動(dòng)作捕捉系統(tǒng)采集的運(yùn)動(dòng)文件中骨骼的名稱(chēng)與3DS MAX Biped骨骼名稱(chēng)不同而導(dǎo)致的,這為3DS MAX用戶使用Biped骨骼與動(dòng)作捕捉數(shù)據(jù)制作動(dòng)畫(huà)帶來(lái)了極大的困擾。如想實(shí)現(xiàn)BVH文件轉(zhuǎn)化為BIP文件,我們需要經(jīng)過(guò)一個(gè)較為復(fù)雜的文件轉(zhuǎn)換過(guò)程,本文利用Autodesk公司的MotionBuilder軟件對(duì)該過(guò)程進(jìn)行了深入研究。
動(dòng)作捕捉所采集的BVH文件雖然不能直接應(yīng)用于3DS MAX的Biped骨骼,但是我們可以利用能夠同時(shí)兼容BVH文件和Biped文件的中間介質(zhì)性軟件MotionBuilder來(lái)進(jìn)行兩者之間的數(shù)據(jù)轉(zhuǎn)換。三維動(dòng)畫(huà)軟件MotionBuilder具有很強(qiáng)大的功能,它提供了豐富的SDK(軟件開(kāi)發(fā)包)、內(nèi)部集成了求解人體運(yùn)動(dòng)姿態(tài)的反向運(yùn)動(dòng)學(xué)方法、提供了Maya、Max、XSI等動(dòng)畫(huà)制作軟件之間的文件互導(dǎo)方案FBX。[3]該軟件可以迅速而流暢的導(dǎo)入動(dòng)作捕捉設(shè)備所采集的BVH數(shù)據(jù)、3DS MAX的Biped骨骼所導(dǎo)出的FBX數(shù)據(jù)。轉(zhuǎn)換過(guò)程中,需要將BVH文件和Biped文件規(guī)范化,即將兩者都轉(zhuǎn)換為MotionBuilder的標(biāo)準(zhǔn)化角色文件。首先將動(dòng)作捕捉的BVH文件轉(zhuǎn)換為MotionBuilder的標(biāo)準(zhǔn)角色文件、3DS MAX Biped骨骼所轉(zhuǎn)化的FBX文件也轉(zhuǎn)換為MotionBuilder的標(biāo)準(zhǔn)角色文件。其次在MotionBuilder中用動(dòng)作捕捉所采集的BVH數(shù)據(jù)文件的動(dòng)作來(lái)驅(qū)動(dòng)3DS MAX Biped骨骼的運(yùn)動(dòng)。最后將被驅(qū)動(dòng)的3DS MAX Biped以FBX格式導(dǎo)回3DS MAX軟件從而來(lái)驅(qū)動(dòng)Biped骨骼運(yùn)動(dòng),并將其保存為BIP文件。
2.1 BVH文件轉(zhuǎn)化為MotionBuilder的標(biāo)準(zhǔn)角色文件
將動(dòng)作捕捉系統(tǒng)采集的BVH文件轉(zhuǎn)化為MotionBuilder的標(biāo)準(zhǔn)角色文件,需要將BVH文件導(dǎo)入到MotionBuilder中,并進(jìn)行骨骼名稱(chēng)的轉(zhuǎn)化,使其符合MotionBuilder標(biāo)準(zhǔn)角色文件名稱(chēng)的要求,此操作環(huán)境為MotionBuilder,操作步驟如下:①導(dǎo)入BVH文件:執(zhí)行菜單欄的“File”-“Motion file import”在對(duì)應(yīng)文件夾下選擇BVH動(dòng)作文件,在彈出菜單下選擇“import”。此時(shí)將會(huì)看到一個(gè)骨骼文件顯示在場(chǎng)景窗口中;②將MotionBuilder標(biāo)準(zhǔn)的角色模版載入到場(chǎng)景:在“Asset Browser”面板中,將“Templates” -“characters”-“character”的角色模版拖進(jìn)場(chǎng)景的空白區(qū)域,以使MotionBuilder標(biāo)準(zhǔn)的角色參與場(chǎng)景運(yùn)算;③顯示BVH骨骼名稱(chēng):在“Navigator”面板中,展開(kāi)“Scene”項(xiàng),使場(chǎng)景中的BVH骨骼名稱(chēng)全部顯示以備使用;④顯示MotionBuilder的標(biāo)準(zhǔn)角色骨骼名稱(chēng):選擇“Navigator”菜單下的“characters”項(xiàng),在其右側(cè)的“character Definition”面板中,展開(kāi)其Base(required)選項(xiàng)以顯示MotionBuilder標(biāo)準(zhǔn)角色骨骼名稱(chēng)界面;⑤名稱(chēng)對(duì)位:選擇“Scene”項(xiàng)下的BVH骨骼名稱(chēng),使用鼠標(biāo)左鍵拖動(dòng)到右側(cè)的Mapping List對(duì)應(yīng)項(xiàng)下,從而使BVH骨骼名稱(chēng)轉(zhuǎn)化為MotionBuilder的標(biāo)準(zhǔn)角色骨骼名稱(chēng)。骨骼名稱(chēng)對(duì)應(yīng)表如表1所示;⑥完成名稱(chēng)匹配:將上一部的名稱(chēng)對(duì)應(yīng)好以后,切換到“characters Definition”面板中的“Extract Naming Template”項(xiàng),在彈出的“Create Naming Template ”對(duì)話框中單擊“OK”以確定BVH骨骼名稱(chēng)轉(zhuǎn)化為MotionBuilder的標(biāo)準(zhǔn)角色骨骼名稱(chēng);⑦角色化BVH骨骼:將“character Definition”面板中左上角的“characterize”開(kāi)啟,在彈出的“Character”面板中選擇“Biped”,以使BVH骨骼角色化,至此完成了BVH文件轉(zhuǎn)化為MotionBuilder的標(biāo)準(zhǔn)角色文件的過(guò)程。
表1 骨骼名稱(chēng)對(duì)應(yīng)表
2.2 3DS MAX Biped骨骼導(dǎo)入MotionBuilder
在3DS MAX中需要?jiǎng)?chuàng)建一個(gè)標(biāo)準(zhǔn)TPose的Biped骨骼(動(dòng)作捕捉系統(tǒng)多以TPose為開(kāi)始姿勢(shì)),以使Biped骨骼的開(kāi)始姿勢(shì)與BVH角色動(dòng)作文件開(kāi)始姿勢(shì)相匹配。此操作環(huán)境為3DS MAX,操作步驟如下:①3DS MAX與MotionBuilder單位匹配:選擇3DS MAX執(zhí)行菜單欄中的“自定義”-“單位設(shè)置”,將“顯示單位”與“系統(tǒng)單位設(shè)置”均設(shè)置為“厘米”;②創(chuàng)建Biped骨骼并設(shè)置高度:執(zhí)行“創(chuàng)建”面板中的“系統(tǒng)”-“Biped”創(chuàng)建一個(gè)Biped骨骼,在“運(yùn)動(dòng)”面板中開(kāi)啟“體形模式”并將“結(jié)構(gòu)”中的高度修改為“170”cm左右(盡量與運(yùn)動(dòng)捕捉系統(tǒng)所采集的BVH文件人物身高相等);③將Biped骨骼調(diào)節(jié)為T(mén)Pose:調(diào)整Biped骨骼的雙臂到側(cè)面平伸狀態(tài);④將Biped骨骼轉(zhuǎn)化為“FBX”文件:執(zhí)行菜單欄中的“文件”-“導(dǎo)出”,將“保存類(lèi)型”選擇為“FBX”文件類(lèi)型并保存。
2.3 3DS MAX Biped骨骼轉(zhuǎn)化為MotionBuilder的標(biāo)準(zhǔn)角色文件
將上一步存儲(chǔ)的3DS MAX Biped骨骼以FBX格式導(dǎo)入到MotionBuilder中,以使BVH運(yùn)動(dòng)文件來(lái)驅(qū)動(dòng)3DS MAX Biped骨骼,此操作環(huán)境為MotionBuilder,操作步驟如下:①載入3DS MAX Biped. FBX文件(3DS MAX Biped存儲(chǔ)的FBX文件):在“Asset Browser”面板中單擊鼠標(biāo)右鍵,在彈出的對(duì)話框中選擇“Add favorite path”,選擇上一部我們存儲(chǔ)的“3DS MAX Biped. FBX”文件夾。將其載入到“Asset Browser”面板中;②3DS MAX Biped文件合并進(jìn)MotionBuilder場(chǎng)景:在上一部導(dǎo)入的“FBX”文件夾中選擇3DS MAX Biped導(dǎo)出的FBX文件,使用鼠標(biāo)左鍵將FBX文件拖拽入場(chǎng)景視圖中,在彈出的對(duì)話框中執(zhí)行“FBX Merge” -“No Animation”,在隨后彈出的“Warning”對(duì)話框中選擇“ok”以確定;③轉(zhuǎn)化3DS MAX Biped.FBX文件為MotionBuilder的標(biāo)準(zhǔn)角色文件:在“Asset Browser”面板中選擇 “Templates” -“characters”選項(xiàng),在右側(cè)的預(yù)制模版中選擇“3DS MAX Biped Template”,使用鼠標(biāo)左鍵將模版拖拽到場(chǎng)景視圖的Biped骨骼的任意一段上。在彈出的對(duì)話框中選擇“Characterize”以完成3DS MAX Biped. FBX文件轉(zhuǎn)化為MotionBuilder的標(biāo)準(zhǔn)角色骨骼文件。
2.4 使用BVH動(dòng)作驅(qū)動(dòng)3DS MAX Biped.FBX文件
我們的目的即在于使用BVH運(yùn)動(dòng)文件來(lái)驅(qū)動(dòng)3DS MAX Biped骨骼,此操作環(huán)境為MotionBuilder,操作步驟如下:①選擇被驅(qū)動(dòng)對(duì)象:在“Navigator”面板中展開(kāi)“characters”選項(xiàng)并選擇“Bip001”;②選擇驅(qū)動(dòng)源:在“character Controls”面板中,將“Source”切換為“Character”,此時(shí)可以看到Biped骨骼與BVH骨骼對(duì)位,并成功驅(qū)動(dòng)其運(yùn)動(dòng);③打印動(dòng)作:在“Navigator”面板中選擇“characters ” -“Bip001”,在其右側(cè)打開(kāi)“Character Settings” -“Plot Character”,在彈出的“Character”對(duì)話框中選擇“Skeleton”,在隨后彈出的“Character”對(duì)話框中選擇“Plot”,完成動(dòng)作打印;④刪除BVH動(dòng)作:在 “Navigator”面板中選擇“characters” -“Character”并使用鼠標(biāo)右鍵刪除;⑤刪除BVH骨骼:選擇“Navigator” -“Scence”并展開(kāi),將“BVH:reference”中的所有文件使用鼠標(biāo)右鍵刪除。僅保留“Bip001”下的骨骼文件;⑥保存FBX運(yùn)動(dòng)文件:執(zhí)行菜單欄中的“File”-“Save”,在文件類(lèi)型中選擇FBX文件并保存。
2.5 FBX運(yùn)動(dòng)文件驅(qū)動(dòng)3DS MAX Biped骨骼并存儲(chǔ)為BIP文件
將運(yùn)動(dòng)文件存儲(chǔ)為FBX文件以后,需將其導(dǎo)入回3DS MAX加以使用,此操作環(huán)境為3DS MAX,操作步驟如下:①載入FBX文件:在3DS MAX中,開(kāi)啟我們之前制作的TPose形態(tài)的Biped文件并關(guān)閉“體形模式”,執(zhí)行菜單欄中的“文件”-“導(dǎo)入”并選擇我們上一步在MotionBuilder中保存的FBX文件。此時(shí)3DS MAX默認(rèn)的時(shí)間往往不足,需要我們將時(shí)間延長(zhǎng)到合適長(zhǎng)度;②保存為BIP文件:在Biped修改面板中存儲(chǔ)運(yùn)動(dòng)文件為BIP文件,以備將來(lái)建立動(dòng)作文件庫(kù)和應(yīng)用于其他的Biped角色骨骼使用。
BVH動(dòng)作數(shù)據(jù)文件雖然不能直接應(yīng)用于3DS MAX Biped骨骼,但是可以通過(guò)MotionBuilder來(lái)對(duì)BVH文件進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換。首先將其轉(zhuǎn)換為3DS MAX可讀取的FBX文件,然后再利用FBX文件來(lái)驅(qū)動(dòng)3DS MAX Biped骨骼,最后再將其存儲(chǔ)為BIP文件即可。動(dòng)畫(huà)制作軟件與動(dòng)畫(huà)數(shù)據(jù)格式眾多,在制作動(dòng)畫(huà)的過(guò)程中經(jīng)常需要進(jìn)行動(dòng)畫(huà)數(shù)據(jù)格式的轉(zhuǎn)換,找到合適的介質(zhì)性軟件是實(shí)現(xiàn)快速有效數(shù)據(jù)轉(zhuǎn)換的關(guān)鍵。近年來(lái)隨著網(wǎng)絡(luò)游戲、手機(jī)游戲、虛擬現(xiàn)實(shí)等行業(yè)的發(fā)展,對(duì)3DS MAX Biped骨骼的應(yīng)用頻率越來(lái)越高,因其采用集成的整體骨骼模塊,可以省略骨骼的架設(shè)和綁定IK的繁瑣過(guò)程,極大的提高了工作效率。研究動(dòng)作捕捉系統(tǒng)的BVH文件轉(zhuǎn)換為3DS MAX Biped骨骼通用的BIP文件,不僅可以提高動(dòng)畫(huà)制作的工作效率,而且可以極大提高虛擬角色動(dòng)作的真實(shí)性,對(duì)于BVH數(shù)據(jù)轉(zhuǎn)換為BIP文件方法的研究不僅可以解決3DS MAX Biped用戶使用BVH動(dòng)作文件的困擾,對(duì)其它類(lèi)型的動(dòng)畫(huà)數(shù)據(jù)文件轉(zhuǎn)換也提供了一定的思路和參考,具有較強(qiáng)的現(xiàn)實(shí)意義。
山東商業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào)2018年5期