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ą w tym 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)
- Kluczowymi zmiennymi tego modelu są tekstura i amplituda. Każdy element w HAL reprezentuje różne tekstury haptyczne. 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 funkcji haptycznych w
VibrationEffect.Composition(aby w pełni wykorzystać najnowsze interfejsy API haptyki), zalecamy wdrożenie sprzętu przy użyciu tego modelu.
- Kluczowymi zmiennymi tego modelu są tekstura i amplituda. Każdy element w HAL reprezentuje różne tekstury haptyczne. 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 HAL. Konkretne pytanie dotyczące tego zagadnienia może brzmieć tak: Ile efektów haptycznych z pojedynczym impulsem, w przypadku których różnice w amplitudzie są wyczuwalne 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 możliwości sprzętowe do generowania 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 1. Zakres stałych 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 UX z wykorzystaniem haptyki.
Rysunek 2. 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 może być 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 z dyskretną amplitudą, 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 3. Dzięki skalowalności amplitudy modelu ciągłego urządzenie może przechowywać niewielką liczbę stałych HAL o wyraź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 3. Stały zakres HAL według tekstury (HAL_H0) i skali amplitudy (S).
Rysunek 4. 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 5 przedstawia stałe mapowanie przez zwiększanie wariacji od jednej stałej HAL do wielu stałych API ze skalowalnością amplitudy.
Rysunek 5. Zwiększanie zmiennoś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ć wariację tekstury.