注意事項

Unity、OpenXR 和 WebXR 提供多用途工具集,可在沉浸式體驗中建立各種互動。目標是開發沉浸式應用程式,讓使用者可以透過現有的學習體驗與之互動。您可以設計任何內容,從簡單的手勢到複雜的物理模擬。

請注意,Unity、OpenXR 和 WebXR 應用程式只能在全域空間中運作。

瞭解 Android XR 的設計原則

輸入裝置

XR 應用程式可透過手勢、眼球和臉部追蹤、手勢、語音指令,以及鍵盤、滑鼠和控制器等傳統輸入裝置進行互動。請考量應用程式需要哪些輸入內容,才能提供自然且易於存取的使用者體驗。

  • 支援熟悉的手勢,減輕使用者學習應用程式的負擔。與 2D UI 互動時,請使用標準系統手勢,例如雙指撥動。針對 3D 互動 (例如拿起和丟擲球),您應設計模擬真實互動的動作。這可建立使用者現有的知識,並減少使用教學課程的需求。
  • 如果需要額外的動作,請確保這些動作容易學習、記住和執行。避免使用複雜的多步驟手勢,或不自然的姿勢,以免造成不適和疲勞。建議提供指南,教導使用者如何使用手勢。
  • 請確認使用者可以用左手或右手操作。如果無法這麼做,請遵循系統的慣用手偏好設定。
  • 雖然雙手互動可帶來身歷式體驗,但對於行動不便的使用者來說,可能會造成困擾。優先考慮基本動作的一手操作。如果需要雙手手勢,請提供替代的單手方法來達到相同的結果。
  • Unity、OpenXR 和 WebXR 應用程式不會自動運用 Android 的回溯堆疊。建議您實作返回堆疊,讓使用者可以使用 Android XR 的返回手勢來復原動作,或透過手勢導覽返回。

使用手勢操作系統的雙手。

UI

按鈕、面板和文字等使用者介面元素,對於 XR 應用程式中的自然互動至關重要。設計應以流暢、直覺的使用者體驗為優先。具體的 UI 設計選擇取決於應用程式的獨特需求。

  • 將主要互動元素和重要內容放在使用者自然的視線和視野範圍內。這有助於提升可見度,並確保使用者享有舒適的體驗。請考量使用者如何與介面互動,以決定應將介面放在多遠的位置。例如,他們是使用雷射筆瞄準,還是直接用手指輕觸按鈕?根據介面與使用者的預期距離,設定介面大小。請參閱 Android XR 大小和縮放指南
  • 設計按鈕等互動式 UI 元素時,請考量使用者預期如何與其互動、每種輸入方法所需的精確度 (手勢追蹤與滑鼠),並據此調整目標大小和間距等因素。請確保 UI 位置可讓使用者輕鬆互動。針對使用者動作提供視覺回饋。請參閱 Android XR 樣式指南
  • 面板等 2D UI 非常適合用於以選單為基礎的互動。3D UI (例如實體按鈕、桿和切換鈕) 可在與空間環境互動時,提供更身歷其境的體驗。透過平衡的面板互動 (可確保高可讀性) 和 3D 物件 (可確保以世界為重心互動),即可打造強大且身歷其境的體驗。
  • 使用適當的字型大小、類型和對比,確保文字清晰易讀。根據使用者觀看文字的距離,調整 UI 位置。使用Signed Distance Field 字型,以便在各種字型大小下流暢轉譯文字。請參閱 Android XR 字體排版指南

某人完全沉浸在有超大螢幕的空間環境中。他們站在岩石上,手臂可觸及使用者介面控制項。

空間互動

XR 中互動性最豐富的部分,是使用者可以直接與 3D 物件互動。這可能很簡單,例如拿起、檢查和丟擲物品。也包括更複雜的互動,例如拉動槓桿、按下按鈕,以及與使用者已握住的元素互動,例如噴灑噴霧瓶。如要提供直覺的 3D 物件互動體驗,請根據使用者對世界的既有認知進行設計。

  • 如要建立逼真的動作,請考慮整合物理引擎。如果您使用 Unity 進行建構,則該工具內建物理引擎。請留意物理引擎耗用的處理效能,並進行最佳化調整。
  • 可信度比寫實性更重要。舉例來說,如果使用者認為自己用力擲出球,應用程式就應在球上增加額外力道,超出裝置感應器所指示的力道。
  • 物件應根據其可用性進行建構。也就是說,應用程式應考量使用者可對物件執行或透過物件執行的所有可能動作。舉例來說,使用者可以拿起、丟出和吃甜甜圈。應用程式可以採用旁白,指出「我現在不餓」。這些解決方案會解決使用者預期透過圓環圖執行的動作。
  • 您可以使用各種技巧來保持物件,包括父項、物理連結、追蹤和物理力。每種方法各有優缺點。在實作自訂擷取方法前,務必先研究及測試不同的方法,找出最合適的方法。
  • 在 3D 環境中設計時,人體工學非常重要。為方便使用者操作,建議在平面上加上把手,讓使用者調整到適當的高度。請務必使用各種使用者測試空間中的每個物件,因為每個人的身體都不同。

