【Unreal Engine Pose Wrangler】在不同scene間轉換pose data+自定義的Solver用法、一些製作blendshape的思路、大拇指RBF沒效果解法

【Unreal Engine Pose Wrangler】在不同scene間轉換pose data+自定義的Solver用法、一些製作blendshape的思路、大拇指RBF沒效果解法

 







Pose Wrangler在之前有紀錄過用法,這篇




不同scene間轉換pose data+自定義的Solver用法



這篇想要紀錄如何在不同的maya scene轉換這些已經做好的pose資訊,畢竟如果都是走metahuman rig流程,那麼這些pose也都可以共用,就不用再每次都重建。


首先先來講講如何自定義RBF solver吧,預設的pose wrangler大概會有底下幾十組solver,每個solver基本上都對應一個joint(不含helper joint),然後這些solver底下又有好幾組pose。

這個預設solver的限制在於,都只是用單顆joint來驅動pose,但是做過動態就會知道,某些pose其實是好幾個joint旋轉、位移甚至是多軸向組合起來的,當我們想要針對這個特定pose來製作blendshape的時候,就會很希望能夠精準地定位到這個pose,然後驅動blendshape。





要怎麼做呢,首先,我們需要為這個新的solver新增一driven joint,這樣輸出到ue時才有辦法正常驅動pose driver節點。

命名規則要依照其他metahuman joint來命名,通常是[joint]_[r/l]_[隨意]。

這個joint就放在DHI:Body層級底下,位置只要放在世界中心即可,也不用bind到任何model上。









然後選到要當作driver的joint,這邊我選 clavicle、upperarm、lowerarm。





接著到pose wrangler 按下 create solver,可以看到driver transform出現三個剛剛指定的joint,然後把剛剛建立的joint加入到 driven transform。








現在就是把joint調到那個[由好幾個joint組成]的pose。

首先先選中剛剛創建的sholder solver,按下edit selected solver進入編輯模式,然後把joint調整的我們想要紀錄的pose,最後按下add pose。


要注意的事,pose名稱最好是使用 joint名稱_r/l_[數字]這樣的規則來命名,這樣等等mirror solver的時候系統會比較好判定。


總之新增好pose之後,就可以按下mirror solver來鏡射。






按下mirror會發現一件很詭異的事,就是pose並沒有被正確命名成shoulder_l_01,這個應該是epic當初沒有修好的bug,這邊可以自己重新命名,也可以直接寫工具來自動化。





總之確認兩邊pose都沒問題之後就可以準備匯出pose drivers數據了。





選中所有solver,但是 neckCorrectivesRBFSolver這個要跳過,因為我發現只要有輸出這個solver,在其他scene匯入就會出錯,所以這個就跳過吧!






接著export selected solvers就行了。





現在,到另一個scene,這邊要注意的事,要先把剛剛自定義pose的driven joint匯入,不然等等匯入driver會因為找不到而出現錯誤。







現在import drivers就ok了!





大致就是這樣。











一些製作blendshape的思路


metahuman的rig有很多helper joints可以在不同的pose之間幫助deform過渡,不過只依靠joints來變形還是略有不足,最好的方式一定是joint+blendshape,所以只要使用metahuman rig我都會把每個pose連接到同樣名稱的blendshape,這樣joint在轉到這個pose的時候也會連帶一起驅動bs。




具體做法就是把 UE的rbf solver target串聯到同樣名稱的blendshape上,這個步驟我是寫工具來執行,畢竟pose wrangler裡面算起來也是有4-50個pose,全部手動肯定不現實。






這邊可以觀察到pose wrangelr裡面的pose大致都是遵循著從角度小到大這樣的規則來設定,例如

例如手肘往前彎曲,就是從10度開始到110,中間每隔幾度就會有一個pose。

如果要新增blendshape也最好是按照這樣的模式,其時就相當於 inbetween,只是unreal engine不支援,所以才把它變成單獨的blendshape。






那要如何用這種思路製作blendshapes呢,很簡單,就是每個角度都做一個blendshape,但是下一個角度都要繼承前一個角度的形狀,這個做法透過SHAPE來做很簡單。


假設在30度時,製做好的bs,將它rebuild,然後在60度時先用這個bs為基礎,再繼續做下去。








這樣角度跟角度之間的變形過讀就不會看起來那麼突兀。








大拇指RBF沒效果解法



這算是一個偶然發現的bug,不知道為何每次大拇指的rbf都會沒有數值輸出,看了一下才發現是這個開關沒打開。














張貼留言

0 留言