介紹Animator和動畫控制器
在Unity中,Animator
和 動畫控制器 (Animator Controller)
是用來控制遊戲物體動畫的關鍵工具。它們能夠幫助你實現角色的各種動作切換,例如行走、跳躍、攻擊等。
1. Animator 的基本概念
Animator:
Animator
組件是用來控制遊戲物體的動畫播放的。當你將Animator
添加到物體上時,這個物體就能夠根據你設計的動畫控制器來播放動畫。Animation Clip:
Animation Clip
是具體的動畫文件,表示一個動作的過程,例如角色的行走、跳躍等。你可以在 Unity 中創建或導入Animation Clip
,然後將它們分配給Animator
來控制動畫的播放。Animator Controller:
Animator Controller
是一個資產文件,它定義了動畫之間的轉換邏輯。你可以在其中設置不同的動畫狀態,以及這些狀態之間的轉換條件(如按下按鍵或達到某種速度)。
2. 設置 Animator 和 Animator Controller
步驟:
- 創建 Animator Controller:
- 在
Assets
資料夾中右鍵選擇Create > Animator Controller
,並給它取一個名字,比如PlayerAnimator
。 - 雙擊打開
PlayerAnimator
,這將打開Animator
視圖,你可以在這裡設置動畫狀態和轉換。
- 在
- 創建並導入 Animation Clips:
- 如果你已經有了動畫文件(例如從外部導入的
.anim
文件),可以直接將它們拖入Animator
視圖中。 - 如果你想在Unity中創建自己的動畫,可以在
Hierarchy
視圖中選擇一個物體,然後打開Animation
視圖,點擊Create
來創建一個新的Animation Clip
。
- 如果你已經有了動畫文件(例如從外部導入的
- 設置動畫狀態:
- 在
Animator
視圖中,你可以看到一個默認狀態Any State
和一個Entry
點。你可以將創建好的Animation Clips
拖動到這裡,這些動畫將成為角色的狀態(例如Idle
、Walk
、Jump
等)。 - 每個狀態代表角色的一個動畫。你可以設置其中一個狀態為默認狀態(即角色進入場景時會首先播放的動畫),通過右鍵單擊該狀態並選擇
Set as Layer Default State
。
- 在
- 設置狀態轉換:
- 你可以右鍵單擊某個狀態,然後選擇
Make Transition
,將箭頭拖動到另一個狀態,這樣就建立了一個動畫狀態之間的轉換。 - 選擇轉換箭頭,你可以在
Inspector
視圖中設置轉換條件,例如基於一個變量或觸發器來切換動畫。
- 你可以右鍵單擊某個狀態,然後選擇
- 設置條件變量:
- 在
Animator
視圖中,點擊左邊的Parameters
標籤,你可以添加Float
、Int
、Bool
或Trigger
變量。 - 這些變量可以在腳本中進行控制,用來觸發動畫的轉換。例如,你可以添加一個名為
isJumping
的布林值,並將其設置為True
時觸發跳躍動畫。
- 在
- 將 Animator Controller 分配給物體:
- 選擇你的角色物體,在
Inspector
視圖中找到Animator
組件,將創建好的Animator Controller
拖入Controller
欄位中。
- 選擇你的角色物體,在
3. 使用 C# 腳本控制動畫
你可以通過C#腳本來動態控制 Animator
的行為。這在需要根據遊戲邏輯觸發動畫時非常有用。
範例腳本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using UnityEngine;
public class PlayerAnimation : MonoBehaviour
{
private Animator animator;
void Start()
{
animator = GetComponent<Animator>(); // 獲取Animator組件
}
void Update()
{
// 獲取輸入控制角色的動畫狀態
float move = Input.GetAxis("Horizontal");
animator.SetFloat("Speed", Mathf.Abs(move)); // 設置速度參數來控制動畫
// 控制跳躍動畫
if (Input.GetKeyDown(KeyCode.Space))
{
animator.SetTrigger("Jump");
}
}
}
解釋:
- SetFloat(“Speed”, value):設置動畫控制器中的
Speed
參數,這個參數可以用來切換Idle
和Walk
狀態。例如,當Speed
大於0時,播放走路動畫;當Speed
為0時,播放待機動畫。 - SetTrigger(“Jump”):設置動畫控制器中的
Jump
觸發器,這個觸發器用來切換到跳躍動畫。
4. 測試和調整動畫
- 運行場景:
- 點擊
Play
按鈕運行場景,使用鍵盤控制角色並觀察動畫效果。
- 點擊
- 調整動畫:
- 如果動畫切換不順暢,返回
Animator
視圖,調整狀態轉換的條件和過渡時間(在Inspector
視圖中可以調整Transition Duration
)。
- 如果動畫切換不順暢,返回
小結
Animator
和 Animator Controller
是Unity中強大且靈活的動畫工具。通過設置不同的動畫狀態和轉換條件,並使用腳本控制動畫參數,你可以創建豐富的角色動畫系統,讓你的角色更加生動和具有表現力。理解和掌握這些工具,將極大地提升你的遊戲開發能力。
本文章以 CC BY 4.0 授權