Unity3D動作游戲開發(fā)實戰(zhàn)
定 價:79 元
- 作者:周尚宣
- 出版時間:2020/6/1
- ISBN:9787111657859
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP311.5
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
動作游戲作為一大熱門的游戲品類,一直不缺少玩家受眾歡迎。但其較高的工藝門檻、技術細節(jié)、復雜度等都阻礙了其開發(fā)進程。本書結合作者自身的研發(fā)經驗進行撰寫,從角色、戰(zhàn)斗、關卡、物理等多個剖面去解析動作游戲在研發(fā)中遇到的總總困難,盡可能的繞過或避免研發(fā)中的已知問題,*終幫助讀者在對于該品類游戲的理解與開發(fā)上提供助力。
長期以來,以動作游戲為核心的書籍一直較為匱乏。因此也成為了本書撰寫的契機。通過對本書的閱讀,不管是愛好動作游戲的獨立開發(fā)者,還是期望進一步提升自身能力的游戲從業(yè)者,相信您都能在其中有所收獲。
前言
第1篇 概述及前期準備
第1章 概述2
1.1 本書的側重點及目標2
1.2 Unity3D引擎在大環(huán)境中的發(fā)展現狀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 使用協(xié)程分解復雜邏輯9
2.1.2 自定義的插值公式10
2.1.3 消息模塊的設計12
2.1.4 模塊間的管理與協(xié)調13
2.2 基于編輯器環(huán)境的基礎知識14
2.2.1 編輯器工具的編寫15
2.2.2 關聯(lián)游戲配置數據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章 物理系統(tǒng)詳解36
3.1 物理系統(tǒng)基本內容梳理36
3.1.1 系統(tǒng)參數設置36
3.1.2 Fixed Update更新頻率37
3.1.3 Rigidbody參數簡介38
3.1.4 物理材質設置38
3.2 常見問題39
3.2.1 物理步的理解誤區(qū)39
3.2.2 重疊與擠出問題40
3.2.3 地面檢測優(yōu)化處理40
3.2.4 Dash與瞬移的優(yōu)化41
3.2.5 踩頭問題及解決方法42
3.2.6 動畫根運動的物理問題45
3.3 為動作游戲定制碰撞系統(tǒng)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章 主角系統(tǒng)設計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 常規(guī)功能72
4.2.1 角色有限狀態(tài)機72
4.2.2 設計掛接點接口73
4.2.3 技能系統(tǒng)74
4.2.4 連續(xù)技功能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 規(guī)劃層級結構83
5.1.3 模型的導出與調試84
5.2 開發(fā)階段深入解析85
5.2.1 SpawnPoint的使用85
5.2.2 擴展SpawnPoint87
5.2.3 對象池的編寫92
5.2.4 關卡模塊的序列化94
5.2.5 戰(zhàn)斗壁障的實現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優(yōu)化烘焙105
第6章 戰(zhàn)斗部分深入解析107
6.1 角色模塊107
6.1.1 Motor組件的設計107
6.1.2 動畫事件的處理110
6.1.3 Animator常見問題整理112
6.2 設計一個可擴展的戰(zhàn)斗系統(tǒng)114
6.2.1 基礎戰(zhàn)斗框架編寫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 使用協(xié)程來開發(fā)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 常規(guī)第三人稱相機實現136
7.1.3 滑軌相機的實現140
7.2 Cutscene過場動畫145
7.2.1 不同類型的Cutscene簡介146
7.2.2 使用Timeline146
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 著色器Shader160
8.1.1 3D游戲中的常見Shader160
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 Shader179
8.4.1 什么是Compute Shader179
8.4.2 語法及使用簡介179
8.4.3 使用案例181
第3篇 項目案例實戰(zhàn)
第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 《戰(zhàn)神3》案例剖析211
9.3.1 吸魂效果的再實現211
9.3.2 鏈刃伸縮效果的再實現216
9.3.3 赫利俄斯照射的再實現220
第10章 橫版動作游戲Demo設計227
10.1 規(guī)劃與調配227
10.1.1 簡要規(guī)劃227
10.1.2 資源準備228
10.1.3 項目配置228
10.2 基礎框架的整合231
10.2.1 戰(zhàn)斗模塊的整合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