發表於2024-11-17
基於位置的 AR 遊戲類型帶來瞭新的平颱和技術難點。不過這本書會幫你簡化這些難點,展示如何*大化受眾。本書將帶你經曆製作基於位置的 AR 遊戲的過程,涵蓋的核心技術概念有: GIS 基礎概念、移動設備上的 GPS、地理映射、在 Unity 裏映射貼圖、移動設備上的相機、在 Unity 裏的相機貼圖、訪問基於位置的服務,以及其他有用的 Unity 竅門。技術分析部分進一步討論製作一個多人版本遊戲的必需組件。最後,分享一個疑難解答章節,以防你遇到睏難時需要一點點幫助。
你會學到:
√ 製作一個基於位置的增強現實遊戲 Foody Go
√ 在地圖上讓玩傢角色運動起來
√ 使用相機作為遊戲背景
√ 使用 SQLLite4Unity3D 實現數據庫持久化,以跨會話保存庫存物品
√ 創建基礎 UI 元素,包括遊戲界麵、庫存、菜單和設置
√ 用 Google Places API 執行定位和內容搜索
√ 添加圖像著色器效果來改進遊戲氣氛
√ 添加多人網絡或者彆的增強模塊來擴展遊戲
基於地理位置虛擬現實遊戲已經有幾年瞭,"口袋妖怪GO”的發布是遊戲史上的變遷,催化市場發展,引導瞭大波的需求。是時候讓新手和有經驗的人把他們的點子投入增強現實的移動端遊戲,滿足市場需求瞭。如果你想使用*新的Unity 5 toolkit來開發遊戲,那這本書就是為你準備的。這種類型的基於地理位置的增強現實遊戲給我們介紹瞭一個新平颱同時帶來技術上的挑戰,但是這本書會簡化這些難題,告訴你怎麼*大程度吸引遊戲受眾。它能帶你體驗塑造這種遊戲來錶現技術概念的這段旅程:GIS的基本原理,移動設備衛星定位,映射,Unity中的地圖映射,移動拍照設備,Unity中攝影映射,訪問基於位置的服務,和其他有用的建議。這種技術物質探討瞭對於長遠開發多玩傢版本遊戲來說哪些是必要的。*後,書會教你故障排除技術以防你遇到麻煩需要一些幫助。
Micheal Lanham 是為petroWEB工作的一位解決方案架構師,目前居住在加拿大阿爾伯塔省的卡爾加裏(Calgary, Alberta)。他目前的職責之一是開發具有先進空間搜索能力的綜閤GIS應用。他曾擔任專業和業餘遊戲開發人員,製作桌麵和手機遊戲超過15年。2007年,Micheal接觸到Unity 3D,從此以後就一直是Unity 3D狂熱的粉絲和開發者。
龔震宇是一位資深的遊戲開發工程工程師,有十餘年從事遊戲開發的工作經驗。曾在富士通從事編程工作,之後一直在神遊科技從事遊戲開發工作。周剋忠是一位榖歌專業AR開發工程師,長期從事增強現實相關研究和實踐。
這本書非常適閤沒有任何 AR 開發經驗,甚至沒有遊戲開發經驗的開發者,從零開始學習增強現實的開發。文章的內容從安裝 Unity 引擎和配置相關環境開始,進而介紹 AR 及遊戲開發中的一些基本概念等,整個講解過程循循善誘,使初學者不用擔心錯過任何一個細節而止步不前。
學習軟件開發的方式就是學習案例,並親自動手實現。如果像傳統的教科書過多地介紹概念和理論,往往讓讀者讀完之後仍不能獨自完成一個完整的作品。這本書介紹瞭目前火爆的一款 AR 遊戲 Pokemon Go,並將其關鍵技術一一拆解,章節順序遵循遊戲開發的標準流程,使讀者在學習相關的技術以外也能瞭解到遊戲開發的工作流程。
AR 被很多人認為是一種革命性的技術,因為它並不是一個遊戲專用的技術。恰恰相反,AR 被認為在未來可能會影響到每個人日常生活的方方方麵。比如 AR 眼鏡可以在現實世界的背景上增加虛擬的畫麵。當你在商場購物時,戴上它你可以看到每一樣商品的詳細信息。當你需要導航時,再不用擔心看不懂地圖,它可以在現實世界裏疊加虛擬的導航路綫,即使是路癡也隻要跟著箭頭的方嚮行走即可。AR 技術還可以應用在很多領域,這裏不再一一闡述。
這本書介紹的核心工具是 Unity 引擎。就像 AR 技術一樣,Unity 已經不僅僅是一款遊戲引擎。在遊戲行業以外,它已經被應用在 AR、VR、影視、建築可視化(BIM),甚至汽車製造等領域。Unity 是全球應用廣泛的 VR、AR 開發平颱,目前全球大部分的 VR、AR 內容都是通過 Unity 開發的。就 AR 來說,具體的技術還分很多種,比如 AR Kit、AR Core、Vuforia、Hololens、MagicLeap 等。Unity 是目前官方支持 AR 技術的開發平颱。可以說 Unity 是目前學習 AR 技術、開發 AR 産品的有效工具。
就像其他所有的新興技術一樣,AR 處於發展的初期,技術和硬件上還存在著些許不足。但是由於它擁有的巨大潛力,我相信這些睏難都會很快被剋服。希望有更多的開發者加入增強現實的世界,讓增強現實更快進入現實。
張黎明 Unity 大中華區技術總監
2018 年 3 月 5 日
第 1 章 準備開始 1
現實世界冒險遊戲 1
基於位置 2
增強現實 3
冒險遊戲 3
使用 Unity 進行移動開發 4
下載和安裝 Unity 5
設置 Android 開發環境 6
設置 iOS 開發環境 10
Unity 入門 10
創建遊戲項目 10
生成和部署遊戲 14
總結 17
第 2 章 映射玩傢位置 18
GIS 基礎知識 18
映射 19
GPS 基礎知識 22
Google 地圖 23
添加地圖 25
設置服務 37
總結 42
第 3 章 製作遊戲角色 43
導入標準 Unity 資源 44
添加一個角色 45
替換攝像機 46
跨平颱輸入 48
修正輸入 49
替換角色 66
總結 68
第 4 章 生成獵物 69
創建一個新的 “怪物服務” 70
理解地圖映射的距離 72
GPS 精度 78
檢查怪物 81
投影坐標到 3D 空間 84
在地圖上添加怪物 85
在 UI 中追蹤怪物 93
總結 96
第 5 章 在 AR 中捕捉獵物 97
場景管理 98
引入遊戲管理器 100
加載場景 102
更新觸控輸入 103
碰撞體和剛體物理 106
構建 AR 捕捉場景 110
使用相機作為場景背景 112
添加捕捉球 116
投擲球 117
檢查碰撞 121
粒子效果反饋 125
捕獲怪物 126
總結 130
第 6 章 保存獵物 132
庫存(Inventory)係統 133
保存遊戲狀態 135
搭建服務 137
代碼審查 139
怪物的 CRUD (創建,讀取,更新,刪除)操作 144
更新 Catch 場景 146
製作 Inventory(庫存)場景 152
添加菜單按鈕 158
閤成遊戲 160
移動開發中的痛 161
總結 162
第 7 章 創建 AR 世界 163
迴到地圖 164
單件模式 165
Google Place API 入門 167
使用 JSON 169
配置 Google Place API 服務 172
産生標記 173
優化搜索 176
總結 180
第 8 章 與 AR 世界交互 181
Places 場景 182
用榖歌街景作為背景 184
Google Place API 照片幻燈片 186
增加賣齣的 UI 交互 192
賣齣的遊戲機製 198
更新數據庫 200
把片段拼接起來 204
總結 208
第 9 章 完成遊戲 209
未完成的開發任務 209
缺少的開發技能 214
清理資源 216
發行遊戲 219
開發基於位置遊戲的一些問題 220
基於位置的多人遊戲 221
使用 Firebase 作為多人開發平颱 225
其他一些基於位置的點子 229
這個種類的未來 230
總結 231
第 10 章 疑難解答 232
Console 窗口 232
編譯錯誤和警告 234
調試 235
遠程調試 237
高級調試 239
記錄日誌 240
CUDLR 244
Unity Analytics 246
每章的問題和解決方案 249
總結 251
譯者序1
作為一名程序員在遊戲圈工作瞭十幾年,這是第一次參與翻譯工作,因為這本書的書名引起瞭我的興趣:《Augmented Reality GameDevelopment》,“Augmented Reality(AR)” 這個詞一下子就映入眼簾。最早認識到這個詞應該是在 2011 年任天堂公司的 3DS 上。這颱掌機自帶瞭一款 AR 遊戲,通過 3D 液晶屏可以看到各種動畫形象躍然於桌子或者地麵上,效果非常震撼。但是從那以後,AR 從我的視野中淡齣瞭,直到去年 Pokemon GO 的突然走紅。在這之後,國內也湧現齣瞭許多手機端的 AR 遊戲和應用,甚至過年時都流行起瞭 AR“搶紅包”。而隨著榖歌 Tango 手機和微軟 HoloLens 眼鏡等設備的推齣,AR 的應用必然會更加廣泛。當然,我最關心的還是能否有更好的 AR 遊戲齣現。本書詳細介紹瞭一個簡單的 AR 遊戲的開發過程,非常適閤想要一窺 AR 開發之究竟的讀者。本人也是帶著這樣的心態來翻譯的,在翻譯的過程中學習和驗證,獲益匪淺。希望讀者也能從中找到樂趣,對於翻譯中的一些瑕疵請多多包涵。
感謝翻譯閤作者 Kai,感謝編輯的辛勤校對。另外獻給我的寶貝女兒和在我翻譯期間輔導女兒學習的妻子,你們給瞭我莫大的幫助和動力。
——龔震宇
譯者序2
因為一個很偶然的機會,本來已經離開遊戲圈,走嚮萬惡金融界的我,又迴到瞭遊戲相關的行業,從事 Google AR和 VR 技術在亞太國傢的推廣。恰好以前在 EA 的同事沙鷹在朋友圈牽綫,就決定參與翻譯這本書。公司有規定,不論在哪裏發錶觀點,都必須錶明我與 Google 的雇傭關係,這樣讀者可以假設我的觀點帶有偏見,請酌情考慮。
作為一個遊戲人和鐵杆玩傢,我覺得,一個遊戲最重要的還是得好玩。其次纔是賺不賺錢,有沒有獨特的美術風格,復雜的畫麵渲染什麼的。最典型的例子就是任天堂的遊戲,過去十幾年分辨率都是主機裏麵最低的,可它的遊戲就是那麼好玩。我一直以來都對任天堂緻以最高的敬意,所以能夠和震宇一起翻譯這本書,我很歡樂。
遊戲開發者一直都在探索新的人機交互,任天堂在這方麵做齣過很多嘗試,比如很早就製作過 VR 頭盔。這在 AR 領域,精靈寶可夢 GO 也實現瞭前所未有的成功。這本書從精靈寶可夢 GO 的功能齣發,講解怎麼使用Unity,製作基於位置並利用地圖,街景以及地點網絡服務的 AR 遊戲,對開發者來說是個很好的 AR 遊戲入門教材。
那麼究竟什麼纔是 AR。這個問題還沒有確定的答案,世界上的開發者都在探索 AR 是什麼,可以做什麼。維基百科上有一個觀點,你想象一個一維的坐標軸,左邊無窮遠代錶完全真實,右邊無窮遠代錶完全虛擬。那麼 AR 就在坐標軸的左半邊,代錶負數的那個部分;相對的,VR 就在坐標軸右邊,代錶正數的部分。可見 AR 的定義不是絕對的,有很大的一段區域都可以叫做 AR。中間一段區間也叫做 XR 混閤現實,然而這些定義有著非常模糊的邊界。
實現 AR 有很多種核心技術,GPS,StreetView, SLAM,計算機圖形,計算機視覺,圖像處理,基於大數據的機器學習等等,都有切實的應用例子。本書講解的基於位置的應用,微軟的 HoloLens,Google 的 Tango,它們都屬於 AR 的應用。任天堂的 3DS 裏麵就有基於卡片的 AR 玩法,那也是一種早期 AR;類似的,目前的技術已經可以做到基於卡片的 AR 不需要一直盯著卡片也能實現設備定位。
從今年的行業動態來看,接下來基於計算機視覺的 AR 將會慢慢走齣實驗室進入消費者領域,美國四大科技雇主公司 F.L.A.G. 裏麵有三個都在做:4 月份的時候 Facebook 推齣瞭 AR Studio,5 月份 Google 在 I/O 宣布基於 Tango 的 WorldSense 和 VPS(視覺定位服務),6 月份蘋果宣布瞭 iOS 11 裏麵的 ARKit。根據目前的信息來看,Google 的 Tango 能獲得的對現實世界的描述信息最多,因為它硬件上使用瞭專門的深度傳感器和魚眼鏡頭。相比之下蘋果的 ARKit 和 Facebook 的 AR Studio 隻使用瞭一個或兩個 RGB 攝像頭。當然,這隻是我的推測,畢竟ARKit 和 AR Studio 都還沒有正式對外公開,我還沒有看過它們的文檔。說不定蘋果和 Facebook 會擁有怎麼樣的黑科技呢!科技的發展早已不是綫性的;十幾年前在我上大學那會兒,人工智能教科書都說超級計算機也絕對沒辦法下圍棋戰勝人類;這不,5 月份 Alpha Go 單機 4 TPU 就挑戰瞭人類冠軍柯傑。
最近幾年國內創業氣息濃重,投資氛圍也活躍,連習大大都有鼓勵大傢創業。希望大傢緊跟時代,在 AR 這股風剛剛開始颳的時候就讓自己站在風口,迎接被風吹起的感覺。
最後感謝翻譯同伴震宇,感謝沙鷹牽綫帶來這本書,感謝編輯的提示和幫助。書中有一些句子為瞭通順,采取瞭意譯而不是直譯,實屬中英文的用詞習慣差彆太大。希望大傢不要介意。
——周剋忠 Kai Google AR/VR 技術推廣工程師
2017 年 6 月 26 日新加坡
前言
在 2016 年初,世界上大多數人對增強現實和基於位置的遊戲知之甚少。當然,這一切都隨著那一年 Pokemon Go的發布而改變瞭。一夜之間,這種遊戲類型就不容置疑地成為瞭遊戲開發的發展趨勢。可能你已經玩過 Pokemon Go,而且你閱讀這本書正因為你對 AR 和基於位置的遊戲類型産生瞭興趣。
在本書中,我們將詳細探討創建像 Pokemon Go 這樣的基於位置的 AR 遊戲的各個方麵。基於位置的 AR 遊戲是代價昂貴的,需要為遊戲中的一切建立很多服務,從地圖映射到生成怪物。然而,我們開發的遊戲將是零成本的,使用的都是可以免費獲得的服務。雖然由於一些許可限製,這可能不是你可以用於商業發布的東西,但是一定能介紹給你大部分概念。而且整個過程中,你還將學習如何使用一個偉大的工具 Unity。另外還會嚮你介紹遊戲開發的許多其他概念。
在本書中,我們將詳細探討創建像 Pokemon Go 這樣的基於位置的 AR 遊戲的各個方麵。基於位置的 AR 遊戲是代價昂貴的,需要為遊戲中的一切建立很多服務,從地圖映射到生成怪物。然而,我們開發的遊戲將是零成本的,使用的都是可以免費獲得的服務。雖然由於一些許可限製,這可能不是你可以用於商業發布的東西,但是一定能介紹給你大部分概念。而且整個過程中,你還將學習如何使用一個偉大的工具 Unity。另外還會嚮你介紹遊戲開發的許多其他概念。
本書涵蓋內容
第 1 章,準備開始,介紹瞭構成基於位置的 AR 遊戲類型和我們的虛構遊戲 Foody Go 的概念。隨後是下載所有必需軟件,並使用 Unity 設置移動開發環境的所有步驟。
第 2 章,映射玩傢位置,首先介紹 GIS、GPS 和地圖映射的基本概念。然後說明如何應用這些概念,來生成實時地圖並繪製玩傢在遊戲中的位置。
第 3 章,製作遊戲角色,在前一章的基礎構建,把我們簡單的位置標識轉換成一個移動的動畫角色。這樣,玩傢在攜帶著移動設備走動時,可以看到他們的遊戲角色在地圖上四處走動。
第 4 章,生成獵物,解釋瞭 Foody Go 的假設背景是關於捕捉實驗怪物。在本章中,我們學習瞭如何在玩傢的周圍生成怪物到地圖上。
第 5 章,在 AR 中捕捉獵物,內容更加密集:通過訪問設備相機引入遊戲的集成 AR 部分;引入用於投擲球的物理;追蹤玩傢的劃動輸入;使用瞭生物的反應;並且使用新的遊戲場景。
第 6 章,保存獵物,緻力於開發玩傢的裝備包,用於保存抓獲的所有 Foody 生物,以及其他有用的道具。在這裏,我們讓讀者對於添加永久的存儲和添加一個簡單的庫存場景有大緻的瞭解。
第 7 章,創建 AR 世界,基於一個實時的數據服務,在玩傢周圍添加興趣點。
第 8 章,與 AR 世界交互,讓玩傢與興趣點進行互動。在我們這個簡單的遊戲中,玩傢將能夠齣售他們捕獲的怪物。
第 9 章,完成遊戲,告訴讀者如何完成遊戲,或者更好地編寫自己的基於位置的 AR 遊戲。為瞭本書,我們將隻開發 Foody Go 這個示例遊戲。
第 10 章,疑難解答,涵蓋瞭一些故障排除建議和技巧,以剋服這些開發障礙。與所有的軟件開發練習一樣,都可能會遇到問題。
閱讀前的準備
為瞭跟著本書的內容練習,你至少需要一颱能夠運行 Unity 5.4+ 的計算機,以及一部可以運行 Unity 遊戲並配備 GPS 的 iOS 或 Android 設備。
更多關於 Unity 的係統需求請參考:https://unity3d.com/unity/system-requirements
本書的目標讀者
本書適用於任何有興趣開發自己的 Pokemon Go,基於位置的 AR 遊戲的讀者。雖然本書假定你以前沒有遊戲開發技巧或 Unity 開發經驗,但你需要對 C# 或類似的(C、C++、Java 或 JavaScript)語言有基本瞭解。
AR遊戲:基於Unity 5的增強現實開發 下載 mobi pdf epub txt 電子書 格式 2024
AR遊戲:基於Unity 5的增強現實開發 下載 mobi epub pdf 電子書AR遊戲:基於Unity 5的增強現實開發 mobi epub pdf txt 電子書 格式下載 2024