角色模型產生狀態動畫並切換與控制
每個遊戲中,角色模型一定會擁有許多的動畫,例如會有輕微呼吸動作的待機動畫,讓角色移動的走路與跑步動畫,讓角色跳起的跳躍動畫…等。在舊版的動畫系統中,我們要使這些動畫切換與混和事件非常複雜的事情,需要撰寫許多的程式碼來達成此效果,而在Mecanim的Humanoid動畫系統中,提供了動畫控制器Animator Controller,動畫控制器使用了狀態動畫結構的概念,可讓我們在設定角色動畫的切換與控制時,省去繁瑣的程式碼,以更直覺的方式來達成。
角色模型的每一個動作如待機、走路、跑步、跳躍、攻擊等…,我們都會稱之為一種狀態動畫,角色模型若想要從一個狀態動畫切換到另一個狀態動畫,則我們需要為各個狀態動畫之間限制條件,我們稱之為狀態切換條件,適當的狀態切換條件可達成許多動畫效果,如待機狀態動畫可以切換到跑步狀態動畫,但待機狀態動畫無法切換到跳躍狀態動畫,若我們想要執行跳躍狀態動畫,則需透過待機狀態動畫切換至跑步狀態動畫,再由跑步狀態動畫切換至跳躍狀態動畫,我們可以創造數個狀態動畫,並在各個狀態動畫之間給予合理的狀態切換條件,這樣就可以組成一個最簡單的狀態動畫結構了。
最終我們將產生5個獨立動作,Idle(待機)、Walk(走路)、Jump(跳躍)、Walk(跑步)、Attack(攻擊)並將動作做連結完成狀態動畫切換並控制,如下圖所示。
角色模型的每一個動作如待機、走路、跑步、跳躍、攻擊等…,我們都會稱之為一種狀態動畫,角色模型若想要從一個狀態動畫切換到另一個狀態動畫,則我們需要為各個狀態動畫之間限制條件,我們稱之為狀態切換條件,適當的狀態切換條件可達成許多動畫效果,如待機狀態動畫可以切換到跑步狀態動畫,但待機狀態動畫無法切換到跳躍狀態動畫,若我們想要執行跳躍狀態動畫,則需透過待機狀態動畫切換至跑步狀態動畫,再由跑步狀態動畫切換至跳躍狀態動畫,我們可以創造數個狀態動畫,並在各個狀態動畫之間給予合理的狀態切換條件,這樣就可以組成一個最簡單的狀態動畫結構了。
最終我們將產生5個獨立動作,Idle(待機)、Walk(走路)、Jump(跳躍)、Walk(跑步)、Attack(攻擊)並將動作做連結完成狀態動畫切換並控制,如下圖所示。
重點一:利用布林值處理Idle(待機)、Jump(跳躍)與Attack(攻擊) 的狀態動畫切換
重點二:利用浮點數處理Idle(待機)、Walk(行走)與Run(跑步) 的
狀態動畫切換
重點三:控制角色狀態動畫中的位置與旋轉
重點二:利用浮點數處理Idle(待機)、Walk(行走)與Run(跑步) 的
狀態動畫切換
重點三:控制角色狀態動畫中的位置與旋轉
網頁執行檔採WebGL模擬,請先確認是否瀏覽器有支援WebGL,若支援WebGL則會看到一個持續旋轉的立方體,點我確認。
建議使用Chrome或是Firefox瀏覽器。
影片教學: