.bvh檔案匯入3dsmax biped模組
最近工作上遇到一個有趣的問題,需要將動作擷取的動作資料轉換到3dsmax的biped模組上,而委託者希望擷取時能同步觀看模型的動作,一開始聽到這樣的需求,腦袋直覺的就是想說利用motionbuilder擷取動作後,將動作資料plot到骨架上,匯出.bvh格式,再到3dsmax的biped模組匯入即可。
問題來了,不管是在motionbuilder內指定biped template還是character都無法順利將.bvh匯入,雖說可以直接使用.fbx格式將模型整個用3dsmax開啟,但就失去biped的編修功能了,骨架命名也改過了,但還是會出現如下圖的問題。
將.bvh打開,發現.bvh的內容跟character那些關系不大,重點在於骨架的階層關系,解決方式是,上網開始尋找各式免費的.bvh格式及修改工具如bvhacker,將下載回來的.bvh一個一個匯入至3dsmax biped模組中,直到找到能正確匯入的為止,比對一下跟原先的骨架,果然差很多。
將可以匯入的.bvh用motionbuilder打開,會出現一組帶有keyframe的骨架,選取骨架並右鍵/ZERO/Rotation,骨架的關節會歸零,然後將骨架上之keyframe砍光後調整骨架如圖中所示之"T Pose",指定一character至環境內,然後將此T pose骨架指定成一character(這邊建議用手動拖拉的方式指定,因為骨架命名格式與標準character格式有所差異)
注意!一定要先將骨架調整成T pose狀態,要不然動作會有問題。
接下來就不是什麼問題了,將動作資料套在骨架上,
匯出成.bvh檔,骨架架構應該如下圖
要注意位移資料要勾選寫入
進3dsmax biped模組匯入.bvh檔案(一開始還會有警告視窗,但可以不用理它)
可以看到biped骨架已經有動作出現,但是骨架變的很怪
直接使用biped模組的存檔功能,將檔案存成.bip檔
reset整個3dsmax,開啟一個新的biped,匯入剛剛存好的.bip檔,可以看到骨架是正常的且套入.bvh的動作資料了
其實這樣的作法只是將骨架轉換成biped模組可用的骨架階層而已,當然也可以土法煉鋼直接用修改的方式將骨架改到對為止,但是這樣的方法很麻煩且必需一直測試。要是動作相當多的話motionbuilder本身是可以將動作的take自動匯出成多個.bvh,最後轉換成.bip的部份也可以用批次的方式處理,這樣的作法可以加快不少設定的流程。
最近工作上遇到一個有趣的問題,需要將動作擷取的動作資料轉換到3dsmax的biped模組上,而委託者希望擷取時能同步觀看模型的動作,一開始聽到這樣的需求,腦袋直覺的就是想說利用motionbuilder擷取動作後,將動作資料plot到骨架上,匯出.bvh格式,再到3dsmax的biped模組匯入即可。問題來了,不管是在motionbuilder內指定biped template還是character都無法順利將.bvh匯入,雖說可以直接使用.fbx格式將模型整個用3dsmax開啟,但就失去biped的編修功能了,骨架命名也改過了,但還是會出現如下圖的問題。
將.bvh打開,發現.bvh的內容跟character那些關系不大,重點在於骨架的階層關系,解決方式是,上網開始尋找各式免費的.bvh格式及修改工具如bvhacker,將下載回來的.bvh一個一個匯入至3dsmax biped模組中,直到找到能正確匯入的為止,比對一下跟原先的骨架,果然差很多。
將可以匯入的.bvh用motionbuilder打開,會出現一組帶有keyframe的骨架,選取骨架並右鍵/ZERO/Rotation,骨架的關節會歸零,然後將骨架上之keyframe砍光後調整骨架如圖中所示之"T Pose",指定一character至環境內,然後將此T pose骨架指定成一character(這邊建議用手動拖拉的方式指定,因為骨架命名格式與標準character格式有所差異)
注意!一定要先將骨架調整成T pose狀態,要不然動作會有問題。
接下來就不是什麼問題了,將動作資料套在骨架上,
匯出成.bvh檔,骨架架構應該如下圖
要注意位移資料要勾選寫入
進3dsmax biped模組匯入.bvh檔案(一開始還會有警告視窗,但可以不用理它)
可以看到biped骨架已經有動作出現,但是骨架變的很怪
直接使用biped模組的存檔功能,將檔案存成.bip檔
reset整個3dsmax,開啟一個新的biped,匯入剛剛存好的.bip檔,可以看到骨架是正常的且套入.bvh的動作資料了
其實這樣的作法只是將骨架轉換成biped模組可用的骨架階層而已,當然也可以土法煉鋼直接用修改的方式將骨架改到對為止,但是這樣的方法很麻煩且必需一直測試。要是動作相當多的話motionbuilder本身是可以將動作的take自動匯出成多個.bvh,最後轉換成.bip的部份也可以用批次的方式處理,這樣的作法可以加快不少設定的流程。
問題來了,不管是在motionbuilder內指定biped template還是character都無法順利將.bvh匯入,雖說可以直接使用.fbx格式將模型整個用3dsmax開啟,但就失去biped的編修功能了,骨架命名也改過了,但還是會出現如下圖的問題。
將.bvh打開,發現.bvh的內容跟character那些關系不大,重點在於骨架的階層關系,解決方式是,上網開始尋找各式免費的.bvh格式及修改工具如bvhacker,將下載回來的.bvh一個一個匯入至3dsmax biped模組中,直到找到能正確匯入的為止,比對一下跟原先的骨架,果然差很多。
將可以匯入的.bvh用motionbuilder打開,會出現一組帶有keyframe的骨架,選取骨架並右鍵/ZERO/Rotation,骨架的關節會歸零,然後將骨架上之keyframe砍光後調整骨架如圖中所示之"T Pose",指定一character至環境內,然後將此T pose骨架指定成一character(這邊建議用手動拖拉的方式指定,因為骨架命名格式與標準character格式有所差異)
注意!一定要先將骨架調整成T pose狀態,要不然動作會有問題。
接下來就不是什麼問題了,將動作資料套在骨架上,
匯出成.bvh檔,骨架架構應該如下圖
要注意位移資料要勾選寫入
進3dsmax biped模組匯入.bvh檔案(一開始還會有警告視窗,但可以不用理它)
可以看到biped骨架已經有動作出現,但是骨架變的很怪
直接使用biped模組的存檔功能,將檔案存成.bip檔
reset整個3dsmax,開啟一個新的biped,匯入剛剛存好的.bip檔,可以看到骨架是正常的且套入.bvh的動作資料了
其實這樣的作法只是將骨架轉換成biped模組可用的骨架階層而已,當然也可以土法煉鋼直接用修改的方式將骨架改到對為止,但是這樣的方法很麻煩且必需一直測試。要是動作相當多的話motionbuilder本身是可以將動作的take自動匯出成多個.bvh,最後轉換成.bip的部份也可以用批次的方式處理,這樣的作法可以加快不少設定的流程。