虛幻引擎(Unreal Engine)的藍圖系統提供了多種父類,每種父類都有其特定的用途和生命周期。理解這些父類的作用,是高效使用藍圖開發游戲的基礎。以下是虛幻引擎中常見藍圖父類的詳細講解:
1. Actor
- 作用:所有可以放入關卡(Level)中的對象的基類,包括靜態網格、燈光、攝像機等。
- 特點:
- 可放置:可直接從內容瀏覽器拖拽到關卡中。
- 生命周期:由關卡管理,隨關卡的加載/卸載而創建/銷毀。
- 組件化:通過添加組件(如
StaticMeshComponent
、CameraComponent
)實現功能。
- 常見用途:場景中的門、開關、可破壞物體、NPC等。
2. Pawn
- 作用:所有可控制的實體的基類(包括玩家和AI),代表“棋子”。
- 特點:
- 可被Controller控制:通過
Possess
和Unpossess
與PlayerController
或AIController
綁定。 - 物理交互:支持移動組件(如
FloatingMovementComponent
、CharacterMovementComponent
)。
- 可被Controller控制:通過
- 常見用途:車輛、飛行單位、自定義AI角色(非人形)。
3. Character
- 作用:人形角色的專用類,繼承自
Pawn
,內置角色移動組件(CharacterMovementComponent)。 - 特點:
- 人形移動:支持行走、跳躍、游泳、攀爬等復雜移動模式。
- 碰撞膠囊體:默認帶有
CapsuleComponent
和SkeletalMeshComponent
。 - 網絡同步:優化了多人游戲的移動同步。
- 常見用途:玩家角色、NPC敵人、隊友等。
4. PlayerController
- 作用:玩家輸入與Pawn之間的橋梁,處理玩家的輸入、UI交互和相機管理。
- 特點:
- 控制Pawn:通過
Possess
控制一個Pawn
或Character
。 - 輸入響應:接收鍵盤、鼠標、手柄輸入并轉發給控制的Pawn。
- UI交互:管理HUD和UMG用戶界面。
- 控制Pawn:通過
- 常見用途:玩家的“靈魂”,即使角色死亡,PlayerController依然存在(可重生角色)。
5. AIController
- 作用:AI的“大腦”,控制AI行為(如尋路、決策)。
- 特點:
- 行為樹:通過
Behavior Tree
和Blackboard
實現復雜AI邏輯。 - 感知系統:支持視覺、聽覺等AI感知(
AI Perception Component
)。
- 行為樹:通過
- 常見用途:敵人AI、NPC、寵物等。
6. GameMode
- 作用:定義游戲規則(如勝利條件、角色生成、關卡切換)。
- 特點:
- 服務器權威:僅在服務器存在(多人游戲中客戶端無GameMode)。
- 全局管理:控制玩家出生點(
PlayerStart
)、角色生成類(Default Pawn Class)。
- 常見用途:射擊游戲的團隊規則、大逃殺的縮圈機制、RPG的任務系統。
7. GameState
- 作用:同步游戲狀態給所有客戶端(如得分、時間、玩家列表)。
- 特點:
- 網絡同步:自動復制數據到所有連接的客戶端。
- 全局訪問:通過
GetGameState
在任何地方獲取。
- 常見用途:多人游戲的實時分數、比賽剩余時間、玩家狀態列表。
8. PlayerState
- 作用:單個玩家的狀態數據,與
PlayerController
關聯。 - 特點:
- 網絡同步:如玩家名稱、得分、Ping值。
- 持久存在:即使角色死亡,PlayerState仍保留(直到玩家離開游戲)。
- 常見用途:排行榜、玩家擊殺數、自定義玩家屬性。
9. HUD & UserWidget
- HUD(已過時):
- 舊版2D界面系統,現已被UMG(
UserWidget
)取代。
- 舊版2D界面系統,現已被UMG(
- UserWidget(UMG):
- 作用:創建UI元素(按鈕、血條、菜單)。
- 特點:支持藍圖可視化設計,可綁定到
PlayerController
。 - 常見用途:游戲主菜單、背包界面、技能冷卻顯示。
10. GameInstance
- 作用:跨關卡的全局管理器,生命周期貫穿整個游戲會話。
- 特點:
- 持久存在:從游戲啟動到退出始終存在。
- 跨關卡數據:保存全局設置、玩家檔案、DLC管理。
- 常見用途:語言設置、成就系統、在線會話管理。
11. Level Blueprint
- 作用:關卡的專屬藍圖,直接操作關卡中的Actor和事件。
- 特點:
- 關卡獨有:每個關卡(Level)有一個獨立的Level Blueprint。
- 事件驅動:處理關卡特定事件(如關卡加載、觸發器激活)。
- 常見用途:過場動畫、關卡切換邏輯、Boss戰觸發。
12. Subsystem
- 作用:輕量級全局管理器,按模塊自動生命周期管理。
- 特點:
- 無需手動創建:通過
UGameInstanceSubsystem
、UEditorSubsystem
等自動實例化。 - 模塊化:避免GameInstance過度膨脹。
- 無需手動創建:通過
- 常見用途:成就系統、在線商店、Mod管理。
總結表格
父類 | 核心作用 | 生命周期 | 典型用例 |
---|---|---|---|
Actor | 場景中的基礎對象 | 隨關卡加載/卸載 | 門、開關、道具 |
Pawn | 可控制的實體 | 隨生成/銷毀 | 車輛、無人機 |
Character | 人形角色 | 隨生成/銷毀 | 玩家、NPC敵人 |
PlayerController | 玩家輸入與Pawn的橋梁 | 玩家連接時創建,斷開時銷毀 | 玩家控制、UI交互 |
AIController | AI的大腦 | 隨AI生成/銷毀 | 敵人AI、寵物 |
GameMode | 游戲規則 | 服務器關卡存在時 | 勝利條件、角色生成 |
GameState | 同步全局游戲狀態 | 隨關卡存在 | 多人游戲得分、時間 |
PlayerState | 單個玩家的狀態 | 玩家連接時創建 | 玩家名稱、得分 |
UserWidget | UI界面 | 手動創建/銷毀 | 菜單、血條、技能欄 |
GameInstance | 跨關卡全局數據 | 游戲啟動到退出 | 語言設置、DLC管理 |
Level Blueprint | 關卡專屬邏輯 | 隨關卡存在 | 過場動畫、Boss戰觸發 |
Subsystem | 模塊化全局管理器 | 按模塊自動管理 | 成就系統、在線商店 |
選擇父類的原則
- 場景對象 → Actor
- 可控制角色 → Pawn/Character(人形用Character)。
- 玩家輸入 → PlayerController(非角色邏輯)。
- AI邏輯 → AIController + 行為樹。
- 游戲規則 → GameMode(服務器)+ GameState(同步)。
- 跨關卡數據 → GameInstance或Subsystem。
理解這些父類的邊界和協作方式,可以避免架構混亂(如將玩家輸入邏輯誤寫到Character中)。
(PS:該系列文章為筆者學習UE過程中所遇問題的AI解答,僅作參考)