Mapowanie stałych między HAL a interfejsem API

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.

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.

Diagram stałego zakresu HAL i amplitud informacji zwrotnych

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.

Model dyskretny dla stałego mapowania HAL-API

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_CLICKEFFECT_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ć.

Zakres stałych HAL według tekstury i amplitudy

Rysunek 3. Stały zakres HAL według tekstury (HAL_H0) i skali amplitudy (S).

Model ciągły dla stałej HAL-API
mapowania

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.

Zwiększanie wariacji
1

Increasing Varation
2

Rysunek 5. Zwiększanie zmienności dzięki skalowalności amplitudy.

W przypadku wszystkich skalowalnych stałych interfejsu API, takich jak PRIMITIVE_TICKPRIMITIVE_CLICKVibrationEffect.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_TICKPRIMITIVE_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.