第 41 章
使用 ARkit 與 Spritekit 打造 AR App
首先,什麼是擴增實境(Augmented Reality)呢?簡單的說,這表示你可以將虛擬物件放在真實世界的環境中。AR 應用最著名的例子就是 Pokemon Go! 當時這個知名的遊戲是以 ARKit 所開發,不過它只是眾多擴增實境的應用之一。
另外一個很棒的 AR 應用是 ARMeasure App(http://armeasure.com/) ,幾乎可以讓使用者量測任何物件。你不再需要拿一把尺才能量測物件,不論是行李箱或者是掛在牆壁上的相框,只要將你的 iPhone 相機鏡頭對準你想要量測的物件,就會產生一把虛擬尺來幫你量測。如果你還沒有試過這個 App,我建議你可以下載來量測看看。
很神奇對吧?AR 應用還不止於此。一些 AR 應用程式整合其他的技術可以讓使用者的體驗更進一層。其中一例子便是由 Andrew Hart 所建立,以 ARKit 加上 CoreLocation 的應用(https://github.com/ProjectDent/ARKit-CoreLocation)。
雖然 Google Map 或其他地圖應用程式可以顯示從 A 點至 B 點的方位,這個 App 結合了AR 與 Core Loaction 技術,為地標與方位的呈現技術帶來完全不同的體驗。在街尾的地標是什麼呢? 只要將相機對準該建築物,這個 App 便會將地標標註給你。知道要怎麼從這裡到那裡嗎?這個 App 將會以擴增實境告訴你轉角方位提醒(turn-by-turn direction),參考下圖以及在 https://github.com/ProjectDent/ARKit-CoreLocation 所做的展示。你將會知道這個 App 的功能以及結合 AR 與其他技術的威力。
註: Google 在2019 年 8 月為 Google 地圖推出 AR 步行方向功能 的測試版,現在稱為實時視圖(Live View)。
現在你已經對 AR 有了基本的概念,我們來了解如何建立一個 AR App。我們提到了 ARKit 這個專有名詞。這是在 為了在 iOS 裝置上能夠建立 AR App,於 iOS 11 所導入的新框架,內建在 Xcode 中。只要你使用 Xcode ,你便能夠開發 ARKit App。
在深入了解 ARKit 之前,請注意 ARKit 只能夠在以下具有 A9 處理器(或以上)的裝置才能運行:
- iPhone 6s (或更新型號)
- iPad Pro, iPad mini (第5代), iPad Air (第3代), and iPad (第5代)
- iPhone SE
你無法使用內建的模擬器測試 ARKit App。你必須使用以上其中一個相容的裝置來做測試。因此,試著準備合乎規格的裝置,否則你無法測試你的 App 。
本章,我將簡單的介紹 ARKit,也就是在 iOS 建構 AR App 的核心框架。本章結束後,你將能夠更容易理解 ARKit 的運作原理,與如何使用 SpriteKit 來完成以下的內容:
- 加入 2D 物件至真實世界的空間中
- 將 2D 物件從空間移除
- 跟虛擬物件互動
本文摘自《iOS 17 App程式設計進階攻略》一書。如果你想繼續閱讀和下載完整程式碼,你可以從AppCoda網站購買完整電子版,全書範例檔皆可下載。