文章

使用 虛擬攝影機(Cinemachine) 進行視角控制

使用Unity的Cinemachine來控制攝影機視角,可以大大簡化攝影機的控制並提升遊戲的視覺效果。Cinemachine是一個強大的工具,允許你創建虛擬攝影機,並根據不同需求自動控制攝影機的運動和切換。

1. 安裝Cinemachine

在使用Cinemachine之前,需要確保它已經安裝在你的Unity專案中。

步驟

  1. 打開 Package Manager
    • 在Unity的頂部菜單欄中,選擇 Window > Package Manager
  2. 搜索並安裝Cinemachine:
    • Package Manager 中搜索 Cinemachine
    • 選擇 Cinemachine 並點擊 Install 進行安裝。

2. 創建並設置虛擬攝影機

虛擬攝影機(Virtual Camera)是Cinemachine的核心組件,通過它你可以輕鬆控制攝影機的視角和移動。

步驟

  1. 創建虛擬攝影機
    • 在頂部菜單中,選擇 Cinemachine > Create Virtual Camera
    • 一個新的虛擬攝影機 (Cinemachine Virtual Camera) 將會出現在場景中。
  2. 設置虛擬攝影機的目標 (Follow & Look At)
    • 選擇虛擬攝影機,在 Inspector 面板中設置 FollowLook At 參數。
      • Follow:設置為你想要攝影機跟隨的目標(例如角色)。
      • Look At:設置為攝影機應該注視的目標(通常與 Follow 相同)。
    • 這樣攝影機就會自動跟隨並注視目標物件。
  3. 調整攝影機運動參數
    • Inspector 中,你會看到 BodyAim 模組,用來控制攝影機的運動和目標瞄準。
    • Body 模組:調整 TransposerHard Lock to TargetOrbital Transposer 等參數,來定義攝影機的跟隨行為。
    • Aim 模組:調整 ComposerHard Look At 等參數,來控制攝影機如何對準目標。

3. 創建不同的攝影機視角

你可以創建多個虛擬攝影機,並根據遊戲需求切換不同的視角。

步驟

  1. 創建多個虛擬攝影機
    • 重複創建虛擬攝影機的步驟,為每個場景或角色創建一個專用的虛擬攝影機。
    • 例如,一個虛擬攝影機用於跟隨玩家角色,另一個用於顯示固定場景視角。
  2. 設置每個虛擬攝影機的參數
    • 為每個虛擬攝影機設置不同的 FollowLook At 目標,以及不同的運動和瞄準模式。
    • 這樣可以實現多樣化的攝影機視角和效果。

4. 切換虛擬攝影機視角

Cinemachine會自動管理虛擬攝影機的切換,優先激活的虛擬攝影機會控制主要視角。你可以使用Cinemachine的 CinemachineBrain 組件來控制視角的過渡效果。

步驟

  1. 確保場景中有Cinemachine Brain
    • Unity會自動在主攝影機上添加 CinemachineBrain 組件。這個組件負責在虛擬攝影機之間切換視角。
  2. 設置虛擬攝影機的優先級
    • Inspector 面板中,每個虛擬攝影機都有一個 Priority 欄位。數值越高,優先級越高。
    • 你可以通過修改優先級來控制當前激活的攝影機。優先級較高的虛擬攝影機會自動成為主攝影機。
  3. 使用腳本切換攝影機
    • 如果需要在特定事件下切換攝影機,可以使用腳本來控制優先級。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using UnityEngine;
using Cinemachine;

public class CameraSwitcher : MonoBehaviour
{
    public CinemachineVirtualCamera cam1;
    public CinemachineVirtualCamera cam2;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            cam1.Priority = 10;
            cam2.Priority = 0;
        }
        if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            cam1.Priority = 0;
            cam2.Priority = 10;
        }
    }
}

這段腳本通過按鍵切換兩個虛擬攝影機的優先級來控制視角。

5. 過渡效果與調整

Cinemachine自帶平滑過渡效果,你可以進一步調整過渡的細節。

過渡效果

  • BlendCinemachineBrain 組件中的 Default Blend 設置允許你控制視角切換時的過渡效果(如淡入淡出、平滑轉場等)。
  • Custom Blends:你可以為特定的攝影機過渡設置自定義效果,例如從一個虛擬攝影機切換到另一個時使用不同的過渡方式。

小結

使用Cinemachine進行視角控制大大簡化了攝影機的管理,同時提供了豐富的攝影機效果選項。通過創建多個虛擬攝影機並設置不同的視角和運動方式,可以實現非常靈活的攝影機控制,提升遊戲的沉浸感和視覺效果。無論是簡單的跟隨攝影機還是複雜的過場動畫,Cinemachine都能夠幫助你輕鬆實現。

本文章以 CC BY 4.0 授權