แมปค่าคงที่ระหว่าง HAL กับ API

หน้านี้แสดงการแมปที่แนะนำระหว่างค่าคงที่ HAL สาธารณะและค่าคงที่ API หากฮาร์ดแวร์ที่ประเมินไม่ได้ใช้ค่าคงที่ HAL ให้อัปเดตรูปแบบสำรองที่อธิบายไว้ในหน้าใช้ค่าคงที่และพรอมต์เพื่อสร้างเอาต์พุตที่คล้ายกัน การแมปได้รับความช่วยเหลือจากรูปแบบเริ่มต้น 2 แบบ ดังนี้

  • โมเดลแบบไม่ต่อเนื่อง (แบบง่าย)

    • Amplitude คือตัวแปรหลักของรูปแบบนี้ เอนทิตีแต่ละรายการใน HAL จะแสดงถึงแอมพลิจูดของการสัมผัสที่แตกต่างกัน
    • โมเดลนี้เป็นข้อกำหนดขั้นต่ำที่จำเป็นในการใช้ UX สัมผัสพื้นฐาน
    • UX ของการสัมผัสขั้นสูงขึ้นต้องใช้ฮาร์ดแวร์ขั้นสูงและรุ่นขั้นสูง (รุ่นต่อเนื่อง)
  • โมเดลต่อเนื่อง (ขั้นสูง)

    • พื้นผิวและความกว้างเป็นตัวแปรหลักของโมเดลนี้ เอนทิตีแต่ละรายการใน HAL จะแสดงพื้นผิวสัมผัสที่แตกต่างกัน แอมพลิจูดของเอนทิตี้ HAL แต่ละรายการจะควบคุมโดยปัจจัยการขยาย (S)
    • รุ่นนี้ต้องใช้ฮาร์ดแวร์ขั้นสูง หาก OEM ต้องการใช้ UX ของการสัมผัสขั้นสูงกับ VibrationEffect.Composition (เพื่อการใช้ API การสัมผัสล่าสุดอย่างเต็มประสิทธิภาพ) เราขอแนะนำให้ติดตั้งใช้งานฮาร์ดแวร์โดยใช้รูปแบบนี้

โมเดลแบบไม่ต่อเนื่อง

เราขอแนะนําให้แมปค่าคงที่สาธารณะทั้งหมดที่ระบุไว้ใน API กับค่าคงที่ HAL ที่เหมาะสม ในการเริ่มกระบวนการนี้ ให้ดูว่าอุปกรณ์กำหนดรูปแบบสัมผัสที่มีแอมพลิจูดแบบไม่ต่อเนื่องได้กี่รูปแบบใน HAL คำถามที่เฉพาะเจาะจงซึ่งสร้างขึ้นจากแนวคิดนี้มีลักษณะดังนี้ ฉันกำหนดเอฟเฟกต์การสัมผัสแบบแรงกระตุ้นเดียวที่มีความแตกต่างของระดับความดังที่มนุษย์รับรู้ได้ในโทรศัพท์ได้กี่รายการ คำตอบของคําถามนี้จะกําหนดการแมป

การกําหนดค่าคงที่ HAL เป็นกระบวนการที่ขึ้นอยู่กับฮาร์ดแวร์ ตัวอย่างเช่น โทรศัพท์ระดับเริ่มต้นอาจมีเพียงความสามารถของฮาร์ดแวร์ในการสร้างรูปแบบการสัมผัสแบบเดียว อุปกรณ์ที่มีคอมโพเนนต์ฮาร์ดแวร์ขั้นสูงจะสร้างระดับแอมพลิจูดแบบไม่ต่อเนื่องได้กว้างขึ้น และกำหนดรูปแบบการสั่นแบบสัมผัสได้หลายรูปแบบใน HAL การแมปค่าคงที่ HAL-API จะใช้ค่าคงที่ HAL (โดยใช้ความกว้างของสัญญาณเป็นฐาน) จากนั้นจัดเรียงเอฟเฟกต์ที่แรงขึ้นหรืออ่อนลงจากค่านั้น

แผนภาพช่วงค่าคงที่ของ HAL และระดับความแรงของสัญญาณป้อนกลับ

รูปที่ 14 ช่วงค่าคงที่ HAL ตามแอมพลิจูด

เมื่อกําหนดจํานวนค่าคงที่ HAL ที่มีแอมพลิจูดแบบไม่ต่อเนื่องแล้ว ก็ถึงเวลาจับคู่ค่าคงที่ HAL และ API ตามจํานวนค่าคงที่ HAL กระบวนการแมปนี้สามารถแบ่งกลุ่มค่าคงที่ API แบบอิมพัลส์รายการเดียวออกเป็นกลุ่มระดับแอมพลิจูดแบบแยกต่างหากได้สูงสุด 3 กลุ่ม วิธีที่แบ่งกลุ่มค่าคงที่ของ API จะอิงตามหลักการ UX สําหรับเหตุการณ์อินพุตที่มาพร้อมกับ ดูข้อมูลเพิ่มเติมได้ที่การสัมผัส การออกแบบ UX

