觸覺回饋設計原則

針對行動裝置的觸覺回饋,重要性越低。裝置中的震動過多可能令人困擾,甚至會對手發出數字印象,因為這類裝置通常在使用者無法集中註意力的情況下運作。也可以乾擾使用者操作,導致使用者快速關閉所有觸覺回饋。然而,精心打造的觸覺回饋會提供寶貴的感官回饋,讓使用者進一步與裝置互動。

本頁說明使用觸覺技術的用途、介紹觸覺效果的分類,也會介紹應用程式的基本指南

在應用程式中加入觸覺技術的用途

以下是將觸覺技術融入應用程式的原因。

  • 用於通知使用者需要注意的事件。範例包括來電或簡訊,或是日曆上即將舉行的會議。

  • 在使用者操作後確認裝置的狀態變更。例如按下按鈕的點擊意見回饋、解鎖手機、接受/拒絕指紋,或啟用相機。

  • 運用特效讓使用者滿意。這類效果可以改善持續的使用者操作,或模擬身體互動。例如捲動回饋、將滑桿貼齊適當的位置,或與動畫、音效、影片和遊戲保持同步的觸覺效果。

觸覺回饋分類

本文介紹的觸覺原則是以清晰觸覺技術豐富的觸覺回饋振動觸覺技術為設計基礎。

清晰觸覺回饋

透明觸覺是指與離散事件 (例如按下按鈕) 相關的清晰和潔淨程度。這些效果通常會設法模仿相關的實際機械動作,例如按下實體按鈕時感受到的操作。

Android 在 VibrationEffect 中有預先定義的明確觸覺效果。不過,一般應用程式應使用來自 HapticFeedbackConstants 的動作導向常數,以確保裝置上效果和動作的一致性。

動作導向常數的另一個好處是,如果使用者的裝置不支援較複雜的效果,平台可提供備用行為。

隨著觸覺回饋的應用日益廣泛,可用的明確觸覺回饋有時可能會讓您感到既淺又單調。在這種情況下,請盡量使用更生動的觸覺回饋。

豐富的觸覺回饋

豐富的觸覺技術一般需要頻率頻寬較寬的觸覺致動器,以便獲得更豐富的表達能力及範圍。更豐富的觸覺技術也能透過依不同振幅和間隔,依序產生清楚的觸覺基元來產生。

以下為豐富的觸覺效果範例:

  • 「飄揚」的感覺,類似蝴蝶在指尖上舉動的翅膀
  • 表面用手指拖曳或滑動表面的紋理
  • 腫脹、不穩定或重生的感覺

震動觸覺回饋

震動觸覺的特徵可能包括雜訊、銳利及波波震動,即使震動結束後仍會產生不適感,例如讓觸感降低。通常也會在震動完全停止前產生回響效果,看起來像回音。

以下為震動觸感的範例:

  • 操作鹿角手鍊
  • 騎摩托車
  • 在行動裝置上,長按則震動。

回溯至呼叫頁面和功能型手機時,低效能觸覺啟動器或驅動程式的低階手機經常會在通知用途時產生醒目的長震動。

觸覺回饋設計指南

大致上,設計指南可匯總為:

  • 換上豐富的觸覺回饋,
  • 採用系統和應用程式設計,保持一致。
  • 留意使用頻率和重要性。

優先採用預先定義的觸覺常數和效果

如果您的動作屬於 HapticFeedbackConstants 中顯示的預先定義動作,請使用該常數。這可確保使用者互動體驗一致,且極有利於無障礙功能考量。

如要自行建立效果,建議您使用 VibrationEffect 預先定義的效果和 VibrationEffect.Composition 原始物件。因為他們更有可能在各種裝置上提供一致的優質體驗。

將活動重要性和頻率與強度建立關聯

觸覺效果不應讓使用者感到疲乏,也不能無謂。

  • 對極常見事件 (例如捲動或移動文字控點) 套用的觸覺效果應該十分細微,才能提供愉快的整體體驗。

  • 更重要的事件 (例如:重新整理頁面或提交表單) 應該比變更切換或捲動清單更有效。

  • 結合這兩個概念,即可在互動達到目標時產生更強的效果,例如,透過拖曳、放置或貼齊動作,逐步增加一連串滴答的振幅。

保持一致

在應用程式中使用觸覺技術,確保兩者一致。如果特定互動 (例如表單提交或應用程式內導覽) 含有觸動回饋,請確認所有類似的互動都能套用相同效果。這有助於使用者將某個意義與特定觸覺回饋建立關聯。

此外,針對明確定義的互動 (例如時間挑選器或虛擬鍵盤) 使用相同的 HapticFeedbackConstants,也需要與 Android 系統保持一致。

透過觸覺技術設計視覺和音訊體驗

在使用者的整體體驗中,請考慮使用觸覺技術。

我們強烈建議與視覺、音效和觸覺效果共同設計。透過視覺動畫和音效模式,讓內容調和一致。視覺和聽覺輸入可以增強觸覺回饋,而經過精心設計的觸覺技術可以為視覺和音效增添「物理感」

相反地,如果遇到無法同步的觸覺回饋,或是與視覺效果和音效不一致的情況,可能會讓使用者感到有點不安。在某些情況下,使用者可能會感覺觸覺啟動器損壞。

避免使用舊一次震動來改善觸覺回饋

請避免使用舊版單一震動 (例如 VibrationEffect.createOneShot 定義的震動),或使用 API Vibrator.vibrate(long)Vibrator.vibrate(long[], int) 執行。

當輸入波形結束之後,這些震動可能會感到震動提示,尤其是在低效能觸覺回饋反應器或驅動程式的裝置上更是如此。

良好的按鍵觸動回饋信號應持續 10 到 20 毫秒。然而,致命器在 20 毫秒的輸入結束後,該致命器可能繼續響鈴 20 到 50 毫秒。因此,在這類意見回饋中,最好避免發生單樣本震動。