把Mixamo的動作,轉化成任何的人物骨架

以往若提起「使用Mixamo動作」,多數的流程會是:

「把角色Model上載到Mixamo,完成rigging,挑選動作,再下載成fbx用到3D project裡」

簡單快速就能取得一個連動作的骨架

在有些情況,以上步驟就已經夠用,甚至都不用修改

但是...

如果你嘗試把Mixamo動作,用在比較複雜的Project,會發現這個做法是很受限制的

例如,你有一個已經rig好並且完成PaintWeight的人物,但卻不可以用到Mixamo的動作

因為動作文件有對應的骨架,你無法直接把一套動作用到不同的骨架上

除非...

經過一個「Animation Retarget」(動作轉移)的步驟

就可以跨越不同骨架之間的障礙,把動作用到任意的人物骨架上

把Mixamo的動作素材,應用在自己的人物骨架上

Mixamo是一個動作素材庫,只要登入adobe帳號就能免費使用。

裡面有不少動作,一直是遊戲製作者的動作寶庫,我們做動畫也能受益不少。

這次的文章演示,也會用Mixamo的動作

還有會長向かめ山/kameyama借來了可愛的人物「Minahoshi Chan」

作為這次演示的主角

Animation Retarget(動作轉移)

在這篇文章,我會把左邊的Mixamo動作,應用到右邊的Minahoshi Chan

Retarget的原理

動作Data的根本,就是紀錄:某一根骨頭,在某個時間點,在某個移動軸,的變化幅度

例如以下的簡單動作,就記錄了:

「名為Head的骨頭,在第24frame到48frame之間,Rotation X軸線性增加30度」

當我們直接把這份動作,應用到其他骨架時…

可以看到,名稱同樣為「Head」的骨頭就有在相同的時機,一起在X軸增加了30度

而其他名稱的骨頭,則沒有反應,相當於是沒有任何Keyframe

從上面的測試,我們可以知道…

只要骨頭的名稱相同,就可以在不同的骨架,應用相同的動作

然而,大部分的情況是:不同骨架之間,總是會有不同的名字,甚至是不同的骨架結構

導致動作無法直接套用

上圖可以看到,Mixamo的骨架與Minahoshi Chan的骨架大不相同

此時,就需要修改動作檔

例如把左邊的頭骨名稱「mixamorig:Head」改成右邊人物的「Head」

把左邊人物的肩膀骨名稱「mixamorig:LeftShoulder」改成右邊人物的「Shoulder.L」

這個過程就是「Animation Retarget」(動作轉移)

Step1:免費plugin - Rokoko

此次的Retarget功能,需要用到Rokoko Studio的Blender插件

可以在官網免費下載

裝完之後,會在側邊欄找到Rokoko的plugin面板

Step2:指定想要Retarget的骨架

第一次開啟Rokoko插件,需要登入Rokoko的帳號,登入一次以後就能離線使用

同樣,帳號也是在官網可以免費註冊

我們需要用到的,只有retarget這欄,其他功能可以收合起來

Retarget面板裡面,你需要選兩幅骨架

分別是Source,動作的來源,對應已經有動畫的Mixamo骨架

Target,動作轉移的目標,對應我們的主角,可愛的Minahoshi chan

指定完成後,就可以按下面的「Build Bone List」,進入第三步

Step3:檢查並確認Bone List

當按下Build Bone List以後,插件會自動分析兩幅骨架

嘗試幫你找出兩幅骨架中,各自對應的骨頭

例如左邊的mixamo骨架中「mixamorig:Neck」就是對應我們人物的「Neck」骨頭

然後「mixamorig:Head」就是對應「Head」,以此類推

可以看到,其實插件已經幫我們做了很多,一些主要的骨頭都有對應到

而且是單純名字格式的區別,不容易出錯

我們需要注意的就是一些「比較有機會出錯的地方」

須注意:較容易出錯的地方

有些情況比較複雜

除了名稱格式以外,對於骨頭的命名方式也有差異,例如下圖

同一個部位,有些骨架是「ForeArm」,有些則是「LowerArm」

這次我們運氣比較好,Rokoko插件都有順利對應到

基本確認沒有大問題後,就可以按下「Retarget Animation」按鈕

等待幾秒時間,Rokoko插件會按照Bone List,生成一個新的Retarget版本動作

並自動套用到Target的Minahoshi Chan

Minahoshi Chan就能順利動起來了!

Step4:調整動作

最後再根據情況做些微調,例如這次,會長覺得甩頭的動作太大,不太適合角色的比例

於是把甩頭的幅度調小了

還有就是一些常見的穿模,同樣可以透過調整動作曲線,或者調整PaintWeight來解決

Retarget就完成啦!

最後幫Minahoshi Chan設置了表情變化

(超好的,人物附帶超多做好的Shape Key表情)

再次感謝かめ山/kameyama願意借出「Minahoshi Chan」,作為這次演示的主角