• MotionBuilder綁定C3D動作到模型身上

    2018/9/6??????點擊:


    【一、動作文件的導入】

    打開MotionBuilder以后,選擇 File 菜單,然后選擇 Motion File Import。MotionBuilder支持導入.fbx .bvh .htr .trc .asf .amc .c3d等多種格式的運動文件,不過需要注意的是,運動文件所在路徑不能含有中文名,如果含有中文名程序直接崩潰退出,不過有意思的是,MotionBuilder的打開和保存功能并沒有這個問題。

    選擇文件后會出現(xiàn)如下的對話框,motion.c3d即為導入的文件。

    由于C3D文件的頭部記錄了第一幀的序號,所以這里實際的第一幀的序號為126,雖然在MotionBuilder或其他軟件中做動畫并不會出現(xiàn)問題,但是如果編寫程序調(diào)用該動作時可能會有些問題,建議雙擊開始時間修改為0,修改完開始時間結束時間會自動修改。當然,如果現(xiàn)在不修改的話,也可以導入后在 Navigator 里找到 Takes,然后再找到剛才添加的這個Take,然后修改 Local start 也可。

    點擊 Import 后,在MotionBuilder中即會出現(xiàn)導入的動作捕捉點。

    【二、界面控制】

    在界面的左上角可以在 View 菜單中控制與顯示有關的設置,比如:

    • 選擇 Viewer Layout 可以設置同時顯示幾個顯示面板。
    • 選擇 Perspective -> Producer Perspective 可以使用透視相機。
    • 選擇 Orthographic -> Producer Front / Back / Right / Left / Top / Bottom 可以使用不同的正交相機,快捷鍵分別是切換到前后為Ctrl+F,右左為Ctrl+R,上下為Ctrl+T。
    • 選擇 Default Camera View 或按快捷鍵Alt+Home可以復位為該攝像機的默認設置。

    在界面上方的五個按鈕是用來調(diào)整攝像機的,都是將鼠標按在指定按鈕上然后用鼠標拖動實現(xiàn)調(diào)整的。

    1.  Orbit (L) | Pan / Tilt (R)
      • 鼠標左鍵 左右拖動為沿水平軌道調(diào)整攝像機位置,上下拖動為沿垂直軌道調(diào)整攝像機位置。
      • 鼠標右鍵 左右拖動為調(diào)整攝像機轉動角度(Pan),上下拖動為調(diào)整攝像機傾斜角度(Tilt)。
      • 除此之外 按住Shift+Ctrl鍵拖動鼠標也可實現(xiàn)同樣功能。
    2.  Travelling with Interest (L) | Travelling (R)
      • 鼠標左鍵 上下左右四個方向拖動即為調(diào)整攝像機的位置。
      • 除此之外 按住Shift鍵拖動鼠標也可實現(xiàn)同樣功能。
    3.  Dolly (L) | Dolly with Interest (R)
      • 鼠標左鍵 上下(或左右)拖動為推拉攝像機。
      • 除此之外 按住Ctrl鍵拖動鼠標或使用鼠標滾輪也可實現(xiàn)同樣功能。
    4.  Zoom (L)
      • 鼠標左鍵 上下(或左右)拖動為調(diào)整攝像機視野(Field Of View)角度。
    5.  Rool (L) | Roll +15 deg (R)
      • 鼠標左鍵 左右拖動為左右轉動攝像機(Roll)。
      • 鼠標右鍵 左右拖動為每次左右轉動攝像機(Roll)15度。

    除此之外,還可以在 Navigator 中選擇 Cameras,然后選擇 Producer Perspective,同樣可以進行攝像機的相關設置。


    【三、綁定動作到Actor】

    要實現(xiàn)動作與模型的綁定,首先需要將動作綁定到 Actor 上,首先在界面右側的 Character Controls 面板中選擇 Create 里的 Actor。

    然后界面中將會出現(xiàn)一個人物模型,如下圖所示,由于動作捕捉點與 Actor 不對齊,首先需要將使用平移、旋轉和縮放工具將其對齊。

    其中如果要調(diào)整所有運動捕捉點的話,可以點擊上圖中人腳下的白色球體,選中后會變?yōu)榫G色,然后分別按T鍵、R鍵和S鍵可以分別實現(xiàn)平移、旋轉和縮放。其中按R鍵后會出現(xiàn)如下圖所示的界面。

    其中紅色、綠色、藍色和褐色的圓圈為按不同方向進行調(diào)整,也可使用灰色的圓圈為任意方向。選中要調(diào)整的圓圈,其會變成白色,然后使用鼠標拖動即可,例如如下所示。

    同樣的,按T后會出現(xiàn)如下所示的界面,同樣也是紅、綠、藍三個,分別點擊移動鼠標調(diào)整即可。

    當動作捕捉點整體與 Actor 在同一位置后,可以再調(diào)整身體上的部位,使得身體上的部位與捕捉點對應即可。為了便于調(diào)整也可以點擊 Display 菜單,選擇 X-Ray 模式,顯示出 Actor 的骨骼來,然后點擊骨骼也可以進行調(diào)整,方法與調(diào)整整體一樣,只不過調(diào)整起來更復雜些罷了。

    然后點擊 Navigator 面板下的 Actors,選擇 Actor,然后在右側的 MarkerSet,然后點擊 Create 即可。

    然后在 Navigator 中將會出現(xiàn) MarkerSet 一項,同時在 Actor Settings 的 Actor 中出現(xiàn)一系列表示關節(jié)的圓圈,表示這個部位綁定的捕捉點數(shù)量,如下圖。

    其中各部位的名稱如下,由于左右對稱,所以只標注了一邊:

    接下來只需要選擇捕捉點然后拖動到指定的圓圈中即可。選擇的方法有兩種:

    1. 在視圖中選中捕捉點顯示的方塊,可以按住空格鍵多選,然后按Alt鍵將其拖動到指定關節(jié)所表示的圓圈。
    2. 在 Navigator 中選擇 Opticals,然后在其中找到導入的動作,比如這里叫 C3D:optical,然后選中指定名稱的捕捉點,可以按住Ctrl鍵多選,然后直接拖動到指定關節(jié)所表示的圓圈即可。

    其中我這里使用的捕捉點與骨骼的對應關系如下,當然有時候因為數(shù)據(jù)也需要靈活調(diào)整,或者有些部位不綁定:

    Actor 部位 C3D 捕捉點
    Head(頭部) LFHD(左太陽穴)、RFHD(右太陽穴)、LBH(左后腦)、RBHD(右后腦)
    Chest(胸部) C7(頸椎根部,脊椎第七節(jié))、T10(背部中點,胸椎第十節(jié))、CLAV(胸骨上端)、STRN(胸骨劍突位)、RBAC(右后背心)
    Hips(臀部) LFWT(髖骨左前方)、RFWT(髖骨右前方)、LBWT(左髂后上棘)、RBWT(右髂后上棘)
    Left shoulder(左肩) LSHO(左肩肩骨末端突出處)
    Right shoulder(右肩) RSHO(右肩肩骨末端突出處)
    Left elbow(左手肘) LELB(左手肘關節(jié)外圍突出處(鷹嘴突))
    Right elbow(右手肘) RELB(右手肘關節(jié)外圍突出處(鷹嘴突))
    Left wrist(左手腕) LWRA(左手手腕靠拇指端)、LWRB(左手手腕靠小指端)
    Right wrist(右手腕) RWRA(右手手腕靠拇指端)、RWRB(右手手腕靠小指端)
    Left hand(左手) LFIN(左手中指關節(jié)下方)
    Right hand(右手) RFIN(右手中指關節(jié)下方)
    Left knee(左膝) LKNE(左腳膝蓋關節(jié)外緣)
    Right knee(右膝) RKNE(右腳膝蓋關節(jié)外緣)
    Left ankle(左腳踝) LANK(左踝關節(jié)外緣突出處)
    Right ankle(右腳踝) RANK(右踝關節(jié)外緣突出處)
    Left foot(左腳掌) 忽略
    Right foot(右腳掌) 忽略
    Left toe(左腳趾) 忽略
    Right toe(右腳趾) 忽略 

    在綁定所有捕捉點后可以點擊 Actor Settings 中的 Snap 按鈕,此時 Snap 按鈕左側的選項將會勾上,即可完成綁定,現(xiàn)在點擊播放按鈕,Actor 就會隨著捕捉點進行運動了,然后保存為fbx文件即可。

    如果播放后發(fā)現(xiàn)綁定的效果不好,可以取消勾選 Snap 按鈕左側的選項,然后編輯后重新綁定,此時會出現(xiàn)如下的對話框,選擇TR(Translate / Rotate)即可。


    【四、角色化模型】

    若要綁定到模型,首先需要把模型角色化,如果模型已經(jīng)角色化過,可以跳過這節(jié)。首先打開一個模型,出現(xiàn)如下圖所示:

    在 Character Controls 面板中點擊 Defination,如果出現(xiàn)的如下圖所示則表示沒有角色化,如果模型已經(jīng)角色化,則下圖中左數(shù)第二個鎖定圖標應為鎖定狀態(tài)并且顯示為灰色的骨骼應該顯示為綠色。

    綁定骨骼時只需要雙擊指定骨骼,然后除了該骨骼外的其他骨骼將會變暗,表示現(xiàn)在正在綁定該骨骼,然后在視圖中點擊對應的骨骼即可。比較智能的是,默認時左邊數(shù)第三個圖標 Mirror Matching 是選中的,所以如果綁定了一邊的骨骼,另一邊會自動綁定,當然也可以手動將其去除。除此之外,點擊手邊和胸部的下三角還可以綁定更多骨骼,胳膊與腿旁邊也有一些骨骼可以綁定,但這些骨骼不綁定也不會影響角色化。

    在身體上的所有骨骼均綁定成功后,右上角驗證狀態(tài)(Validation status)的圓圈會變?yōu)榫G色。

    然后選擇左數(shù)第二個 Lock Character,然后會出現(xiàn)如下圖的對話框,選擇Biped(兩足動物)即可完成綁定。


    【五、綁定模型與Actor】

    在模型角色化以后就可以與之前綁定好動作的Actor進行綁定了,在MotionBuilder打開角色化后的模型后,選擇 File -> Merge,然后打開剛才保存的動作fbx文件,與打開的對話框稍有不同,直接點擊 Merge 即可。

    此時在視圖中發(fā)現(xiàn)之前綁定好的 Actor 與當前模型在一起顯示了。

    然后選擇 Character Controls 面板中的 Source,然后選擇 Actor 即可(如果沒有角色化,則選擇 Actor 時會提示錯誤):

    然后模型就會與之前綁定好動作的 Actor 一起動了,此時可以點擊播放查看效果。

    后,點擊 Character Controls 面板左側的菜單,選擇 Bake (Plot) -> Bake (plot) To Skeleton 然后保存文件即可。