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, perbarui pola penggantian yang dijelaskan di halaman Menerapkan konstanta dan primitif untuk menghasilkan output serupa. Pemetaan dibantu oleh dua model default yang berbeda:

  • Model diskret (sederhana)

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

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

Model diskret

Memetakan semua konstanta publik yang disediakan di API dengan konstanta HAL yang sesuai direkomendasikan. Untuk memulai proses ini, cari tahu jumlah bentuk gelombang haptik dengan amplitudo diskrit 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 menentukan pemetaan.

Menentukan konstanta HAL adalah proses yang bergantung pada hardware. Misalnya, ponsel tingkat pemula mungkin hanya memiliki kemampuan hardware untuk menghasilkan satu bentuk gelombang haptik. Perangkat dengan komponen hardware yang lebih canggih menghasilkan rentang tingkat amplitudo diskrit yang lebih luas, dan dapat menentukan beberapa bentuk gelombang haptic di HAL. Pemetaan konstanta HAL-API mengambil konstanta HAL (menggunakan amplitudo sedang sebagai dasar), 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

Setelah jumlah konstanta HAL dengan amplitudo diskrit 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 diskrit. Cara konstanta API disegmentasikan didasarkan pada prinsip UX untuk peristiwa input yang menyertainya. Untuk mengetahui informasi selengkapnya, lihat Desain UX haptik.

Model diskret untuk pemetaan konstanta HAL-API

Gambar 15. Pemetaan konstanta HAL-API: Model diskret

Jika perangkat Anda hanya mendukung dua konstanta HAL dengan amplitudo diskrit, pertimbangkan untuk menggabungkan konstanta HAL tingkat amplitudo Sedang dan Tinggi. Contoh penerapan konsep ini adalah memetakan EFFECT_CLICK dan EFFECT_HEAVY_CLICK ke konstanta HAL yang sama, yaitu konstanta HAL tingkat amplitudo Sedang. Jika perangkat Anda hanya mendukung konstanta HAL satu dengan amplitudo diskrit, 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 berkelanjutan, perangkat dapat menyimpan sejumlah kecil konstanta HAL dengan tekstur khas dan menambahkan variasi amplitudo dengan menyesuaikan faktor skala (S). Produsen perangkat dapat menentukan jumlah konstanta HAL berdasarkan jumlah tekstur haptik berbeda yang ingin mereka berikan.

Rentang konstan 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 merepresentasikan 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, sebaiknya gabungkan tekstur dan faktor skala (dalam proses desain pemetaan HAL-API).

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

Peningkatan Variasi
1

Meningkatkan Variasi
2

Gambar 18. Meningkatkan variasi dengan skalabilitas amplitudo

Untuk semua konstanta API yang dapat diskalakan 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 didesain dengan perbedaan yang jelas menggunakan konstanta HAL yang berbeda. Pendekatan ini direkomendasikan jika Anda ingin menambahkan variasi pada tekstur.