蘋果WWDC 2022更新分享:基於ARKit的AR開發設計指南

語言: CN / TW / HK

檢視引用/資訊源請點選:映維網Nweon

通過ARKit來開發增強現實體驗的基礎技巧介紹版面

映維網Nweon 2022年07月05日 )能夠結合虛擬和現實的AR增強現實正在成為下一個重要的技術方向,而Meta、微軟和谷歌等科技巨頭都在積極探索這一領域。蘋果同樣不例外。蘋果的ARKit允許開發者為iPhone或iPad開發AR體驗。在開發者官網,這家公司專門提供了一個關於通過ARKit來開發增強現實體驗的基礎技巧介紹版面。下面映維網對其進行了整理編輯:

AR/增強現實能夠允許你將虛擬物件與現實世界無縫融合,從而提供身臨其境,引人入勝的體驗。

使用裝置的攝像頭在螢幕實時呈現物理世界,你的應用程式可以疊加三維虛擬物件,產生它們實際存在的錯覺。根據應用提供的體驗,使用者可以重新定位裝置,從不同角度探索物件,使用手勢和動作與物件互動,甚至加入其他人的多使用者AR體驗。有關開發者指南,請參閱ARKit。

僅在相容裝置提供AR功能。如果應用程式的主要用途是AR,請僅將你的應用程式提供給支援ARKit的裝置。如果你的應用程式包含需要特定AR功能的體驗,或者如果AR功能在你的應用程式中屬於可選體驗,當用戶嘗試通過非相容裝置啟用相關功能時,請不要向他們顯示錯誤。相反,避免在非相容裝置提供所述功能。有關開發者指南,請參閱驗證裝置支援和使用者許可權。

1. 創造迷人、舒適的體驗

鼓勵使用者使用整個顯示器。儘可能多地在螢幕顯示物理世界和應用程式的虛擬物件。避免螢幕顯示的控制元件和資訊雜亂無章,從而減損沉浸式體驗。

在放置真實物件時,努力使人產生信服的錯覺。使用逼真的紋理設計詳細的3D asset,以建立看起來置身其中的虛擬物件。使用ARKit中的資訊,可以正確縮放物件並將其放置在檢測到的真實世界曲面之上,反射環境照明條件並模擬camera grain,在真實世界曲面投射自上而下的漫反射物件陰影,以及隨著camera位置的變化而更新視覺效果。為了避免打破你創造的錯覺,請確保你的應用程式每秒更新場景60次,這樣物件就不會出現抖動或閃爍。

考慮具有反射曲面的虛擬物件如何顯示環境。ARKit中的反射是基於攝像頭捕獲環境的近似值。為了幫助保持AR體驗真實的錯覺,請選擇較小或粗糙的反射表面,從而淡化近似的效果。

使用音訊和觸覺增強沉浸式體驗。聲音效果或凹凸感是確認虛擬物件已與物理表面或其他虛擬物件接觸的一種好方法。背景音樂同樣可以幫助使用者融入虛擬世界。相關指南請參見播放音訊和播放觸覺。

最小化環境中的文字。僅顯示使用者需要的應用體驗資訊。

如果需要其他資訊或控制元件,請考慮在螢幕空間中顯示它們。螢幕空間中的內容似乎固定在虛擬世界中或裝置螢幕上(不太常見)的一致位置。人們通常很容易在螢幕空間中查詢和檢視內容,因為當底層AR環境隨裝置移動時,螢幕空間保持靜止。

當需要提供永續性控制元件時,請考慮使用間接控制元件。間接控制元件不是虛擬環境的一部分,而是顯示在螢幕空間中的2D控制元件。如果人們需要訪問應用程式中的持久控制元件,請考慮放置它們,以便使用者不必調整握住裝置的方式來接觸它們。另外,請考慮在間接控制元件中使用半透明效果,以幫助避免遮擋基礎場景。例如,Measure應用使用螢幕空間顯示半透明和不透明控制元件的混合,從而允許使用者通過相關控制元件來測量現實世界中的物件。

預計人們會在各種各樣的真實環境中使用你的應用程式。使用者可能會在沒有太多移動空間或沒有任何大平面的地方開啟你的應用程式。提前向人們清楚地傳達應用程式的要求和期望,幫助他們理解物理環境如何影響AR體驗。你同時可以考慮為不同的環境提供不同的功能集。

注意人們的舒適度。將裝置長時間保持在一定距離或角度可能會導致疲勞。為了避免造成疲勞,考慮將物件放置在一定距離,以減少將裝置移近物件的需要。對於遊戲,請考慮一定的休息時間。

