עקרונות עיצוב של משוב פיזי

כשמדובר במשוב מהתחושה (haptic) במכשירים ניידים, פחות זה יותר. רעידות חזקות מדי עלולות להיות מטרידות ואפילו להרדים את הידיים, כי בדרך כלל המכשיר נמצא ביד והמשתמש מקדיש לו את מלוא תשומת הלב. היא גם עלולה להסיח את דעת המשתמש מהמשימה שהוא מבצע, וכתוצאה מכך הוא עלול להשבית במהירות את כל התכונות החזוניות. עם זאת, משוב חושני משובח מהרטט מספק למשתמשים חוויה עשירה יותר עם המכשיר.

בדף הזה מוסבר על תרחישים לדוגמה לשימוש בהפעלות מגע, סיווגים של השפעות מגע והנחיות בסיסיות לאפליקציות.

תרחישי שימוש להוספת משוב פיזי לאפליקציה

ריכזנו כאן כמה סיבות לשילוב משוב מישוש באפליקציה.

  • כדי להודיע למשתמש על אירוע שדורש את תשומת ליבו. לדוגמה, שיחה נכנסת או הודעת טקסט, או פגישה קרובה ביומן.

  • כדי לאשר שינוי מצב במכשיר בעקבות פעולה של משתמש. דוגמאות: משוב על לחיצה על לחצן, ביטול נעילת הטלפון, אישור או דחייה של טביעת אצבע או הפעלת המצלמה.

  • כדי לשמח את המשתמש באמצעות אפקטים. אפקטים כאלה יכולים לשפר פעולה מתמשכת של משתמש או לחקות אינטראקציה פיזית. דוגמאות לכך הן משוב על גלילה, פס הזזה שנכנס למקומו או אפקטים הקטפטיים שתואמים לאנימציות, לצלילים, לסרטונים ולמשחקים.

סיווגים של מגע

העקרונות של המשוב החזותי שמפורטים כאן מבוססים על משוב חזותי ברור, על משוב חזותי עשיר ועל משוב חזותי רטטני.

משוב מישוש ברור

משוב מישוש ברור מתייחס לתחושות חדות וברורות שמשויכות לאירוע ספציפי, כמו לחיצות על לחצנים. לרוב, האפקטים האלה נועדו לחקות פעולה מכנית תואמת בעולם האמיתי, כמו לחיצה על לחצן פיזי.

ב-Android יש אפקטים מוגדרים מראש של משוב מישוש ברור ב-VibrationEffect. עם זאת, באופן כללי, באפליקציות צריך להשתמש בערכי קבועים שמכוונים לפעולה מ-HapticFeedbackConstants כדי להבטיח עקביות של ההשפעה והפעולה במכשיר.

יתרון נוסף של קבועים שמתמקדים בפעולה הוא שהפלטפורמה יכולה לספק התנהגות חלופית אם המכשיר של המשתמש לא תומך באפקט מורכב יותר.

ככל שמרחיבים את התרחישים לדוגמה של משוב הרטט, לפעמים המשוב הברור שזמין יכול להרגיש פשוט וחד-גוני. במקרה כזה, כדאי להשתמש בהפעלות מגע עשירות יותר שמבטאות יותר.

משוב פיזי עשיר

בדרך כלל, כדי ליצור משוב מישוש עשיר נדרש מפעיל משוב מישוש עם רוחב פס תדרים רחב יותר, שמאפשר טווח רחב יותר של ביטוי. אפשר ליצור גם משוב מישוש עשיר על ידי סידור של פרימיטיבים של משוב מישוש ברור במגוון תנודות ומרווחי זמן.

דוגמאות לאפקטים הקטנים והעשירים הם:

  • תחושה של 'דפירה', כמו פרפר שמנפנף בכנפיו על קצה האצבע
  • המרקם של משטח שמרגישים כשגוררים או מחליקים עליו אצבע
  • תחושות של רעידה וחוסר יציבות, או תחושות של כבדות והדהוד

משוב פיזי ברטט

משוב חזותי רטטני יכול להיות מאופיין ברטט רועש, חד וחודר, שמשאיר אחריו אפקט כמו תחושת עקצוץ גם אחרי שהרטט מסתיים. בנוסף, בדרך כלל יש לו אפקט צלצול שנשמע כמו הד לפני שהרטט מפסיק לגמרי.

דוגמאות לחיבוקות רטט הן:

  • הפעלת פטיש הידראולי
  • רכיבה על אופנוע
  • במכשירים ניידים, רטט ארוך וצלול אחרי לחיצה על מקש

עוד מימי הפידים והטלפונים הפשוטים, טלפונים ניידים ברמה נמוכה עם רכיבי אקטואטור או רכיבי ניהול (driver) של משוב מגע (haptic) עם ביצועים נמוכים נוטים לייצר רטט ארוך וזמזום לצורך התראות.

