製作複合狀態動畫和Layers動畫分層
在前兩章中,我們可以使角色模型執行各種狀態動畫的切換與位移效果,例如:前進、後退及跳躍動畫,但只有前進後退動畫是無法使角色模型在場景上流暢活動,所以此範例要探討狀態動畫Blend Tree(混合樹)的應用,Blend Tree可以讓原本只有向前的跑步動畫,使用一維混合樹(1D Blend Tree)成為擁有單變數能控制向前跑、向左跑、向右跑三個跑步動畫的複合動畫,使我們角色模型能在場景上產生流暢的轉彎移動效果。
在許多軟體中,要使角色模型轉彎通常會直接旋轉模型,讓模型在撥放前進動畫時,可以朝各個方向前進,在Unity中,我們也可以使用旋轉達成角色模型的轉彎效果,但為了達到更真實的效果,我們會使用左轉彎及右轉彎的動畫,在轉彎時身體會向左或向右傾斜,並且搭配原本的跑步動畫,讓角色的轉彎效果更好。
此外也可使用二維混合樹(2D Blend Tree),與一維混合樹(1D Blend Tree)最大的不同在於,使角色模型能在一個混合樹下透過雙變數來處理移動時不同的兩個方向,向前跑與向後跑同時也能處理向左跑與向右跑,讓角色模型更加完整真實化。
除了介紹混合樹之外,本範例還要介紹動畫控制器的另一個功能,就是Layer(層)的應用,Layer可以讓身體的某一個部位執行特定動畫,也就是角色模型的每一個部位,並非一定要在同一時間撥放同一個動畫,例如某個Layer是使用雙腳跑步同時兩手前後擺動的狀態動畫,而另外一個Layer是使用兩腳站立但是雙手揮舞的狀態動畫,當這兩個Layer同時使用時,我們可以做出角色模型雙腳跑步而雙手揮舞的複合狀態動畫,因此使用多個Layer可以使角色模型從基本狀態動畫中組合成更多不同的狀態動畫。
在許多軟體中,要使角色模型轉彎通常會直接旋轉模型,讓模型在撥放前進動畫時,可以朝各個方向前進,在Unity中,我們也可以使用旋轉達成角色模型的轉彎效果,但為了達到更真實的效果,我們會使用左轉彎及右轉彎的動畫,在轉彎時身體會向左或向右傾斜,並且搭配原本的跑步動畫,讓角色的轉彎效果更好。
此外也可使用二維混合樹(2D Blend Tree),與一維混合樹(1D Blend Tree)最大的不同在於,使角色模型能在一個混合樹下透過雙變數來處理移動時不同的兩個方向,向前跑與向後跑同時也能處理向左跑與向右跑,讓角色模型更加完整真實化。
除了介紹混合樹之外,本範例還要介紹動畫控制器的另一個功能,就是Layer(層)的應用,Layer可以讓身體的某一個部位執行特定動畫,也就是角色模型的每一個部位,並非一定要在同一時間撥放同一個動畫,例如某個Layer是使用雙腳跑步同時兩手前後擺動的狀態動畫,而另外一個Layer是使用兩腳站立但是雙手揮舞的狀態動畫,當這兩個Layer同時使用時,我們可以做出角色模型雙腳跑步而雙手揮舞的複合狀態動畫,因此使用多個Layer可以使角色模型從基本狀態動畫中組合成更多不同的狀態動畫。
重點一:使用一維混合樹(1D-BlendTree)製作複合狀態動畫
重點二:使用二維混合樹(2D-BlendTree)製作複合狀態動畫
重點三:使用Layers分層組合角色模型的狀態動畫
重點二:使用二維混合樹(2D-BlendTree)製作複合狀態動畫
重點三:使用Layers分層組合角色模型的狀態動畫
網頁執行檔採WebGL模擬,請先確認是否瀏覽器有支援WebGL,若支援WebGL則會看到一個持續旋轉的立方體,點我確認。
建議使用Chrome或是Firefox瀏覽器。
影片教學: