發表文章

目前顯示的是 2月, 2016的文章

NEIL的Unity學習筆記(4) - 3DSMAX biped 在unity混合動畫設定與注意事項

圖片
3DSMAX biped 在 unity 混合動畫設定與注意事項 好久沒有更新 unity 筆記了,因為之前都在不務正業, 哈哈哈。 最近又一個人完成了一款作品《3Braves》   https://play.google.com/store/apps/details?id=com.CC.FF 當中混合動畫的運用忙了好一陣子才搞懂。 如果你製作的遊戲中沒有特別需要編輯骨架的位移的話,又或者你是使用自組骨架的話,那這篇你大概不太需要看下去了。因為 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.euler