書中按照游戲項目開發(fā)的流程編排內(nèi)容,用一個綜合實例貫穿全書,詳細(xì)介紹了藍圖的應(yīng)用、游戲基礎(chǔ)邏輯的編寫、UI的制作、AI的開發(fā)、動畫的制作、C 開發(fā)等知識。
內(nèi)容全面、講解細(xì)致。通過案例詳細(xì)介紹了藍圖的應(yīng)用、游戲基礎(chǔ)邏輯的編寫、UI的制作、AI的開發(fā)、動畫的制作、C 開發(fā)等核心內(nèi)容,后介紹了如何進一步提升技術(shù)水平的途徑和方法。 書中充分考慮到初學(xué)者的實際情況,在寫作時嚴(yán)格遵循SCQA原則,在每節(jié)的開頭都會先講使用的背景(需求),然后圍繞這個需求來提出解決方案,再引出對應(yīng)的知識點,這種學(xué)習(xí)方式效率高,實戰(zhàn)性強。 用一個完整的游戲案例貫穿全書,跟著這本書做完所有示例,后也就完整地做完了一個游戲。這樣的好處有兩個:一是通過制作范例,能將知識融會貫通;二是一個完整的游戲范例可以讓讀者了解到每個部分的知識是被用在游戲開發(fā)中的哪一處,處于什么地位,以后怎么舉一反三。
前 言
Unreal Engine(虛幻引擎,簡稱UE)是一款先進的實時3D創(chuàng)作工具,可制作逼真的視覺效果和沉浸式體驗,從設(shè)計可視化和電影式體驗,到制作PC、主機、移動設(shè)備、VR和AR平臺上的高品質(zhì)游戲,Unreal Engine都能為創(chuàng)作者提供支持。這本書在講什么在本書中,主要回答下面幾個問題:● UE5是什么● UE5入門要掌握些什么知識● 在本書中會制作一個怎樣的游戲●UE5是什么在介紹UE5之前,先了解一下游戲引擎是什么?當(dāng)前的游戲引擎是一個什么概念?在早期,開發(fā)者如果想要讓自己開發(fā)的游戲運行在不同的平臺上,或許就要準(zhǔn)備不同的代碼。比如,在Android系統(tǒng)中編寫程序一般用的是Java或者C 語言;在iOS平臺中編寫程序用的則是Object-C或者Swift語言。這會讓一個團隊的代碼開發(fā)量變成單平臺開發(fā)的好幾倍。而當(dāng)前的引擎則解決了這個問題,開發(fā)者只需要編寫一套游戲代碼,就可以發(fā)布到不同的游戲平臺上,節(jié)省了很多開發(fā)的時間,UE5就是這樣一款引擎。另外,隨著引擎的發(fā)展,現(xiàn)在的引擎還繼承了很多方便的功能,比如:注重開發(fā)管線的集成。簡單來說,就是使用一個引擎,美術(shù)人員可以在上面進行場景設(shè)計、制作角色動畫等操作;策劃人員可以在上面配置游戲?qū)傩;程序員可以在上面編寫游戲代碼。注重生態(tài)的建設(shè),F(xiàn)在的引擎一般都帶有插件市場,用戶可以通過市場購買、下載和使用覺得有用的插件,避免自己造輪子,從而提高開發(fā)效率;也可以自己編寫和發(fā)布插件,放在插件市場售賣。本書的前三章會簡單地介紹UE5的基礎(chǔ)知識,并對引擎的界面、藍圖的基本操作進行詳細(xì)講解,為后面進入實戰(zhàn)打下堅實的基礎(chǔ)!馯E5入門要掌握些什么知識想要完整地做出游戲,需要掌握的知識包括并不限于:游戲世界規(guī)則的搭建、游戲中的UI、游戲中的AI、角色的動畫和表現(xiàn)、游戲打包和優(yōu)化等。其中,前四項是一個UE5開發(fā)者在開發(fā)游戲之前必須要掌握的。所以在本書中,我們會重點介紹下面這些知識,并且使用這些知識來完成我們的游戲:● 使用藍圖開發(fā)游戲邏輯藍圖是自UE4以來就有的一款腳本語言。與其他傳統(tǒng)的語言相比,藍圖編程的特點是通過拖拖拽拽就能完成。用戶不是在寫代碼,而是在畫代碼通過函數(shù)節(jié)點的組合來創(chuàng)建邏輯,因此對于新手來說,藍圖的學(xué)習(xí)成本非常低。在本書的第4章,會深入地講解如何在UE5中使用藍圖來開發(fā)邏輯,然后制作游戲的基礎(chǔ)運行邏輯! 使用UE5中的UMG進行UI(用戶界面)的開發(fā)UI即User Interface,中文是用戶界面。游戲中的用戶界面指的是顯示在屏幕上的可交互的信息(如按鈕),或不可交互的信息(如一系列文字和圖片)。游戲中的分?jǐn)?shù)、玩家背包、設(shè)置界面等,這些都屬于用戶界面。本書的第5章,會介紹如何用UE5中的UMG來制作UI,并且建立一個UI界面來顯示廚房訂單和玩家分?jǐn)?shù)等信息! 使用UE5進行AI開發(fā)AI的中文是人工智能,全稱為Artificial Intelligence。所謂的AI,就是讓個體擁有自己的智慧,去完成某個方面的決策,并比較合理地完成任務(wù)。在游戲領(lǐng)域中,人工智能使用得非常廣泛,你在游戲中遇到的NPC(None-Player Character,也就是非玩家角色),都是AI驅(qū)動的:● 你的敵人。比如《DotA》、《英雄聯(lián)盟》中的人機局,你的對手就是幾個非常復(fù)雜的AI! 你的隊友。比如《戰(zhàn)神4》中的主角的兒子,可以輔助你戰(zhàn)斗! 一個自動速通的示范角色。比如《喵斯快跑》中的一個能夠自動完美通關(guān)角色。目前的AI主要分為兩種:像AlphaGo,其實是屬于學(xué)習(xí)型AI,它通過大量的機器學(xué)習(xí)得到終的運算模型;另一種是傳統(tǒng)型AI。傳統(tǒng)型AI需要制作者人工制定詳盡的決策規(guī)則,比如設(shè)定它的任務(wù)和目標(biāo),設(shè)定它遇到特定的外界刺激時要做出什么反應(yīng)等。游戲中的大多數(shù)AI一般都是用這種方式制作的,能夠滿足大多數(shù)的要求。本書要講的,就是傳統(tǒng)型AI。在UE5中,默認(rèn)使用的傳統(tǒng)型AI是行為樹架構(gòu)。在本書的第6章,會講解UE5中的AI系統(tǒng)、行為樹是怎么設(shè)計的,以及怎么使用UE5的AI系統(tǒng)來為角色制定它的行動模式。● UE5中的角色動畫游戲中的角色是怎么跑動、跳動以及做其他動作的呢?這就需要給角色設(shè)置在不同情況下播放的動畫。在第7章中會介紹UE5中的動畫系統(tǒng),并且介紹如何讓機器人在處理食材的時候播放處理的動畫!裨诒緯袝谱饕粋怎樣的游戲在本書中會構(gòu)建一個廚房場地,放置一些食材,然后讓一個機器人能夠在場景中自動跑動、獲取和處理食材、將食材組合起來完成食客的訂單,并獲取分?jǐn)?shù)。入門之后如何繼續(xù)進步學(xué)完前面的幾章內(nèi)容之后,你已經(jīng)具有了一個UE5入門者應(yīng)當(dāng)有的能力,并且能夠制作一個屬于自己的較為簡單的游戲了。那么接下來要如何繼續(xù)精進呢?書中會推薦幾種方法,照著這幾種方法做下去,你的UE5開發(fā)能力就能繼續(xù)提高。學(xué)習(xí)C 語言。我們要更加深入地了解UE5引擎,就得去了解UE5本身是怎么運行的。UE5是使用C 語言實現(xiàn)的,所以如果想讓自己的UE5開發(fā)之路走得更遠,一定要學(xué)習(xí)C 。前面幾章的游戲內(nèi)容都是通過藍圖實現(xiàn)的,但某些邏輯在藍圖中實現(xiàn)不了,必須用C 編程才能實現(xiàn)。我們會在第8章詳細(xì)介紹如何在UE5中使用C 。除此之外,在第9章介紹了其他的一些能夠?qū)W習(xí)UE5的途徑(比如一些很有用的博客和網(wǎng)站),以及成為一個成熟的UE5開發(fā)者需要掌握的知識。為什么要選擇本書作為你的本UE5教程你可能經(jīng)歷過這種窘境:學(xué)習(xí)或工作中遇到某個問題,想在網(wǎng)上搜索資料,雖然找到了相關(guān)內(nèi)容,但在看完之后還是一知半解。真正能讓讀者看懂的文章,應(yīng)該是有頭有尾,有故事有結(jié)局有總結(jié)的。網(wǎng)上的文章有的是筆記式的,只記錄文章作者自己認(rèn)為關(guān)鍵的點;有的文章則是默認(rèn)讀者已經(jīng)有了一定的基礎(chǔ),上來就長篇大論,展開來講很高深的知識。相信很多人在看完這兩種文章后仍然處于不懂的狀態(tài)。真正能讓一個初學(xué)者好吸收的資料,應(yīng)該遵守SCQA原則,也就是背景沖突問題回答。讀書的時候我們常有類似的疑問:學(xué)會解決這道題究竟有啥用?如果搞不明白要學(xué)習(xí)的東西究竟有什么用處,那么學(xué)習(xí)起來既缺乏動力,沒有目標(biāo),也不知道要學(xué)到什么程度。所以,脫離了實際問題的知識,是難以吸收的,很難融入現(xiàn)有的知識體系,也很難讓學(xué)習(xí)的人真正提起興趣。書中在每節(jié)的開頭都會先講使用的背景(需求),然后圍繞這個需求來提出解決方案,再引出對應(yīng)的知識點。還有很重要的一點:書中會用一個游戲案例貫穿始終,跟著這本書做完所有示例,后也就完整地做完了一個游戲。這樣的好處有兩個:一是通過制作范例,能將知識融會貫通,畢竟實踐出真知;二是一個完整的游戲范例可以讓我們了解到每個部分的知識是被用在游戲開發(fā)中的哪一處,處于什么地位,以后怎么舉一反三。在配套資源的示例工程中,每一個工程文件都是該章節(jié)終完成的效果。如果有讀者想要直接從第3章開始學(xué)習(xí),可以加載已經(jīng)完成的第2章的示例工程文件;如果想要從第4章開始學(xué)習(xí),可以加載第3章的示例工程文件,以此類推。后祝大家學(xué)習(xí)愉快!
左未2023年5月
左未,擁有多年UnrealEngine游戲引擎開發(fā)經(jīng)驗。從大學(xué)開始就一直從事游戲開發(fā),到現(xiàn)在已經(jīng)有8年。擅長AI以及架構(gòu)。曾參與多款熱門游戲的開發(fā)。