โมเดลแบบไม่ต่อเนื่องสำหรับการแมปค่าคงที่ HAL-API

รูปที่ 15 การแมปค่าคงที่ HAL-API: โมเดลแบบไม่ต่อเนื่อง

หากอุปกรณ์รองรับค่าคงที่ HAL เพียง 2 ค่าที่มีระดับความกว้างของคลื่นแบบไม่ต่อเนื่อง ให้พิจารณาผสานค่าคงที่ HAL ระดับความกว้างของคลื่นปานกลางและสูง ตัวอย่างแนวคิดนี้ในทางปฏิบัติคือการแมป EFFECT_CLICK และ EFFECT_HEAVY_CLICK กับค่าคงที่ HAL เดียวกัน ซึ่งจะเป็นค่าคงที่ HAL ระดับความกว้างของคลื่นปานกลาง หากอุปกรณ์รองรับค่าคงที่ HAL รายการเดียวที่มีระดับความดังแบบไม่ต่อเนื่อง ให้พิจารณารวมระดับทั้ง 3 ระดับเข้าด้วยกัน

รูปแบบต่อเนื่อง

คุณสามารถใช้รูปแบบต่อเนื่องที่ปรับขนาดแอมพลิจูดได้เพื่อกำหนดค่าคงที่ HAL ปัจจัยการแปลง (S) สามารถใช้กับค่าคงที่ HAL (เช่น HAL_H0, HAL_H1) เพื่อสร้าง HAL ที่ปรับขนาด (HAL_H0 x S) ในกรณีนี้ HAL ที่ปรับขนาดจะแมปกับค่าคงที่ API (HAL_H0 x S1 = H0S1 = EFFECT_TICK) ดังที่แสดงในรูปที่ 16 การใช้การปรับขนาดความกว้างของรูปแบบต่อเนื่องช่วยให้อุปกรณ์จัดเก็บค่าคงที่ HAL เพียงไม่กี่ค่าที่มีพื้นผิวที่โดดเด่น และเพิ่มรูปแบบความกว้างที่แตกต่างกันได้โดยการปรับปัจจัยการขยาย (S) ผู้ผลิตอุปกรณ์สามารถกำหนดจำนวนค่าคงที่ HAL ตามจำนวนพื้นผิวสัมผัสที่แตกต่างกันที่ต้องการนำเสนอ

ช่วงค่าคงที่ HAL ตามพื้นผิวและความกว้าง

รูปที่ 16 ช่วงค่าคงที่ HAL ตามพื้นผิว (HAL_H0) และมาตราส่วนแอมพลิจูด (S)

รูปแบบต่อเนื่องสำหรับการแมปค่าคงที่ HAL-API

รูปที่ 17 การแมปค่าคงที่ HAL-API: โมเดลแบบต่อเนื่อง

ในโมเดลแบบต่อเนื่อง ค่าคงที่ HAL ที่แตกต่างกันจะแสดงพื้นผิวสัมผัสที่แตกต่างกัน ไม่ใช่ความกว้างของสัญญาณที่แตกต่างกัน ปัจจัยการขยาย (S) สามารถกำหนดค่าความกว้างของสัญญาณได้ อย่างไรก็ตาม เนื่องจากการรับรู้พื้นผิว (เช่น ความคมชัด) เกี่ยวข้องกับการรับรู้ระยะเวลาและความกว้าง เราจึงขอแนะนำให้รวมพื้นผิวและปัจจัยการขยาย (ในกระบวนการออกแบบการแมป HAL-API)

รูปที่ 18 แสดงการแมปค่าคงที่โดยการเพิ่มความหลากหลายจาก HAL 1 รายการเป็นค่าคงที่ API หลายรายการที่มีความยืดหยุ่นของระดับความดัง

การเพิ่มรูปแบบ
1

การเพิ่มรูปแบบ
2

รูปที่ 18 การเพิ่มรูปแบบด้วยการปรับขนาดแอมพลิจูด

สําหรับค่าคงที่ API ที่ปรับขนาดได้ทั้งหมด เช่น PRIMITIVE_TICK และ PRIMITIVE_CLICK ใน VibrationEffect.Composition ระดับพลังงานของค่าคงที่ API จะขึ้นอยู่กับพารามิเตอร์ float scale เมื่อมีการประกาศค่าคงที่ API ผ่าน addPrimitive(int primitiveID, float scale, int delay) PRIMITIVE_TICK และ PRIMITIVE_CLICK สามารถออกแบบให้แตกต่างกันอย่างชัดเจนได้โดยใช้ค่าคงที่ HAL ที่ต่างกัน ขอแนะนําให้ใช้แนวทางนี้หากต้องการเพิ่มความหลากหลายให้กับพื้นผิว