在補充(11)提到,要透過 ARKit 啟動擴增實境(相機鏡頭),最簡單的指令就是設定AR任務(ARSession)並加以執行(run):
// 補充(11a)
let AR視圖 = ARSCNView()
let 設定 = ARWorldTrackingConfiguration()
AR視圖.session.run(設定)
此例中,一旦AR任務設定為「世界追蹤(ARWorldTrackingConfiguration)」,就會啟用設備(iPad/iPhone)的後相機,將實景帶入畫面中,並開始追蹤實體世界的座標變化。
除了「世界追蹤」之外,ARKit 還有其他不同的設定,用來指定AR任務的基本模式與功能。以下是目前ARKit 可追蹤的8種任務設定:
# | AR設定 | 名稱 | 鏡頭 | 說明 |
---|---|---|---|---|
1 | ARWorldTrackingConfiguration | 世界追蹤 | 後相機 | 追蹤一般實體場景 |
2 | ARFaceTrackingConfiguration | 人臉追蹤 | 前相機 | 追蹤使用者臉型 |
3 | ARBodyTrackingConfiguration | 人體追蹤 | 後相機 | 追蹤任何人體動作 |
4 | ARImageTrackingConfiguration | 影像追蹤 | 後相機 | 追蹤特定靜態影像 |
5 | ARObjectScanningConfiguration | 3D物件追蹤 | 後相機 | 追蹤特定3D物件 |
6 | ARGeoTrackingConfiguration | 地理位置追蹤 | 後相機 | 追蹤GPS地理位置 |
需配合高精地圖,目前僅支援美、英、澳、加、日等部分國家及城市,參考原廠文件 | ||||
7 | ARPositionalTrackingConfiguration | 設備位移追蹤 | 後相機 | 僅追蹤設備位移(3 DoF) |
8 | AROrientationTrackingConfiguration | 設備旋轉追蹤 | 後相機 | 僅追蹤設備旋轉(3 DoF) |
這8種是 ARKit 基本運作模式,因此不管配合SceneKit或RealityKit,功能都一樣(但用法有差異)。這其中,只有人臉追蹤採用前相機(會左右鏡像,有效距離3米),其餘均使用解析度較高的後相機。
人臉追蹤除了一般AR功能之外,還應用人工智慧辨識臉部輪廓,額外要求硬體必須含A12晶片以上(+iPadOS/iOS 14.0以上版本)。可執行人臉追蹤的最低配備如下:
只要 iPad 款式等於或高於上述型號,均可以透過 Swift Playgrounds 執行本節範例程式;至於 iPhone XS (或更新)也能執行,但必須透過 Mac + Xcode,且以USB連接 iPhone,這部分請自行參考網路相關文章。
要設定AR任務為人臉追蹤,程式寫法與世界追蹤類似,只要將設定名稱改為ARFaceTrackingConfiguration 即可:
// 補充(14)
let AR視圖 = ARSCNView()
let 設定 = ARFaceTrackingConfiguration()
AR視圖.session.run(設定)