HAL과 API 간의 상수 매핑

이 페이지에서는 공개 HAL 상수와 API 상수 간의 권장 매핑을 제시합니다. 평가된 하드웨어가 HAL 상수를 구현하지 않는 경우 상수 및 프리미티브 구현 페이지에 설명된 대체 패턴을 업데이트하여 유사한 출력을 생성합니다. 매핑은 다음과 같은 두 가지 기본 모델에 의해 지원됩니다.

  • 불연속 모델(간단)

    • 진폭은 이 모델의 핵심 변수입니다. HAL의 각 항목은 서로 다른 햅틱 진폭을 나타냅니다.
    • 이 모델은 기본 햅틱 UX를 구현하는 데 필요한 최소 요구사항입니다.
    • 고급 햅틱 UX에는 고급 하드웨어 및 고급 모델 (연속 모델)이 필요합니다.
  • 연속 모델(고급)

    • 질감 및 진폭은 이 모델의 핵심 변수입니다. HAL의 각 항목은 서로 다른 햅틱 질감을 나타냅니다. 각 HAL 항목의 진폭은 배율 (S)로 제어됩니다.
    • 이 모델에는 고급 하드웨어가 필요합니다. OEM이 VibrationEffect.Composition과 함께 고급 햅틱 UX를 사용하려는 경우(최신 햅틱 API를 최대한 활용하기 위해) 이 모델을 사용하여 하드웨어를 구현하는 것이 좋습니다.

불연속 모델

API에서 제공하는 모든 공개 상수를 적절한 HAL 상수와 매핑하는 것이 좋습니다. 이 프로세스를 시작하려면 기기가 HAL에서 정의할 수 있는 불연속 진폭이 있는 햅틱 파형 수를 알아보세요. 이 개념을 중심으로 구성된 구체적인 질문은 다음과 같습니다. 즉, 내 휴대전화에서 사람이 감지할 수 있는 진폭 차이가 있는 단일 임펄스 햅틱 효과를 몇 개나 정의할 수 있나요? 이 질문에 대한 답을 통해 매핑이 결정됩니다.

HAL 상수 정의는 하드웨어에 종속되는 프로세스입니다. 예를 들어 보급형 휴대전화에는 단일 햅틱 파형을 생성하는 하드웨어 기능만 있을 수 있습니다. 고급 하드웨어 구성요소가 있는 기기는 더 광범위한 불연속 진폭 수준을 생성하고 HAL에서 여러 햅틱 파형을 정의할 수 있습니다. HAL-API 상수 매핑은 HAL 상수를 사용(중간 진폭을 기준으로 사용)한 후 여기에서 더 강하거나 약한 효과를 준비합니다.

HAL 상수 범위 및 피드백 진폭 다이어그램

그림 14. 진폭에 따른 HAL 상수 범위

불연속 진폭이 있는 HAL 상수의 수를 정의했다면 이제 HAL 상수의 수에 따라 HAL 상수와 API 상수를 매핑할 차례입니다. 이 매핑 프로세스에서는 단일 임펄스 API 상수를 최대 3개의 불연속 진폭 수준 그룹으로 분류할 수 있습니다. API 상수를 분류하는 방식은 함께 제공되는 입력 이벤트에 관한 UX 원칙을 기반으로 합니다. 자세한 내용은 햅틱 UX 디자인을 참고하세요.

HAL-API 상수 매핑을 위한 불연속 모델

그림 15. HAL-API 상수 매핑: 불연속 모델

기기가 불연속 진폭이 있는 HAL 상수를 2개만 지원한다면 중간 및 높은 진폭 수준의 HAL 상수를 병합하는 것이 좋습니다. 실제로 이 개념의 예는 EFFECT_CLICKEFFECT_HEAVY_CLICK을 동일한 HAL 상수(중간 진폭 수준의 HAL 상수)에 매핑하는 것입니다. 기기가 불연속 진폭이 있는 HAL 상수를 하나만 지원한다면 세 수준을 모두 하나로 병합하는 것이 좋습니다.

연속 모델

진폭 확장성이 있는 연속 모델을 적용하여 HAL 상수를 정의할 수 있습니다. 배율 (S)을 HAL 상수 (예: HAL_H0, HAL_H1)에 적용하여 확장된 HAL (HAL_H0 x S)을 생성할 수 있습니다. 이 경우 그림 16과 같이 확장된 HAL을 매핑하여 API 상수 (HAL_H0 x S1 = H0S1 = EFFECT_TICK)를 정의할 수 있습니다. 연속 모델의 진폭 확장성을 사용하면 기기는 고유한 질감이 있는 소수의 HAL 상수를 저장하고 배율(S)을 조정하여 진폭 변형을 추가할 수 있습니다. 기기 제조업체는 제공하려는 다양한 햅틱 질감의 수에 따라 HAL 상수의 수를 정의할 수 있습니다.

질감 및 진폭에 따른 HAL 상수 범위

그림 16. 질감(HAL_H0) 및 진폭 배율(S)에 따른 HAL 상수 범위

HAL-API 상수 매핑을 위한 연속 모델

그림 17. HAL-API 상수 매핑: 연속 모델

연속 모델에서 서로 다른 HAL 상수는 서로 다른 진폭이 아닌 서로 다른 햅틱 질감을 나타냅니다. 배율(S)은 진폭을 구성할 수 있습니다. 그러나 질감 감지(예: 예민성)는 지속 시간 및 진폭의 감지와 관련이 있으므로 HAL-API 매핑의 디자인 프로세스에서 질감과 배율을 조합하는 것이 좋습니다.

그림 18에서는 상수 매핑을 보여줍니다. 진폭 확장성을 통해 하나의 HAL에서 여러 API 상수로 변화량을 증가시킵니다.

변화량 증가 1

변화량 증가 2

그림 18. 진폭 확장성을 통해 변화량 증가

VibrationEffect.CompositionPRIMITIVE_TICKPRIMITIVE_CLICK과 같이 확장 가능한 모든 API 상수의 경우 API 상수의 에너지 수준은 API 상수가 addPrimitive(int primitiveID, float scale, int delay)를 통해 선언될 때의 float scale 매개변수에 따라 달라집니다. PRIMITIVE_TICKPRIMITIVE_CLICK은 서로 다른 HAL 상수를 사용함으로써 명확하게 구분하여 디자인할 수 있습니다. 이 접근 방식은 질감에 변화량을 추가하려는 경우에 권장됩니다.