Cette page présente les mappages recommandés entre les constantes HAL publiques et les constantes API. Si le matériel évalué n'implémente pas les constantes HAL, alors mettez à jour les modèles de remplacement décrits sur la page Implémenter des constantes et des primitives pour générer des résultats 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'expérience utilisateur haptique de base.
- Une expérience utilisateur haptique plus avancée nécessite du matériel avancé et un modèle avancé (modèle continu).
Modèle continu (avancé)
- La texture et l'amplitude sont les variables clés de ce modèle. Chaque entité du HAL représente différentes textures haptiques. 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 expérience utilisateur 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 différentes textures haptiques. 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écouvrez le nombre de formes d'onde haptiques avec une amplitude discrète que l'appareil peut définir dans le 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 ne dispose peut-être 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 plus large gamme de niveaux d'amplitude discrets et peuvent définir plusieurs formes d'onde haptiques dans le HAL. Le mappage constant HAL-API prend la constante HAL (en utilisant l'amplitude moyenne comme référence), puis organise les effets plus forts ou plus faibles à partir de là.
Figure 1. Plage de constantes HAL par amplitude.
Une fois le nombre de constantes HAL avec une amplitude discrète défini, il est temps de mapper les constantes HAL et API par nombre de constantes HAL. Ce processus de mappage peut segmenter une constante API à impulsion unique en un maximum de trois groupes discrets de niveaux d'amplitude. La manière dont les constantes API sont segmentées est basée sur les principes d'expérience utilisateur pour les événements d'entrée d'accompagnement. Pour en savoir plus, consultez Haptics Conception de l'expérience utilisateur.
Figure 2. 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é. Un exemple pratique de cette notion consiste à mapper EFFECT_CLICK et EFFECT_HEAVY_CLICK sur 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 une é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 des constantes API (HAL_H0 x S1 = H0S1
= EFFECT_TICK), comme illustré à la figure 3. 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 3. Plage de constantes HAL par texture (HAL_H0) et échelle d'amplitude (S).
Figure 4. 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 5 illustre le mappage constant en augmentant la variation d'une constante HAL à plusieurs constantes API avec une évolutivité de l'amplitude.
Figure 5. Augmentation de la variation avec l'évolutivité de l'amplitude.
Pour toutes les constantes API évolutives telles que PRIMITIVE_TICK et PRIMITIVE_CLICK dans
VibrationEffect.Composition,
le niveau d'énergie de la constante API dépend du paramètre float scale lorsque
la constante 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 à l'aide de différentes constantes HAL. Cette approche est recommandée si vous souhaitez ajouter une variation à la texture.