Unreal Engine 4藍圖可視化編程
定價 49元
- 書 號: 978-7-115-45304-4
- 頁 數: 196
- 印刷方式: 黑白印刷
- 開 本: 16開
- 齣版狀態: 正在印刷
- 作者: style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;font-size: 14.0px;background-color: transparent;'>Brenden Sewell
- 譯者: style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;font-size: 14.0px;background-color: transparent;'>陳東林 責編: style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;font-size: 14.0px;background-color: transparent;'>鬍俊英
- 分類: target='_blank' style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;font-size: 14.0px;background-color: transparent;'>軟件開發 > target='_blank' style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;font-size: 14.0px;background-color: transparent;'>遊戲設計與開發
Unreal遊戲引擎的藍圖是一個強大的係統,它可以幫助用戶構建齣功能齊全的遊戲。本書以一個射擊遊戲為背景,從基本的遊戲力學原理、用戶界麵等內容講解瞭遊戲開發的全過程。
本書分為8章,分彆介紹瞭使用藍圖進行對象交互、升級玩傢的技能、創建屏幕UI元素、創建約束和遊戲性對象、使用AI製作移動的敵人、升級AI敵人、跟蹤遊戲狀態完成遊戲體驗、打包與發行等內容。
本書由經驗豐富的技術達人撰寫,非常適閤遊戲專業人士、計算機專業的學生以及想要從事遊戲設計相關工作的讀者閱讀。
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>版權
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>版權聲明
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>內容提要
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>推薦語
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>譯者序
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>作者簡介
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>審稿人簡介
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>前言
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>第1章 使用藍圖進行對象交互
- style='margin: 0.0px;padding: 0.0px;color: #9a8069;outline: 0.0px;box-sizing: border-box;background-color: transparent;'>第2章 升級玩傢的技能
- 第3章 創建屏幕UI元素
- 第4章 創建約束和遊戲性對象
- 第5章 使用AI製作移動的敵人
- 第6章 升級AI敵人
- 第7章 跟蹤遊戲狀態完成遊戲體驗
- 第8章 打包與發行
基本信息
- 作者: target='_blank' style='margin: 0.0px;padding: 0.0px;color: #0066aa;outline: 0.0px;cursor: pointer;'>羅丁力 張三
- 齣版社: target='_blank' style='margin: 0.0px;padding: 0.0px;color: #0066aa;outline: 0.0px;cursor: pointer;'>電子工業齣版社
- ISBN:9787121313493
- 上架時間:2017-4-20
- 齣版日期:2017 年4月
- 開本:16開
- 頁碼:316
- 版次:1-1
- 所屬分類: style='margin: 0.0px;padding: 0.0px;color: #3355aa;outline: 0.0px;cursor: pointer;'>計算機
編輯推薦
本書是虛幻引擎程序設計人員不可多得的好書!
內容簡介
target='_blank' style='margin: 0.0px;padding: 0.0px;color: #0066aa;outline: 0.0px;cursor: pointer;'> 書籍
target='_blank' style='margin: 0.0px;padding: 0.0px;color: #0066aa;outline: 0.0px;cursor: pointer;'> 計算機書籍
《大象無形:虛幻引擎程序設計淺析》以兩位作者本人在使用虛幻引擎過程中的實際經曆為參考,包括三大部分:使用C++語言進行遊戲性編程、瞭解虛幻引擎本身底層結構與渲染結構、編寫插件擴展虛幻引擎。提供瞭不同於官方文檔內容的虛幻引擎相關細節和有效實踐。有助於讀者一窺虛幻引擎本身設計的精妙之處,並能學習到定製虛幻引擎所需的基礎知識,實現對其的按需定製。
《大象無形:虛幻引擎程序設計淺析》適閤初步瞭解虛幻引擎編程,希望瞭解虛幻引擎本身架構或者希望定製和擴展虛幻引擎的讀者。
作譯者
羅丁力:電子科技大學在讀學生、騰訊課堂三巫教育課程作者。自UDK開始使用虛幻引擎,有多年的虛幻引擎使用經驗。
張三:多年遊戲開發經驗,資深UE4開發者,三巫社區創始人。
目錄
部分虛幻引擎C++編程1
第1章開發之前--五個常見基類2
1.1簡述2
1.2本立道生:虛幻引擎的UObject和Actor2
1.2.1UObject類2
1.2.2Actor類5
1.3靈魂與肉體:Pawn、Characterh和Controller6
1.3.1Pawn6
1.3.2Charactor7
1.3.3Controller7
第2章需求到實現9
2.1分析需求9
2.2轉化需求為設計10
第3章創建自己的C++類12
3.1使用UnrealEditor創建C++類12
3.2手工創建C++類14
3.3虛幻引擎類命名規則15
第4章對象16
4.1類對象的産生16
4.2類對象的獲取18
4.3類對象的銷毀18
第5章從C++到藍圖20
5.1UPROPERTY宏20
5.2UFUNCTION宏20
第6章遊戲性框架概述22
6.1行為樹:概念與原理22
6.1.1為什麼選擇行為樹22
6.1.2行為樹原理22
6.2虛幻引擎網絡架構26
6.2.1同步26
6.2.2廣義的客戶端-服務端模型27
第7章引擎係統相關類30
7.1在虛幻引擎4中使用正則錶達式30
7.2FPaths類的使用31
7.3XML與JSON32
7.4文件讀寫與訪問33
7.5GConfig類的使用35
7.5.1寫配置36
7.5.2讀配置36
7.6UE_LOG37
7.6.1簡介37
7.6.2查看Log37
7.6.3使用Log37
7.6.4自定義Category38
7.7字符串處理38
7.8編譯器相關技巧39
7.8.1"廢棄"函數的標記39
7.8.2編譯器指令實現跨平颱39
7.9Images40
第二部分虛幻引擎淺析45
第8章模塊機製46
8.1模塊簡介46
8.2創建自己的模塊47
8.2.1快速完成模塊創建47
8.2.2創建模塊文件夾結構48
8.2.3創建模塊構建文件49
8.2.4創建模塊頭文件與定義文件49
8.2.5創建模塊預編譯頭文件50
8.2.6引入模塊51
8.3虛幻引擎初始化模塊加載順序52
8.4道常無名:UBT和UHT簡介55
8.4.1UBT55
8.4.2UHT57
第9章重要核心係統簡介62
9.1內存分配62
9.1.1Windows操作係統下的內存分配方案62
9.1.2IntelTBB內存分配器63
9.2引擎初始化過程65
9.2.1引擎初始化簡介65
9.3並行與並發67
9.3.1從實驗開始68
9.3.2綫程71
9.3.3TaskGraph係統73
9.3.4Std::��read77
9.3.5綫程同步78
9.3.6多進程80
第10章對象模型81
10.1UObject對象81
10.1.1來源82
10.1.2重生:序列化83
10.1.3釋放與消亡92
10.1.4垃圾迴收94
10.2Actor對象99
10.2.1來源101
10.2.2加載104
10.2.3釋放與消亡105
第11章虛幻引擎的渲染係統107
11.1渲染綫程107
11.1.1渲染綫程的啓動108
11.1.2渲染綫程的運行108
11.2渲染架構109
11.2.1延遲渲染109
11.2.2延遲渲染在PostProcess中的運用110
11.3渲染過程111
11.3.1延遲渲染到終結果112
11.3.2渲染著色器數據提供123
11.4場景代理SceneProxy126
11.4.1邏輯的世界與渲染的世界126
11.4.2渲染代理的創建127
11.4.3渲染代理的更新128
11.4.4實戰:創建新的渲染代理128
11.4.5進階:創建靜態渲染代理132
11.4.6靜態網格物體渲染代理排序148
11.5Shader150
11.5.1測試工程150
11.5.2定義Shader152
11.5.3定義Shader對應的C++類153
11.5.4我們做瞭什麼162
11.6材質163
11.6.1概述164
11.6.2材質相關C++類關係166
11.6.3編譯167
11.6.4ShaderMap産生168
第12章Slate界麵係統170
12.1Slate的兩次排布170
12.2Slate的更新170
12.3Slate的渲染171
第13章藍圖173
13.1藍圖架構簡述173
13.2前端:藍圖存儲與編輯174
13.2.1Schema174
13.2.2編輯器175
13.3後端:藍圖的編譯176
13.4藍圖虛擬機187
13.4.1便箋紙與白領的故事187
13.4.2虛幻引擎的實現189
13.4.3C++函數注冊到藍圖193
13.5藍圖係統小結194
第三部分擴展虛幻引擎197
第14章引擎獨立應用程序198
14.1簡介198
14.2如何開始198
14.3BlankProgram199
14.4走得更遠202
14.4.1預先準備203
14.4.2增加模塊引用203
14.4.3添加頭文件引用203
14.4.4修改Main函數為WinMain204
14.4.5添加LOCTEXT_NAMESPACE定義204
14.4.6添加SlateStandaloneApplication204
14.4.7鏈接CoreUObject205
14.4.8添加一個Window205
14.4.9終代碼205
14.5剝離引擎獨立應用程序207
第15章插件開發208
15.1簡介208
15.2開始之前208
15.3創建插件210
15.3.1引擎插件與項目插件210
15.3.2插件結構210
15.3.3模塊入口213
15.4基於Slate的界麵213
15.4.1Slate簡介213
15.4.2Slate基礎概念214
15.4.3基礎的界麵214
15.4.4SNew與SAssignNew219
15.4.5Slate控件的三種類型220
15.4.6創建自定義控件222
15.4.7布局控件225
15.4.8控件參數與屬性227
15.4.9Delegate228
15.4.10自定義皮膚234
15.4.11圖標字體239
15.4.12組件繼承241
15.4.13動態控製Slot244
15.4.14自定義容器布局248
15.5UMG擴展255
15.6藍圖擴展261
15.6.1藍圖函數庫擴展261
15.6.2異步節點264
15.7第三方庫引用270
15.7.1lib靜態鏈接庫的使用270
15.7.2dll動態鏈接庫的使用273
第16章自定義資源和編輯器276
16.1簡易版自定義資源類型276
16.2自定義資源類型278
16.2.1切分兩個模塊278
16.2.2創建資源類281
16.2.3在Editor模塊中創建工廠類281 style='margin: 0.0px;padding: 0.0px;color: #0066aa;outline: 0.0px;cursor: pointer;'>↑摺 疊
前言
建德若偷,質真若渝。大方無隅,大器晚成。
大音希聲,大象無形。夫唯道善貸且成。
--老子,《道德經》
虛幻引擎作為業界一流的次時代引擎,開發瞭無數成功的作品。在短暫的計算機圖形學發展曆史上,虛幻引擎曆經四代,成為遊戲引擎界舉足輕重的成員之一。
但是虛幻引擎龐大而復雜的設計,阻礙瞭許多人學習的步伐。盡管有藍圖係統作為圖形化編程,降低瞭虛幻引擎的上手難度,但是當開發者們走入虛幻引擎的C++ 範疇,依然會感覺到無從下手。
因此,我決定和我的同事一起來撰寫本書。希望能夠藉助我們微薄之力,幫你理解龐大的虛幻引擎是如何工作的。筆者對本書內容的期望是,這是一本筆者在學習虛幻引擎時希望能夠獲得的書。同時也請明白,虛幻引擎的代碼量為五百萬行。本書篇幅不足以分析整個虛幻引擎的所有模塊,也無法地嚮讀者展示每段代碼的意義。相反地,本書立足於:展示引擎基本結構,即盡可能告訴讀者"它是這麼跑起來的",對於希望研究每一段代碼過程的讀者,本書會告知你如何尋找到對應的代碼。
本書主標題為"大象無形",《道德經》中有言:大器晚成,大音希聲,大象無形。
本書取"的設計對於使用者來說似乎感覺不到存在"和"的係統設計讓開發者不需要過多瞭解原理即能使用"這樣的含義。對於虛幻引擎而言,本書中介紹的很多知識,對於普通開發者來說似乎是"沒有感覺到存在"的東西,例如引擎的渲染係統,普通開發者幾乎隻需要簡單地完成導入和擺放就能使用,並不需要實際瞭解渲染係統的工作原理。
《遊戲開發的藝術:從零開始構建你的虛擬世界》 內容簡介 在這本深度探索的遊戲開發實踐指南中,我們將帶領你踏上一段從概念萌芽到成品問世的完整旅程。本書旨在為那些懷揣遊戲創作夢想,或是希望係統性提升遊戲開發技能的讀者提供一條清晰且紮實的學習路徑。我們不僅僅關注技術的實現,更強調設計理念、流程管理與團隊協作的重要性,力求讓你在掌握核心開發工具的同時,也能理解構建引人入勝遊戲體驗的深層原理。 第一部分:構思與設計——遊戲世界的藍圖 在著手任何開發之前,一個清晰且富有吸引力的遊戲概念是成功的基石。本部分將引導你完成從初步想法到詳細設計文檔的轉變。 創意激發與概念成型: 我們將探討多種激發遊戲創意的方法,從個人經曆、現有作品的啓示,到市場趨勢的分析。你會學習如何提煉核心玩法,定義遊戲的獨特賣點(USP),並初步勾勒齣遊戲的世界觀、故事背景和主要角色。 遊戲設計文檔(GDD)的撰寫: GDD是遊戲的“聖經”,它承載著遊戲的所有細節。本書將為你詳細解析GDD的構成要素,包括核心機製、關卡設計、用戶界麵(UI)/用戶體驗(UX)設計、經濟係統、多人模式(如果適用)等。我們將通過範例,教你如何清晰、準確地記錄設計意圖,使其能夠被開發團隊的每一位成員理解和執行。 原型開發與玩法驗證: 在正式開發前,快速構建一個可玩原型(Prototype)是驗證核心玩法的關鍵。本部分將介紹原型開發的目標、方法和常用工具,以及如何通過玩傢測試收集反饋,快速迭代並優化遊戲機製,避免後期大量返工。 第二部分:工具與技術——駕馭現代遊戲引擎 現代遊戲開發離不開強大的引擎支持。本部分將聚焦於當下業界主流的遊戲引擎,為你提供深入的技術解析與實踐指導。 引擎的選擇與基礎入門: 我們將對比分析不同遊戲引擎的特點、優勢以及適用場景,幫助你根據項目需求做齣明智的選擇。隨後,我們將從零開始,引導你熟悉所選引擎的基本界麵、常用工具和核心概念,如場景編輯器、資源管理、項目設置等。 核心編程與腳本係統: 無論是基於麵嚮對象的C++,還是更易於上手的腳本語言,本部分都將為你提供詳盡的講解。我們將深入剖析遊戲開發中最常見的編程模式和數據結構,例如遊戲狀態管理、輸入處理、碰撞檢測、AI行為腳本編寫等。通過大量的代碼示例和練習,你將能夠熟練運用編程邏輯實現各種遊戲功能。 可視化腳本的強大力量: 對於希望快速實現原型或對傳統編程有顧慮的開發者,本書將詳細介紹可視化腳本係統的使用。你將學習如何通過拖拽節點、連接邏輯綫來構建復雜的程序行為,理解其在實現特定功能時的效率和優勢,以及如何與傳統的代碼係統協同工作。 圖形渲染與視覺效果: 遊戲畫麵是吸引玩傢的第一道門檻。本部分將探討現代遊戲引擎的渲染管綫,包括光照模型、材質係統、後處理效果(如景深、運動模糊、色彩校正)、粒子係統和特效製作。你將學習如何創建逼真或風格化的視覺效果,並優化渲染性能。 物理引擎與交互: 真實的物理模擬能夠極大地增強遊戲的沉浸感。我們將介紹引擎內置的物理引擎,學習如何設置剛體、碰撞體、關節,實現各種物理交互,如物體墜落、彈跳、角色運動等。 音頻設計與集成: 聲音是構建遊戲氛圍的重要元素。本部分將講解如何在引擎中導入、管理和播放音效與音樂,如何實現空間音頻效果,以及如何通過音頻反饋來增強玩傢的操作感和遊戲的錶現力。 第三部分:內容創作與資産整閤 遊戲不僅僅是代碼,更是由豐富的視覺、聽覺內容組成的藝術品。本部分將聚焦於遊戲資産的創作流程和在引擎中的整閤。 3D建模與場景搭建: 我們將簡要介紹3D建模軟件的基本流程,以及如何創建高質量的遊戲模型。隨後,重點將放在引擎中的場景編輯器,學習如何將模型、地形、光照等元素組閤起來,構建齣豐富多樣的遊戲環境。 材質與紋理的藝術: 材質和紋理決定瞭物體錶麵的外觀。本部分將深入講解PBR(基於物理的渲染)材質的工作流程,如何創建和應用紋理貼圖(如Albedo、Normal、Roughness、Metallic),以及如何利用材質編輯器實現動態效果。 角色動畫與骨骼綁定: 賦予角色生命力是遊戲開發的挑戰之一。我們將介紹骨骼綁定(Rigging)的基本原理,以及如何在引擎中導入、應用和調整動畫,實現角色的行走、跳躍、攻擊等動作。 UI/UX設計與實現: 用戶界麵不僅要美觀,更要易用。本部分將指導你如何設計直觀的UI布局,創建各種UI元素(按鈕、滑塊、文本框),並實現動態交互,如菜單切換、HUD(平視顯示器)信息展示等。 關卡設計與流程編排: 好的關卡能夠引導玩傢,提供挑戰,並講述故事。本部分將結閤之前提到的GDD,深入探討關卡設計的基本原則、節奏控製、難度麯綫設計,以及如何在引擎中高效地搭建和優化關卡。 第四部分:優化、測試與發布 開發完成並非終點,而是一個新階段的開始。本部分將關注遊戲開發的後期工作,確保你的作品能夠以最佳狀態呈現在玩傢麵前。 性能優化技巧: 流暢的遊戲體驗是留住玩傢的關鍵。我們將探討各種性能瓶頸的常見原因,如CPU占用過高、GPU渲染壓力、內存泄漏等,並提供針對性的優化方法,包括Draw Call優化、LOD(細節層次)技術、遮擋剔除、內存管理等。 遊戲測試與Bug修復: 嚴謹的測試是保證遊戲質量的重要環節。本部分將介紹不同類型的遊戲測試(功能測試、兼容性測試、壓力測試、用戶體驗測試),以及如何有效地記錄、跟蹤和修復Bug,確保遊戲的穩定性。 打包與發布流程: 完成所有開發和測試後,就需要將遊戲打包成最終的可執行文件。本部分將指導你如何配置遊戲打包選項,針對不同平颱(PC、主機、移動端)進行適配,並完成最終的發布準備工作。 版本控製與團隊協作: 在團隊開發中,版本控製係統(如Git)是必不可少的工具。我們將講解版本控製的基本概念和工作流程,幫助你有效地管理代碼和資産,協同開發,避免衝突。 第五部分:進階主題與未來展望 在掌握瞭遊戲開發的基礎知識後,本部分將為你打開更廣闊的視野,探索遊戲開發的進階領域和未來發展趨勢。 AI與尋路算法: 智能的NPC(非玩傢角色)能夠極大地提升遊戲的代入感。我們將探討常見的AI算法,如狀態機、行為樹,以及如何在引擎中實現有效的尋路係統。 網絡多人遊戲開發基礎: 如果你的遊戲包含多人在綫模式,本部分將為你介紹網絡通信的基本原理、客戶端/服務器架構,以及如何實現基本的網絡同步。 程序化生成(Procedural Generation): 程序化生成技術能夠創建無限的遊戲內容,如地形、關卡、物品等,極大降低開發成本並增加遊戲的可重玩性。 現代遊戲開發的生態係統: 除瞭核心引擎,還有許多第三方工具、插件和服務能夠輔助你的開發。我們將介紹一些流行的生態係統工具,以及如何利用它們來提升效率。 遊戲設計的哲學與玩傢心理: 優秀的遊戲不僅僅是技術堆砌,更需要對玩傢心理的深刻理解。本部分將探討一些遊戲設計的哲學理念,以及如何通過設計來引導玩傢的情感和行為。 本書緻力於成為你遊戲開發道路上最可靠的夥伴,無論你是獨立的創作者,還是未來遊戲的開發者,都能從中汲取知識,獲得啓發,最終將腦海中的奇思妙想轉化為觸手可及的遊戲世界。讓我們一起,開啓這段充滿創造力的旅程。