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

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

  • โมเดลแบบแยก (เรียบง่าย)

    • Amplitude เป็นตัวแปรหลักของโมเดลนี้ เอนทิตีแต่ละรายการใน HAL แสดงถึงแอมพลิจูดการสัมผัสที่แตกต่างกัน
    • โมเดลนี้เป็นข้อกำหนดขั้นต่ำที่จำเป็นต่อการใช้งาน Haptic 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 constant
mapping

รูปที่ 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 หนึ่งค่าไปยังค่าคงที่ 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 ที่แตกต่างกัน ขอแนะนำให้ใช้วิธีนี้หากคุณต้องการเพิ่มความหลากหลายให้กับพื้นผิว