Job Simulator 是一款完全沉浸式的 VR 遊戲,使用者會坐在辦公室隔間內的舊電腦前。遊戲中包含可與 3D 物件互動的虛擬手。

場景設計

場景範圍涵蓋從完全沉浸式的虛擬世界,到將虛擬元素與使用者實際環境融合的擴增實境體驗。設計舒適、實用且能發揮延展實境獨特功能的場景。

  • 限制使用者周圍移動的場景,例如飛行場景。這可能會造成不適,尤其是當使用者身體保持不動時。某些移動技巧,例如隧道視野 (下一節會說明),有助於減輕不適感。
  • 如要建立混合實境體驗,您可以使用 Android XR 的場景理解功能,將虛擬物件整合至使用者的實體環境中。
  • 對於虛擬實境應用程式,您可能會想在虛擬空間中加入真實世界的有限視圖。這有助於使用者隨時留意周遭環境,並在不離開沉浸式體驗的情況下與實體物品互動。

Locomotion

建議您在 Android XR 體驗中,讓使用者可在所設定邊界所定義的實體空間中自由移動。舉例來說,部分使用者發現,如果虛擬體驗是圍繞著靜態的作者空間設計,體驗就會更具臨場感。如果您希望使用者在虛擬空間中移動的範圍超出邊界,不妨考慮使用可放大移動的移動技術,例如瞬間移動。

使用者可以透過瞬間移動功能,以手指選取或使用控制器,立即跳到新位置。這非常適合快速移動長距離,而且通常也是最不容易造成暈車的移動方式。在轉場期間稍微遮蔽螢幕,可進一步減少不適感。

其他移動方法

如果您使用其他移動方式,建議您也提供傳送功能做為替代方案。

  • 原地走路並擺動手臂:擺動手臂或上下移動控制器,模擬走路動作。有些使用者可能會覺得這項操作方式費時且不夠直覺。
  • 持續移動:使用控制器的搖桿或操縱桿,在環境中移動虛擬人物。在大多數情況下,您應避免使用這種方法,因為這通常會導致暈車。

如果您決定在體驗中使用移動功能,請提供多個選項,以滿足個人偏好並改善使用者體驗。

當使用者的實際動作與虛擬體驗不一致時,就可能會發生動暈症狀。如要讓使用者在移動過程中感到舒適,請採取下列做法:

  • 確保虛擬水平線保持穩定且平整。
  • 如果需要持續移動,請避免逐步加速或減速。保持一致的速度。
  • 隧道視野可在移動期間縮小使用者的視野,並透過邊緣變暗效果限制邊緣區域感知到的動作,進而減少暈車症狀。
  • 針對旋轉,將使用者的觀點鎖定特定角度。這可能會導致方向感錯亂,但可減少暈車症狀。
  • 使用者的容忍度各有不同。讓他們根據個人偏好調整舒適度設定,例如選擇移動方式、切換隧道視野開關,或調整移動速度。

空間音訊

聲音是一種強大的工具,可創造身歷其境的音景,讓使用者進入另一個世界,喚起特定情緒。空間音訊可在虛擬環境中準確定位聲音。

  • Ambisonics 就像是音訊的 Skybox,可為使用者提供身歷其境的音效環境。使用環繞聲處理背景環境音效,或在其他情況下模擬環繞聽眾的完整球形音場。
  • 空間化音訊提示可引導使用者的注意力。
  • 將音效轉換為空間化音效,提升沉浸感。
  • 將語音音訊空間化至說話者的所在位置,即使使用者並未直接面對說話者,也能讓使用者感受到臨場感。
  • 允許使用者調整音訊。例如,他們可能想停用或變更背景音樂、音效或旁白的音量。
  • 建議為聽障或聽力不佳的觀眾新增字幕。

其他舒適性考量

為了優先考量無障礙性,請提供可自訂的選項,以滿足各種能力和偏好。這可確保各種使用者都能享受沉浸式體驗。

  • 讓應用程式以每秒 72 張影格的速度執行:這有助於盡量減少視覺抖動,並避免使用者感到不適。
  • 讓使用者自行控管:為了讓應用程式能滿足不同程度的 XR 使用者需求,請讓使用者透過可自訂設定,自行調整體驗。建議您讓使用者重新對應控制器按鈕和手勢,以符合他們的需求或偏好。舉例來說,手部活動能力受限的使用者可能會受惠於不同的按鈕版面配置,或更大、更簡單的輸入控制項。

如需特定平台的指引,請參閱:

為 OpenXR 開發

使用 Unity 進行開發

WebXR 說明文件