游戲開發與設計技術叢書Unity虛擬現實開發實戰(原書第2版) 版權信息
- ISBN:9787111650836
- 條形碼:9787111650836 ; 978-7-111-65083-6
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
游戲開發與設計技術叢書Unity虛擬現實開發實戰(原書第2版) 本書特色
本書通過基于項目的實踐方式,詳細講解如何使用Unity 3D游戲引擎進行虛擬現實開發。通過一系列實踐項目,循序漸進地闡釋Unity虛擬現實項目開發的基本原則和技巧。不僅提供詳細的步驟介紹,還會討論其中涵蓋的更廣泛的背景和應用場景。
首先,你將學習如何使用Unity來開發可以用Oculus Rift、Google Daydream、HTC Vive等設備進行體驗的VR應用程序。
然后,你將學習如何從第三人稱和*人稱的視角融入虛擬世界。
另外,你將探索一些對于VR來說重要且可能獨一無二的技術關注點。
讀完本書后,你將能夠用Unity開發豐富的交互式虛擬現實體驗程序。
本書通過基于項目的實踐方式,詳細講解如何使用Unity 3D游戲引擎進行虛擬現實開發。通過一系列實踐項目,循序漸進地闡釋Unity虛擬現實項目開發的基本原則和技巧。不僅提供詳細的步驟介紹,還會討論其中涵蓋的更廣泛的背景和應用場景。
首先,你將學習如何使用Unity來開發可以用Oculus Rift、Google Daydream、HTC Vive等設備進行體驗的VR應用程序。
然后,你將學習如何從第三人稱和*人稱的視角融入虛擬世界。
另外,你將探索一些對于VR來說重要且可能獨一無二的技術關注點。
讀完本書后,你將能夠用Unity開發豐富的交互式虛擬現實體驗程序。
本書通過具體示例由淺入深逐步引導你了解并深入虛擬現實技術,在第1版的基礎上,更新了使用的Unity版本,并對各個章節和項目做了大量的修改,使得本書更加具體并易于閱讀。無論是初接觸編程并想學習虛擬現實技術的新手,還是具有豐富編程經驗,想要進入虛擬現實領域的程序員,本書都很適合你。
游戲開發與設計技術叢書Unity虛擬現實開發實戰(原書第2版) 內容簡介
本書將帶你進行一系列實戰,并深入討論如何使用Unity游戲引擎開發VR應用程序。本書通過基于項目的實踐方法,幫助你快速了解使用Unity進行VR開發的具體細節。通過Oculus、Daydream和Vive等設備的體驗,你將學習如何使用Unity開發VR應用程序。在眾多主題和項目中,你將探索基于凝視與手柄控制器輸入、世界坐標系UI畫布、移動與遠程傳送、軟件設計模式、360°多媒體、時間軸動畫與多人網絡。通過交互式Unity編輯器,你將了解Unity 3D游戲引擎,并且學習C#編程。
游戲開發與設計技術叢書Unity虛擬現實開發實戰(原書第2版) 目錄
第1章 萬物皆可虛擬 11.1 虛擬現實對你來說意味著什么 2
1.2 頭戴式顯示器的類型 3
1.2.1 桌面VR 3
1.2.2 移動VR 3
1.3 虛擬現實與增強現實的區別 4
1.4 應用與游戲 5
1.5 虛擬現實是如何運作的 7
1.5.1 立體3 D視圖 7
1.5.2 頭姿追蹤 9
1.6 VR體驗類型 10
1.7 VR**技能 11
1.8 本書涵蓋的內容 12
1.9 本章小結 12
第2章 內容、物體和縮放比例 142.1 Unity入門 14
2.1.1 新建Unity項目 15
2.1.2 Unity編輯器 15
2.1.3 默認世界坐標系 16
2.2 創建簡單的透視圖 17
2.2.1 添加立方體 18
2.2.2 添加平面 18
2.2.3 添加球體和材質 19
2.2.4 改變場景視圖 21
2.2.5 添加照片 22
2.2.6 給地平面著色 23
2.3 測量工具 24
2.3.1 隨手保留一個單位立方體 24
2.3.2 使用網格投影器 24
2.3.3 測量Ethan角色 25
2.4 使用第三方內容 27
2.5 使用Blender創建3D內容 29
2.5.1 Blender簡介 29
2.5.2 單位立方體 31
2.5.3 UV紋理圖片 32
2.5.4 導入Unity 34
2.5.5 一些觀察 35
2.6 在VR中創建3D內容 35
2.6.1 導入和導出Tilt Brush模型 37
2.6.2 使用Google Poly進行發布和導入 38
2.7 在VR中使用EditorXR編輯Unity 39
2.7.1 設置EditorXR 40
2.7.2 使用EditorXR 41
2.8 本章小結 43
第3章 VR的構建和運行 443.1 Unity VR支持和工具包 44
3.1.1 Unity的內置VR支持 45
3.1.2 特定于設備的工具包 46
3.1.3 應用程序工具包 47
3.1.4 基于Web和JavaScript的VR 47
3.1.5 3D世界 48
3.2 為你的平臺啟用虛擬現實 48
3.2.1 設置目標平臺 49
3.2.2 設置XR SDK 50
3.2.3 安裝設備工具包 50
3.2.4 創建MeMyselfEye播放器預制件 50
3.3 構建SteamVR 52
3.4 構建Oculus Rift 53
3.5 構建Windows沉浸式MR 55
3.5.1 設置Windows 10開發人員模式 56
3.5.2 在Visual Studio中安裝UWP支持 56
3.5.3 UWP構建 57
3.6 為Android設備設置 58
3.6.1 安裝Java開發工具包 59
3.6.2 安裝Android SDK 59
3.6.3 使用命令行工具 60
3.6.4 關于Android SDK根路徑位置 61
3.6.5 安裝USB設備調試和連接 61
3.6.6 配置Unity外部工具 62
3.6.7 為Android配置Unity Player Settings 63
3.7 為GearVR和Oculus Go構建 63
3.8 為Google VR構建 64
3.8.1 Google Daydream 64
3.8.2 Google Cardboard 65
3.8.3 Google VR運行模式 66
3.9 為iOS設備設置 67
3.9.1 擁有Apple ID 67
3.9.2 安裝Xcode 67
3.9.3 配置iOS的Unity Player Settings 68
3.9.4 構建和運行 68
3.10 本章小結 69
第4章 基于凝視的操控 704.1 游走者Ethan 70
4.1.1 人工智能Ethan 71
4.1.2 NavMesh烘焙 72
4.1.3 鎮上的隨機游走者 74
4.1.4 RandomPosition腳本 74
4.1.5 “僵尸”Ethan 76
4.2 向我看的方向行走 77
4.2.1 LookMoveTo腳本 77
4.2.2 添加反饋光標 79
4.2.3 穿透對象觀察 80
4.3 如果眼神可以殺人 81
4.3.1 KillTarget腳本 81
4.3.2 添加粒子效果 83
4.3.3 清理工作 84
4.4 Unity C#編程簡介 84
4.5 本章小結 86
第5章 便捷的交互工具 875.1 設置場景 88
5.1.1 創建氣球 88
5.1.2 使之成為預制件 88
5.2 基本按鈕輸入 90
5.2.1 使用Fire1按鈕 90
5.2.2 OpenVR的扳機鍵 92
5.2.3 用Daydream控制器單擊 93
5.3 輪詢單擊 93
5.3.1 按鈕界面功能 94
5.3.2 創建并釋放氣球 95
5.3.3 按住按鈕給氣球充氣 96
5.4 使用腳本化對象進行輸入 98
5.4.1 創建腳本化對象 99
5.4.2 填充輸入操作對象 100
5.4.3 訪問輸入操作對象 101
5.4.4 使用腳本化對象進行模擬測試 101
5.5 使用Unity事件處理輸入 102
5.5.1 調用輸入操作事件 103
5.5.2 訂閱輸入事件 103
5.6 使用雙手 105
5.6.1 將氣球設為手柄的子對象 105
5.6.2 讓氣球爆炸 107
5.7 交互項目 108
5.7.1 使用SteamVR交互系統進行交互 109
5.7.2 使用Daydream VR Elements進行交互 110
5.8 本章小結 112
第6章 世界坐標系UI 1136.1 學習VR設計原則 114
6.2 可重用的默認畫布 116
6.3 護目鏡HUD 118
6.4 十字光標 120
6.5 擋風玻璃HUD 122
6.6 游戲元素UI 124
6.7 使用文字特效插件TextMeshPro 125
6.8 信息框 126
6.9 響應輸入事件的游戲內儀表板 129
6.9.1 創建帶有按鈕的儀表板 129
6.9.2 連接水管與按鈕 131
6.9.3 用腳本激活按鈕 132
6.9.4 用注視高亮顯示按鈕 133
6.9.5 注視并單擊選擇 135
6.9.6 注視并聚焦選擇 136
6.10 使用VR組件指向并單擊 136
6.10.1 使用Unity UI和SteamVR 137
6.10.2 使用Unity UI和Daydream 139
6.11 構建基于手腕的菜單欄 139
6.12 本章小結 140
第7章 移動與舒適 1417.1 理解Unity角色 141
7.1.1 Unity組件 142
7.1.2 Unity的Standard Assets 143
7.2 使用滑行移動 145
7.2.1 沿視線方向移動 145
7.2.2 保持腳著地 146
7.2.3 不要穿透固體對象 147
7.2.4 不要在邊緣墜落 149
7.2.5 跨越小物體并處理崎嶇路面 149
7.2.6 開始與停止移動 150
7.3 添加舒適模式移動 150
7.4 傳送技術 153
7.4.1 凝視傳送 153
7.4.2 在表面之間傳送 155
7.4.3 傳送生成點 157
7.4.4 其他傳送考慮因素 160
7.5 傳送工具包 161
7.5.1 使用SteamVR交互系統傳送 161
7.5.2 使用Daydream Elements傳送 162
7.6 重置中心和位置 163
7.7 對付VR暈動癥 164
7.8 本章小結 166
第8章 使用物理引擎 1678.1 Unity的物理組件 167
8.2 彈力球 169
8.3 管理游戲對象 171
8.3.1 銷毀墜落的對象 172
8.3.2 設置持續時間 172
8.3.3 實現一個對象池 172
8.4 用頭部射擊游戲 176
8.5 球拍游戲 180
8.6 射手游戲 182
8.7 完善場景 185
8.7.1 創建大火球 186
8.7.2 Skull環境 188
8.7.3 音頻同步 190
8.8 本章小結 191
第9章 漫游和渲染 1929.1 用Blender構建 192
9.1.1 構建墻體 193
9.1.2 添加天花板 194
9.2 用Unity組裝場景 197
9.2.1 畫廊 197
9.2.2 藝術品部件 198
9.2.3 展覽計劃 200
9.3 將圖片添加到畫廊中 202
9.4 管理藝術信息數據 204
9.4.1 使用列表 204
9.4.2 使用數據結構 205
9.4.3 使用腳本化對象 206
9.5 顯示藝術信息 208
9.5.1 創建標題牌匾 209
9.5.2 詳細的交互信息 210
9.5.3 調整圖像寬高比 212
9.6 漫游畫廊 213
9.6.1 在畫像之間傳送 213
9.6.2 考慮房間規模 215
9.6.3 動畫穿越 216
9.7 本章小結 218
第10章 利用360 21910.1 360 多媒體219
10.1.1 等距圓柱投影 220
10.1.2 VR正在侵入你的視野 220
10.1.3 180 多媒體221
10.1.4 立體360 多媒體 221
10.2 有趣的光球 222
10.2.1 水晶球 222
10.2.2 地球儀 224
10.3 渲染光球 225
10.3.1 編寫自定義內部著色器 226
10.3.2 魔法球 228
10.3.3 光球 229
10.3.4 播放360 視頻230
10.4 使用Unity天空盒 232
10.4.1 六邊形或立方體天空盒 233
10.4.2 球面全景天空盒 234
10.4.3 360 視頻天空盒 235
10.4.4 3D立體天空盒 236
10.5 在Unity中捕捉360 多媒體 236
10.5.1 捕捉立方體貼圖和反射探頭 236
10.5.2 使用第三方庫360 捕獲圖像 238
10.5.3 Unity內置立體360圖像和視頻捕獲 239
10.6 本章小結 240
第11章 動畫與VR講故事 24111.1 撰寫我們的故事 241
11.1.1 收集資源 242
11.1.2 創建初始場景 243
11.2 Timeline和音頻軌道 245
11.3 使用Timeline激活對象 247
11.4 錄制Animation Track 248
11.4.1 正在生長的樹 248
11.4.2 正在生長的鳥 249
11.5 使用動畫編輯器 249
11.6 動畫的其他屬性 252
11.6.1 動畫的燈光 252
11.6.2 動畫腳本組件屬性 253
11.6.3 控制粒子系統 255
11.7 使用動畫剪輯 257
11.8 使用動畫控制器 258
11.8.1 動畫和動畫器的定義 259
11.8.2 ThirdPersonController動畫 259
11.8.3 Living Bird動畫器 260
11.8.4 學習飛行 262
11.8.5 對鳥進行攻擊 264
11.8.6 飛走 264
11.9 讓故事更具互動性 265
11.9.1 期待播放效果 265
11.9.2 重置初始場景設置 267
11.9.3 更多互動的想法 268
11.10 本章小結 268
第12章 社交化的VR虛擬空間 26912.1 多玩家網絡 270
12.1.1 網絡服務 270
12.1.2 網絡架構 271
12.1.3 本地與服務器 271
12.1.4 Unity的網絡系統 272
12.2 建立簡單的場景 273
12.2.1 創建場景環境 273
12.2.2 創建虛擬角色的頭部 274
12.3 添加多玩家網絡 275
12.3.1 Network Manager和HUD 275
12.3.2 Network Identity和Sync Transform 275
12.3.3 作為一個主機運行 276
12.3.4 添加出生點位 276
12.3.5 運行游戲的兩個實例 277
12.3.6 關聯虛擬角色與**人稱角色 278
12.4 添加配對大廳 280
12.5 同步對象和屬性 281
12.5.1 設置頭球游戲 282
12.5.2 通過聯網射擊球 284
12.5.3 同步球變換 285
12.5.4 狀態變量同步 286
12.6 高級網絡主題 287
12.7 語音聊天選項 288
12.8 使用Oculus平臺和虛擬角色 288
12.8.1 Oculus平臺權限檢查 289
12.8.2 添加本地虛擬角色 290
12.8.3 添加遠程虛擬角色 291
12.9 構建和共享自定義VRChat會議室 292
12.10 本章小結 294
第13章 優化性能和舒適度 29513.1 使用Unity的Profiler和Stats 296
13.1.1 Stats窗口 296
13.1.2 Profiler窗口 297
13.2 優化藝術品 298
13.2.1 設置場景 299
13.2.2 抽取模型 302
13.2.3 透明材質 303
13.2.4 細節層次 304
13.3 使用靜態對象優化場景 307
13.3.1 設置場景 307
13.3.2 燈光和烘焙 307
13.3.3 遮擋刪除 309
13.4 優化代碼 310
13.4.1 了解Unity的生命周期 311
13.4.2 編寫高效的代碼 312
13.4.3 避免費時的API調用 313
13.5 優化渲染 313
13.5.1 批次處理 314
13.5.2 多通道像素填充 315
13.5.3 VR優化著色器 316
13.6 運行時性能和調試 316
13.6.1 Daydream 317
13.6.2 Oculus 318
13.7 本章小結 318
展開全部
游戲開發與設計技術叢書Unity虛擬現實開發實戰(原書第2版) 作者簡介
喬納森·林諾維斯(Jonathan Linowes)創立了Parkerhill Reality Labs(一個沉浸式媒體獨立工作室),是BridgeXR工具包、Power Solitaire VR游戲以及即將到來的Chess Or Die游戲的開發者。他是VR/AR的傳播者、Unity開發者、企業家和教師。他擁有美國雪城大學(Syracuse University)的藝術學士學位和麻省理工學院媒體實驗室(MIT Media Lab)的碩士學位。他曾在Autodesk公司和其他公司擔任技術領導職務。他撰寫了《Unity Virtual Reality Projects 》(2015年第1版)《Cardboard VR Projects for Android 》(2016) 和 《Augmented Reality for Developers 》(2017)。