原文:Unreal Engine 4 Tutorial for Beginners: Getting Started
作者:Tommy Tran
譯者:Shuchang Liu
本篇教程將引導你安裝Unreal Engine 4引擎,了解基本操作界面,並創建你的第一個游戲物體。
Unreal Engine 4引擎本質上是一個游戲開發工具集,能夠勝任從2D手機游戲到3A主機游戲的制作,其中不乏方舟生存:進化,鐵拳7,王國之心3等3A游戲。
新手很容易就能上手Unreal Engine 4引擎開發游戲。通過藍圖可視化腳本系統,你甚至無需編寫任何代碼就制作出游戲!配合簡單易上手的操作界面,開發者能很快制作出可玩的游戲原型。
本篇教程主要幫助初學者了解上手Unreal Engine 4引擎,以下是本篇教程的關鍵知識點:
- 引擎安裝
- 資源導入
- 創建材質
- 利用藍圖創建具有基本功能的物體
為了實際掌握這些知識點,我們會動手寫個小例子:在游戲場景創建一個轉台,旋轉展示香蕉。
注意:本篇教程只是Unreal Engine 4系列教程的其中一篇:
安裝Unreal Engine 4引擎
Unreal Engine 4引擎需要通過Epic Games 啟動器來下載安裝。直接前往官網,點擊右上角的Get Unreal按鈕。

你需要先創建一個賬號,才能下載啟動器。創建完賬號后,根據操作系統下載對應的啟動器。

下載安裝並打開啟動器,你會看到下面的窗口:

接着輸入注冊郵箱和密碼,點擊Sign In,會看到下面的窗口:

點擊左上角的Install Engine,啟動器會跳轉到選擇組件安裝的界面。

注意:Epic Game一直在更新Unreal Engine 4引擎,所以你下載的引擎版本可能跟教程中的不一樣。我剛開始寫這篇教程,引擎版本就更新到了4.14.3!不過只要你的引擎版本在4.14以上,這篇教程的內容還是適用的。
安裝界面的默認選項是Starter Content,Templates and Feature Packs和Engine Source。我建議你全部勾選,因為:
- Starter Content:資源包,你可以在項目里免費使用這些資源,其中包括模型,材質。你可以把這些資源用於制作游戲原型,或者用於最終成品里。
- Templates and Feature Packs:勾選該選項,會根據你選擇的類型構建具備基本功能的模板項目。比如,勾選Side Scroller創建出來的模板項目,會有一個具備移動功能的角色以及固定視角的平面攝像機。
- Engine Source: Epic提供了引擎源碼,意味着任何人都可以修改引擎源碼。比如說你想給引擎編輯器添加自定義功能,可以通過修改源碼做到這一點。
下拉列表,可以看到引擎支持多個平台。如果你不打算針對某些平台開發游戲,可以不用勾選。

選擇完畢后,點擊Install。當安裝完畢,Library頁簽就會出現引擎信息。現在我們可以來創建項目了。

創建項目
點擊Launch按鈕打開項目瀏覽器,然后點擊New Project頁簽。

點擊Blueprint頁簽,你可以選擇其中一種模版來創建項目。不過,我們打算從頭實現教程例子,所以選擇Blank創建空模板項目。
在底下,你可以看到一些額外設置。

簡單講解這些設置的作用:
- Target Hardware: 選擇Mobile/Tablet會禁用掉一些后處理效果。在該設置下,鼠標輸入會被自動識別成觸控輸入。我們把該選項設置成Desktop/Console。
- Graphic Target:選擇Scalable 3D or 2D會禁用一些后處理特效。把該選項設置成Maximum Quality。
- Starter Content:你可以啟用該選項來引入初始資源。簡單起見,該選項設置成No Starter Content。
最后底下的部門用於設置項目存放位置,以及你的項目文件名。

你可以通過點擊右側的省略號圖標修改項目存放位置。
項目名稱指的並不是游戲名稱,后續修改游戲名稱,也無需修改項目名稱。選擇Name處的文本框,輸入BananaTurntable。
最后,點擊Create Project。
認識操作界面
一旦創建了項目,編輯器就會自動打開。整個編輯器由多個面板組成:

