iOS12介面設計指南之功能(System Capabilities)–虛擬現實
ARKit,Apple的虛擬現實(AR)技術,提供身臨其境,引人入勝的體驗,將虛擬物件與現實世界無縫融合。在AR應用程式中,裝置的相機會顯示物理世界的實時螢幕檢視。三維虛擬物件疊加在此檢視上,從而產生它們實際存在的錯覺。使用者可以重新定向他們的裝置以從不同角度探索物件,並且如果適合於體驗,則使用手勢和移動與物件互動。
設計引人入勝的體驗
使用整個顯示器。儘可能多地使用螢幕來檢視和探索物理世界和應用程式的虛擬物件。避免使用控制和資訊使螢幕混亂,從而減少沉浸式體驗。
在放置逼真的物體時創造令人信服的幻想。並非所有AR體驗都需要真實的虛擬物件。那些應該包括看起來居住在它們所處的物理環境中的物體。為獲得最佳效果,請使用逼真的紋理設計詳細的3D資源。使用ARKit提供的資訊來定位檢測到的真實世界表面上的物件,正確縮放物件,反映虛擬物件上的環境光照條件,在真實世界表面上投射虛擬物件陰影,以及在攝像機位置變化時更新視覺效果。
預計人們會在不適合AR的環境中使用您的應用。人們可能會在沒有足夠空間移動或沒有大而平坦的表面區域的地方開啟您的應用。嘗試預測帶來挑戰的場景,並清楚地向前人溝通需求或期望。考慮提供不同的功能集,以便在不同的環境中使用。
注意使用者的舒適度。將裝置長時間保持一定距離或角度可能會導致疲勞。考慮人們在使用您的應用程式時必須如何握住他們的裝置,並努力獲得不會引起不適的愉快體驗。例如,預設情況下,您可以將物件放置在一定距離處,從而減少將裝置移近物件的需要。遊戲可以保持水平短,並與短暫的停機時間混合。
如果您的應用鼓勵使用者動作,請逐步介紹。在遊戲中,使用者一旦進入AR就不需要移開以避開虛擬射彈。讓他們有時間適應經驗。然後,逐步鼓勵運動。
注意使用者的安全。如果附近有其他人或物體,那麼移動太多可能會很危險。考慮使您的應用程式安全執行的方法。遊戲可以避免鼓勵大的或突然的動作。
使用音訊和觸覺反饋來增強身臨其境的體驗。聲音效果或碰撞感是確認虛擬物件與物理表面或其他虛擬物件接觸的好方法。在沉浸式遊戲中,背景音樂可以幫助使用者融入虛擬世界。有關相關指導,請參閱 ofollow,noindex" target="_blank">音訊 和 觸覺反饋 。


儘可能在上下文中提供提示。例如,在物件周圍放置三維旋轉指示器比在疊加中呈現基於文字的指令更直觀。然而,在表面檢測之前,或者如果使用者沒有響應上下文提示,則可以保證文字覆蓋提示。
考慮引導人們走向螢幕外的虛擬物件。有時候很難找到位於螢幕外的物體。如果使用者似乎無法找到螢幕外物件,請考慮提供視覺或聽覺提示。例如,如果某個物件位於螢幕左側,則可以在螢幕左邊顯示一個指示器,以便使用者知道將攝像機對準該方向。
如果必須顯示說明文字,請使用平易近人的術語。AR是一種先進的概念,可能會讓某些使用者感到恐懼。為了使其易於使用,請避免參考技術,面向開發人員的術語,如ARKit,世界檢測和跟蹤。相反,使用大多數人都會理解的友好,對話的術語。
正確 | 錯誤 |
---|---|
無法找到表面。嘗試移到側面或重新定位手機。 | 無法找到平面。調整跟蹤。 |
點選一個位置以放置[要放置的物件的名稱]。 | 點按平面以錨定物件。 |
嘗試開啟更多燈光並四處走動。 | 功能不足。 |
嘗試慢一點移動手機。 | 檢測到過度運動。 |
進入虛擬現實

指示何時正在進行初始化和表面檢測並涉及使用者。每次您的應用程式進入AR時,都會發生初始化過程,在此過程中您的應用程式會評估周圍環境並檢測曲面 表面檢測時間可以根據許多因素而變化。為了減少可能的混淆,請指明您的應用程式正在嘗試檢測表面並鼓勵人們通過慢慢掃描周圍環境來加快程序。
放置虛擬物件

表面檢測指示燈

物件放置指示器

