Questa pagina presenta i mapping consigliati tra le costanti HAL pubbliche e le costanti API. Se l'hardware valutato non implementa le costanti HAL, aggiorna i pattern di fallback descritti nella pagina Implementare costanti e primitive per generare output simili. La mappatura è assistita da due diversi modelli predefiniti:
Modello discreto (semplice)
- L'ampiezza è la variabile chiave di questo modello. Ogni entità nel file HAL rappresenta un'ampiezza aptica diversa.
- Questo modello è un requisito minimo necessario per implementare l'esperienza utente aptica di base.
- Un'esperienza utente aptica più avanzata richiede hardware avanzato e un modello avanzato (modello continuo).
Modello continuo (avanzato)
- La trama e l'ampiezza sono le variabili chiave di questo modello. Ogni entità
nel file HAL rappresenta diverse texture aptiche. L'ampiezza di ogni
entità HAL è controllata dal fattore di scala (
S
). - Questo modello richiede hardware avanzato. Se gli OEM vogliono utilizzare l'UX aptica avanzata con
VibrationEffect.Composition
(per il miglior utilizzo delle API aptiche più recenti), è consigliabile implementare il loro hardware utilizzando questo modello.
- La trama e l'ampiezza sono le variabili chiave di questo modello. Ogni entità
nel file HAL rappresenta diverse texture aptiche. L'ampiezza di ogni
entità HAL è controllata dal fattore di scala (
Modello discreto
È consigliata la mappatura di tutte le costanti pubbliche fornite nell'API con le costanti HAL appropriate. Per iniziare questa procedura, scopri quante forme d'onda aptiche con ampiezza discreta può definire il dispositivo nell'HAL. Una domanda specifica strutturata intorno a questo concetto è la seguente: Quanti effetti aptici a impulso singolo con differenze di ampiezza percepibili dall'uomo possono essere definiti nel mio smartphone? La risposta a questa domanda determina la mappatura.
La definizione delle costanti HAL è un processo dipendente dall'hardware. Ad esempio, uno smartphone di base potrebbe avere solo le funzionalità hardware per produrre una singola forma d'onda aptica. I dispositivi con componenti hardware più avanzati producono una gamma più ampia di livelli di ampiezza discreti e possono definire più forme d'onda aptiche nell'HAL. Il mapping costante HAL-API prende la costante HAL (utilizzando l'ampiezza media come base di riferimento), quindi dispone gli effetti più forti o più deboli.
Figura 14. Intervallo costante HAL per ampiezza
Quando viene definito il numero di costanti HAL con ampiezza discreta, è il momento di mappare le costanti HAL e API in base al numero di costanti HAL. Questo processo di mappatura può segmentare una singola costante API di impulso in un massimo di tre gruppi discreti di livelli di ampiezza. Il modo in cui le costanti API vengono segmentate si basa sui principi UX per gli eventi di input di accompagnamento. Per saperne di più, consulta Progettazione UX aptica.
Figura 15. Mappatura costante HAL-API: modello discreto
Se il dispositivo supporta solo due costanti HAL con ampiezze discrete,
valuta la possibilità di unire le costanti HAL di livello di ampiezza medio e alto. Un esempio di
questa nozione in pratica sarebbe la mappatura di EFFECT_CLICK
e EFFECT_HEAVY_CLICK
alla stessa costante HAL, che sarebbe la costante HAL di livello di ampiezza medio. Se il dispositivo supporta solo una costante HAL con ampiezza discreta, valuta la possibilità di unire tutti e tre i livelli in uno.
Modello continuo
Il modello continuo con scalabilità dell'ampiezza può essere applicato per definire le costanti HAL. È possibile applicare un fattore di scala (S
) alle costanti HAL (ad esempio HAL_H0
, HAL_H1
) per produrre la HAL scalata (HAL_H0
x S
). In questo caso, la HAL scalata viene mappata per definire le costanti API (HAL_H0
x S1
= H0S1
= EFFECT_TICK
), come mostrato nella figura 16. Utilizzando la scalabilità dell'ampiezza del modello continuo, un dispositivo può memorizzare un piccolo numero di costanti HAL con texture distinte e aggiungere variazioni di ampiezza regolando il fattore di scala (S
). I produttori di dispositivi possono definire il numero di costanti HAL in base al numero di diverse texture aptiche che vogliono fornire.
Figura 16. Intervallo costante HAL per texture (HAL_H0) e scala di ampiezza (S)
Figura 17. Mappatura costante HAL-API: modello continuo
Nel modello continuo, le diverse costanti HAL rappresentano diverse texture aptiche anziché diverse ampiezze; il fattore di scala (S
) può configurare l'ampiezza. Tuttavia, poiché la percezione della texture (ad esempio, la nitidezza) è correlata alla percezione della durata e dell'ampiezza, è consigliabile combinare la texture e il fattore di scala (nel processo di progettazione del mapping HAL-API).
La figura 18 illustra la mappatura costante aumentando la variazione da una costante HAL a molte costanti API con scalabilità dell'ampiezza.
Figura 18. Aumentare la variazione con la scalabilità dell'ampiezza
Per tutte le costanti API scalabili, come PRIMITIVE_TICK
e PRIMITIVE_CLICK
in
VibrationEffect.Composition
,
il livello di energia della costante API dipende dal parametro float scale
quando
la costante API viene dichiarata tramite addPrimitive(int primitiveID, float scale,
int delay)
. PRIMITIVE_TICK
e PRIMITIVE_CLICK
possono essere progettati con una distinzione chiara utilizzando costanti HAL diverse. Questo approccio è consigliato se
vuoi aggiungere una variazione alla texture.