1.Content Browser: 該面板展示了所有項目的文件。使用該面板創建文件夾,存放項目文件。你可以使用搜索框或篩選列表搜索文件。
2.Modes:通過該面板可以選擇地形工具和植被工具。默認打開的頁簽是放置工具,用於在關卡放置不同類型的物體比如光線和攝像機。
3.World Outliner:展示當前關卡的所有物體。你可以對物體進行分門別類管理,創建不同文件夾,將同類物體放在一起。
4.Details:該面板展示你所選中物體的詳細屬性。我們可以通過該面板編輯物體,編輯只會對當前物體實例生效。比如,場景里有兩個球體,你修改了其中一個球體的大小,修改只對你選中的球體生效。
5.Toolbar:包含一系列不同方法,最常用的方法通常是Play。
6.Viewport:關卡場景窗口。你可以通過長按右鍵並移動鼠標旋轉視角。長按右鍵並使用WASD鍵移動視角。
導入資源
作為一個轉台卻沒有任何東西可展示有什么意思?下載香蕉模型。下載包里有兩個文件:Banana_Model.fbx 和Banana_Texture.jpg。你當然也可以用別的模型來完成這個例子,但你都有一根屌炸天的香蕉了,完全不用多此一舉。
你需要先導入香蕉模型,才可以在Unreal Engine引擎里使用。點擊Content Browser的Import按鈕。

在彈出的文件瀏覽器里,跳轉到香蕉模型文件夾,選中兩個文件后點擊Open。

Unreal Engine引擎會彈出.fbx文件的導入選項面板。確保Import Materials是未勾選狀態,因為我們要自己創建材質。其他設置可以不用管。

點擊Import。現在Content Browser里就會出現這兩個文件。

當做完前面的操作,這些資源還並沒有真正保存進項目里。我們需要右鍵點擊文件,選擇Save。也通過點擊面板的File\Save All保存所有導入資源。記得養成時常手動保存資源的習慣。
注意在Unreal Engine引擎里,模型稱之為網格。所以現在我們有了個香蕉網格,是時候把它放進場景里了。
關卡中添加網格
關卡場景現在還是空空的,所以讓我們把它豐富起來。
通過左鍵把Banana_Model從Content Browser拖拽到Viewport里。釋放左鍵,網格就放置到關卡里了。

我們可以移動、旋轉、縮放關卡里的物體,與之對應的快捷鍵是W,E,R。配合快捷鍵和鼠標,就可以這樣調整香蕉網格了:

關於材質
如果你仔細觀察香蕉,就會發現它不是黃色的!事實上,它看起來像已經過期發黑了。

為了賦予香蕉一些色彩和細節,你需要創建一個材質。
什么是材質?
材質決定了物體的視覺外觀。基本上,材質會影響以下四個外觀屬性:
- 底色(Base Color):材質的基本色。用來決定物體的外觀顏色。
- 金屬度(Metallic):決定物體表面的金屬質感。通常來說,純金屬的金屬度值是最大的,而紡織品的金屬度為0。
- 高光(Specular):控制非金屬表面的光澤度。比如,陶瓷制品會有比較強的高光,而黏土則沒有。
- 粗糙度(Roughness):如果物體表面的粗糙度越高,光澤度就越低。通常來說,岩石和木頭表面的粗糙度就很高。
下面是三種不同材質的外觀例子。它們有着相同的顏色,不同的外觀屬性。每種材質對應的屬性都調成了最大值,而其他屬性都設置為0。

創建材質
我們可以通過在Content Browser點擊Add New按鈕,彈出可創建資源的列表菜單。點擊Material。

將材質命名為**Banana_Material **,並雙擊打開材質編輯菜單。

材質編輯器
材質編輯器由四個主要面板構成:

- 1. Graph:這個面板包含了你的所有節點和結果節點。通過長按右鍵和移動鼠標來移動,滑動滾輪來縮放面板。
- 2. Details:展示選中節點的詳細屬性。如果沒有選中任何節點,面板會展示材質的詳細屬性。
- 3.Viewport:材質的預覽界面。通過長按左鍵和移動鼠標來移動,滑動滾輪來縮放面板。
- 4. Palette:當前材質可用的節點列表。
什么是節點?
在開始制作材質前,你需要了解制作材質的基本元素:節點。
節點構成了材質的整體。材質可以擁有很多種類型的節點,各自具備不同功能。
節點擁有輸入和輸出,看起來像個帶箭頭的圓圈。左側是輸入,右側是輸出。
下面這個例子,用了個Multiply和Constant3Vector節點將貼圖改成了黃色:

材質有一個特殊的結果節點,這個節點從材質創建一開始就存在,是材質的最后一個節點。這個節點怎么連線,會直接影響材質的最終呈現效果。

