Memetakan konstanta antara HAL dan API

Halaman ini menyajikan pemetaan yang direkomendasikan antara konstanta HAL publik dan konstanta API. Jika hardware yang dinilai tidak menerapkan konstanta HAL, update pola penggantian yang dijelaskan di halaman Menerapkan konstanta dan primitif untuk menghasilkan output yang serupa. Pemetaan dibantu oleh dua model default yang berbeda:

  • Model diskret (sederhana)

    • Amplitudo adalah variabel utama model ini. Setiap entity di HAL mewakili amplitudo haptic yang berbeda.
    • Model ini adalah persyaratan minimum yang diperlukan untuk menerapkan UX haptik dasar.
    • UX haptik yang lebih canggih memerlukan hardware canggih dan model lanjutan (model berkelanjutan).
  • Model berkelanjutan (tingkat lanjut)

    • Tekstur dan amplitudo adalah variabel utama model ini. Setiap entity di HAL mewakili tekstur haptik yang berbeda. Amplitudo setiap entitas HAL dikontrol oleh faktor skala (S).
    • Model ini memerlukan hardware lanjutan. Jika OEM ingin menggunakan UX haptik lanjutan dengan VibrationEffect.Composition (untuk penggunaan API haptik terbaru yang terbaik), sebaiknya terapkan hardware mereka menggunakan model ini.

Model diskret

Sebaiknya pemetaan semua konstanta publik yang disediakan di API dengan konstanta HAL yang sesuai. Untuk memulai proses ini, cari tahu jumlah bentuk gelombang haptik dengan amplitudo diskret yang dapat ditentukan perangkat di HAL. Pertanyaan spesifik yang disusun berdasarkan gagasan tersebut terlihat seperti ini: Berapa banyak efek haptik impuls tunggal dengan perbedaan amplitudo yang dapat dirasakan manusia yang dapat ditentukan di ponsel saya? Jawaban atas pertanyaan ini akan menentukan pemetaan.

Menentukan konstanta HAL adalah proses yang bergantung pada hardware. Misalnya, ponsel kelas pemula mungkin hanya memiliki kemampuan hardware untuk menghasilkan satu bentuk gelombang haptik. Perangkat dengan komponen hardware yang lebih canggih menghasilkan rentang level amplitudo diskret yang lebih luas, dan dapat menentukan beberapa bentuk gelombang haptik di HAL. Pemetaan konstanta HAL-API menggunakan konstanta HAL (menggunakan amplitudo sedang sebagai dasar pengukuran), lalu mengatur efek yang lebih kuat atau lebih lemah dari sana.

Diagram rentang konstanta HAL dan amplitudo
masukan

Gambar 14. Rentang konstan HAL menurut amplitudo

Saat jumlah konstanta HAL dengan amplitudo diskret ditentukan, saatnya memetakan konstanta HAL dan API berdasarkan jumlah konstanta HAL. Proses pemetaan ini dapat menyegmentasikan satu konstanta API impuls menjadi hingga tiga grup tingkat amplitudo terpisah. Cara konstanta API disegmentasikan didasarkan pada prinsip UX untuk menyertai peristiwa input. Untuk informasi selengkapnya, lihat Desain UX Haptik.

Model terpisah untuk pemetaan konstanta HAL-API

Gambar 15. Pemetaan konstanta HAL-API: Model diskret

Jika perangkat Anda hanya mendukung dua konstanta HAL dengan amplitudo diskret, pertimbangkan untuk menggabungkan konstanta HAL level amplitudo Sedang dan Tinggi. Contoh konsep ini dalam praktiknya adalah memetakan EFFECT_CLICK dan EFFECT_HEAVY_CLICK ke konstanta HAL yang sama, yang akan menjadi konstanta HAL tingkat amplitudo Sedang. Jika perangkat Anda hanya mendukung satu konstanta HAL dengan amplitudo diskret, pertimbangkan untuk menggabungkan ketiga level menjadi satu.

Model berkelanjutan

Model berkelanjutan dengan skalabilitas amplitudo dapat diterapkan untuk menentukan konstanta HAL. Faktor skala (S) dapat diterapkan ke konstanta HAL (misalnya, HAL_H0, HAL_H1) untuk menghasilkan HAL yang diskalakan (HAL_H0 x S). Dalam hal ini, HAL yang diskalakan dipetakan untuk menentukan konstanta API (HAL_H0 x S1 = H0S1 = EFFECT_TICK) seperti yang ditunjukkan pada gambar 16. Dengan menggunakan skalabilitas amplitudo model kontinu, perangkat dapat menyimpan sejumlah kecil konstanta HAL dengan tekstur yang berbeda dan menambahkan variasi amplitudo dengan menyesuaikan faktor skala (S). Produsen perangkat dapat menentukan jumlah konstanta HAL berdasarkan berapa banyak tekstur haptic berbeda yang ingin mereka berikan.

Rentang konstanta HAL menurut tekstur dan
amplitudo

Gambar 16. Rentang konstanta HAL menurut tekstur (HAL_H0) dan skala amplitudo (S)

Model berkelanjutan untuk pemetaan konstanta HAL-API

Gambar 17. Pemetaan konstanta HAL-API: Model berkelanjutan

Dalam model berkelanjutan, konstanta HAL yang berbeda mewakili tekstur haptik yang berbeda, bukan amplitudo yang berbeda; faktor skala (S) dapat mengonfigurasi amplitudo. Namun, karena persepsi tekstur (misalnya, ketajaman) terkait dengan persepsi durasi dan amplitudo, menggabungkan tekstur dan faktor skala (dalam proses desain pemetaan HAL-API) direkomendasikan.

Gambar 18 mengilustrasikan pemetaan konstan dengan meningkatkan variasi dari satu HAL ke banyak konstanta API dengan skalabilitas amplitudo.

Meningkatkan Varian
1

Meningkatkan Varian
2

Gambar 18. Meningkatkan variasi dengan skalabilitas amplitudo

Untuk semua konstanta API yang skalabel seperti PRIMITIVE_TICK dan PRIMITIVE_CLICK di VibrationEffect.Composition, tingkat energi konstanta API bergantung pada parameter float scale saat konstanta API dideklarasikan melalui addPrimitive(int primitiveID, float scale, int delay). PRIMITIVE_TICK dan PRIMITIVE_CLICK dapat dirancang dengan perbedaan yang jelas menggunakan konstanta HAL yang berbeda. Pendekatan ini direkomendasikan jika Anda ingin menambahkan variasi pada tekstur.