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