添加貼圖
為了給模型添加顏色和細節,我們需要添加貼圖。貼圖就是一張2D圖片。簡單來講,2D貼圖被映射覆蓋在3D模型上,從而賦予模型顏色和細節。
我們使用Banana_Texture.jpg來作為香蕉的貼圖。TextureSample節點可以用於設置貼圖。
在Palette面板搜索TextureSample。通過長按左鍵節點將其拖拽到圖表區域。

選中**TextureSample **節點,在Details面板點擊Texture屬性欄右側的下拉框。

下拉菜單會展示項目里的所有可用貼圖。選中Banana_Texture。

為了在預覽網格看到貼圖,你需要將節點連線接入結果節點。左鍵長按TextureSample節點的白色輸出引腳,將其拖拽到結果節點的Base Color輸入引腳。

此時觀察Viewport預覽網格的貼圖,通過長按左鍵拖拽就可以旋轉網格,全方位觀察它的細節。

點擊Toolbar上的Apply按鈕,就能更新材質設置。
使用材質
為了在香蕉網格應用材質,我們需要進一步手動操作。在Content Browser雙擊Banana_Model,會出現下面編輯器窗口:

觀察Details面板的Materials選項,點擊Element 0右側的下拉框,並選擇Banana_Material。

關閉窗口,回到主編輯器,觀察Viewport,你能看到香蕉已經有了貼圖。恭喜你,你已經具備一個關卡設計師的所需技能了!

注意:如果光線看起來太暗了,你可以通過在World Outliner面板點擊Light Source,在Details面板修改Intensity為更大的值進行調整。
關於藍圖
雖然香蕉看起來不錯,如果它能放在轉台上展示會更不錯。我們通過藍圖就可以實現這點。
簡單化理解,一個藍圖代表一個“東西”。藍圖可以賦予“東西”一些自定義行為。“東西”可以是個實物(比如轉台),或是抽象概念,比如血條系統。
想要一台能跑起來的車?做個藍圖吧。一頭飛豬?藍圖。炸上天的廚房?還是藍圖。
類似於材質系統,藍圖也是個節點系統。這意味着你所需要做的是創建一些節點並做做連線,完全不需要編寫代碼!

注意:如果你更願意寫代碼,你可以使用C++編寫。
雖然藍圖便捷易用,它的運行效率不如C++代碼。所以,如果你要實現一些大量運算的邏輯,比如復雜算法,還是應該用C++。
不過即使你更傾向於用C++,在一些場景下使用藍圖是個好主意。以下是使用藍圖的好處:
- 通常來講,藍圖開發效率優於C++。
- 直觀清晰。你可以將節點划分成不同區域,比如不同的方法和圖表。
- 如果你跟非開發人員協同合作,得益於藍圖的可視、直觀,雙方修改藍圖邏輯會更加簡單。
盡量嘗試用藍圖創建邏輯,當有部分邏輯需要提升運行效率時,再將其轉換成C++代碼。
創建藍圖
在Content Browser點擊Add New按鈕,從下拉列表中點擊Blueprint Class。

緊接着會出現提示框讓你選擇新建藍圖類所要繼承的父類。藍圖類會繼承父類的所有變量,函數及組件。讓我們花一點時間看每個類是做什么的。

注意:因為Pawn和Character類也能夠被放置、生成,它們也同屬於Actor。
因為轉台只需要靜止放置在一個固定點上,所以Actor類是最合適的。選擇Actor並將其命名為Banana_Blueprint。

最后,雙擊Banana_Blueprint,出現以下面板時點擊Open Full Blueprint Editor:

藍圖編輯器
首先,確保編輯器界面頁簽選中Event Graph。
藍圖編輯器由以下五個面板組成:

1.Components:包含當前藍圖已用組件列表。
2.My Blueprint:該面板主要用於管理你的圖表,方法和變量。
3.Details:展示選中項的詳細參數。
4.Graph:化腐朽為神奇的部分。所有的節點邏輯都在這里。通過長按右鍵和移動鼠標來移動,滑動滾輪來縮放面板。
5.Viewport:所有包含可視元素的組件都會顯示在這里。操作方法類同主編輯器的Viewport界面。
創建轉台
轉台由兩部分組成:底座和展示物體。我們可以通過組件創建這兩者。
什么是組件?
如果一個藍圖是一輛車,那組件就是這輛車的零部件。車門,方向盤和引擎都是組件。
然而,組件的概念也不限於實際物體。
比如,為了開動這輛車,你還會給它加上運動組件,甚至還能通過添加飛行組件使得車子飛起來。
添加組件
首先,我們先把頁簽切換到Viewport,把界面切到場景展示。看起來是這樣的:

