Conception haptique UX

Le mappage des constantes HAL-API introduit à l' étape 2 de la liste de contrôle haptique est guidé par des principes de conception UX hautement recommandés. Les principes de conception UX définissent la base de comment, quand et quoi utiliser lors de l'utilisation des API haptiques Android. Consultez Advanced Haptics : The When, What, and How of New Haptic APIs pour en savoir plus sur ces principes fondamentaux.

Cartographie constante

Figure 1. Mappage constant HAL-API : modèle discret

Sélection des effets haptiques

Par force haptique ( VibrationEffect )

EFFECT_CLICK est le meilleur point de départ pour déterminer la force haptique souhaitée ( VibrationEffect ): c'est la médiane entre les haptiques "légers" de EFFECT_TICK et les haptiques "lourds" de EFFECT_HEAVY_CLICK . En commençant par EFFECT_CLICK , vous pouvez augmenter ou diminuer l'énergie conceptuelle en ajoutant de la force avec EFFECT_HEAVY_CLICK , ou diminuer la force avec EFFECT_TICK . Gardez à l'esprit EFFECT_DOUBLE_CLICK fournit l'énergie conceptuelle la plus élevée car il est répété.

Force haptique

Figure 2. Paramètres de force haptique

Par événements d'entrée et éléments d'interface utilisateur ( HapticFeedbackConstants )

Si votre objectif est associé à des événements d'entrée spécifiques (comme un appui long ou un balayage) ou des éléments d'interface utilisateur (comme un clavier), recherchez des constantes haptiques prédéfinies dans HapticFeedbackConstants . Le nom de chaque constante fait référence à des cas d'utilisation spécifiques comme KEYBOARD_PRESS ou LONG_PRESS .

Simulation d'événements de pression de bouton dans le monde réel

Le retour haptique tactile des événements d'entrée (boutons programmables virtuels) peut simuler les pressions sur les boutons à l'aide d'entités physiques (telles que les boutons durs mécaniques).

Événement d'entrée : flux d'interaction par paires

L'événement de clic est conçu pour simuler le comportement d'un bouton mécanique, qui est enfoncé puis relâché . L'énergie perçue de l'impulsion mécanique d'une pression sur un bouton est supérieure à celle d'un relâchement du bouton. Par conséquent, le retour haptique pour les pressions de bouton est plus fort que le retour haptique pour les relâchements de bouton.

Evénement Presse et Communiqué Haptique

Figure 3. Effets haptiques par événement d'entrée binaire

Force haptique : l'offre d'appuyer sur un bouton

Les événements d'entrée avec un engagement plus court et plus léger sont associés à des haptiques plus légères . Les événements d'entrée avec un engagement plus long et plus profond sont associés à une haptique plus forte .

Presse Affordance Haptique

Figure 4. Effets haptiques par affordance

Simulation de texture virtuelle dans un événement de saisie gestuelle

L'entrée basée sur les gestes (comme le balayage ou le défilement) peut être alignée avec des textures haptiques virtuelles pendant que le doigt se déplace sur l'écran avec des interfaces utilisateur visuelles, par exemple, générant un retour haptique répété pendant qu'un doigt se déplace autour de l'horloge UI avec une coche virtuelle Éléments d'interface utilisateur.

Les effets des textures haptiques virtuelles sont destinés à être répétés. Cela rend souvent l'énergie perçue supérieure à l'amplitude (lorsque l'effet est appelé sans répétition , ou une seule fois ). Pour cette raison, les constantes haptiques conçues pour les textures haptiques virtuelles (comme CLOCK_TICK ou TEXT_HANDLE_MOVE ) doivent être subtiles pour donner la sensation de mouvement à travers des signaux répétés.

Texture virtuelle

Figure 5. Effets haptiques pour simuler une texture virtuelle

Y compris les sentiments

Pour inclure un sentiment positif ou négatif dans les effets haptiques, appliquez une sensation plus forte au sentiment négatif pour attirer l'attention de l'utilisateur.

Sentiment haptique

Figure 6. Effets haptiques avec sentiment

Éviter le bruit audible des longues vibrations

Pour éviter les bruits audibles provenant de longues vibrations pour l'haptique attentionnelle, accélérez doucement le motif pour créer un effet d'accélération. Pour ce faire, utilisez createWaveform(long[] timings, int[] amplitudes, int repeat) .

Longues vibrations

Figure 7. Long effet d'accélération des vibrations