Unity3D動作游戲開發實戰( 簡體 字) | |
作者:周尚宣 編著 | 類別:1. -> 多媒體 -> 遊戲引擎 -> Unity |
出版社:機械工業出版社 | 3dWoo書號: 52946 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:6/1/2020 | |
頁數: | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111657859 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第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 本書結合作者多年的開發經驗,從角色、戰斗、關卡和物理等多個層面深入解析動作游戲開發中的各種難點問題。本書盡可能避開動作游戲開發中的簡單問題,而是把重點放在剖析難點問題上,從而幫助讀者更加深入地理解動作游戲開發的相關知識。
本書共10章。第1章簡要介紹動作游戲的發展和現狀;第2章介紹動作游戲開發的前期準備;第3章深入介紹動作游戲的物理系統;第4章介紹動作游戲主角系統的設計;第5章深入介紹動作游戲關卡部分的設計;第6章深入介紹動作游戲戰斗部分的設計;第7章介紹動作游戲的相機、Cutscene過場動畫、輸入、IK與音頻管理等模塊;第8章介紹動作游戲的畫面特效與后處理;第9章對《忍者龍劍傳∑2》《君臨都市》《戰神3》三個動作游戲案例進行剖析;第10章介紹橫板動作游戲的Demo設計。 本書內容豐富,知識體系完整,非常適合所有想學習動作游戲開發的人員閱讀,尤其適合從事動作游戲開發的程序員、Unity3D工程師和Steam游戲從業人員閱讀。另外,本書還可以作為相關院校及社會培訓機構的教材。 本書特色 內容豐富:圍繞核心模塊,全面、系統地介紹動作游戲開發的相關知識。 重點突出:圍繞角色、戰斗、關卡和物理等核心內容多角度展開講解。 實用性強:匯聚作者多年的游戲開發實戰經驗,將開發理念運用于實踐之中。 案例經典:分析三款經典游戲大作,剖析動作游戲開發的技術難點。 配套資源獲取方式 本書涉及的源代碼及案例工程文件需要讀者自行下載,請按照前言中的詳細說明進行獲取。 隨著Unity3D這類通用游戲引擎的出現,越來越多制作精良的獨立游戲逐漸出現在玩家視野當中。在游戲商業化如此發達的今天,越來越多的開發者或開發團隊受獨立游戲創意及藝術性的感召,嘗試開發并發布了一些相關作品。動作游戲作為一大熱門游戲品類,一直不缺少玩家,但其較高的工藝門檻、技術細節和復雜度等都阻礙了其開發進程。長期以來,以動作游戲為核心的書籍較為匱乏。基于此,作者編寫了本書。
本書結合作者多年的游戲開發經驗,并結合Unity3D引擎,對動作游戲這個玩家需求較高的類型進行了深入講解。書中圍繞與動作游戲有關的幾大核心模塊、技術選型和前期設計等內容進行講解,幫助讀者揚長避短、繞開彎路,而不是把精力放在一些不重要的環節,從而避免事倍功半。 希望本書能對廣大動作游戲開發愛好者有所幫助,帶領他們深入學習并理解動作游戲開發技術,提高開發水平,從而開發出自己想要的動作游戲。 本書特色 1.著重于實現原理的分析,而非堆砌插件 Unity3D引擎擁有數量眾多的插件及開源庫供開發者選擇,但過多使用這些外部擴展插件及庫會導致項目中出現功能冗余、擴展受限、運行不穩定等問題。對于諸如相機、角色、碰撞和AI等核心模塊,即使運用插件,也需要對其內部機制十分了解才行。因此本書在這些關鍵模塊的講解上直接從基礎代碼入手,著重對原理進行分析拆解,從而幫助讀者為構建一個穩定且易于擴展的腳本體系打好基礎。 2.重點突出,涵蓋核心內容 本書圍繞角色、物理、關卡、戰斗和AI等多個動作游戲的核心內容進行講解,涵蓋游戲研發中的大部分環節,讀者可以隨時根據模塊內容進行查閱,從而高效解決實際問題。 3.深入介紹動作游戲開發中的各項技術細節 本書對動作游戲開發中出現較頻繁和典型的技術細節進行深入講解,其中包括角色踩頭、根運動問題、Dash沖刺穿墻、浮空僵直及角色殘影等,這可以為游戲細節的打磨添磚加瓦。 4.結合實戰案例講解分析 本書最后兩章分別從經典作品分析及自制Demo開發兩個方向進行動作游戲實戰案例解析,從而幫助讀者加深和鞏固對動作游戲不同模塊的認識。 5.提供答疑解惑服務 本書提供答疑解惑電子郵箱hont127@163.com和hzbook2017@163.com。讀者在閱讀本書的過程中若有疑問,可以發送電子郵件獲得幫助。 本書內容 第1篇 概述及前期準備 本篇包括第1、2章,首先介紹Unity3D引擎的發展,以及獨立游戲和動作游戲的現狀,并結合現狀給出設計方向指引,然后在前期準備部分對動作游戲開發的常用基礎工具、數學知識和目錄項目結構等內容進行梳理和講解。 第2篇 動作游戲核心模塊 本篇包括第3~8章,主要介紹動作游戲開發中的幾個核心模塊,并圍繞這些模塊進行功能講解。主要包括物理系統、主角操控邏輯、有限狀態機、連續技、對象池、關卡序列化、戰斗系統、敵人AI設計、相機功能、輸入管理和敵人死亡特效等。 第3篇 項目案例實戰 本篇包括第9、10章,主要從經典游戲案例及自制Demo兩個方面進行實戰剖析。經典游戲案例部分主要針對一些技術特性進行分析;自制Demo部分將從零開始完成一款橫版2D游戲的Demo開發,涉及對前面各章節主要內容的整合使用。 配書資源 本書涉及的源代碼及案例工程文件需要讀者自行下載。請在華章公司的網站(www.hzbook.com)上搜索到本書,然后單擊“資料下載”按鈕,即可在本書頁面上的“擴展資源”模塊找到下載鏈接。 讀者對象 * 想系統學習動作游戲開發的人員; * 動作游戲研發從業人員; * Unity3D工程師; * Steam游戲開發及相關從業人員; * 各類院校相關專業的學生; * 社會培訓機構的相關學員。 閱讀建議 * 讀者最好具備一定的Unity3D引擎與C#語言基礎,以便更加順利地閱讀本書; * 讀者最好先了解動作游戲開發的大體流程及所需模塊,然后再進行學習; * 讀者應對狀態機、行為樹、手柄適配及序列化等內容有一定了解,這樣學習效果更好; * 讀者可以結合所學內容制作一些測試項目進行練習,以熟能生巧。 本書作者 本書由周尚宣編寫。作者長期從事Unity3D游戲開發,尤其熱愛動作游戲,在業余時間不斷地進行相關研究并制作了大量不同種類的動作游戲Demo。由于本書寫作時間有限,書中可能還存在一些疏漏與不足之處,懇請各位讀者指正。 |