天天看點

在MotionBuilder中綁定C3D動作和模型

實驗室人手不足,雖然自己連MotionBuilder一點都沒有用過,但是老闆叫自己幹也隻能硬着頭皮上了。本文詳細介紹了MotionBuilder 2013中的錄影機操作以及在MotionBuilder中導入C3D動作檔案,并最終與指定人物模型綁定。

【題外話】

【文章索引】

  1. 動作檔案的導入
  2. 界面控制
  3. 綁定動作到Actor
  4. 角色化模型
  5. 綁定模型與Actor

【一、動作檔案的導入】

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

選擇檔案後會出現如下的對話框,motion.c3d即為導入的檔案。

在MotionBuilder中綁定C3D動作和模型

由于C3D檔案的頭部記錄了第一幀的序号,是以這裡實際的第一幀的序号為126,雖然在MotionBuilder或其他軟體中做動畫并不會出現問題,但是如果編寫程式調用該動作時可能會有些問題,建議輕按兩下開始時間修改為0,修改完開始時間結束時間會自動修改。當然,如果現在不修改的話,也可以導入後在 Navigator 裡找到 Takes,然後再找到剛才添加的這個Take,然後修改 Local start 也可。

在MotionBuilder中綁定C3D動作和模型

點選 Import 後,在MotionBuilder中即會出現導入的動作捕捉點。

【二、界面控制】

在界面的左上角可以在 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可以複位為該錄影機的預設設定。

在界面上方的五個按鈕

在MotionBuilder中綁定C3D動作和模型

是用來調整錄影機的,都是将滑鼠按在指定按鈕上然後用滑鼠拖動實作調整的。

  1. 在MotionBuilder中綁定C3D動作和模型
     Orbit (L) | Pan / Tilt (R)
    • 滑鼠左鍵 左右拖動為沿水準軌道調整錄影機位置,上下拖動為沿垂直軌道調整錄影機位置。
    • 滑鼠右鍵 左右拖動為調整錄影機轉動角度(Pan),上下拖動為調整錄影機傾斜角度(Tilt)。
    • 除此之外 按住Shift+Ctrl鍵拖動滑鼠也可實作同樣功能。
  2. 在MotionBuilder中綁定C3D動作和模型
     Travelling with Interest (L) | Travelling (R)
    • 滑鼠左鍵 上下左右四個方向拖動即為調整錄影機的位置。
    • 除此之外 按住Shift鍵拖動滑鼠也可實作同樣功能。
  3. 在MotionBuilder中綁定C3D動作和模型
     Dolly (L) | Dolly with Interest (R)
    • 滑鼠左鍵 上下(或左右)拖動為推拉錄影機。
    • 除此之外 按住Ctrl鍵拖動滑鼠或使用滑鼠滾輪也可實作同樣功能。
  4. 在MotionBuilder中綁定C3D動作和模型
     Zoom (L)
    • 滑鼠左鍵 上下(或左右)拖動為調整錄影機視野(Field Of View)角度。
  5. 在MotionBuilder中綁定C3D動作和模型
     Rool (L) | Roll +15 deg (R)
    • 滑鼠左鍵 左右拖動為左右轉動錄影機(Roll)。
    • 滑鼠右鍵 左右拖動為每次左右轉動錄影機(Roll)15度。

除此之外,還可以在 Navigator 中選擇 Cameras,然後選擇 Producer Perspective,同樣可以進行錄影機的相關設定。

在MotionBuilder中綁定C3D動作和模型

【三、綁定動作到Actor】

要實作動作與模型的綁定,首先需要将動作綁定到 Actor 上,首先在界面右側的 Character Controls 面闆中選擇 Create 裡的 Actor。

在MotionBuilder中綁定C3D動作和模型

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

在MotionBuilder中綁定C3D動作和模型

其中如果要調整所有運動捕捉點的話,可以點選上圖中人腳下的白色球體,選中後會變為綠色,然後分别按T鍵、R鍵和S鍵可以分别實作平移、旋轉和縮放。其中按R鍵後會出現如下圖所示的界面。

在MotionBuilder中綁定C3D動作和模型

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

在MotionBuilder中綁定C3D動作和模型

同樣的,按T後會出現如下所示的界面,同樣也是紅、綠、藍三個,分别點選移動滑鼠調整即可。

在MotionBuilder中綁定C3D動作和模型

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

在MotionBuilder中綁定C3D動作和模型

全部調整完後類似如下的效果:

在MotionBuilder中綁定C3D動作和模型

然後點選 Navigator 面闆下的 Actors,選擇 Actor,然後在右側的 MarkerSet,然後點選 Create 即可,如下圖所示。

