การใช้การสัมผัสเพื่อแสดงผลบนอุปกรณ์เคลื่อนที่ควรใช้น้อยๆ แต่ได้ผล การสั่นมากเกินไปอาจสร้างความรำคาญและทำให้มือชา เนื่องจากผู้ใช้มักจะถืออุปกรณ์ไว้ในมือและตั้งใจฟังเสียง นอกจากนี้ยังอาจทำให้ผู้ใช้เสียสมาธิจากงานที่ตั้งใจทำอยู่ ซึ่งอาจทำให้ผู้ใช้ปิดการสัมผัสทั้งหมดอย่างรวดเร็ว อย่างไรก็ตาม การสั่นที่ออกแบบมาอย่างดีจะให้การตอบกลับทางประสาทสัมผัสที่มีคุณค่า ซึ่งช่วยให้ผู้ใช้มีส่วนร่วมกับอุปกรณ์ได้มากขึ้น
หน้านี้จะอธิบาย Use Case ของการใช้การสัมผัส แนะนำการจัดประเภทสำหรับเอฟเฟกต์การสัมผัส รวมถึงหลักเกณฑ์พื้นฐานสำหรับแอป
Use Case ในการเพิ่มการสัมผัสในแอป
ต่อไปนี้คือเหตุผลบางส่วนในการใช้การสัมผัสในแอป
เพื่อแจ้งให้ผู้ใช้ทราบเกี่ยวกับเหตุการณ์ที่ต้องดำเนินการ ตัวอย่างเช่น สายเรียกเข้าหรือ SMS หรือการประชุมที่กําลังจะมีขึ้นในปฏิทิน
เพื่อยืนยันการเปลี่ยนแปลงสถานะในอุปกรณ์หลังจากการดำเนินการของผู้ใช้ ตัวอย่างเช่น เสียงคลิกสำหรับการกดปุ่ม ปลดล็อกโทรศัพท์ ยอมรับหรือปฏิเสธลายนิ้วมือ หรือการเปิดใช้งานกล้อง
เพื่อสร้างความพึงพอใจให้ผู้ใช้ด้วยเอฟเฟกต์ ผลลัพธ์ดังกล่าวอาจช่วยเพิ่มการดําเนินการของผู้ใช้อย่างต่อเนื่องหรือจําลองการโต้ตอบที่จับต้องได้ เช่น ฟีดแบ็กการเลื่อน แถบเลื่อนที่เลื่อนเข้าที่ หรือเอฟเฟกต์การสัมผัสที่ซิงค์กับภาพเคลื่อนไหว เสียง วิดีโอ และเกม
การจัดประเภทการโต้ตอบการสัมผัส
หลักการสัมผัสที่แสดงที่นี่ออกแบบมาโดยอิงตามการสัมผัสที่ชัดเจน การสัมผัสที่สมบูรณ์ และการสัมผัสที่ทำให้เกิดเสียง
สัมผัสที่ชัดเจน
การสัมผัสที่ชัดเจนหมายถึงความรู้สึกที่คมชัดและชัดเจนซึ่งเชื่อมโยงกับเหตุการณ์แบบแยกต่างหาก เช่น การกดปุ่ม เอฟเฟกต์เหล่านี้มักมีจุดประสงค์เพื่อเลียนแบบการทํางานเชิงกลในโลกแห่งความเป็นจริงที่เกี่ยวข้อง เช่น การกดปุ่มจริง
Android มีเอฟเฟกต์การสัมผัสที่ชัดเจนซึ่งกำหนดไว้ล่วงหน้าใน VibrationEffect
อย่างไรก็ตาม แอปทั่วไปควรใช้ค่าคงที่ที่มุ่งเน้นการดำเนินการจาก HapticFeedbackConstants
เพื่อให้ผลลัพธ์และการดําเนินการในอุปกรณ์ต่างๆ ตรงกัน
ข้อดีอีกอย่างหนึ่งของค่าคงที่ที่มุ่งเน้นการดำเนินการคือแพลตฟอร์มสามารถระบุลักษณะการทำงานสำรองได้หากอุปกรณ์ของผู้ใช้ไม่รองรับเอฟเฟกต์ที่ซับซ้อนมากขึ้น
เมื่อคุณขยายกรณีการใช้งานของฟีเจอร์การสัมผัส ให้ลองใช้การสัมผัสที่ชัดเจนที่มีให้ ซึ่งบางครั้งอาจดูจืดชืดและซ้ำซาก ในกรณีนี้ ให้มุ่งเน้นที่การสัมผัสที่สมจริงซึ่งสื่ออารมณ์ได้มากกว่า
การโต้ตอบการสัมผัสที่หลากหลาย
โดยทั่วไปแล้ว สัมผัสที่สมจริงต้องใช้ตัวกระตุ้นการสัมผัสที่มีแบนด์วิดท์ความถี่ที่กว้างขึ้น ซึ่งช่วยให้มีการแสดงออกและช่วงสัญญาณที่มากขึ้น นอกจากนี้ คุณยังสร้างการสัมผัสที่สมจริงได้ด้วยการจัดลำดับองค์ประกอบพื้นฐานของการสัมผัสที่ชัดเจนตามระดับความกว้างและความถี่ที่หลากหลาย
ตัวอย่างของเอฟเฟกต์การสัมผัสที่สมจริง ได้แก่
- ความรู้สึก "กระพือ" คล้ายกับผีเสื้อกระพือปีกบนปลายนิ้ว
- พื้นผิวที่สัมผัสได้เมื่อใช้นิ้วลากหรือปัดผ่าน
- ความรู้สึกสั่นคลอนและความไม่มั่นคง หรือความรู้สึกหนักและเสียงสะท้อน
การโต้ตอบการสัมผัสแบบสั่น
สัมผัสแบบสั่นเป็นจังหวะจะมีลักษณะเป็นแรงสั่นที่ดัง คมชัด และเจาะทะลุ ซึ่งจะทำให้เกิดผลต่อเนื่อง เช่น รู้สึกเสียวซ่าแม้หลังจากแรงสั่นสิ้นสุดลงแล้ว นอกจากนี้ ยังมีแนวโน้มที่จะทำให้เกิดเสียงดังก้องที่เหมือนเสียงสะท้อนก่อนที่จะหยุดการสั่นอย่างสมบูรณ์
ตัวอย่างของความรู้สึกสัมผัสแบบสั่น ได้แก่
- การใช้เครื่องเจาะ
- การขี่มอเตอร์ไซค์
- ในอุปกรณ์เคลื่อนที่ การสั่นที่ดังและยาวนานหลังจากกดแป้น
ตั้งแต่สมัยเพจเจอร์และฟีเจอร์โฟน โทรศัพท์มือถือระดับล่างที่มีตัวกระตุ้นหรือการขับแบบสัมผัสที่มีประสิทธิภาพต่ำมักจะสร้างการสั่นที่ดังและยาวนานเพื่อวัตถุประสงค์ในการแจ้งเตือน
หลักเกณฑ์การออกแบบการสัมผัส
หลักเกณฑ์การออกแบบในระดับสูงสรุปได้ดังนี้
- เลือกใช้ระบบสัมผัสที่ชัดเจนและหลากหลายแทนระบบสัมผัสที่ทำให้เกิดเสียงรบกวน
- เลือกใช้สีให้สอดคล้องกันทั้งกับระบบและการออกแบบแอป
- อย่าลืมคำนึงถึงความถี่ในการใช้งานและความสำคัญ
จัดลําดับความสําคัญของค่าคงที่และผลลัพธ์ของการสัมผัสที่กําหนดไว้ล่วงหน้า
หากการดําเนินการของคุณครอบคลุมโดยการดำเนินการที่กําหนดไว้ล่วงหน้าซึ่งมีอยู่ใน HapticFeedbackConstants
ให้ใช้ค่าคงที่นั้น วิธีนี้ช่วยให้ผู้ใช้ได้รับประสบการณ์การโต้ตอบที่สอดคล้องกัน ซึ่งมีประโยชน์อย่างยิ่งเมื่อพิจารณาการช่วยเหลือพิเศษ
หากสร้างเอฟเฟกต์ของคุณเอง ให้พิจารณาใช้เอฟเฟกต์ VibrationEffect
ที่กําหนดไว้ล่วงหน้าและองค์ประกอบพื้นฐาน VibrationEffect.Composition
เนื่องจากมีแนวโน้มที่จะมอบประสบการณ์การใช้งานที่มีคุณภาพสม่ำเสมอในอุปกรณ์ที่รองรับ
เชื่อมโยงความสำคัญของเหตุการณ์และความถี่กับความแรง
ไม่ควรทำให้ผู้ใช้รู้สึกไม่สบายตัวหรือรู้สึกว่ามีมากเกินไป
ผลลัพธ์ของการสัมผัสที่ใช้กับเหตุการณ์ที่เกิดขึ้นบ่อยมาก เช่น การเลื่อนหรือย้ายแฮนเดิลข้อความ ควรมีความนุ่มนวลมากเพื่อให้ผู้ใช้ได้รับประสบการณ์โดยรวมที่น่าพึงพอใจ
เหตุการณ์ที่สําคัญกว่า เช่น การรีเฟรชหน้าเว็บหรือการส่งแบบฟอร์ม ควรมีน้ำหนักมากกว่าการเปลี่ยนปุ่มเปิด/ปิดหรือการเลื่อนรายการ
รวมแนวคิดทั้ง 2 เข้าด้วยกันเพื่อสร้างเอฟเฟกต์ที่รุนแรงขึ้นเมื่อการโต้ตอบถึงเป้าหมาย เช่น ค่อยๆ เพิ่มระดับความกว้างของช่วงของชุดเครื่องหมายด้วยการลาก วาง หรือการดำเนินการแบบสแน็ป
มีความสม่ำเสมอ
ใช้การสัมผัสในแอปอย่างสม่ำเสมอ หากการโต้ตอบบางอย่าง เช่น การส่งแบบฟอร์มหรือการไปยังส่วนต่างๆ ในแอป มีการตอบสนองการสัมผัส ให้ตรวจสอบว่ามีการใช้เอฟเฟกต์เดียวกันกับการโต้ตอบที่คล้ายกันทั้งหมด ซึ่งจะช่วยให้ผู้ใช้เชื่อมโยงความหมายกับการตอบสนองแบบสัมผัสที่เฉพาะเจาะจงได้
นอกจากนี้ ให้สอดคล้องกับระบบ Android โดยใช้ HapticFeedbackConstants
เดียวกันสำหรับการโต้ตอบที่ชัดเจน เช่น เครื่องมือเลือกเวลาหรือแป้นพิมพ์เสมือนจริง
ออกแบบประสบการณ์การรับชมภาพและเสียงร่วมกับการสัมผัส
พิจารณาการสัมผัสเป็นส่วนหนึ่งของประสบการณ์โดยรวมของผู้ใช้
เราขอแนะนําอย่างยิ่งให้ออกแบบเอฟเฟกต์ภาพ เสียง และการสัมผัสร่วมกัน ให้มีความกลมกลืนหรือสอดคล้องกับภาพเคลื่อนไหวและรูปแบบเสียง ข้อมูลภาพและเสียงจะช่วยเพิ่มการรับรู้การสัมผัสได้ และเอฟเฟกต์การสัมผัสที่ออกแบบมาอย่างดีจะช่วยให้เอฟเฟกต์ภาพและเสียงมีลักษณะที่จับต้องได้
ในทางกลับกัน การตอบสนองด้วยการสัมผัสที่เล่นไม่ตรงจังหวะหรือให้ความรู้สึกไม่สอดคล้องกับเอฟเฟกต์ภาพและเสียงอาจทำให้ผู้ใช้รู้สึกไม่สบายใจ ในบางกรณี ผู้ใช้อาจคิดว่าตัวกระตุ้นการสัมผัสเสีย
หลีกเลี่ยงการสั่นแบบครั้งเดียวแบบเดิมสำหรับการตอบสนองแบบสัมผัส
หลีกเลี่ยงการใช้การสั่นแบบครั้งเดียวเดิม เช่น การสั่นที่กําหนดโดย VibrationEffect.createOneShot
หรือดำเนินการด้วย API Vibrator.vibrate(long)
และ Vibrator.vibrate(long[], int)
การสั่นเหล่านี้อาจรู้สึกเป็นเสียงสั่นเมื่อการสั่นเกิดขึ้นเป็นเวลานานหลังจากคลื่นรูปแบบอินพุตสิ้นสุดลง โดยเฉพาะอย่างยิ่งในอุปกรณ์ที่มีตัวกระตุ้นหรือการขับเคลื่อนแบบสัมผัสที่มีประสิทธิภาพต่ำ
สัญญาณการตอบกลับด้วยสัมผัสจากการกดแป้นที่ดีควรอยู่ในช่วง 10 ถึง 20 มิลลิวินาที อย่างไรก็ตาม ตัวกระตุ้นอาจยังคงส่งเสียงกริ่งต่อไปอีก 20-50 มิลลิวินาทีหลังจากที่อินพุต 20 มิลลิวินาทีไปยังตัวกระตุ้นสิ้นสุดลง ดังนั้น คุณจึงควรหลีกเลี่ยงการสั่นแบบครั้งเดียวสำหรับความคิดเห็นประเภทนี้