Esta página apresenta mapeamentos recomendados entre constantes públicas da HAL e constantes da API. Se o hardware avaliado não implementar as constantes da HAL, atualize os padrões de fallback descritos na página Implementar constantes e primitivos para gerar saídas semelhantes. O mapeamento é feito com a ajuda de dois modelos padrão diferentes:
Modelo discreto (simples)
- A amplitude é a variável principal desse modelo. Cada entidade na HAL representa uma amplitude háptica diferente.
- Esse modelo é um requisito mínimo necessário para implementar a UX háptica básica.
- Uma UX háptica mais avançada exige hardware e um modelo avançado (modelo contínuo).
Modelo contínuo (avançado)
- Textura e amplitude são as principais variáveis desse modelo. Cada entidade no HAL representa diferentes texturas hápticas. A amplitude de cada entidade do HAL é controlada pelo fator de escala (
S
). - Esse modelo requer hardware avançado. Se os OEMs quiserem usar uma UX háptica avançada com
VibrationEffect.Composition
(para o melhor uso das APIs hápticas mais recentes), é recomendável implementar o hardware usando esse modelo.
- Textura e amplitude são as principais variáveis desse modelo. Cada entidade no HAL representa diferentes texturas hápticas. A amplitude de cada entidade do HAL é controlada pelo fator de escala (
Modelo discreto
É recomendável mapear todas as constantes públicas fornecidas na API com as constantes HAL adequadas. Para começar esse processo, descubra quantos padrões hápticos com amplitude discreta o dispositivo pode definir na HAL. Uma pergunta específica estruturada em torno dessa noção seria: Quantos efeitos hápticos de impulso único com diferenças de amplitude perceptíveis ao ser humano podem ser definidos no meu smartphone? A resposta a essa pergunta determina o mapeamento.
Definir constantes de HAL é um processo dependente de hardware. Por exemplo, um smartphone básico pode ter apenas os recursos de hardware para produzir uma única forma de onda háptica. Dispositivos com componentes de hardware mais avançados produzem uma variedade maior de níveis de amplitude discretos e podem definir várias formas de onda hápticas na HAL. O mapeamento constante HAL-API usa a constante HAL (com a amplitude média como base) e organiza efeitos mais fortes ou mais fracos a partir daí.
Figura 14. Intervalo constante de HAL por amplitude
Quando o número de constantes HAL com amplitude discreta é definido, é hora de mapear as constantes HAL e da API pelo número de constantes HAL. Esse processo de mapeamento pode segmentar uma única constante da API Impulse em até três grupos discretos de níveis de amplitude. A maneira como as constantes da API são segmentadas se baseia em princípios de UX para eventos de entrada acompanhantes. Para mais informações, consulte Design de UX háptico.
Figura 15. Mapeamento constante da HAL-API: modelo discreto
Se o dispositivo for compatível apenas com duas constantes HAL com amplitudes discretas, considere mesclar as constantes HAL de nível de amplitude média e alta. Um exemplo prático dessa noção seria mapear EFFECT_CLICK
e EFFECT_HEAVY_CLICK
para a mesma constante HAL, que seria a constante HAL de nível de amplitude média. Se o dispositivo for compatível apenas com uma constante HAL com amplitude discreta, considere mesclar todos os três níveis em um só.
Modelo contínuo
O modelo contínuo com escalonabilidade de amplitude pode ser aplicado para definir constantes de HAL. Um fator de escala (S
) pode ser aplicado às constantes da HAL (por exemplo, HAL_H0
, HAL_H1
) para produzir a HAL dimensionada (HAL_H0
x S
). Nesse caso, a HAL dimensionada é mapeada para definir constantes da API (HAL_H0
x S1
= H0S1
= EFFECT_TICK
), conforme mostrado na figura 16. Ao usar a escalonabilidade de amplitude do modelo contínuo, um dispositivo pode armazenar um pequeno número de constantes HAL com texturas distintas e adicionar variações de amplitude ajustando o fator de escala (S
). Os fabricantes de dispositivos podem definir o número de constantes HAL com base em quantas texturas hápticas diferentes querem oferecer.
Figura 16. Intervalo constante da HAL por textura (HAL_H0) e escala de amplitude (S)
Figura 17. Mapeamento constante da HAL-API: modelo contínuo
No modelo contínuo, diferentes constantes da HAL representam diferentes texturas hápticas, e não amplitudes diferentes. O fator de escala (S
) pode configurar a amplitude. No entanto, como a percepção da textura (por exemplo, nitidez) está relacionada à percepção da duração e da amplitude, é recomendável combinar a textura e o fator de escala (no processo de design do mapeamento HAL-API).
A Figura 18 ilustra o mapeamento constante aumentando a variação de uma HAL para várias constantes de API com escalonamento de amplitude.
Figura 18. Aumentar a variação com a escalonabilidade da amplitude
Para todas as constantes de API escalonáveis, como PRIMITIVE_TICK
e PRIMITIVE_CLICK
em
VibrationEffect.Composition
,
o nível de energia da constante de API depende do parâmetro float scale
quando
a constante de API é declarada por addPrimitive(int primitiveID, float scale,
int delay)
. PRIMITIVE_TICK
e PRIMITIVE_CLICK
podem ser projetados com uma distinção clara usando constantes HAL diferentes. Essa abordagem é recomendada se você quiser adicionar variação à textura.