Unreal Engine 4 系列教程 Part 1:入門

原文:Unreal Engine 4 Tutorial for Beginners: Getting Started
做者:Tommy Tran
譯者:Shuchang Liuhtml

本篇教程將引導你安裝Unreal Engine 4引擎,瞭解基本操做界面,並建立你的第一個遊戲物體。web

Unreal Engine 4引擎本質上是一個遊戲開發工具集,可以勝任從2D手機遊戲到3A主機遊戲的製做,其中不乏方舟生存:進化,鐵拳7,王國之心3等3A遊戲。算法

新手很容易就能上手Unreal Engine 4引擎開發遊戲。經過藍圖可視化腳本系統,你甚至無需編寫任何代碼就製做出遊戲!配合簡單易上手的操做界面,開發者能很快製做出可玩的遊戲原型。瀏覽器

本篇教程主要幫助初學者瞭解上手Unreal Engine 4引擎,如下是本篇教程的關鍵知識點:app

  • 引擎安裝
  • 資源導入
  • 建立材質
  • 利用藍圖建立具備基本功能的物體

爲了實際掌握這些知識點,咱們會動手寫個小例子:在遊戲場景建立一個轉檯,旋轉展現香蕉。編輯器

注意:本篇教程只是Unreal Engine 4系列教程的其中一篇:ide

安裝Unreal Engine 4引擎

Unreal Engine 4引擎須要經過Epic Games 啓動器來下載安裝。直接前往官網,點擊右上角的Get Unreal按鈕。svg

你須要先建立一個帳號,才能下載啓動器。建立完帳號後,根據操做系統下載對應的啓動器。函數

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

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

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

注意:Epic Game一直在更新Unreal Engine 4引擎,因此你下載的引擎版本可能跟教程中的不同。我剛開始寫這篇教程,引擎版本就更新到了4.14.3!不過只要你的引擎版本在4.14以上,這篇教程的內容仍是適用的。

安裝界面的默認選項是Starter ContentTemplates and Feature PacksEngine 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:當前材質可用的節點列表。

什麼是節點?

在開始製做材質前,你須要瞭解製做材質的基本元素:節點

節點構成了材質的總體。材質能夠擁有不少種類型的節點,各自具有不一樣功能。

節點擁有輸入和輸出,看起來像個帶箭頭的圓圈。左側是輸入,右側是輸出。

下面這個例子,用了個MultiplyConstant3Vector節點將貼圖改爲了黃色:

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

添加貼圖

爲了給模型添加顏色和細節,咱們須要添加貼圖。貼圖就是一張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

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

注意:由於PawnCharacter類也可以被放置、生成,它們也同屬於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面板。你可以看到CylinderStatic Mesh組件是有縮進的,DefaultSceneRoot則沒有。這樣由於前二者是DefaultSceneRoot節點的子節點。

若是移動、旋轉、縮放根節點,子節點也會一塊兒影響。利用這個特性,你就能一併控制CylinderStatic 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引擎的藍圖系統。

相關文章
相關標籤/搜索