# iPlayground submit 2020

### 標題

提升擴增實境體驗的夢幻組合技

### 摘要

ARKit 開發雖然有趣，但總覺得和想像中的擴增實境有段距離，難道只能這樣了嗎？想要體驗更棒，除了等待 Apple Glass 的到來，我們還能作些什麼？快來看看搭配 ARKit 開發的組合技巧

### 細節

從近幾年 WWDC 發表的議題中，可以看出 Apple 對擴增實境體驗的佈局，除了能讓開發節奏更順暢的設計工具「Reality composer」，看起來似乎沒什麼關聯的 AI 領域「Machine Learning」，更是搭配沈浸式體驗傑出的一手，再加上多人互動的「MultipeerConnectivity」，以及虛擬實境獨有的設計應用，這些都可拿來優化擴增實境體驗，接下來將介紹如何使用這些工具及技巧。

> 虛擬場景設計

Reality composer 讓不具程式背景的設計人員也可輕鬆設計，發想的點子具現化，開發團隊的討論更聚焦。不僅如此，場景檔還能直接匯入Xcode，作為工程師的開發雛形，一點都不浪費。如何善用這套工具？我將分享一些使用上的眉角。

> 手勢辨識

擴增實境的操作體驗，其實是 Maching Learning 很好的應用範疇，Apple 的 People Occlusion 就是個例子，這邊我將會分享如何利用 Python 及 CoreML 等工具，做到簡單的手勢辨識功能

* Python
  * 訓練模型之前，煩惱訓練用的圖檔不夠嗎？我們可以運用一些 python 技巧，再加上少量必要的圖檔就可量產，圖檔要多少有多少
* CoreML + Object Detaction
  * 選用 Object Detaction 當作訓練模型，除了辨識標的物，還能取得座標，用來當作移動虛擬物件的依據
* Vision
  * 訓練好的模型，加入 Vision 就能得到即時的反饋，再根據辨識出的答案及座標，對虛擬物件作相對應的即時處理，就能達到手勢操作虛擬物件的效果

> 多人互動

多人互動讓體驗更有趣，多裝置間如何共用同一個擴增實境場景，以及同步彼此的操作指令，我將分享如何使用 MultipeerConnectivity 解決這些問題

> 沉浸式體驗

搶先在 Apple Glass 前，做到沈浸式體驗可行嗎？可以的，而且原理很簡單，另外再搭配 Google CardBoard，自己動手做也沒問題

> 任意門

虛擬實境和擴增實境誰比較厲害？看過任意門功能，就知道誰厲害了，打造一個恍如異世界入口的大門，在真實與虛擬之間穿梭，體驗更加驚艷

## 說明

> 為什麼這個演講重要呢？

擴增實境是人機介面互動的新趨勢，且應用越來越廣泛，再加上國際大廠 Apple、Google、微軟近年都在致力發展擴增實境技術，其互動體驗的影響力不言可喻，而掌握這樣的技術，並融入應用之中，勢必成為開發者未來重要的課題

> 你對這個主題有多少參與呢？

從 2017 年開始至今，一直在關注並進行擴增實境專案，所以對於這方面領域和研究，有自己的開發經驗和心得，並想分享給大家

> 以下是實作作品

**應用組合試作**

* [任意門+分割畫面for沈浸體驗](https://youtu.be/OUmqXh430Hs)

**使用 CoreML 試做手勢操作虛擬物件**

* [手勢辨識](https://youtu.be/PD0wr37HI10)

**為瞭解3D建模相關知識，自行摸索 3D 建模工具 Blender，並獨立完成一個人物作品**

* [3D人物作品1](https://drive.google.com/file/d/1pB1aModMVihGyk3XC6-UpYRZx1l9fZJl/view)
* [3D人物作品2](https://www.youtube.com/watch?v=gQXc3vgATqc)

**Unity 搭配 ARKit plugin，再加上自己做的人物作品，呈現擴增實境效果**

* [擴增實境效果-走路](https://www.youtube.com/watch?v=A73guTAb0F4)
* [擴增實境效果-作體操](https://www.youtube.com/watch?v=H7Ntsxs5pIU)

**為瞭解遊戲物理運作，分別實作 3D 賽車、擴增實境遙控車小遊戲**

* [賽車小遊戲](https://www.youtube.com/watch?v=_ifdcQm3d20)
* [擴增實境遙控車小遊戲](https://youtu.be/rNEfDcDNLgQ)