如果你的應用程式鼓勵人們移動,請逐漸引入運動。例如,你可能不希望使用者一進入AR遊戲就開始躲避虛擬炮彈。給予使用者時間適應應用程式中的AR體驗,然後逐步鼓勵移動。

注意人身安全。當人們沉浸在AR體驗中時,他們不一定意識到周遭的物理環境,因此快速、徹底或擴張的運動可能非常危險。請考慮幫助應用程式安全執行的方法;例如,遊戲可以避免鼓勵大動作或突然起動。

2. 利用輔助引導來幫助使用者入門

在人們可以在你的應用程式中享受AR體驗之前,他們需要以ARKit能夠評估周圍環境和檢測表面的方式移動裝置。在iOS 13及以上版本中,你可以使用內建的指導檢視來向用戶展示應該做什麼,並在初始化過程中提供反饋。你同時可以使用指導檢視幫助使用者在AR體驗被中斷後重新初始化AR,這一過程稱為重新定位。有關重新定位的指導,請參閱處理中斷;有關開發者指南,請參閱ArcoachingGoverLayView。

當人們使用指導檢視時,請隱藏不必要的應用UI。預設情況下,當初始化或重新定位開始時,指導檢視會自動顯示,因此你應該準備隱藏不相關的UI,以幫助人們關注指導檢視的說明。

如有必要,提供定製引導體驗。儘管你可以配置系統提供的指導檢視,從而提供特定的資訊,例如檢測水平面或垂直面,但你可能需要其他資訊或希望使用不同的視覺樣式。如果你想設計定製輔導體驗,請參考系統提供的輔導檢視。

3. 幫助人們放置物件

向人們顯示何時定位曲面和放置物件。你可以使用系統提供的指導檢視來幫助人們找到放置物件的水平或垂直平面。ARKit檢測到曲面後,你的應用程式可以顯示自定義視覺指示器,從而顯示何時可以放置物件。通過將指示器與檢測到的曲面的平面對齊,你可以幫助人們感知物件放置在環境時的效果。

當用戶放置一個物件時,立即將所述物件整合到AR環境中。級軍官表面檢測可以快速、漸進地提高精度,但最好避免在放置物件之前等待更精確的資料。當人們放置物件時,利用可用資訊立即作出反應;然後當曲面檢測完成時,如有必要,可以微妙地優化物件的位置。例如,如果人們將物件放置在檢測到的曲面邊界之外,請將物件輕輕推回到曲面。有關優化物件位置的開發者指南,請參閱ArtrackDrayCast。

考慮引導人們使用螢幕外的虛擬物件。有時,人們很難定位螢幕外的物件。在這種情況下,你可以通過提供視覺或聽覺提示來幫助人們找到這類物件。例如,若某個物件位於螢幕左側,則可以沿螢幕左邊緣顯示一個指示器,引導人們將camera指向所述方向。

避免嘗試將物件與檢測到的曲面的邊精確對齊。在AR中,曲面邊界是一種近似值,隨著對周圍環境的進一步分析,這可能會發生變化。

合併平面分類資訊以通知物件放置。例如,僅允許使用者將虛擬傢俱放置在分類為“地板”平面,或要求將平面分類為“桌子”,以便放置虛擬遊戲板。

4. 設計直觀、愉悅的物件互動

儘可能允許人們使用直接操縱與物件進行互動。與在螢幕空間中使用間接控制元件相比,當人們可以通過直接觸控式螢幕幕的3D物件來進行互動時,體驗會更直觀和沉浸。但當人們使用應用時四處走動,間接控制可以更好地發揮作用。

允許人們使用標準、熟悉的手勢直接與虛擬物件互動。例如,考慮為移動物件支援單指拖動手勢,為旋轉物件支援雙指旋轉手勢。有關指導,請參閱觸控屏手勢。

一般來說,保持互動簡單。觸控手勢本質上屬於二維,但AR體驗涉及真實世界的三維。考慮以下方法來簡化使用者與虛擬物件的互動。

將移動限制在物件所在的二維曲面;將物件旋轉限制為單個軸

在互動虛擬物件的合理接近範圍內響應手勢。當人們瞄準小、薄或距離較遠的物件之上的特定點時,很難做到精確。當你的應用程式在互動物件附近檢測到一個手勢時,通常最好假設人們想要影響所述物件。

