unity-Mecanim動畫系統

目錄:

概述

Mecanim是unity一個集成的豐富的動畫系統,它的工作流主要分爲三個:模型導入,角色建立角色運動。它支持很多功能,包括:運動重定向即把動畫從一個模型應用到另一個模型上去 );動畫片段工作流可以很好的銜接動畫片段 );管理動畫可視化類似UE4的藍圖 );逆向動力學功能等。而且針對人形角色提供了一種特殊的工作流,包括Avater的創建和對肌肉定義的調節。

遊戲設定

  現在大多數遊戲分爲第一人稱遊戲和第三人稱遊戲,區別很簡單:視角不同。第一人稱遊戲常用在FPS射擊類或者VR遊戲,它要求代入感很強,3D遊戲易產生眩暈,你一般看不到自己或者只能看到一雙手。而第三人稱遊戲常常是那種策略型或者動作類遊戲,易於分析觀察以及操作,類似上帝視角。這裏主要以第三人稱視角和人形動畫設計爲例。

模型導入

三個概念:
建模:創建模型的過程就是建模,網格模型一般是由多邊形或者三角形網格組成。
骨骼綁定:爲了控制角色的運動,必須爲其創建一個骨骼關節層級,該層級定義了網格內部的骨骼結構和相互運動關係。
蒙皮:人形網格模型必須與關節層級關聯起來,通過指定關鍵的動畫來控制特定網絡的運動。

創建Avatar

Avatar:將Mecanim簡化的人形骨架結構到用戶實際提供的骨架結構的映射。
在導入模型後,在Rig選項卡中選Humanoid,骨架結構進行匹配,成功匹配就會在資源文件夾Avatar中添加。

配置Avatar

  在Avatar的配置面板,包含了一個反映關鍵骨骼信息的視圖,視圖中包含必須匹配的骨骼(實線圓圈)可選匹配的骨骼(虛線圓圈)。用戶提供的骨架必須包含所有必須匹配的骨骼,而可選匹配的骨骼會根據必須匹配的骨骼狀態自動插值計算。

設置Muscle參數

  Mucanim使用肌肉來限制不同骨骼的運動範圍,可以讓骨骼運動看上去真實、自然。

AVatar Mask

  unity可以使用遮罩的方式選擇控制身體的某一部分是否受動畫的影響,比如說,正常行走動畫手臂是來回擺動的,你想讓其邊走邊雙手抱着某個東西,只需要在Mask中禁用手臂運動。然後添加IK。

重定向

注意:重定向只應用於人形模型。作用前面說過了。

逆向運動學(IK)

  大多數角色動畫是通過將骨骼關節角度旋轉到預定值來實現的,一般的,骨骼子關節的位置是由父節點旋轉角度決定。比如說,揮手動作,是先由肩部關鍵旋轉,手舉起來,然後肘部關節旋轉,達到揮手的效果。這個過程中,腕部關節都是被動的移動,這種叫做前向運動學
但是,想想,如果我們要去用手拿起一個東西。是怎麼運動的呢?是我們手指關節先彎曲,握住物體然後拿起來,這個過程中,我們肩部和肘部都會有一個移動,但此時他們是被動的了,這種由於子關節運動導致父關節調整適當位置,叫做逆向動力學(IK)

Animator組件

  該組件是關聯角色及其行爲的紐帶,行爲包括:狀態機、混合樹、通過腳本控制的事件。

狀態機

  狀態機的基本思想是使得角色在某一時刻進行一個特定的動作。比如開始是站立(idle),然後走(walk),最後跑(run)。這每一個動作就是一種狀態,角色從一種狀態切換到另一種是需要條件的,比如,idle->walk,是speed從0變成大於0的數,而walk->run,也肯定是速度大於某個界限後變成跑的狀態。把這些狀態以及過度條件用可視化的順序圖來表示,減少底層代碼的實現。過渡條件可能是某個事件參數,某個變量大小,某個可選的參數值等等。可以拖動重疊區域的起始值和終止值來調節過渡情況。

混合樹

  遊戲中,我們可能需要將多個動畫進行混合,比如,跑步時向左或者向右傾斜轉彎。使用插值技術完成對多個動畫片段的混合,每個動作的效果取決於混合參數

通過腳本控制

相比上面,就麻煩的多,方法是捕獲輸入,做出相應的動作,比如:按下W鍵,就播放walk這個動畫片段等等。

發佈了45 篇原創文章 · 獲贊 15 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章