ハプティクス設計の原則

モバイル デバイスでの触覚フィードバックは、少ないほど効果的です。振動が大きすぎると、デバイスがユーザーの注意をそらさずに手に持っているため、手がふさがれてしびれすることさえあります。また、ユーザーが意図したタスクの妨げとなり、ユーザーがすべてのハプティクスをすばやくオフにしてしまう可能性もあります。ただし、巧みに作成された触覚は、貴重な感覚的フィードバックを提供し、デバイスをより豊かに利用します。

このページでは、触覚を使用するユースケースについて説明し、触覚効果の分類を紹介します。また、アプリの基本的なガイドラインについても説明します。

アプリにハプティクスを追加するユースケース

アプリにハプティクスを組み込む理由は次のとおりです。

  • 注意が必要なイベントをユーザーに通知するため。たとえば、電話の着信やテキスト メッセージ、カレンダー上の今後の会議などです。

  • ユーザーの操作後にデバイスの状態変化を確認する場合。 たとえば、ボタンの押下に対するクリック フィードバック、スマートフォンのロック解除、指紋の承認または拒否、カメラの有効化などです。

  • エフェクトでユーザーを喜ばせるため。このような効果により、進行中のユーザー操作を強化したり、物理的な操作をエミュレートしたりできます。たとえば、スクロール フィードバック、所定の位置にスナップするスライダー、アニメーション、サウンド、動画、ゲームと同期した触覚効果などがあります。

ハプティクスの分類

ここで紹介する触覚の原理は、クリア ハプティクス、リッチ ハプティクス、耳障りなハプティクスを中心に設計されています。

クリア ハプティクス

クリア ハプティクスとは、ボタンの押下などの個別のイベントに関連付けられた、鮮明でクリーンな感覚を指します。多くの場合、こうした効果は、物理的なボタンを押すときに経験するような、対応する現実世界の機械的な動作を模倣することを目的としています。

Android の VibrationEffect には、明確な触覚効果が事前定義されています。ただし一般的には、デバイス全体で効果とアクションの一貫性を確保するために、HapticFeedbackConstants のアクション指向の定数を使用する必要があります。

アクション指向定数のもう 1 つの利点は、ユーザーのデバイスでより複雑な効果がサポートされていない場合に、プラットフォームでフォールバック動作を提供できることです。

触覚フィードバックのユースケースが拡大するにつれ、使用可能なクリア ハプティクスはプレーンで単調に感じられることがあります。表現力豊かなリッチな触覚を採用しましょう

リッチ ハプティクス

一般に、リッチ ハプティクスには、より広い周波数帯域幅を持つ触覚アクチュエータが必要です。これにより、表現力と範囲を広げることができます。リッチ ハプティクスは、さまざまな振幅や間隔でクリア ハプティクス プリミティブをシーケンシングすることによっても生成できます。

リッチ触覚効果の例:

  • 蝶が指先で羽を羽ばたかせるような「ひらひら」な感覚
  • 指でドラッグしたりスワイプしたりすると感じる表面のテクスチャ
  • 揺れや不安定感、重さや反響音

耳障りな触覚

うるさいハプティクスは、ノイズが多く、シャープで、入り込む振動が特徴であり、振動が終わってもチクチクするような感覚が残る場合があります。また、バイブレーションが完全に停止する前の残響のような呼び出し音にもなります。

耳障りな触覚の例としては、次のようなものが挙げられます。

  • ジャックハンマーの操作
  • オートバイの乗車
  • モバイル デバイスでは、キーが押された後に振動する長巻きの着信音

ポケベルやフィーチャー フォンの時代から、低性能の触覚アクチュエータやドライバを搭載したローエンドのスマートフォンは、通知用にうるさい長いバイブレーションを発する傾向がありました。

ハプティクスの設計ガイドライン

設計ガイドラインの概要は次のとおりです。

  • 耳障りな触覚よりも、豊かでクリアな触覚を優先します。
  • システムとアプリのデザインの両方に一貫性を持たせます。
  • 使用頻度と重要性に留意してください。

事前定義された触覚定数と触覚効果を優先する

アクションが HapticFeedbackConstants にある事前定義済みのアクションの対象である場合は、その定数を使用します。これにより、一貫したユーザー操作エクスペリエンスが保証され、ユーザー補助の考慮事項として特に価値があります。

独自のエフェクトを作成する場合は、VibrationEffect 事前定義エフェクトと VibrationEffect.Composition プリミティブの使用を検討してください。それらのデバイスをサポートするすべてのデバイスで、一貫した品質エクスペリエンスを提供できる可能性が高くなります。

イベントの重要度および頻度と強さを関連付ける

触覚効果は、ユーザーを圧倒したり、不必要に感じたりしないようにする必要があります。

  • テキスト ハンドルのスクロールや移動など、非常に頻繁なイベントに適用される触覚効果は、全体として心地よいエクスペリエンスを提供するために、非常に控えめにする必要があります。

  • より重要なイベント(ページの更新やフォームの送信など)は、たとえば切り替えボタンやリストのスクロールを変更するよりも強力なものにする必要があります。

  • 両方のコンセプトを組み合わせることで、操作がターゲットに到達するにつれて効果が強くなります。たとえば、ドラッグ、ドロップ、スナップ アクションを使用して一連の目盛りの振幅を徐々に大きくすることができます。

一貫性を保つ

アプリ内でハプティクスの適用に一貫性を持たせる。フォーム送信やアプリ内ナビゲーションなどの特定の操作に触覚フィードバックがある場合は、同様の操作すべてに同じ効果が適用されるようにします。これにより、ユーザーは特定の触覚フィードバックに意味を関連付けることができます。

また、時刻選択ツールや仮想キーボードなど、明確に定義された操作には、同じ HapticFeedbackConstants を使用することで、Android システムとの連携も確保します。

ハプティクスを使って視覚と音声のエクスペリエンスをデザインする

全体的なユーザー エクスペリエンスの一部として触覚を考慮します。

視覚、音声、触覚効果は共同設計することを強くおすすめします。視覚的なアニメーションや音声パターンとの調和を図ります。視覚入力と聴覚入力は認識される触覚を強化し、適切に設計された触覚効果は視覚効果や音声効果に物理的性をもたらします。

逆に、同期がずれて再生される触覚フィードバックや、視覚効果や音声効果に矛盾するように感じる触覚フィードバックは、ユーザーを少し不快にさせる可能性があります。場合によっては、ユーザーが触覚アクチュエータが破損していると認識することがあります。

触覚フィードバックで従来のワンショット バイブレーションを回避

VibrationEffect.createOneShot で定義したものや、API Vibrator.vibrate(long)Vibrator.vibrate(long[], int) を使用して実行するものなど、従来のワンショット バイブレーションは使用しないでください。

このような振動は、特に性能の低い触覚アクチュエータまたはドライバを備えたデバイスでは、入力波形終了後も長時間続くと耳障りに感じられることがあります。

適切なキークリックの触覚フィードバック シグナルの持続時間は、10 ~ 20 ミリ秒です。ただし、アクチュエータへの 20 ミリ秒の入力が終了した後、アクチュエータがさらに 20 ~ 50 ミリ秒鳴り続ける場合があります。そのため、この種のフィードバックではシングルショット バイブレーションを使用しないことをおすすめします。