注意:當引擎處於運行模式時,DefaultSceneRoot組件是看不到的,它只會在編輯模式下展示。
轉台有兩個組件:
- 圓柱體(Cylinder):一個簡單的白色圓柱體作為底層,用於盛放香蕉。
- 靜態網格(Static Mesh):這個組件用於展示香蕉網格。
為了添加組件,在Components面板點擊Add Component並選擇Cylinder。

把底座調矮點,視覺效果看起來會更好點。按下R鍵激活縮放操作桿,並滑動對應軸調整底座高度。

接着來添加網格。在Components面板左鍵點擊空白區域,取消選中Cylinder組件。這樣就保證后面新加的組件不會放在Cylinder組件下。

注意:如果你不這樣,后面新加的組件就會放在Cylinder組件下,這意味着這個組件會繼承Cylinder組件的縮放值。由於你縮放過圓柱體,這樣做的結果就是新加的香蕉模型也會跟着一起縮放。
![]()
接着,點擊Add Component並選擇Static Mesh。

為了顯示香蕉的樣子,選擇Static Mesh組件並點擊Details頁簽。點擊Static Mesh選項右側的下拉框,選擇Banana_Model。

如果香蕉的位置不太對,就按下W鍵激活移動操作桿,調整香蕉的位置。

關於藍圖節點
是時候讓轉台轉起來了。這里就涉及到藍圖節點的使用。
不同於它的表親材質節點,藍圖節點有一種特殊引腳叫執行引腳。節點左側是輸入引腳,右側是輸出引腳。所有的節點都至少會有輸入/輸出引腳的其中一種。
如果一個節點有輸入引腳,它一定要有個對應的接入才能被執行。如果它的輸入引腳沒有連接,它的后續節點也不可能被執行。
這里是個例子:

節點A和節點B因為其有連接,所以能夠執行。由於節點C輸入引腳沒有連接,節點C和節點D都不會執行。
旋轉轉台
在我們動手前,先看看Components面板。你能夠看到Cylinder和Static Mesh組件是有縮進的,DefaultSceneRoot則沒有。這樣因為前兩者是DefaultSceneRoot節點的子節點。

如果移動、旋轉、縮放根節點,子節點也會一起影響。利用這個特性,你就能一並控制Cylinder和Static Mesh了。
創建節點
為了編寫邏輯,我們把頁簽切換到Event Graph.
旋轉物體非常簡單,只需要創建一個節點就能完成。在圖表界面空白處右鍵彈出可用節點菜單,搜索AddLocalRotation節點。由於我們想要一並旋轉底座和香蕉,直接旋轉根組件節點即可。因此選擇AddLocalRotation (DefaultSceneRoot)。
注意:如果看不到對應節點,請反選右上角的Context Sensitive選項。

你的圖表現在有了一個新的名為AddLocalRotation的節點了。它的Target輸入會自動連接你所選擇的組件。
將Delta Rotation的z值修改為1.0,這樣藍圖就會讓目標圍繞Z軸進行旋轉。值越大,轉台旋轉越快。

為了持續旋轉轉台,你需要每幀調用AddLocalRotation。為了實現這點,需要使用上Event Tick節點。它應該默認就在你的圖表里。如果沒有,就仿照剛才的操作創建節點。
拖拽Event Tick節點的輸出引腳連接AddLocalRotation節點的輸入引腳。

注意:在這個例子中,轉台旋轉速度取決於幀率。這意味着轉台在低配機器上會旋轉得更慢,反之亦然。這對於教程來說沒什么大問題,這樣處理會比較簡單,我會在之后的教程里教你解決這個問題。
最后,點擊Toolbar的Compile按鈕更新藍圖修改,並關閉編輯器。

在關卡里添加藍圖
在添加藍圖前,在主編輯器的Viewport窗口刪除之前放置的香蕉模型。選中香蕉模型,點擊Eidt\Delete或者按下Delete鍵進行刪除。
添加藍圖的步驟功能跟之前添加網格的步驟是一樣的。左鍵拖拽藍圖文件,將其放置到Viewport窗口。
在Toolbar上點擊Play按鈕,就可以看到最終成果了!
注意:如果你沒有刪除掉關卡的香蕉模型,你可以會看到重建光線的警告提示。刪掉模型,就能去掉警告。
后續學習
你可以在這里下載教程項目。
本篇教程所學習的內容只是Unreal Engine 4引擎的冰山一角。如果你還想繼續學習Unreal Engine 4引擎,點擊下篇教程,我會進一步講解Unreal Engine 4引擎的藍圖系統。