MeshAnimation在物體的頂點比較多的情況下,悲劇是顯而可見的,我一個一個的點選頂點肯定得累死,而且對於形態的調控不是很方便,應該說是很麻煩,要知道,骨骼動畫因為有了骨骼以及蒙皮信息而有了靈魂,所以變形動畫也該有適用於他自己的骨骼才對。
所以,借用Unity本身的父子節點機制,我大概將變形動畫的骨架模擬了一便,但之所以稱之為變形動畫,也叫頂點動畫,就是因為他的形態不可控,這就是不同於骨骼動畫的本質,為其指定骨骼的話其實倒顯得有些不合理了。
不過這里只是模擬以及更方便變形動畫的調節,類似於骨骼動畫那精髓般的屬性——頂點權重,就不在我的考慮范圍中了。
當然,目前的限制還是太多了,由於可變性太強以至於骨骼的形狀會在調節動畫期間在每一幀之間都會被打亂,所以事先需要保存骨骼的原型,在調節動畫期間就不用太在意骨骼的形狀了,就把他當做更方便的調節動畫的工具吧。
第一步:選中任意物體,添加MeshAnimation(Componemt/變形動畫/MeshAnimation)

第二步:新建骨架
Skeleton Asset為當前的骨架原型,可由外部導入(當前骨架為空時導入生效,“新建骨架”按鈕可見便證明當前骨架為空)

點擊新建骨架,會創建一個新的骨架,並為其創建核心骨骼(RootBone),核心骨骼只能有一條,其余所有骨骼都是其子骨骼

第三步:創建子骨骼
在各塊子骨骼后面點擊AddSubBone,輸入骨骼名稱,再點擊Sure可為其創建子骨骼,點擊Delete可刪除此骨骼及其包含的所有子骨骼(核心骨骼不能刪除)
暗紅色標記的骨骼為當前准備為其添加子骨骼的骨骼,點擊骨骼名稱左面的箭頭按鈕可收起此骨骼的所有子骨骼,點擊骨骼名稱可快速在場景中定位該骨骼的操控節點

一條骨骼顯示在場景中就是一個黃色圓形加一根黃線

第四步:創建整個骨架
按照自己的想法隨意添加骨骼,並在場景中調節骨骼的位置(點擊骨骼名稱可快速在場景中定位該骨骼的操控節點)

大概就調節成了這樣一個形狀,一個三只腳兩只手的東西

第五步:快速蒙皮
其實蒙皮就是將頂點與骨骼建立變換關系,當然unity的父子關系本就是一種很好的變換關系,只是不能包含權重。
這里我們可以直接點擊“保存為原型骨架”將骨骼信息保存出去,不帶有蒙皮信息更好,每次在調節動畫的時候重新蒙皮。
我們選中任意頂點,可以直接將其關聯到某某骨骼,也就是蒙皮。

當然頂點太多的話,這樣做又得累死,所以我們點擊快速蒙皮,彈出一個快速蒙皮操作窗口,我們選中場景中任意多的頂點,再點擊快速蒙皮,選擇目標骨骼,那么選中的所有頂點都會被關聯到該骨骼上。

第六步:保存原型骨架
將場景中的骨架形狀調節到你覺得可以作為初始的狀態(比如人形骨骼動畫里大部分模型的初始狀態都是站立並兩手平伸),設置好每個頂點的蒙皮信息,然后就可以點擊“保存為原型骨架”,他將作為一個Asset資源文件存在本地,相同網格間可以共用,在還未新建骨架以前,為Skeleton Asset屬性選擇此原型骨架文件便可以導入其中的骨骼和蒙皮等所有信息,不過切記不要輕易的保存原型,因為由於后期的調動骨骼會亂,所以原型應當是作為最初始時的狀態,除非后續有改動整個骨架。
為了使骨架的位置正常,請在創建骨架的時候和添加動畫幀的時候都將目標物體的位置至於世界坐標(0,0,0),當然一個你認為記得住的位置也行,目的是為了保持兩者的位置相等(創建骨架時,添加動畫幀時)。

第七步:調節動畫
然后我們可以開始調節動畫了,操作方式跟以前是一樣的,只不過這次我們只用調節每塊骨骼就可以了,骨骼可以隨意拉伸,隨意旋轉(這就是為什么要保存原型骨骼的原因),我們可以發現調節動畫好像是要方便了那么一點點......

第八步:導出動畫,並用MeshAnimationPlayer播放
導出的動畫同樣可以用於MeshAnimator狀態機來控制,只不過為了方便的話還是MeshAnimationPlayer更直接,我們勾選啟動播放,然后運行程序。

DLL版插件鏈接:http://download.csdn.net/detail/qq992817263/9659011
源碼請看第一篇。
-----by MeshEditor
