Na tej stronie znajdziesz zalecane mapowania między stałymi publicznego HAL-u a stałymi interfejsu API. Jeśli oceniany sprzęt nie implementuje stałych HAL, zaktualizuj wzorce rezerwowe opisane na stronie Implementowanie stałych i typów prostych, aby generować podobne dane wyjściowe. Mapowanie jest wspomagane przez 2 różne modele domyślne:
Model dyskretny (prosty)
- Kluczową zmienną tego modelu jest amplituda. Każdy element w HAL reprezentuje inną amplitudę haptyczną.
- Ten model to minimalne wymaganie potrzebne do wdrożenia podstawowego interfejsu haptycznego.
- Bardziej zaawansowane wrażenia dotykowe wymagają zaawansowanego sprzętu i zaawansowanego modelu (modelu ciągłego).
Model ciągły (zaawansowany)
- Tekstura i amplituda to kluczowe zmienne tego modelu. Każdy element w HAL reprezentuje inną teksturę haptyczną. Amplituda każdej jednostki HAL jest kontrolowana przez współczynnik skali (
S
). - Ten model wymaga zaawansowanego sprzętu. Jeśli producenci OEM chcą korzystać z zaawansowanych wrażeń dotykowych z
VibrationEffect.Composition
(aby jak najlepiej wykorzystać najnowsze interfejsy API dotyczące wrażeń dotykowych), zalecamy wdrożenie sprzętu przy użyciu tego modelu.
- Tekstura i amplituda to kluczowe zmienne tego modelu. Każdy element w HAL reprezentuje inną teksturę haptyczną. Amplituda każdej jednostki HAL jest kontrolowana przez współczynnik skali (
Model dyskretny
Zalecamy mapowanie wszystkich stałych publicznych udostępnianych w interfejsie API na odpowiednie stałe HAL. Aby rozpocząć ten proces, sprawdź, ile kształtów fali haptycznej o dyskretnej amplitudzie może zdefiniować urządzenie w warstwie HAL. Konkretne pytanie związane z tym pojęciem może brzmieć tak: Ile pojedynczych impulsów haptycznych o różnicach w amplitudzie dostrzegalnych przez człowieka można zdefiniować na moim telefonie? Odpowiedź na to pytanie określa mapowanie.
Definiowanie stałych HAL zależy od sprzętu. Na przykład telefon z niższej półki może mieć tylko sprzęt, który umożliwia generowanie pojedynczego kształtu fali haptycznej. Urządzenia z bardziej zaawansowanymi komponentami sprzętowymi generują szerszy zakres dyskretnych poziomów amplitudy i mogą definiować wiele kształtów fal haptycznych w HAL. Mapowanie stałych HAL API wykorzystuje stałą HAL (przy użyciu średniej amplitudy jako wartości bazowej), a następnie rozmieszcza silniejsze lub słabsze efekty.
Rysunek 14. Stały zakres HAL według amplitudy
Gdy zdefiniowana jest liczba stałych HAL o dyskretnej amplitudzie, należy przypisać stałe HAL i 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 segmentowania stałych interfejsu API opiera się na zasadach UX dotyczących towarzyszących zdarzeń wejściowych. Więcej informacji znajdziesz w artykule Projektowanie interfejsu użytkownika z wykorzystaniem haptyki.
Rysunek 15. Mapowanie stałych HAL-API: model dyskretny
Jeśli urządzenie obsługuje tylko 2 stałe wartości HAL o dyskretnych amplitudach, rozważ połączenie stałych wartości HAL o średnim i wysokim poziomie amplitudy. Przykładem tego w praktyce jest mapowanie EFFECT_CLICK
i EFFECT_HEAVY_CLICK
na tę samą stałą HAL, czyli stałą HAL poziomu średniej amplitudy. Jeśli urządzenie obsługuje tylko jedną stałą HAL o dyskretnej amplitudzie, rozważ połączenie wszystkich 3 poziomów w jeden.
Model ciągły
Model ciągły ze skalowalnością amplitudy można zastosować do definiowania stałych HAL. Do stałych HAL (np. HAL_H0
, HAL_H1
) można zastosować współczynnik skali (S
), aby uzyskać skalowane stałe HAL (HAL_H0
x S
). W tym przypadku skalowane stałe HAL są mapowane w celu zdefiniowania stałych interfejsu API (HAL_H0
x S1
= H0S1
= EFFECT_TICK
), jak pokazano na rysunku 16. Dzięki skalowalności amplitudy modelu ciągłego urządzenie może przechowywać niewielką liczbę stałych HAL o różnych teksturach i dodawać wariacje amplitudy, dostosowując współczynnik skali (S
). Producenci urządzeń mogą określić liczbę stałych HAL na podstawie tego, ile różnych tekstur haptycznych chcą udostępnić.
Rysunek 16. Stały zakres HAL według tekstury (HAL_H0) i skali 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. Amplitudę można skonfigurować za pomocą współczynnika skali (S
). Jednak ponieważ postrzeganie tekstury (np. ostrości) jest związane z postrzeganiem czasu trwania i amplitudy, zalecamy połączenie tekstury i współczynnika skali (w procesie projektowania mapowania HAL-API).
Ilustracja 18 przedstawia stałe mapowanie przez zwiększanie wariacji od jednego stałego HAL do wielu stałych API ze skalowalnością amplitudy.
Rysunek 18. Zwiększanie różnorodności dzięki skalowalności amplitudy
W przypadku wszystkich skalowalnych 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 deklarowana za pomocą addPrimitive(int primitiveID, float scale,
int delay)
. PRIMITIVE_TICK
i PRIMITIVE_CLICK
można zaprojektować z wyraźnym rozróżnieniem, używając różnych stałych HAL. To podejście jest zalecane, jeśli chcesz dodać odmianę tekstury.