Unity3D 動作游戲開發實戰

周尚宣

買這商品的人也買了...

商品描述

動作遊戲作為一大熱門的遊戲品類,一直不缺少玩家受眾歡迎。
但其較高的工藝門檻、技術細節、複雜度等都阻礙了其開發進程。
本書結合作者自身的研發經驗進行撰寫,從角色、戰鬥、關卡、
物理等多個剖面去解析動作遊戲在研發中遇到的總總困難,
盡可能的繞過或避免研發中的已知問題,#終幫助讀者在對於該品類游戲的理解與開發上提供助力。
長期以來,以動作遊戲為核心的書籍一直較為匱乏。
因此也成為了本書撰寫的契機。通過對本書的閱讀,不管是愛好動作遊戲的獨立開發#者,
還是期望進一步提升自身能力的遊戲從業者,相信您都能在其中有所收穫。

目錄大綱

目錄
前言
第1篇概述及前期準備
第1章概述2
1.1本書的側重點及目標2
1.2 Unity3D引擎在大環境中的發展現狀4
1.3 Steam、獨立遊戲及動作遊戲的現狀5
1.3.1 Steam*台簡介5
1.3.2國內獨立遊戲的開端6
1.3.3細看動作類獨立遊戲6
1.4設計目標:大而全還是小而精7
1.4.1資源復用7
1.4.2捨棄不必要的維度8
1.4 .3選擇合適的題材8

第2章前期準備9
2.1通用預備知識9
2.1.1使用協程分解複雜邏輯9
2.1.2自定義的插值公式10
2.1.3消息模塊的設計12
2.1.4模塊間的管理與協調13
2.2基於編輯器環境的基礎知識14
2.2.1編輯器工具的編寫15
2.2.2關聯遊戲配置數據19
2.2.3常量生成器22
2.3 3D遊戲所需要的數學知識24
2.3.1向量加減24
2.3.2點乘25
2.3.3叉乘26
2.3.4投影27
2.3.5四元數28
2.4其他準備29
2.4.1關注項目中的GC問題29
2.4.2控制台工具的編寫31
2.4.3項目目錄結構建議32
2.4.4項目的程序流程結構建議33

第2篇動作遊戲核心模塊
第3章物理系統詳解36
3.1物理系統基本內容梳理36
3.1.1系統參數設置36
3.1.2 Fixed Update更新頻率37
3.1.3 Rigidbody參數簡介38
3.1.4物理材質設置38
3.2常見問題39
3.2.1物理步的理解誤區39
3.2.2重疊與擠出問題40
3.2.3地面檢測優化處理40
3.2.4 Dash與瞬移的優化41
3.2.5踩頭問題及解決方法42
3.2.6動畫根運動的物理問題45
3.3為動作遊戲定制碰撞系統46
3.3.1設計目標46
3.3.2 OBB碰撞檢測簡介47
3.3.3 Box與Box相交測試47
3.3.4 Box與Sphere相交測試50
3.3.5 Sphere與Sphere相交測試52
3.3.6不同形狀的邊界點獲取52
3.3.7碰撞對像管理器56

第4章主角系統設計58
4.1基礎要素58
4.1.1同類游戲對比58
4.1.2邏輯編寫前的準備工作59
4.1.3移動邏輯59
4.1.4跳躍邏輯65
4.1.5攻擊邏輯67
4.1.6受擊邏輯69
4.1.7應對腳本類爆#炸的問題71
4.2常規功能72
4.2.1角色有限狀態機72
4.2.2設計掛接點接口73
4.2.3技能係統74
4.2.4連續技功能75
4.3場景互動部分78
4.3.1角色凍結78
4.3. 2場景互動組件79

第5章關卡部分詳解82
5.1前期考量82
5.1.1從Graybox說起82
5.1.2規劃層級結構83
5.1.3模型的導出與調試84
5.2開發階段深入解析85
5.2.1 SpawnPoint的使用85
5.2.2擴展SpawnPoint 87
5.2.3對像池的編寫92
5.2.4關卡模塊的序列化94
5.2.5戰鬥壁障的實現99
5.3光照與烘焙102
5.3.1不同GI類型的選擇102
5.3 .2預計算光照的使用103
5.3.3光照探針的使用104
5.3.4反射探針簡要介紹104
5.3.5借助LPPV優化烘焙105

第6章戰鬥部分深入解析107
6.1角色模塊107
6.1.1 Motor組件的設計107
6.1.2動畫事件的處理110
6.1.3 Animator常見問題整理112
6.2設計一個可擴展的戰鬥系統114
6.2.1基礎戰鬥框架編寫115
6.2.2添加傷害傳遞邏輯117
6.2.3配置傷害碰撞120
6.2.4僵直度組件的添加121
6.2.5浮空組件的添加123
6.3敵人AI的設計125
6.3.1 AI設計綜述125
6.3.2 Behavior Designer插件簡介127
6.3.3使用協程來開發AI程序128
6.3.4可控制的隨機行為131
6.3.5設計共享數據段132
6.3.6場景信息的獲取133

第7章其他模塊135
7.1相機135
7.1.1常見的相機模式分類135
7.1.2常規第三人稱相機實現136
7.1.3滑軌相機的實現140
7.2 Cutscene過場動畫145
7.2.1不同類型的Cutscene簡介146
7.2.2使用Timeline 146
7.2.3使用腳本過場動畫148
7.3輸入、IK與音頻管理149
7.3.1 InControl插件的使用149
7.3.2 Final-IK插件的使用151
7.3.3音頻管理153

第8章畫面特效與後處理160
8.1著色器Shader 160
8.1.1 3D遊戲中的常見Shader 160
8.1.2死亡徑向溶解效果161
8.1.3受擊邊緣泛光效果164
8.1.4基於屏幕門的抖動透明166
8.2 CommandBuffer的使用169
8.2.1 CommandBuffer簡介169
8.2.2製作主角特顯效果171
8.3後處理175
8.3.1 PPS後處理工具175
8.3.2編寫自己的後處理腳本177
8.4計算著色器Compute Shader 179
8.4. 1什麼是Compute Shader 179
8.4.2語法及使用簡介179
8.4.3使用案例181

第3篇項目案例實戰
第9章案例剖析190
9.1 《忍者龍劍傳∑2》案例剖析190
9.1.1斷肢效果的再實現190
9.1.2流血噴濺程序的再實現193
9.1.3角色殘影效果的再實現202
9.2 《君臨都市》案例剖析206
9.2.1通用動作方案設計206
9.2.2組合攻擊的再實現207
9.3 《戰神3》案例剖析211
9.3.1吸魂效果的再實現211
9.3.2鏈刃伸縮效果的再實現216
9.3.3赫利俄斯照射的再實現220

第10章橫版動作遊戲Demo設計227
10.1規劃與調配227
10.1.1簡要規劃227
10.1.2資源準備228
10.1.3項目配置228
10.2基礎框架的整合231
10.2.1戰鬥模塊的整合231
10.2.2動畫事件的整合232
10.3玩家邏輯的整合233
10.3. 1輸入邏輯封裝233
10.3.2玩家邏輯的編寫234
10.4敵人邏輯的編寫241
10.4.1基礎邏輯的編寫241
10.4.2遊走邏輯的編寫244
10.4.3受擊邏輯的編寫246
10.5構建遊戲247
10.5 .1預製體的組裝247
10.5.2出生點邏輯的編寫248
10.5.3回顧與總結249