支援使用者啟動的物件縮放(如果在應用程式中有意義)。例如,如果你的應用程式允許人們探索一個虛構環境,支援物件縮放可能具有意義,因為你的應用程式不需要表示真實世界。另一方面,如果你的應用程式幫助購物者決定購買傢俱,允許縮放椅子物件並不能幫助他們想象椅子在房間中的效果。

建議:無論應用程式的用途如何,都不要使用縮放來調整物件的距離。如果你為了令其看起來更近而放大遠處物件,結果只會是一個更大的物件,但看起來依然很遙遠。

警惕潛在的衝突姿態。例如,雙指捏手勢類似於雙指旋轉手勢。如果你實現了兩個類似的手勢,一定要測試你的應用程式,確保它們能夠正確解釋。

努力實現與應用程式AR環境物理一致的虛擬物件移動。人們不一定希望物件在粗糙或不平表面之上平穩移動,但他們確實希望物件在移動過程中保持可見。目的是保持移動物件附著在真實世界的曲面之上,避免在人們調整、旋轉或移動物件時導致物件抖動、消失和重新出現。

探索更具吸引力的互動方式。手勢並不是人們與AR中的虛擬物件互動的唯一方式。你的應用程式可以使用其他引數,如運動和接近度。例如,一個遊戲角色可以在走向一個人時轉頭看著他。

5. 設計出色的多使用者體驗

當多人共享應用程式的AR體驗時,每個參與者都會獨立對映環境,ARKit會自動合併對映。有關開發者指南,請參閱isCollaborationEnabled。

考慮啟用人員遮擋。如果你的應用程式支援將虛擬物件放置在人員後面,請通過人員遮擋物件來增強真實感。有關開發者指南,請參閱Occluding virtual content with people。

如果可以,允許新參與者進入多使用者AR體驗。除非你的應用程式要求所有參與者在體驗開始前加入,否則請考慮使用隱式對映合併,允許新使用者快速加入持續的AR體驗。有關開發者指南,請參閱isCollaborationEnabled。

6. 響應真實物件

通過使用真實環境中的已知影象和物件來觸發虛擬內容,你可以增強AR體驗。例如,一個識別科幻電影影院海報的應用程式可以生成虛擬宇宙飛船從海報中出現,並在環境中飛行的效果。另一個例子是藝術博物館應用。當它識別出一個雕塑時,系統會顯示一個虛擬導遊。為了實現這樣的體驗,你的應用程式可以提供一組2D參考影象或3D參考物件,ARKit會指示在當前環境中何時何地檢測到相關專案。有關開發者指南,請參閱在AR體驗中識別影象。

當檢測到的影象首次消失時,請考慮延遲刪除附加到它的虛擬物件。ARKit不會追蹤每個檢測到的影象的位置或方向的變化。為了幫助防止虛擬物件閃爍,請考慮在淡出或刪除虛擬物件之前等待一秒鐘。

限制一次使用的參考影象數量。當ARKit在真實環境中查詢100個或更少的清晰影象時,影象檢測效能最佳。如果需要100多個參考影象,可以根據情景更改活動參考影象集。例如,博物館指南應用可以請求許可使用定位服務來確定使用者所在的博物館位置,然後只查詢所述區域顯示的影象。

限制需要精確位置的參考影象的數量。更新參考影象的位置需要更多資源。當影象可能在環境中移動時,或當附著的動畫或虛擬物件與影象大小相比較小時,使用追蹤影象。

7. 溝通

如果必須顯示教學文字,請使用易於理解的術語。AR是一個先進的概念,並可能會令新人感到茫然。所以,請避免使用ARKit、世界檢測和追蹤等技術術語。相反,使用大多數人都能理解的友好術語。

請這樣措辭:找不到曲面。請嘗試移動到一側或重新定位手機。

請不要這樣措辭:找不到。調整追蹤。

請這樣措辭:輕觸某個位置以放置(要放置物件的名稱)。

請不要這樣措辭:輕觸平面以定位物件。

請這樣措辭:試著開啟更多的燈光,並周圍走動

請不要這樣措辭:缺乏可檢測的特徵。

請這樣措辭:嘗試將手機移動得更慢一點。

請不要這樣措辭:檢測到過度運動。

在三維環境中,首選三維提示。例如,圍繞物件放置三維旋轉指示器比在二維疊加中顯示基於文字的指令更加直觀。避免在3D情景中顯示文字疊加提示,除非使用者沒有響應情景提示。

