NEIL的Unity學習筆記(4) - 3DSMAX biped 在unity混合動畫設定與注意事項
3DSMAX biped 在unity混合動畫設定與注意事項
好久沒有更新unity筆記了,因為之前都在不務正業,哈哈哈。
最近又一個人完成了一款作品《3Braves》
當中混合動畫的運用忙了好一陣子才搞懂。
如果你製作的遊戲中沒有特別需要編輯骨架的位移的話,又或者你是使用自組骨架的話,那這篇你大概不太需要看下去了。因為unity在animation mask的運用上已經非常非常簡單。步驟如下
1.新增animation mask,import模型骨架資料並勾選你需要的bones.
2.於Animator介面中新增layer,載入animation
mask,設定weight為1.
Done.非常簡單。
接下來的部份就是適合「需要編輯骨架的數值」的情況。
首先我要說明白,這裡只有帶出一些思考方向,並沒有提供全面的解決方法,很多時候你必需要靠你自己找到解決方法。
首先我們先從3DS MAX 的骨架設定說明。
在unity中,0和1的位置與整個模型的位移綁定在一起,如果1轉了90度,那整個模型也轉了90度,所以1是不能有任何動畫。
而2也不能有動畫,因為我們將會在2寫入要位移的數值,在我的例子中就是旋轉的數值,原因是如果在有動畫的2上作出旋轉的編輯的話,會影響到手部和頭的動作在unity中產生不到位的情況。簡單說就是會影響原來的動畫設定,除非你在 2 上沒有設定位移,則沒有影響。
所以你只能在3以上的骨架編輯動畫,而需要保留最下的兩節spine來制定混合動畫。
之後把模型在unity中載入,按照上面的步驟設定即可。
那如何利用程式控制骨架呢?如下
//首先指定骨架物件
Public GamObject
spine;//在場中把需要轉動的骨架拉進來
//控制骨架Y軸旋轉
spine.transform.eulerAngles=new
Vector3(0,lookBox.transform.rotation.eulerAngles.y,-90);
//這裡的lookBox是我另外加設的一個參考物, 實際的Vector3數值需要自己實地測試
大概就是這樣。
如有不明白的地方歡迎發問,也歡迎其他開發者提供更好的方法。
留言
張貼留言