# Unity 2D骨骼動畫 --- # 插件安裝 ---- 這次要使用到Unity內建的2D Animation Package來進行2D骨骼動畫的製作。 然而這個插件必須先導入到專案後,才能進行使用。 接著介紹下在Unity中怎麼安裝插件。 ---- 1.首先從Window視窗中點擊Package Manager ![](https://i.imgur.com/Y1MS9ee.png) ---- 2.如果不是最新版本就進行更新 ![](https://i.imgur.com/ibsVuUw.png) --- # [素材下載](https://drive.google.com/file/d/1izyGDPaxHuKg99mQE76NJ-6cEX-ve-D-/view?usp=sharing) --- # 創建骨骼 ---- 1.在Project視窗中點擊圖片後,再到屬性視窗點擊Sprite Editor進入到圖片編輯。 ![](https://i.imgur.com/u7gGZvZ.png) ---- 2.點擊視窗左上方的Skinning Editor進入到骨骼的編輯 ![](https://i.imgur.com/ud0jT52.png) ---- 3.點擊Create Bone創建骨頭。 如果中間Sprite Editor視窗中的圖沒有紅外框,然後點圖也無法創建骨頭,則回到Project視窗點擊原本圖片旁邊的箭頭將其展開後點擊裡面的圖片。 點擊Visibility可以看到當前骨頭的階層。 ![](https://i.imgur.com/xKVwJuQ.png) ---- 4.點擊滑鼠左鍵生成骨頭,右鍵取消。 基本上先以身體為中心生成骨骼,之後在連到頭以及四肢製作,骨頭製作沒有一定,你想讓她可做動作的部分都可以做骨骼。 ![](https://i.imgur.com/Roa9kvt.png) ---- 5.做好後,在Visibility視窗將每根骨頭重新命名一下,以便之後做動畫。 ![](https://i.imgur.com/xXtATI4.png) --- # Sprite Mesh Sprite Mesh的原理為將Sprite貼到一張平面的3D貼圖上以Mesh的方式呈現,而在貼圖上設定外圍與內部幾何佈點後,則可以藉由各節點的變化讓貼圖跟著做出型變而達成動畫效果。 ---- 只要簡單的點Generate就會跳出快速生成幾何佈點的工具。我們可以分別調整外圍精細度(Outline Detail)、透明容忍度(Alpha Tolerance)、佈點密度(Subdivide)讓工具自動生成佈點。 ![](https://i.imgur.com/rN9CPO6.png) ---- # 設置骨頭權重 ---- 雖然創建了骨頭和網格,但是每根骨頭都還有設置權重,也就是每根骨頭對貼圖以及它的子骨頭的影響,這邊一樣可以用Auto自動進行生成。 ![](https://i.imgur.com/dLAnehg.png) ---- 最後按下Apply將其儲存,就可以開始製作動畫了。 ![](https://i.imgur.com/BOTmIdb.png) --- # 在場景中生成 ---- 1.在Hierarchy視窗右鍵生成一個Sprite ![](https://i.imgur.com/c9Ux7Nu.png) ---- 2.將圖片貼到Sprite Renderer的Sprite屬性裡面,讓貼圖顯示在場景中。 ![](https://i.imgur.com/jXSbpHO.png) ---- 3.新增元件Sprite Skin,此元件用於生成之前所做的骨骼。 ![](https://i.imgur.com/CJ26F79.png) ---- 4.按下Create Bone生成骨骼 ![](https://i.imgur.com/vGbt3qv.png) ---- 5.可以看到場景中的角色雖然有骨骼了,但是四肢還是分開的狀態,利用骨頭將其重新組裝 ![](https://i.imgur.com/k9mcJmC.png) ---- 6.組裝後可能會發現貼圖看起來有重疊的部分,所以這邊需要回到貼圖的Sprite Editor來變更圖層順序。 ![](https://i.imgur.com/CjpvmQ0.png) ---- 7.調整Visibility視窗中右邊的Depth屬性即可根據骨頭變更圖層順序。 ![](https://i.imgur.com/zU66CwB.png) ---- 8.更改完,記得按下Apply儲存變更。 ![](https://i.imgur.com/ggnOKb5.png) ---- 即可正常顯示 ![](https://i.imgur.com/IbkuhVf.png) --- # 動畫製作 ---- 製作方式與一般做動畫的步驟相同,不過要記得錄製動畫時一開始要選取所有的骨骼並生成一個KeyFrame,就算過程中沒修改到該骨骼也記得一起選起來(可以使用快速鍵Alt +左鍵點擊Root讓所有骨架展開),這樣可以避免動畫過程中非預期的變動造成骨骼元件位置不正確。 ---- ![](https://i.imgur.com/Emb9SWk.png) --- # IK介紹 ---- IK反向動力學(Inverse Kinematics 反向動力學就是說可以根據手部的運動來帶動小臂、大臂、肩膀的運動。 這裡我們用另一個插件——2D IK 回到我們場景中的人物,給他掛載一個組件——IK Manager 2D ---- 1.創建IK Manager2D ![](https://i.imgur.com/FxVNNDN.png) ---- 2.點擊以新增IK ![](https://i.imgur.com/OONcStm.png) ---- 3.點擊生成CCD Chain(CCD):不會改變關節方向 Chain(FABRIK):會改變骨骼關鍵方向 Limb:會影響兩個骨骼 ![](https://i.imgur.com/LfAA2RF.png) ---- Effector:是你要影響的骨骼,必須為最末端骨骼。 Target:骨骼們指向的目標。 Chain Length:從末端開始算,多少根骨骼會跟著連動。 Constrain Roation:最末端會不會朝向目標並旋轉。 Weight:權重,這個目標影響骨骼的力道。 ![](https://i.imgur.com/fr1hxIT.png)
{"metaMigratedAt":"2023-06-15T17:22:10.481Z","metaMigratedFrom":"Content","title":"Unity 2D骨骼動畫","breaks":true,"contributors":"[{\"id\":\"faca3329-cc98-475b-ac42-c0a846116bf8\",\"add\":3145,\"del\":305}]"}
    679 views