確保重要文字可讀。使用螢幕空間顯示用於關鍵標籤、註釋和說明的文字。如果需要在三維空間中顯示文字,請確保文字面向使用者,並且無論文字與標記物件之間的距離如何,都使用相同的型別大小。

如有必要,提供獲取更多資訊的方法。設計一個符合應用體驗的視覺指示器,並向用戶展示它們可以點選以提供更多資訊。

7. 處理中斷

ARKit無法在中斷期間追蹤裝置的位置和方向,例如當人們短暫切換到另一個應用或接聽電話時。中斷結束後,以前放置的虛擬物件可能會出現在錯誤的真實位置。啟用重新定位後,ARKit會嘗試使用新資訊來將虛擬物件恢復到其原始真實位置。有關開發者指南,請參閱管理會話生命週期和追蹤質量。

考慮使用系統提供的輔導檢視來幫助人們重新定位。在重新定位期間,ARKit將嘗試把以前的狀態與當前環境的新觀察結果相協調。要啟用所述觀察,你可以使用指導檢視幫助人們將裝置恢復到以前的位置和方向。

考慮在重新定位期間隱藏以前放置的虛擬物件。為了避免在重新定位期間出現閃爍或其他令人不快的視覺效果,最好隱藏虛擬物件並在其新位置重新顯示它們。

如果你的應用程式同時支援AR和非AR體驗,則儘量減少中斷。避免中斷的一種方法是在AR體驗中嵌入非AR體驗,這樣人們就可以在不退出和重新進入AR的情況下處理任務。例如,如果你的應用程式可以將虛擬傢俱放在房間之中,你可以允許他們在不離開AR體驗的情況下更換內飾。

允許使用者取消重定位。如果人們不將裝置定位和定向在中斷前的位置附近,則重新定位會無限期地繼續,但不會成功。如果指導人員恢復會話不成功,請考慮提供重置按鈕或其他方式來重新啟動AR體驗。

當前置攝像頭無法追蹤人臉的時間超過約半秒時進行指示。使用視覺指示器指示攝像頭無法再追蹤人臉。如果在這種情況下需要提供文字說明,請將說明保持在最低限度。

8. 建議解決問題的方法

如果體驗沒有達到使用者的期望,請允許使用者重新設定體驗。不要強迫人們等待條件改善或在物件放置方面掙扎。給他們一個重新開始的方法,看看是否有更好的結果。

如果出現問題,建議可能的修復方法。由於各種原因,對真實環境和表面檢測的分析可能會失敗或花費太長時間,例如光線不足、表面過度反射、表面沒有足夠的細節或camera運動過多。如果應用程式收到這些問題的通知,請使用簡單、友好的語言提供解決建議。

9. AR圖示

應用程式可以在啟動基於ARKit的體驗的控制元件中顯示AR圖示。你可以在開發者資源中下載圖示。

按預期使用AR圖示符。AR圖示符應嚴格用於啟動基於ARKit的體驗。永遠不要改變AR圖示符(除了調整其大小和顏色),將其用於其他目的,或將其與非使用ARKit建立的AR體驗結合使用。

保持最小淨空間。AR圖示符周圍所需的最小淨空間量為圖示符高度的10%。不要允許其他元素侵犯這個空間或以任何方式遮擋圖示符。

10. AR徽標

包含產品或其他物件集合的應用程式可以使用徽標來標識可以使用ARKit在AR中檢視的特定專案。例如,百貨商店應用可以使用徽標來標記傢俱,從而允許使用者在購買之前在家中預覽效果。

按預期使用AR徽標,不要更改。你可以在開發者資源中下載AR徽標,它以摺疊和展開的形式提供。切勿更改徽標,更改其顏色,將其用於其他目的,或將其與非ARKit體驗結合使用。

請儘量使用包含圖形和AR字樣的徽標,不要僅使用圖形徽標。當然,對於無法容納AR標記的受限空間,你可以使用僅圖形徽標。

只有當應用程式包含可以在AR中檢視的物件和不能在AR中檢視的物件時,才使用徽標。如果應用程式中的所有物件都可以在AR中檢視,則AR徽標為多餘。

保持徽標位置一致且清晰。當徽標顯示在物件照片的一角時,效果最好。始終將其放在同一個角落,確保其足夠大,以便清晰可見(但不要太大,以免遮擋照片中的重要細節)。

保持最小淨空間。AR徽標周圍所需的最小淨空間為徽標高度的10%。其他元素不應侵犯這一空間,並以任何方式遮擋徽標。

---

原文連結:http://news.nweon.com/98685