本書以HTC Vive為例,介紹如何使用Unity3D和SteamVR插件進行虛擬現實產品的設計和開發。本書包含5章,第1章為緒論,詳細介紹虛擬現實的開發平臺。第2章為SteamVR官方案例,包括如何實現一些常用的VR交互。第3章為初級:實例實戰,介紹使用HTC Vive手柄進行移動操作和可交互物體的抓取操作。第4章為高級:項目實戰,介紹手槍對象的拾取、放下等操作。第5章為綜合項目實戰,完成VR駕駛員更換汽車輪胎的綜合項目。本書配套給出了全部實例、項目的素材文件和源代碼,讀者可輕松根據本書內容進行虛擬現實開發的學習和實踐。 本書可作為高等學校計算機、軟件、數字媒體相關專業的教材,也可作為相關工作人員的參考書。
喻春陽,博士,主要研究方向為動漫游戲,虛擬/增強/混合現實技術。東北大學數字媒體技術系專任教師,東北大學泛虛擬現實人才培養中心副主任,遼寧省科技廳虛擬現實專家庫專家,遼寧省教育廳1 X證書教師培訓專家,遼寧省高職高專類虛擬現實設計大賽專家評委,挑戰杯全國大學生設計競賽優秀指導教師,中國大學生計算機設計大賽優秀指導教師,東北大學創新創業優秀指導教師。發表學術論文多篇,負責教學科研項目多項,申請發明專利10余項,軟件著作權1項,出版學術專著1部。主講"計算機游戲技術基礎、"計算機游戲設計與開發、"虛擬現實設計與開發、"虛擬現實交互編程等課程。指導的學生大多就職于網易游戲、騰訊游戲、完美世界、樂道互動、金山游戲、蓋婭互娛等知名企業。
第1章 緒論1
1.1 HTC Vive1
1.2 SteamVR2
1.2.1 Steam平臺的下載和安裝2
1.2.2 創建Steam賬戶6
1.3 Unity9
1.3.1 Unity的下載和安裝10
1.3.2 Visual Studio的下載和安裝11
1.3.3 通過Unity配置Visual Studio13
1.4 SteamVR Plugin15
第2章 SteamVR官方案例19
2.1 SteamVR Plugin內容預覽19
2.1.1 SteamVR Plugin資源管理19
2.1.2 官方案例場景20
2.2 玩家化身和移動22
2.2.1 Player22
2.2.2 Environment25
2.2.3 Teleport26
2.3 普通交互對象28
2.3.1 Simple Interactable演示區28
2.3.2 Throwing演示區31
2.3.3 Interesting Interactables演示區36
2.4 復雜交互對象48
2.4.1 LinearDrive演示區48
2.4.2 CircularDrive演示區54
2.5 UI交互對象55
2.5.1 Hints演示區55
2.5.2 Hover Button演示區58
2.5.3 Skeleton演示區60
2.6 特殊交互對象61
2.6.1 Remotes演示區61
2.6.2 Longbow演示區69
第3章 初級:實例實戰75
3.1 實例1:移動76
3.1.1 實例目標76
3.1.2 實例方案76
3.1.3 實戰操作76
3.1.4 實例總結80
3.2 實例2:抓取小球80
3.2.1 實例目標80
3.2.2 實例方案80
3.2.3 實戰操作80
3.2.4 實例總結85
3.3 實例3:抓取立方體86
3.3.1 實例目標86
3.3.2 實例方案86
3.3.3 實戰操作86
3.4 實例4:抓住物體89
3.4.1 實例目標89
3.4.2 實例方案89
3.4.3 實戰操作89
3.4.4 實例總結92
第4章 高級:項目實戰93
4.1 手槍對象的拾取和放下93
4.1.1 任務目標93
4.1.2 任務方案93
4.1.3 實戰操作94
4.2 握槍姿勢99
4.2.1 任務目標99
4.2.2 任務方案99
4.2.3 實戰操作99
4.3 激光瞄準線101
4.3.1 任務目標101
4.3.2 任務方案101
4.3.3 實戰操作102
4.4 手槍射擊音效117
4.4.1 任務目標117
4.4.2 任務方案117
4.4.3 實戰操作117
4.5 實戰總結122
第5章 綜合項目實戰123
5.1 項目內容123
5.2 準備工作123
5.3 基本場景搭建126
5.3.1 布置街道126
5.3.2 布置汽車129
5.3.3 布置輪胎132
5.4 千斤頂制作134
5.4.1 道具需求分析134
5.4.2 3ds Max環境變量設置136
5.4.3 千斤頂建模137
5.4.4 千斤頂動畫142
5.4.5 千斤頂模型和動畫導出148
5.4.6 千斤頂模型導入Unity151
5.4.7 制作材質153
5.4.8 調整千斤頂尺寸155
5.5 杠桿制作156
5.5.1 杠桿建模156
5.5.2 杠桿模型導入Unity159
5.6 扳手制作161
5.6.1 扳手模型制作161
5.6.2 扳手模型導入Unity174
5.7 語音設計和制作175
5.7.1 音頻內容設計175
5.7.2 音頻文件制作175
5.8 UI及動畫制作177
5.8.1 UI制作177
5.8.2 動畫制作186
5.9 教程系統實現190
5.9.1 放置移動點190
5.9.2 教程步驟控制191
5.9.3 整體任務實現200
5.10 項目導出254