了解UE游戲的基本構成
資源(Asset):
· 在UE中,資源(Asset)是指游戲中使用到的各種素材,例如模型、紋理、材質、聲音、動畫、藍圖、數據表格、關卡等(通常以uasset結尾),他們是構成游戲的基本組成部分。
· 資源可以是從外部導入的文件,也可以是通過UE提供的編譯器創建的內容。右鍵可以創建的類型,都是UE里的資源
· 大部分資源并不由開發人員制作,但是需要了解并使用它們
資產創建的位置:
由虛幻編輯器中創建:
- 游戲關卡
- 材質(Materials)
- 粒子系統
- 過場動畫序列
- 藍圖腳本
- 給人工智能用的導航網格(AI Navigation Meshes)
- 預計算光照信息(Light Maps)
- 場景(光卡)光照
由外部應用程序中創建:
- 靜態網格物體(Static Meshes)
- 骨架網格物體(Skeletal Meshes)
- 骨架動畫(Skeletal Animation)
- 貼圖(Textures)
- 聲音(WAVS)
- IES燈光信息
- Nvidia APEX文件(APB 及 APX)
邏輯(Logic):
· 在使用UE的開發過程中,資源和邏輯是密不可分的
· 邏輯是指游戲中的各種行為和交互邏輯,例如角色控制、AI、任務等
· 資源可以包含邏輯,如藍圖(BP)、行為樹(BT)、動畫狀態機等
· C++代碼則是純粹的邏輯
· 將邏輯和資源有機地結合起來,以實現游戲的玩法,是游戲的核心任務
· 在游戲開發中,邏輯和資源是相互依存的,只有合理的組合和利用它們,才能夠打造出豐富、生動、有趣的游戲體驗
對每一個組成部分有簡單的認識
靜態網格體(Static Mesh):
· 是由一系列多邊形構成的幾何體的組成部分,緩存在視頻存儲器中,可以使用顯卡進行渲染
· 俗稱 不可動的3D模型,通常用于構建游戲世界中的靜態元素,如建筑物、裝飾物、地形等(不可動指的是不支持動畫和形變、但可以進行平移旋轉和縮放)
· Static Mesh通常是由建模軟件(如 3ds Max、Maya等)創建完成后,通過導入插件將其導入到虛幻引擎中
· UE還提供了一些工具來優化Static Mesh的性能,如靜態光照、LOD(Level of detail)和碰撞體等
在內容游覽其中篩選靜態網格體
材質(Materials):
· 虛幻引擎中的材質定義了場景中對象的表面屬性,廣義上,可以將材質理解為網格體上控制其視覺外觀的“涂料”
· 在虛幻引擎中,Materials的應用非常廣泛。它不僅可以應用于靜態模型(Static Meshs),還可以應用于骨骼模型(Skeletal Meshs),并且可以通過實例化材料(Materials Instances)的方式實現實時的材質變化
· 此外,虛幻引擎還提供了各種材質優化技術,例如材質實例(Materials Instances)、材質球(Materials Layers),以滿足游戲開發者對材質可定制性和性能的要求
打開材質編輯器
紋理(Texture):
· 紋理是一種主要用于材質的圖像資源
· 材質可能會用到多種紋理,實現多種目的,例如一個普通材質可能用到基礎顏色紋理,高光紋理、以及法線紋理
· 紋理也可用于UI
骨架網格體(Skeletal Meshes & Skeletal Animation):
· 骨架網格體由兩部分構成:表面的一層多邊形,使多邊形頂點產生動畫的一組層次化的關聯骨骼
` 骨骼動畫是指將骨骼網格與動畫動作捆綁在一起,實現角色模型的動態表現。在Skeletal Animation中,每個骨骼都有自己的動畫曲線,通過將這些動畫曲線結合在一起,就能夠實現整個角色的動態動畫效果
在內容游覽其中篩選骨架網格體
查看動畫
藍圖(Blueprint):
· 虛幻引擎中的 藍圖可視化腳本 系統是一類完整的游戲性腳本系統,此系統的基礎概念是使用基于節點的界面在虛幻編輯器中創建游戲性元素。和其它一些常見的腳本語言一樣,藍圖的用法也是通過定義在引擎中的面向對象的類或者對象。使用虛幻引擎后便知,使用藍圖所定義的對象通常被直接稱為“藍圖”
· 該系統靈活而強大,使設計師能夠使用通常僅面向程序員的幾乎所有概念和工具。此外,程序員可以借助虛幻引擎C++實現可用的藍圖特定標記創建基線系統,而此系統又可被設計師加以拓展
動畫藍圖(Animation Blueprint):
· 動畫藍圖是一種特殊的藍圖,它用于控制骨骼網格體的動畫效果,動畫藍圖編輯器(Animation Blueprint Editor) 中的 圖表(Graphs)可以效果動畫,允許直接控制骨架的骨骼,或設置骨骼網格體逐幀邏輯,以便創建最終動畫姿勢
玩家輸入(PlayerInput):
· 玩家輸入對象負責將來自玩家的輸入轉換為Actor(如 PlayerControllers 或 Pawn)可以理解的數據,PlayerInput是輸入處理流程的一部分,通過玩家輸入映射和輸入組件,將玩家的硬件輸入轉化為游戲事件和運動。
· PlayerInput是用于管理玩家輸入的,PlayerController類中的UObject。它僅在客戶端上生成。PlayerInput 中定義了兩種結構體,第一種是FInputActionKeyMapping,它定義了操作映射(ActionMapping)。另一種是FInputAxisKeyMapping,它定義了軸映射(AxisMapping)
攝像機(Camera):
· 攝像機代表了玩家的視角,比如玩家如何查看世界。因此,攝像機只和玩家控制的人物有關
· PlayerController會指定一個攝像機類,并實例化一個Camera Actor(ACameraActor)以此計算玩家從哪個位置和角度觀察世界
用戶界面(UI):
· 用戶界面和頭顯(HUD)是游戲向玩家提供游戲信息以及在某些情況下允許玩家與游戲互動的方式
· 虛幻示意圖形界面處理器(Unreal Motion Graphic UI Designer)(UMG)是虛幻引擎中的一套用戶界面系統,用于創建游戲中的圖形用戶界面(GUI),UMG提供了一套可視化的工具和藍圖系統,使開發者能創建交互式和響應式的UI元素,如按鈕、文本、圖像、滾動條等
關卡(Level):
· 關卡是游戲的“世界”的全部或一部分。關卡包含玩家可以看到并于之交互的所有內容,例如環境、可用對象、其他角色,等等。在電子游戲中,常常有多個關卡,彼此之間有劃分明確的過度(例如,在你打敗一個關卡中的boss之后,你就會繼續到下一個關卡)
· 虛幻引擎將每個關卡保存為單獨的“.umap”文件
Level與World的關系:
· 為了游戲布置和其他因素,將整個游戲世界(World)劃分為多個關卡(Level),一個World由一個或多個Level組成,World負責這些Level的加載和釋放,對他們進行管理
· 多個Level拼接成為一個游戲世界
行為樹(Behavior Tree):
行為樹是用于創建角色AI行為的一種模塊,行為樹是一種基于狀態機和決策樹的機制,它可以使開發人員以圖形化的方式創建角色的AI行為,從而使角色可以自主的及逆行決策并執行相應的行為
· 執行邏輯時,行為樹會使用一種名為 黑板 的獨立資源來存儲它需要知道的信息,黑板解耦了行為樹和外部的數據交換,讓行為樹變成存粹的邏輯