Mecanim動畫系統
一、Mecanim動畫系統的介紹
- 針對人形角色提供了一種特殊的工作流,包含Avatar的創建和對肌肉的調節。
- 動畫重定向的能力,可以非常方便地把動畫從一個角色模型應用到其他角色模型上。
- 提供可視化Animator窗口,可以直觀地通過動畫參數和Transition(動畫過度線)等管理各個動畫間的過度。
- Animator Mecanim 動畫系統動畫組件
- AnimatorController 動畫控制器
- Avatar Mecanim 可識別的骨骼
- Retargeting 角色之間動畫的互用
(溫馨提示:模型可從Asset Store商店下載,Window->Asset Store),下載的人物模型一般自帶動畫,無需另找。
二、Mecanim動畫系統的使用
1、五個步驟實現Mecanim
- 找到需要使用動畫的模型的原工程文件(注意不是預製件,下圖爲2019版本的unity中原工程文件與預製件的圖標區別。)
修改原工程文件中Rig面板下的Animation Type屬性。
其中Generic和Humanoid屬性是支持Mecanim動畫系統的,而Legacy屬性是支持Animation動畫的。Generic翻譯爲非人類的,即模型的骨骼框架不是人形的就選擇此屬性,Humanoid翻譯爲標準人形的,即骨骼框架爲人形的就選擇此屬性。(提示:當骨骼框架爲人形時,Generic和Humanoid屬性均適用) - 修改好動畫屬性之後,點擊面板中的apply按鈕,當configure前有個√時,表明骨骼匹配成功!(若是不成功,可以使用自動修復功能來嘗試修復,方法在"注意問題"標題內容中)這時,在原工程文件中會自動生成一個骨骼動畫。如下圖
- 回到模型的遊戲物體當中,這時Animator組件中的Controller屬性爲空,提示需要給予一個Animator Controller,所以我們需要創建一個Controller。
在project面板中,鼠標右鍵點擊Create->Animator Controller,進行創建。如下圖
- 創建完成之後,將其拖拽至Controller屬性當中。然後點擊,window->Animation->Animator或直接雙擊控制器,打開此窗口進行動畫設置。
- 將錄製的動畫拽入此窗口中,這就完成了!點擊運行按鈕,即可看到你所佈置的動畫在運行,若是想修改動畫屬性,可雙擊窗口中的黃色按鈕,即可進入動畫設置!
三、重定向功能的測試
選用兩個人形模型,分別使用Mecanim動畫系統,然後將第一個人形模型的動畫給予第二個人形模型(也就是將第一個人物模型的動畫給第二個人物模型的Animator Controller控制器,雙擊控制器可打開窗口),運行查看結果。
四、多個動畫的使用以及默認動畫的設置
1、默認動畫(第一個播放)的設置
2、多個動畫的使用
- 點擊後,會出現一條動畫過渡線,選擇另一個動畫即可,鼠標右鍵點擊可取消。
- 有關動畫過渡線的屬性設置,請參見官方說明文檔
https://docs.unity3d.com/Manual/class-AnimatorStateTransition.html
五、代碼控制動畫播放
1、在此面板中添加需要判斷的類型,共有四種:float,int,bool,trigger。以下代碼我們使用Bool類型。
2、在兩個動畫之間添加動畫過度線,點擊動畫過度線,進入動畫過度線設置面板
點擊+,將之前添加的屬性加入到這裏。
當條件添加完後,只有當動畫滿足Has Exit Time和Conditions中的所有條件時,動畫才能根據動畫過度先進入下一個動畫當中。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AttackByAnimator : MonoBehaviour
{
private Animator ani;
private void Start()
{
//獲取Animator組件
ani = GetComponent<Animator>();
}
private void Update()
{
//當按下空格時,將Space變量設置爲true
//那麼只有當按下空格時,動畫纔會過渡到attack動畫當中,
//將attack->idle的過度線的Has Exit Time勾選上,那麼只有attack動畫播放完畢纔會回到idle動畫
ani.SetBool("Space", Input.GetKeyDown(KeyCode.Space));
}
}
六、注意問題
1、自動旋轉問題
在動畫播放過程當中,模型可能會發生自動旋轉的問題,解決方案如下
(1)、進入動畫設置界面,將旋轉、xyz軸通通鎖住即可,如下圖,將屬性勾選上即可
2、骨骼匹配失敗的修復方法
- 點擊生成的骨骼,,出現的面板上有個configure Avatar按鈕。
- 打開此骨骼佈置面板(Pose和Mapping在此面板的底部),點擊Pose->Reset,再點擊Mapping->Automap
- 以上步驟完成,若提示需要T pose展示,則再點擊Pose->Enfore T-Pose,到此骨骼自動匹配完成,圖片顯示應爲綠色,不帶有任何紅色,如下圖
- 若是自動匹配還是出現錯誤,可以點擊Mapping->Clear後再次進行嘗試,再不行那麼就請手動調試吧!! 麻煩的很就不介紹了。