在MotionBuilder中綁定C3D動作和模型

然後在 Navigator 中将會出現 MarkerSet 一項,同時在 Actor Settings 的 Actor 中出現一系清單示關節的圓圈,表示這個部位綁定的捕捉點數量,如下圖。

在MotionBuilder中綁定C3D動作和模型

其中各部位的名稱如下,由于左右對稱,是以隻标注了一邊:

在MotionBuilder中綁定C3D動作和模型

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

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

其中我這裡使用的捕捉點與骨骼的對應關系如下,參考了VICON的說明。其實對應關系可以有不同的方式(相關連結3、相關連結4、相關連結5),當然有時候因為資料也需要靈活調整,或者有些部位不綁定:

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

在綁定所有捕捉點後可以點選 Actor Settings 中的 Snap 按鈕,此時 Snap 按鈕左側的選項将會勾上,即可完成綁定,現在點選播放按鈕,Actor 就會随着捕捉點進行運動了,然後儲存為fbx檔案即可。

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

在MotionBuilder中綁定C3D動作和模型

【四、角色化模型】

若要綁定到模型,首先需要把模型角色化,如果模型已經角色化過,可以跳過這節。首先打開一個模型,出現如下圖所示:

在MotionBuilder中綁定C3D動作和模型

在 Character Controls 面闆中點選 Defination,如果出現的如下圖所示則表示沒有角色化,如果模型已經角色化,則下圖中左數第二個鎖定圖示應為鎖定狀态并且顯示為灰色的骨骼應該顯示為綠色。

在MotionBuilder中綁定C3D動作和模型

綁定骨骼時隻需要輕按兩下指定骨骼,然後除了該骨骼外的其他骨骼将會變暗,表示現在正在綁定該骨骼,然後在視圖中點選對應的骨骼即可。比較智能的是,預設時左邊數第三個圖示 

在MotionBuilder中綁定C3D動作和模型

Mirror Matching 是選中的,是以如果綁定了一邊的骨骼,另一邊會自動綁定,當然也可以手動将其去除。除此之外,點選手邊和胸部的下三角還可以綁定更多骨骼,胳膊與腿旁邊也有一些骨骼可以綁定,但這些骨骼不綁定也不會影響角色化。

在MotionBuilder中綁定C3D動作和模型

在身體上的所有骨骼均綁定成功後,右上角驗證狀态(Validation status)的圓圈會變為綠色。

在MotionBuilder中綁定C3D動作和模型

然後選擇左數第二個 

在MotionBuilder中綁定C3D動作和模型

 Lock Character,然後會出現如下圖的對話框,選擇Biped(兩足動物)即可完成綁定。

在MotionBuilder中綁定C3D動作和模型

【五、綁定模型與Actor】

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

在MotionBuilder中綁定C3D動作和模型

此時在視圖中發現之前綁定好的 Actor 與目前模型在一起顯示了,如下圖:

在MotionBuilder中綁定C3D動作和模型

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

在MotionBuilder中綁定C3D動作和模型

然後模型就會與之前綁定好動作的 Actor 一起動了,此時可以點選播放檢視效果。

在MotionBuilder中綁定C3D動作和模型

最後,點選 Character Controls 面闆左側的菜單,選擇 Bake (Plot) -> Bake (plot) To Skeleton 然後儲存檔案即可。

在MotionBuilder中綁定C3D動作和模型

【相關連結】

  1. MotionBuilder基礎(二):http://www.southcn.com/cartoon/campus/huale/200502211376.htm
  2. 動作質地之領域知識後設資料分析結果:http://metadata.teldap.tw/project/filebox/dance/mid%20term%20paper.pdf
  3. Maya to MotionBuilder: Importing C3D and mapping Actor:http://gsfinalmajorproject.blogspot.com/2012/03/maya-to-motionbuilder-importing-c3d-and.html
  4. motionbuilder第三章:角色動畫(六)映射光學運動資料:http://wenku.baidu.com/view/81c1da3e0912a216147929a0.html
  5. Manual iQ - InteractFields:http://www.interactfields.com/aulas/cadmh/wp-content/uploads/2011/04/Manual_IQ.pdf
  6. Preparation v1.2:http://www.udel.edu/PT/Research/MAL/preparation_v1_2.pdf

如果您覺得本文對您有所幫助,不妨點選下方的“推薦”按鈕來支援我!

本文及文章中代碼均基于“署名-非商業性使用-相同方式共享 3.0”,文章歡迎轉載,但請您務必注明文章的作者和出處連結,如有疑問請私信我聯系!

繼續閱讀