本書一共13章,主要介紹了使用虛幻引擎和C 開發(fā)游戲的一些基本功能,與其他主要介紹藍圖的圖書不同,本書側重代碼開發(fā)。本書內容主要包括創(chuàng)建項目、UE藍圖、UE類及UE智能指針、C 容器和C 智能指針、UE腳本基礎、Gameplay框架、圖形用戶界面基礎、天空盒、搖桿、光影、地形系統(tǒng)、尋路技術、網絡基礎等,最后是一個完整的游戲示例,供讀者實踐學習。 本書適合作為高等院校、高等職業(yè)院校虛擬現實、軟件工程、游戲開發(fā)等專業(yè)的教材,也可作為游戲開發(fā)、虛擬現實的愛好者和從業(yè)者的自學用書。本書封面貼有清華大學出版社防偽標簽,無標簽者不得銷售。
本書作者有十余年的教學和研發(fā)經驗,深深感到授人以魚不如授人以漁,因此本書不是工具書,不會事無巨細;本書是VR游戲開發(fā)者和游戲開發(fā)者的助手,C 新知識、UE引擎操控對象,是從業(yè)者的視角而不僅是教學視角,本書將助力您習得游戲的設計和開發(fā)的思路。
黨的二十大指出推動戰(zhàn)略性新興產業(yè)融合集群發(fā)展,構建新一代信息技術、人工智能、生物技術、新能源、新材料、高端裝備、綠色環(huán)保等一批新的增長引擎。虛擬現實是新一代信息技術的重要前沿方向,是數字經濟的重大前瞻領域。虛幻引擎作為虛擬現實重要的開發(fā)技術,在虛擬現實產業(yè)發(fā)展中起著舉足輕重的作用。
虛幻引擎(Unreal Engine,UE)是由Epic Game公司開發(fā)的一款開源、商業(yè)收費、學習免費的游戲引擎。虛幻引擎功能強大、上手簡單、易用性高,尤其側重于數據生成和程序編寫。虛幻引擎還為程序員提供了一個具有先進功能、可擴展性的應用程序框架,用于建立、測試和發(fā)布各種類型的游戲。
基于藍圖模式,設計師只需要程序員很少量的協(xié)助,就能夠在完全可視化環(huán)境中盡可能多地開發(fā)游戲的數據資源,實際操作非常便利。這方面的書籍已經出版了很多,本書主要是從程序員角度進行編寫。
本書面向計算機、虛擬現實(Virtual Reality, VR)技術等學科,主要介紹代碼編程模式,著重C 編程開發(fā)。本書的第1~4章,主要介紹虛幻引擎入門和虛幻引擎的C 開發(fā);第5~13章,主要介紹虛幻引擎中常用功能。其中,第1~4章會帶領讀者逐步上手虛幻引擎,
通過各種小案例,讓讀者能夠做出簡單可運行的項目;在C 開發(fā)介紹部分包含C 基礎和C 進階,即使是C 基礎不好的讀者也能很容易了解UE C 。在第5~13章中,編者挑選了游戲制作中常用到的功能進行介紹,如圖形用戶界面、天空盒、筆刷、霧效、音頻和光影效果等。讀者有了這些基礎,結合手柄組件,就可以進行VR方面的程序設計和游戲開發(fā)。最后,本書講解了一個完整的VR游戲案例,以便讀者學以致用。
此外,本書主基于UE 5.0進行講解,為了避免出現教學過程中由于版本不一致導致的錯誤,讀者使用UE時最好能采用與教材相同版本。本書旨在帶領讀者學習并使用虛幻引擎,建議讀者在學習過程中多加練習,跟隨書中操作使用虛幻引擎,希望讀者在學習完本書之
后能夠較為熟練地使用虛幻引擎開發(fā)項目,能夠開啟自己的游戲開發(fā)之旅,實現自己進入虛擬現實產業(yè)之理想。
本書在編寫過程中得到了廈門雅基的王哲、蘇琳,廈門觸控未來的林釔地、白耀輝、汪翠芳以及清華大學出版社編輯的大力支持和幫助。學生張錢成、徐凱、唐巧興等參與了本書第2章、第3章、第7章以及部分案例的編寫,特此感謝。
由于編者時間有限,書中不足之處在所難免,歡迎廣大讀者批評、指正,并提出寶貴的建議,在此一并表示感謝。
編者
2023年1月
李華旸,博士,副教授,畢業(yè)于華中科技大學計算機與理論專業(yè),江西財經大學VR產業(yè)學院副院長,軟件工程游戲方向負責人,曾發(fā)表學術論文十余篇,主持省級項目和橫向課題多項,有較好理論基礎和實踐能力,熟悉C 、C#、python、javascript等。
第1章 Unreal Engine基礎1
1.1 環(huán)境搭建 .1
1.2 項目創(chuàng)建 .4
1.3 編輯器基礎 .10
1.4 工具和編輯器 .12
1.5 本章小結 15
第2章 藍圖16
2.1 基礎知識:藍圖 16
2.2 實戰(zhàn)練習:控制場景中門的
開啟和關閉 19
2.3 本章小結 26
第3章 C 基礎27
3.1 基礎知識:現代C 基礎 27
3.2 基礎知識:UE的C 類層級結構 48
3.3 基礎知識:UE中的宏定義 50
3.4 基礎知識:UE中的字符串 58
3.5 本章小結 59
第4章 C 進階60
4.1 基礎知識:UE中的容器 60
4.2 基礎知識:UE中的智能指針庫 69
4.3 實戰(zhàn)練習:創(chuàng)建和刪除C 類 77
4.4 本章小結 .81
第5章 UE腳本程序基礎知識82
5.1 Unreal Engine腳本概述 82
5.2 Unreal Engine中C 腳本的注意事項 .82
5.3 Unreal Engine腳本的基礎語法 83
5.4 本章小結 113
第6章 Gameplay框架114
6.1 Gameplay簡介 114
6.2 基礎類 .116
6.3 GameInstance和Engine類 .119
6.4 Pawn和Character 120
6.5 Controller 121
6.6 GameMode和GameState 126
6.7 GameInstance .128
6.8 Gameplay框架總結 .130
6.9 本章小結 133
第7章 圖形用戶界面基礎134
7.1 基礎知識:基本概念 134
7.2 基礎知識:基本控件類型參考 134
7.3 UMG與C 交互案例 149
7.4 本章小結 154
第8章 3D游戲開發(fā)常用技術155
8.1 天空盒及其應用 .155
8.2 幾何體筆刷Actor 159
8.3 霧效 .165
8.4 虛擬搖桿 170
8.5 音頻文件 172
8.6 UE中的Sound Cue 172
8.7 C 播放音頻 .175
8.8 本章小結 176
第9章 材質編輯器177
9.1 材質基礎 177
9.2 材質表達式 181
9.3 常用材質運算節(jié)點 .182
9.4 材質輸入 183
9.5 本章小結 185
第10章 光影效果186
10.1 光源類型 .186
10.2 光照貼圖UV196
10.3 反射環(huán)境 .200
10.4 環(huán)境法線貼圖 216
10.5 本章小結 .218
第11章 地形與尋路技術219
11.1 地形的創(chuàng)建 219
11.2 托痕渲染器Trail Renderer 231
11.3 尋路系統(tǒng) .246
11.4 本章小結 .260
第12章 網絡開發(fā)基礎261
12.1 網絡概述 261
12.2 Unreal Engine網絡開發(fā)案例 262
12.3 本章小結 269
第13章 ARPG游戲項目實戰(zhàn)270
13.1 游戲菜單、賬號注冊、登錄等頁面的制作 270
13.2 賬號注冊和登錄 275
13.3 角色顯示 .280
13.4 角色動畫制作 284
13.5 動畫事件處理 292
13.6 角色動作控制 296
13.7 玩家攻擊邏輯處理 300
13.8 敵人及敵人創(chuàng)建 303
13.9 敵人AI及Boss的AI .308
13.10 本章小結 315
參考文獻316