Na tej stronie znajdziesz zalecane mapowania publicznych stałych wartości HAL i stałych wartości interfejsu API. Jeśli oceniane urządzenie nie implementuje stałych HAL, zaktualizuj wzorce zastępcze opisane na stronie Wdrażanie stałych i pierwotnych funkcji, aby wygenerować podobne dane wyjściowe. Mapowanie jest wspomagane przez 2 modele domyślne:
Model dyskretny (prosty)
- Amplituda jest kluczową zmienną tego modelu. Każdy element w HAL reprezentuje inną amplitudę haptyczną.
- Ten model jest minimalnym wymaganiem potrzebnym do wdrożenia podstawowego interfejsu użytkownika haptycznego.
- Bardziej zaawansowane wrażenia haptyczne wymagają zaawansowanego sprzętu i zaawansowanego modelu (model ciągły).
Model ciągły (zaawansowany)
- Tekstura i amplituda to kluczowe zmienne tego modelu. Każdy element w HAL reprezentuje różne tekstury haptyczne. Amplituda każdego elementu HAL jest kontrolowana przez współczynnik skali (
S
). - Ten model wymaga zaawansowanego sprzętu. Jeśli OEM chce korzystać z zaawansowanych funkcji haptycznych w
VibrationEffect.Composition
(aby w pełni korzystać z najnowszych interfejsów API haptycznych), zalecamy wdrożenie sprzętu za pomocą tego modelu.
- Tekstura i amplituda to kluczowe zmienne tego modelu. Każdy element w HAL reprezentuje różne tekstury haptyczne. Amplituda każdego elementu HAL jest kontrolowana przez współczynnik skali (
Model dyskretny
Zalecamy mapowanie wszystkich publicznych stałych wartości udostępnionych w interfejsie API na odpowiednie stałe wartości HAL. Aby rozpocząć ten proces, sprawdź, ile fal haptycznych z dyskretyczną amplitudą urządzenie może zdefiniować w HAL. Konkretne pytanie sformułowane na podstawie tego zagadnienia może wyglądać tak: Ile efektów haptycznych jednoimpulsowych z różnicami amplitudy, które są wyczuwalne dla człowieka, można zdefiniować na moim telefonie? Odpowiedź na to pytanie określa mapowanie.
Definiowanie stałych HAL jest procesem zależnym od sprzętu. Na przykład telefon podstawowy może mieć tylko możliwości sprzętowe umożliwiające wygenerowanie pojedynczej fali haptycznej. Urządzenia z bardziej zaawansowanymi komponentami sprzętowymi zapewniają szerszy zakres poziomów amplitudy i mogą definiować wiele przebiegów haptycznych w HAL. Mapowanie stałych wartości HAL na interfejs API polega na tym, że najpierw ustala się stałą wartość HAL (korzystając z średniej amplitudy jako wartości odniesienia), a potem na tej podstawie ustala się silniejsze lub słabsze efekty.
Rysunek 14. Stała wartość HAL według amplitudy
Gdy zdefiniujesz liczbę stałych HAL z dyskretną amplitudą, możesz mapować stałe HAL i interfejsu API według liczby stałych HAL. Ten proces mapowania może podzielić jedną stałą interfejsu API impulsu na maksymalnie 3 oddzielne grupy poziomów amplitudy. Sposób podziału stałych parametrów interfejsu API jest oparty na zasadach UX dotyczących towarzyszących zdarzeń wejściowych. Więcej informacji znajdziesz w artykule Haptics UX Design.
Rysunek 15. Mapowanie stałych HAL-API: model dyskretny
Jeśli Twoje urządzenie obsługuje tylko 2 stałe wartości HAL z dyskretnymi amplitudami, rozważ połączenie stałych wartości HAL z poziomem amplitudy Medium i High. Przykładem zastosowania tego zagadnienia w praktyce jest mapowanie wartości EFFECT_CLICK
i EFFECT_HEAVY_CLICK
na tę samą stałą HAL, która jest stałą HAL dla poziomu średniej amplitudy. Jeśli Twoje urządzenie obsługuje tylko jedną stałą HAL z dyskretną amplitudą, rozważ połączenie wszystkich 3 poziomów w jeden.
Model ciągły
Ciągły model z możliwością skalowania amplitudy można stosować do definiowania stałych wartości HAL. Do stałych wartości HAL (np. HAL_H0
, HAL_H1
) można zastosować współczynnik skalowania (S
), aby uzyskać skalowany HAL (HAL_H0
x S
). W tym przypadku skalowany HAL jest mapowany w celu zdefiniowania stałych wartości interfejsu API (HAL_H0
x S1
= H0S1
= EFFECT_TICK
), jak pokazano na rysunku 16. Dzięki skalowalności amplitudy w modelu ciągłym urządzenie może przechowywać niewielką liczbę stałych wartości HAL z charakterystycznymi teksturami i dodawać zmiany amplitudy przez dostosowywanie współczynnika skalowania (S
). Producenci urządzeń mogą definiować liczbę stałych wartości HAL na podstawie liczby różnych tekstur haptycznych, które chcą udostępnić.
Rysunek 16. Zasięg HAL w stałej wartości dla tekstury (HAL_H0) i skala amplitudy (S)
Rysunek 17. Mapowanie stałych HAL-API: model ciągły
W modelu ciągłym różne stałe HAL reprezentują różne tekstury haptyczne, a nie różne amplitudy. Współczynnik skali (S
) może konfigurować amplitudę. Jednak ze względu na to, że postrzeganie tekstury (np. ostrość) jest powiązane z postrzeganiem czasu trwania i amplitudy, zaleca się połączenie tekstury i współczynnika skali (w procesie projektowania mapowania HAL-API).
Rysunek 18 przedstawia mapowanie stałych wartości przez zwiększanie zmienności z jednego HAL do wielu stałych wartości API ze skalowalnością amplitudy.
Rysunek 18. Zwiększanie zmienności dzięki skalowalności amplitudy
W przypadku wszystkich skalowanych stałych interfejsu API, takich jak PRIMITIVE_TICK
i PRIMITIVE_CLICK
w VibrationEffect.Composition
, poziom energii stałej interfejsu API zależy od parametru float scale
, gdy stała interfejsu API jest zadeklarowana za pomocą addPrimitive(int primitiveID, float scale,
int delay)
. Funkcje PRIMITIVE_TICK
i PRIMITIVE_CLICK
można zaprojektować tak, aby wyraźnie się od siebie różniły, używając różnych stałych wartości HAL. Zalecamy to podejście, jeśli chcesz dodać wariację tekstury.