이 페이지에서는 공개 HAL 상수와 API 상수 간의 권장 매핑을 제시합니다. 평가된 하드웨어가 HAL 상수를 구현하지 않는 경우 상수 및 프리미티브 구현 페이지에 설명된 대체 패턴을 업데이트하여 유사한 출력을 생성합니다. 매핑은 다음과 같은 두 가지 기본 모델에 의해 지원됩니다.
불연속 모델(간단)
- 진폭은 이 모델의 핵심 변수입니다. HAL의 각 항목은 서로 다른 햅틱 진폭을 나타냅니다.
- 이 모델은 기본 햅틱 UX를 구현하는 데 필요한 최소 요구사항입니다.
- 고급 햅틱 UX에는 고급 하드웨어 및 고급 모델 (연속 모델)이 필요합니다.
연속 모델(고급)
- 질감 및 진폭은 이 모델의 핵심 변수입니다. HAL의 각 항목은 서로 다른 햅틱 질감을 나타냅니다. 각 HAL 항목의 진폭은 배율 (
S
)로 제어됩니다. - 이 모델에는 고급 하드웨어가 필요합니다. OEM이
VibrationEffect.Composition
과 함께 고급 햅틱 UX를 사용하려는 경우(최신 햅틱 API를 최대한 활용하기 위해) 이 모델을 사용하여 하드웨어를 구현하는 것이 좋습니다.
- 질감 및 진폭은 이 모델의 핵심 변수입니다. HAL의 각 항목은 서로 다른 햅틱 질감을 나타냅니다. 각 HAL 항목의 진폭은 배율 (
불연속 모델
API에서 제공하는 모든 공개 상수를 적절한 HAL 상수와 매핑하는 것이 좋습니다. 이 프로세스를 시작하려면 기기가 HAL에서 정의할 수 있는 불연속 진폭이 있는 햅틱 파형 수를 알아보세요. 이 개념을 중심으로 구성된 구체적인 질문은 다음과 같습니다. 즉, 내 휴대전화에서 사람이 감지할 수 있는 진폭 차이가 있는 단일 임펄스 햅틱 효과를 몇 개나 정의할 수 있나요? 이 질문에 대한 답을 통해 매핑이 결정됩니다.
HAL 상수 정의는 하드웨어에 종속되는 프로세스입니다. 예를 들어 보급형 휴대전화에는 단일 햅틱 파형을 생성하는 하드웨어 기능만 있을 수 있습니다. 고급 하드웨어 구성요소가 있는 기기는 더 광범위한 불연속 진폭 수준을 생성하고 HAL에서 여러 햅틱 파형을 정의할 수 있습니다. HAL-API 상수 매핑은 HAL 상수를 사용(중간 진폭을 기준으로 사용)한 후 여기에서 더 강하거나 약한 효과를 준비합니다.
그림 14. 진폭에 따른 HAL 상수 범위
불연속 진폭이 있는 HAL 상수의 수를 정의했다면 이제 HAL 상수의 수에 따라 HAL 상수와 API 상수를 매핑할 차례입니다. 이 매핑 프로세스에서는 단일 임펄스 API 상수를 최대 3개의 불연속 진폭 수준 그룹으로 분류할 수 있습니다. API 상수를 분류하는 방식은 함께 제공되는 입력 이벤트에 관한 UX 원칙을 기반으로 합니다. 자세한 내용은 햅틱 UX 디자인을 참고하세요.
그림 15. HAL-API 상수 매핑: 불연속 모델
기기가 불연속 진폭이 있는 HAL 상수를 2개만 지원한다면 중간 및 높은 진폭 수준의 HAL 상수를 병합하는 것이 좋습니다. 실제로 이 개념의 예는 EFFECT_CLICK
및 EFFECT_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 상수의 수를 정의할 수 있습니다.
그림 16. 질감(HAL_H0) 및 진폭 배율(S)에 따른 HAL 상수 범위
그림 17. HAL-API 상수 매핑: 연속 모델
연속 모델에서 서로 다른 HAL 상수는 서로 다른 진폭이 아닌 서로 다른 햅틱 질감을 나타냅니다. 배율(S
)은 진폭을 구성할 수 있습니다. 그러나 질감 감지(예: 예민성)는 지속 시간 및 진폭의 감지와 관련이 있으므로 HAL-API 매핑의 디자인 프로세스에서 질감과 배율을 조합하는 것이 좋습니다.
그림 18에서는 상수 매핑을 보여줍니다. 진폭 확장성을 통해 하나의 HAL에서 여러 API 상수로 변화량을 증가시킵니다.
그림 18. 진폭 확장성을 통해 변화량 증가
VibrationEffect.Composition
의 PRIMITIVE_TICK
및 PRIMITIVE_CLICK
과 같이 확장 가능한 모든 API 상수의 경우 API 상수의 에너지 수준은 API 상수가 addPrimitive(int primitiveID, float scale,
int delay)
를 통해 선언될 때의 float scale
매개변수에 따라 달라집니다. PRIMITIVE_TICK
및 PRIMITIVE_CLICK
은 서로 다른 HAL 상수를 사용함으로써 명확하게 구분하여 디자인할 수 있습니다. 이 접근 방식은 질감에 변화량을 추가하려는 경우에 권장됩니다.