應用特定指標
幫助人們瞭解何時定位表面並放置物件。視覺指示器是表面目標模式處於活動狀態的一種很好的溝通方式。例如,螢幕中央的梯形標線可以幫助人們推斷它們應該找到水平或垂直的平面。一旦表面被定位,指示器的外觀應該改變,以表明現在可以放置物件。如果指示器的方向跟隨檢測到的表面的對齊,則可以幫助人們預測放置的物件將如何對齊。設計視覺指示器,讓您感受到應用體驗的一部分。
當用戶放置物件時適當地響應。在表面檢測期間,精確度(在非常短的時間內)逐漸完善。如果使用者點選螢幕放置物件,請使用當前可用的資訊立即將其放置。然後,一旦表面檢測完成,巧妙地細化物件的位置。如果物體放置在檢測到的表面的邊界之外,請輕輕地將物體輕推回到表面上。
避免嘗試將物件與檢測到的曲面的邊緣精確對齊。在AR中,表面邊界是近似值,可以隨著使用者周圍環境的進一步分析而改變。
使用者與虛擬物件的互動


喜歡直接操作單獨的螢幕控制。當用戶可以觸控式螢幕幕上的物件並直接與其進行互動時,它更加身臨其境且直觀,而不是與螢幕的不同部分上的單獨控制元件互動。但請記住,當用戶四處走動時,直接操縱有時會令人困惑或困難。
允許人們使用標準的,熟悉的手勢直接與虛擬物件進行互動。例如,考慮支援用於移動物件的單指拖動手勢,以及用於旋轉物件的雙指旋轉手勢。旋轉通常應相對於物體所在的表面發生 – 例如,放置在水平表面上的物體通常圍繞物體的垂直軸旋轉。有關相關指導,請參閱 手勢 。
通常,保持互動簡單。觸控手勢本質上是二維的,但AR體驗涉及現實世界的三個維度。請考慮以下方法來簡化使用者與虛擬物件的互動。

限制移動到物體所在的二維表面。

將物件旋轉限制為單個軸。
在互動式虛擬物件的合理接近範圍內響應手勢。使用者可能難以精確地觸控小,薄或放置在一定距離的物體上的特定點。當您的應用在互動式物件附近檢測到手勢時,通常最好假設使用者想要影響該物件。
考慮是否需要使用者啟動的物件縮放。當物體(如玩具或遊戲角色)沒有固有尺寸且使用者希望看到它變大或變小時,縮放通常是合適的。對於具有相對於現實世界的有限尺寸的物體,如一件傢俱,如果物品放置在準確的尺寸處,則縮放是無關緊要的。縮放不是用於調整物件的距離的補救方法 – 使物件變得更大以使其看起來更近,例如,僅導致更大的物件仍然遠離。
警惕可能存在衝突的手勢。例如,雙指捏合手勢與雙指旋轉手勢非常相似。如果您實現兩個類似的手勢,請務必測試您的應用並確保它們被正確解釋。
確保虛擬物件移動順暢。當用戶調整物件大小,旋轉物件或將其移動到新位置時,物件不應顯示為跳躍。
探索更具吸引力的互動方式。手勢不是人們與AR中的虛擬物件互動的唯一方式。您的應用可以使用其他因素,如動作和接近度,將內容變為現實。例如,遊戲角色可以在使用者走向它時轉過頭去看使用者。
在使用者環境中對影象作出反應
您可以通過在使用者環境中使用已知影象來觸發虛擬內容的外觀來增強AR體驗。您的應用程式提供了一組2D參考影象,ARKit指示它在何時何地檢測到使用者環境中的任何影象。例如,一個應用程式可能會識別科幻電影的劇院海報,然後從海報中出現虛擬太空飛船並在環境中飛行。或者,零售商店的應用程式可以通過識別放置在門兩側的海報,使虛擬角色看起來從商店的前門出現。
設計和顯示參考影象以優化檢測。提供參考影象時,可以指定在使用者環境中查詢這些影象的物理大小。提供更精確的尺寸測量有助於ARKit更快地檢測影象,並提供更準確的實際位置估計。檢測效能和精度最適用於具有高對比度和大膽細節的扁平矩形影象。避免嘗試檢測出現在反射或彎曲的真實世界表面上的影象。
僅將檢測到的影象用作顯示虛擬內容的參照系。ARKit不會跟蹤檢測到的影象的位置或方向的變化。因此,如果您嘗試精確放置虛擬內容,就像在繪畫中的臉上定位鬍鬚一樣,內容可能看起來不會留在原位。
限制一次使用的參考影象的數量。當ARKit在使用者環境中查詢25個或更少的不同影象時,影象檢測效能最佳。如果您的用例需要超過25個參考影象,您可以根據上下文更改活動參考影象集。例如,博物館指南應用程式可以使用核心位置來確定使用者當前所在博物館的哪個部分,然後僅檢視該區域中顯示的影象。
有關開發人員指導,請參閱 識別AR體驗中的影象 。
處理中斷
避免不必要地中斷AR體驗。當AR未啟用時,ARKit無法跟蹤裝置位置和方向。避免中斷的一種方法是讓人們調整體驗中的物件和設定。例如,如果使用者放置椅子,他們正在考慮購買他們的起居室,並且該椅子可用於不同的織物,允許他們在不退出AR的情況下更換織物。
使用重定位從其他中斷中恢復。ARKit無法在中斷期間跟蹤裝置位置和方向,例如使用者臨時切換到另一個應用或接聽電話。在中斷之後,先前放置的虛擬物件可能出現在錯誤的現實世界位置。啟用重定位後,ARKit會嘗試將恢復這些虛擬物件所需的資訊恢復到原始的真實位置。該過程要求使用者將其裝置定位和定向在中斷之前的位置附近。有關開發人員指南,請參閱 ARSessionObserver 。
考慮隱藏先前放置的虛擬物件,直到重定位完成。在重新定位期間,ARKit嘗試將其先前的狀態與使用者環境的新觀察結果進行協調。在此過程完成之前,虛擬物件的位置可能不正確。
允許使用者取消重定位。如果使用者無法將裝置定位並定位在中斷之前的位置附近,則重定位將無限期地繼續,但不會成功。引導使用者成功恢復會話,或者提供重置按鈕或其他方式,以便使用者在重定位不成功的情況下重新啟動AR體驗。
處理問題
如果使用者不符合他們的期望,則允許使用者重置體驗。不要強迫人們等待條件改善或與物件放置鬥爭。給他們一個重新開始的方法,看看他們是否有更好的結果。