הנחיות לעיצוב של משוב מישוש

באופן כללי, הנחיות העיצוב מסתכמות בכך:

  • עדיף להשתמש במשוב פיזי עשיר וברור במקום במשוב פיזי רטטני.
  • חשוב לשמור על עקביות גם במערכת וגם בעיצוב האפליקציה.
  • חשוב לשים לב לתדירות השימוש ולחשיבות.

מתן עדיפות לקבועים ולתוצאות מוגדרים מראש של משוב מישוש

אם הפעולה שלכם מכוסה על ידי פעולה מוגדרת מראש שמופיעה ב-HapticFeedbackConstants, השתמשו בקבוע הזה. כך אפשר להבטיח עקביות בחוויית האינטראקציה של המשתמשים, וזה חשוב במיוחד מבחינת נגישות.

אם אתם יוצרים אפקט משלכם, כדאי להשתמש באפקטים המוגדרים מראש VibrationEffect ובפרימיטיבים VibrationEffect.Composition. סביר יותר שהן יספקו חוויית שימוש באיכות עקבית במכשירים שתומכים בהן.

מתן קורלציה בין החשיבות והתדירות של האירוע לעוצמה שלו

האפקטים החזותיים לא צריכים להציף את המשתמש או להיראות מיותרים.

  • אפקטים של משוב מישוש שמופעלים באירועים תדירים מאוד, כמו גלילה או הזזת ידית טקסט, צריכים להיות עדינים מאוד כדי לספק חוויה נעימה באופן כללי.

  • אירועים חשובים יותר, כמו רענון דף או שליחת טופס, צריכים להיות חזקים יותר מאשר שינוי מתג או גלילה ברשימה, לדוגמה.

  • אפשר לשלב בין שני המושגים כדי ליצור אפקטים שמתחזקים ככל שהאינטראקציה מתקרבת ליעד. לדוגמה, אפשר להגדיל בהדרגה את האמפליטודה של רצף סימנים באמצעות פעולות של גרירה, הטלה או הצמדה.

חשוב להיות עקביים

חשוב להשתמש באופן עקבי בחישה באפליקציה. אם לאינטראקציה מסוימת, כמו שליחת טופס או ניווט באפליקציה, יש משוב הפיזי, חשוב לוודא שאותו אפקט חל על כל האינטראקציות הדומה. כך המשתמשים יכולים לשייך משמעות למשוב הרטט הספציפי.

חשוב גם לשמור על עקביות עם מערכת Android, ולהשתמש באותו HapticFeedbackConstants לאינטראקציות מוגדרות היטב, כמו בוררי זמן או מקלדות וירטואליות.

תכנון חוויה ויזואלית וחוויית אודיו יחד עם משוב מהרטט

כדאי להתייחס לחוויית המגע כחלק מחוויית המשתמש הכוללת.

מומלץ מאוד לתכנן יחד את האפקטים החזותיים, האודיו והחזותיים. כדאי ליצור הרמוניה או התאמה בין הקול לבין האנימציות החזותית ותבניות האודיו. קלט חזותי ואודיו יכול לשפר את החוויה של המשוב החזותי, ואפקט משוב חזותי שתוכנן היטב יכול לספק תחושה של פיזיות לאפקטים חזותיים ואודיו.

לעומת זאת, משוב חישתי שמופעל לא מסונכרן או לא תואם לאפקטים החזותיים והקוליים עלול להפריע למשתמש. במקרים מסוימים, המשתמש עשוי לחשוב שהאקטואטור הרטט פגום.

להימנע מרטט חד-פעמי מדור קודם כמשוב הפיזי

מומלץ להימנע משימוש ברטט חד-פעמי מהדור הקודם, כמו רטט שמוגדר באמצעות VibrationEffect.createOneShot או רטט שמתבצע באמצעות ממשקי ה-API Vibrator.vibrate(long) ו-Vibrator.vibrate(long[], int).

הרטט הזה עשוי להישמע כמו זמזום אם הוא נמשך זמן רב אחרי שצורת הגל של הקלט הסתיימה, במיוחד במכשירים עם מפעיל או רכיב ניהול (driver) של משוב מגע בעל ביצועים נמוכים.

אות משוב הרטט הנכון של הקשה על מקש צריך להימשך בין 10 ל-20 אלפיות השנייה. עם זאת, המפעיל עשוי להמשיך לצלצל למשך 20 עד 50 אלפיות השנייה אחרי סיום הקלט של 20 אלפיות השנייה למפעיל. לכן, מומלץ להימנע מהפעלת רטט חד-פעמי למשוב מהסוג הזה.