การออกแบบ UX ของ Haptics

การแมปค่าคงที่ HAL-API ที่แนะนำในขั้นตอนที่ 2 ของรายการตรวจสอบการสัมผัสจะอิงตามหลักการการออกแบบ UX ที่แนะนําอย่างยิ่ง หลักการทําการออกแบบ UX จะกําหนดรากฐานของวิธี เมื่อใด และควรใช้อะไรเมื่อใช้ Android Haptics API ดูข้อมูลเพิ่มเติมเกี่ยวกับหลักการพื้นฐานเหล่านี้ได้ในบทความการสัมผัสขั้นสูง: กรณีการใช้งาน ข้อมูล และวิธีใช้ Haptic API ใหม่

การแมปค่าคงที่

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

เลือกเอฟเฟกต์การสัมผัส

ตามระดับการโต้ตอบการสัมผัส (VibrationEffect)

EFFECT_CLICK คือจุดเริ่มต้นที่ดีที่สุดในการกำหนดระดับการสัมผัสที่ต้องการ (VibrationEffect) เนื่องจากเป็นค่ามัธยฐานระหว่างการสัมผัส "เบา" ของ EFFECT_TICK กับการสัมผัส "หนัก" ของ EFFECT_HEAVY_CLICK เมื่อเริ่มต้นด้วย EFFECT_CLICK คุณจะเพิ่มหรือลดพลังงานเชิงแนวคิดได้โดยการเพิ่มค่าความแรงด้วย EFFECT_HEAVY_CLICK หรือลดค่าความแรงด้วย EFFECT_TICK โปรดทราบว่า EFFECT_DOUBLE_CLICK สื่อถึงแนวคิดที่มีประสิทธิภาพสูงสุดเนื่องจากมีการพูดซ้ำ

ระดับการโต้ตอบการสัมผัส

รูปที่ 2 การตั้งค่าระดับการสัมผัส

ตามเหตุการณ์การป้อนข้อมูลและองค์ประกอบ UI (HapticFeedbackConstants)

หากเป้าหมายเชื่อมโยงกับเหตุการณ์อินพุตที่เฉพาะเจาะจง (เช่น การกดค้างหรือการปัด) หรือองค์ประกอบ UI (เช่น แป้นพิมพ์) ให้ค้นหาค่าคงที่ของการสัมผัสที่กำหนดไว้ล่วงหน้าใน HapticFeedbackConstants ชื่อของค่าคงที่แต่ละรายการหมายถึง Use Case ที่เฉพาะเจาะจง เช่น KEYBOARD_PRESS หรือ LONG_PRESS

จำลองเหตุการณ์การกดปุ่มในชีวิตจริง

การสัมผัสที่ตอบสนองต่อการสัมผัสของเหตุการณ์อินพุต (ปุ่มเสมือนจริง) สามารถจำลองการกดปุ่มโดยใช้เอนทิตีที่จับต้องได้ (เช่น ปุ่มแบบกดแบบกลไก)

เหตุการณ์การป้อนข้อมูล: ขั้นตอนการโต้ตอบแบบคู่

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

สัมผัสการกดและปล่อยเหตุการณ์

รูปที่ 3 เอฟเฟกต์การสัมผัสตามเหตุการณ์การป้อนข้อมูลแบบไบนารี

แรงสัมผัส: ความสามารถในการกดปุ่ม

เหตุการณ์อินพุตที่มีการมีส่วนร่วมสั้นและเบาจะเชื่อมโยงกับการสัมผัสที่เบา เหตุการณ์อินพุตที่มีการมีส่วนร่วมนานขึ้นและลึกขึ้นจะเชื่อมโยงกับการสัมผัสที่แรงขึ้น

การโต้ตอบการสัมผัสที่แสดงถึงความสามารถในการดำเนินการ

รูปที่ 4 ผลสัมผัสตามการเอื้ออำนวย

จำลองพื้นผิวเสมือนจริงในเหตุการณ์การป้อนข้อมูลด้วยท่าทางสัมผัส

อินพุตตามท่าทางสัมผัส (เช่น การสไลด์หรือเลื่อน) สามารถปรับให้สอดคล้องกับพื้นผิวสัมผัสเสมือนจริงขณะที่นิ้วกำลังเคลื่อนไหวบนหน้าจอพร้อมกับ UI ภาพ เช่น การสร้างการตอบกลับแบบสัมผัสซ้ำๆ ขณะที่นิ้วกำลังเลื่อนไปรอบๆ UI นาฬิกาที่มีองค์ประกอบ UI เครื่องหมายขีดเสมือนจริง

เอฟเฟกต์สำหรับพื้นผิวสัมผัสเสมือนจริงมีไว้เพื่อให้เล่นซ้ำ ซึ่งมักจะทำให้การรับรู้ของพลังงานสูงกว่าแอมพลิจูด (เมื่อมีการเรียกเอฟเฟกต์ดังกล่าวโดยไม่มีการกล่าวซ้ำๆ หรือเพียงครั้งเดียว) ด้วยเหตุนี้ ค่าคงที่ของสัมผัสที่ออกแบบมาสำหรับพื้นผิวสัมผัสเสมือนจริง (เช่น CLOCK_TICK หรือ TEXT_HANDLE_MOVE) จึงต้องละเอียดอ่อนเพื่อให้ความรู้สึกเคลื่อนไหวผ่านสัญญาณซ้ำๆ

พื้นผิวเสมือน

รูปที่ 5 เอฟเฟกต์การสัมผัสเพื่อจำลองพื้นผิวเสมือนจริง

ใส่ความรู้สึก

หากต้องการใส่ความรู้สึกเชิงบวกหรือเชิงลบไว้ในเอฟเฟกต์การสัมผัส ให้ใช้ความรู้สึกที่แรงขึ้นกับความรู้สึกเชิงลบเพื่อดึงดูดความสนใจของผู้ใช้

ความรู้สึกเกี่ยวกับการโต้ตอบการสัมผัส

รูปที่ 6 ผลลัพธ์ของการสัมผัสที่มีความรู้สึก

หลีกเลี่ยงเสียงรบกวนจากการสั่นเป็นเวลานาน

หากต้องการหลีกเลี่ยงเสียงรบกวนจากการสั่นเป็นเวลานานสำหรับสัมผัสเพื่อดึงดูดความสนใจ ให้เร่งรูปแบบอย่างราบรื่นเพื่อสร้างเอฟเฟกต์การเร่งขึ้น โดยใช้ createWaveform(long[] timings, int[] amplitudes, int repeat)

การสั่นเป็นเวลานาน

รูปที่ 7 เอฟเฟกต์การสั่นที่เพิ่มขึ้นเรื่อยๆ