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 inną teksturę haptyczną. Amplituda każdej jednostki HAL jest kontrolowana przez współczynnik skalowania (
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 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 inną teksturę haptyczną. Amplituda każdej jednostki HAL jest kontrolowana przez współczynnik skalowania (
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 urządzenie może zdefiniować w HAL. Konkretne pytanie związane z tym pojęciem brzmi: Ile pojedynczych impulsów haptycznych o różnicach w amplitudzie wyczuwalnych 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 warstwie HAL. Mapowanie stałych HAL API wykorzystuje stałą HAL (przy użyciu średniej amplitudy jako wartości bazowej), a następnie rozmieszcza mocniejsze 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 interfejsu użytkownika 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 średniej i wysokiej amplitudzie. Przykładem tego w praktyce może być mapowanie EFFECT_CLICK i EFFECT_HEAVY_CLICK na tę samą stałą HAL, która byłaby 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 skalowania (S), aby uzyskać skalowane wartości HAL (HAL_H0 x S). W tym przypadku skalowane wartości 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 różnych teksturach i dodawać wariacje amplitudy, dostosowując współczynnik skalowania (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 skalowania (S). Jednak ponieważ postrzeganie tekstury (np. ostrości) jest związane z postrzeganiem czasu trwania i amplitudy, zalecamy połączenie tekstury i współczynnika skalowania (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ć odmianę tekstury.