Cette page présente les mappages recommandés entre les constantes HAL publiques et les constantes de l'API. Si le matériel évalué n'implémente pas les constantes HAL, mettez à jour les modèles de secours décrits sur la page Implémenter des constantes et des primitives pour générer des sorties similaires. Le mappage est assisté par deux modèles par défaut différents :
Modèle discret (simple)
- L'amplitude est la variable clé de ce modèle. Chaque entité du HAL représente une amplitude haptique différente.
- Ce modèle est une exigence minimale pour implémenter l'UX haptique de base.
- Une UX haptique plus avancée nécessite un matériel et un modèle (modèle continu) avancés.
Modèle continu (avancé)
- La texture et l'amplitude sont les variables clés de ce modèle. Chaque entité du HAL représente une texture haptique différente. L'amplitude de chaque entité HAL est contrôlée par le facteur d'échelle (
S
). - Ce modèle nécessite du matériel avancé. Si les OEM souhaitent utiliser une UX haptique avancée avec
VibrationEffect.Composition
(pour une utilisation optimale des dernières API haptiques), il est recommandé d'implémenter leur matériel à l'aide de ce modèle.
- La texture et l'amplitude sont les variables clés de ce modèle. Chaque entité du HAL représente une texture haptique différente. L'amplitude de chaque entité HAL est contrôlée par le facteur d'échelle (
Modèle discret
Il est recommandé de mapper toutes les constantes publiques fournies dans l'API avec les constantes HAL appropriées. Pour commencer ce processus, déterminez le nombre de formes d'onde haptiques avec une amplitude discrète que l'appareil peut définir dans la HAL. Une question spécifique structurée autour de cette notion se présente comme suit : Combien d'effets haptiques à impulsion unique avec des différences d'amplitude perceptibles par l'homme peuvent être définis sur mon téléphone ? La réponse à cette question détermine le mappage.
La définition des constantes HAL est un processus dépendant du matériel. Par exemple, un téléphone d'entrée de gamme peut ne disposer que des capacités matérielles nécessaires pour produire une seule forme d'onde haptique. Les appareils dotés de composants matériels plus avancés produisent une gamme plus large de niveaux d'amplitude discrets et peuvent définir plusieurs formes d'onde haptiques dans la HAL. Le mappage constant HAL-API prend la constante HAL (en utilisant l'amplitude moyenne comme référence), puis organise les effets plus ou moins forts à partir de là.
Figure 14. Plage constante HAL par amplitude
Une fois le nombre de constantes HAL avec amplitude discrète défini, il est temps de mapper les constantes HAL et API par le nombre de constantes HAL. Ce processus de mappage peut segmenter une seule constante API d'impulsion en trois groupes distincts de niveaux d'amplitude au maximum. La façon dont les constantes d'API sont segmentées est basée sur les principes d'expérience utilisateur pour les événements d'entrée associés. Pour en savoir plus, consultez Conception UX des retours haptiques.
Figure 15. Mappage constant HAL-API : modèle discret
Si votre appareil n'est compatible qu'avec deux constantes HAL avec des amplitudes discrètes, envisagez de fusionner les constantes HAL de niveau d'amplitude "Moyen" et "Élevé". Par exemple, vous pouvez mapper EFFECT_CLICK
et EFFECT_HEAVY_CLICK
à la même constante HAL, qui serait la constante HAL de niveau d'amplitude moyen. Si votre appareil n'est compatible qu'avec une seule constante HAL avec une amplitude discrète, envisagez de fusionner les trois niveaux en un seul.
Modèle continu
Le modèle continu avec évolutivité de l'amplitude peut être appliqué pour définir des constantes HAL. Un facteur d'échelle (S
) peut être appliqué aux constantes HAL (par exemple, HAL_H0
, HAL_H1
) pour produire le HAL mis à l'échelle (HAL_H0
x S
). Dans ce cas, le HAL mis à l'échelle est mappé pour définir les constantes de l'API (HAL_H0
x S1
= H0S1
= EFFECT_TICK
), comme illustré sur la figure 16. En utilisant l'évolutivité de l'amplitude du modèle continu, un appareil peut stocker un petit nombre de constantes HAL avec des textures distinctes et ajouter des variations d'amplitude en ajustant le facteur d'échelle (S
). Les fabricants d'appareils peuvent définir le nombre de constantes HAL en fonction du nombre de textures haptiques différentes qu'ils souhaitent fournir.
Figure 16. Plage constante HAL par texture (HAL_H0) et échelle d'amplitude (S)
Figure 17. Mappage constant HAL-API : modèle continu
Dans le modèle continu, différentes constantes HAL représentent différentes textures haptiques plutôt que différentes amplitudes. Le facteur d'échelle (S
) peut configurer l'amplitude. Toutefois, comme la perception de la texture (par exemple, la netteté) est liée à la perception de la durée et de l'amplitude, il est recommandé de combiner la texture et le facteur d'échelle (dans le processus de conception du mappage HAL-API).
La figure 18 illustre le mappage constant en augmentant la variation d'une constante HAL à plusieurs constantes d'API avec une évolutivité de l'amplitude.
Figure 18. Augmenter la variation avec l'évolutivité de l'amplitude
Pour toutes les constantes d'API évolutives telles que PRIMITIVE_TICK
et PRIMITIVE_CLICK
dans VibrationEffect.Composition
, le niveau d'énergie de la constante d'API dépend du paramètre float scale
lorsque la constante d'API est déclarée via addPrimitive(int primitiveID, float scale,
int delay)
. PRIMITIVE_TICK
et PRIMITIVE_CLICK
peuvent être conçus avec une distinction claire en utilisant différentes constantes HAL. Cette approche est recommandée si vous souhaitez ajouter une variante à texture.