如果出現問題,建議可能的修復。由於各種原因(光線不足,表面過度反射,表面沒有足夠的細節或攝像機運動太多),使用者環境和表面檢測的分析可能會失敗或耗時太長。如果您的應用被告知這些問題,請提供解決方案的建議。
問題 | 可能的建議 |
---|---|
檢測到的功能不足 | 嘗試開啟更多燈光並四處走動。 |
檢測到過度運動 | 嘗試慢一點移動手機。 |
表面檢測時間過長 | 嘗試四處移動,開啟更多燈光,並確保手機指向足夠紋理的表面。 |
僅在功能強大的裝置上提供AR功能。如果您的應用的主要用途是AR,請將您的應用僅用於支援ARKit的裝置。如果您的應用程式提供AR作為輔助功能 – 如家具目錄,其中包含產品照片並允許在AR中檢視某些產品 – 如果使用者嘗試在不受支援的裝置上輸入AR,則應避免顯示錯誤。如果裝置不支援ARKit,請不要首先提供可選的AR功能。有關開發人員指南,請參閱 資訊屬性列表鍵參考 的 iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3" rel="nofollow,noindex" target="_blank">UIRequiredDeviceCapabilities 部分中的 arkit 鍵,以及 ARConfiguration 的 isSupported 屬性。
AR雕文
應用可以在控制元件中顯示AR字形,以啟動基於ARKit的體驗。您可以在 參考資料中 下載此字形。


按預期使用AR字形。字形應嚴格用於啟動基於ARKit的體驗。切勿改變字形(除了調整其大小和顏色外),將其用於其他目的,或將其與未使用ARKit建立的AR體驗結合使用。
保持最小的空間。AR字形周圍所需的最小空白空間量是字形高度的10%。不要讓其他元素侵犯此空間或以任何方式遮擋字形。

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

按預期使用AR標記,不要更改它們。您可以在 參考資料中 下載摺疊和展開形式的AR徽章。僅使用這些影象來識別可以使用ARKit在AR中檢視的產品或其他物件。切勿更改徽章,更改顏色,將其用於其他目的,或將其與ARKit未建立的AR體驗結合使用。

AR徽章

只有雕文的AR徽章
AR徽章優於僅字形徽章。通常,在空間受限且不能容納AR徽章時,請使用僅字形徽章。這兩個徽章在預設大小下執行良好。
僅當您的應用包含可在AR中檢視的物件和不能在AR中檢視的物件的混合時,才使用徽章。如果您的應用中的所有物件都可以在AR中檢視,那麼徽章就是多餘的,也是不必要的。
保持徽章位置一致和清晰。當徽標顯示在物件照片的一角時,徽章看起來最佳。始終將它放在同一個角落,並確保它足夠大,以便能夠清晰地看到(但不要太大,以至於它會遮擋照片中的重要細節)。
保持最小的空間。AR徽章周圍所需的最小空間量是徽章高度的10%。其他元素不應侵犯此空間並以任何方式遮擋徽章。

