Questa pagina presenta i mapping consigliati tra le costanti HAL pubbliche e le costanti API. Se l'hardware valutato non implementa le costanti HAL, allora aggiorna i pattern di fallback descritti nella pagina Implementare costanti e primitive per generare output simili. Il mapping è assistito da due modelli predefiniti diversi:
Modello discreto (semplice)
- L'ampiezza è la variabile chiave di questo modello. Ogni entità nell'HAL rappresenta un'ampiezza aptica diversa.
- Questo modello è un requisito minimo necessario per implementare l'UX aptica di base.
- Un'UX aptica più avanzata richiede hardware avanzato e un modello avanzato (modello continuo).
Modello continuo (avanzato)
- La texture e l'ampiezza sono le variabili chiave di questo modello. Ogni entità nell'HAL rappresenta texture aptiche diverse. L'ampiezza di ogni entità HAL è controllata dal fattore di scalabilità (
S). - Questo modello richiede hardware avanzato. Se gli OEM vogliono utilizzare l'UX aptica avanzata
con
VibrationEffect.Composition(per un utilizzo ottimale delle API aptiche più recenti), è consigliabile implementare l'hardware utilizzando questo modello.
- La texture e l'ampiezza sono le variabili chiave di questo modello. Ogni entità nell'HAL rappresenta texture aptiche diverse. L'ampiezza di ogni entità HAL è controllata dal fattore di scalabilità (
Modello discreto
È consigliabile mappare 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 attorno a questa nozione è 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 il mapping.
La definizione delle costanti HAL è una procedura 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 delle costanti HAL-API utilizza la costante HAL (utilizzando l'ampiezza media come base), quindi dispone gli effetti più forti o più deboli.
Figura 1. Intervallo di costanti HAL per ampiezza.
Una volta 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. Questa procedura di mapping 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 ulteriori informazioni, consulta Progettazione UX aptica.
Figura 2. Mapping delle costanti 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 media e alta. Un esempio pratico di questa nozione è la mappatura di EFFECT_CLICK e EFFECT_HEAVY_CLICK alla stessa costante HAL, che sarebbe la costante HAL di livello di ampiezza media. 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 scalabilità (S) alle costanti HAL (ad esempio, HAL_H0, HAL_H1) per produrre l'HAL scalato (HAL_H0 x S). In questo caso, l'HAL scalato viene mappato per definire le costanti API (HAL_H0 x S1 = H0S1 = EFFECT_TICK), come mostrato nella Figura 3. Utilizzando la scalabilità dell'ampiezza del modello continuo, un dispositivo può memorizzare un numero ridotto di costanti HAL con texture distintive e aggiungere variazioni di ampiezza regolando il fattore di scalabilità (S). I produttori di dispositivi possono definire il numero di costanti HAL in base al numero di texture aptiche diverse che vogliono fornire.
Figura 3. Intervallo di costanti HAL per texture (HAL_H0) e scala di ampiezza (S).
Figura 4. Mapping delle costanti HAL-API: modello continuo.
Nel modello continuo, le diverse costanti HAL rappresentano diverse texture aptiche anziché ampiezze diverse; il fattore di scalabilità (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 scalabilità (nella procedura di progettazione del mapping HAL-API).
La Figura 5 illustra il mapping delle costanti aumentando la variazione da una costante HAL a molte costanti API con scalabilità dell'ampiezza.
Figura 5. Aumento della 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.