הטמעת המשוב הפיזי

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

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

בדף הזה מופיעה רשימת משימות מפורטת להגדרת תאימות לחומרה, כדי שתוכלו להפיק את המקסימום מהשימוש בממשקי ה-API של Android לרטט.

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

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

איור 1. העברת ידע בין יצרני מכשירים למפתחים

רשימת משימות להטמעת מגע

  1. הטמעת קבועים

    • רשימה של קבועים להטמעת משוב מישוש.
  2. הטמעת פרימטיבים

    • הנחיות להטמעה של רכיבי יסוד להרכבת HAL.
  3. מיפוי קבועים בין HAL ל-API

  4. בדיקת החומרה

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

בהמשך נרחיב על כל אחד מהשלבים האלה.

שלב 1: הטמעת קבועים

מבצעים את הבדיקות הבאות כדי לקבוע אם המכשיר עומד בדרישות המינימליות להטמעת משוב מישוש:

תרשים זרימה של תהליך ההטמעה של משוב הרטט

איור 2. הטמעת אפקטים

תרשים זרימה של השלבים להטמעת פרימיטיבים

איור 3. הטמעת פרימיטיבים

בודקים את סטטוס ההטמעה של הקבועים הבאים של משוב מישוש.

קבועים של משוב פיזי מיקומים ותקצירים
EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK, EFFECT_DOUBLE_CLICK VibrationEffect class
קבועים של משוב מגע ב-VibrationEffect לא כוללים מושג של אירועי קלט, ואין להם רכיבי ממשק משתמש. במקום זאת, המשתנים הקבועים כוללים את הרעיון של רמות אנרגיה, כמו EFFECT_CLICK ו-EFFECT_HEAVY_CLICK, שנקראים על ידי createPredefined().

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

  • EFFECT_CLICK

    רטט של צורת גל שנוצר באמצעות VibrationEffect.createWaveform והזמנים שהוגדרו ב-frameworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern.

  • EFFECT_HEAVY_CLICK

    רטט של צורת גל שנוצר באמצעות VibrationEffect.createWaveform והזמנים שהוגדרו ב-frameworks/base/core/res/res/values/config.xml##config_longPressVibePattern.

    • EFFECT_DOUBLE_CLICK

    רטט של צורת גל שנוצר באמצעות VibrationEffect.createWaveform והזמנים (0, 30, 100, 30).

  • EFFECT_TICK

    רטט של צורת גל שנוצר באמצעות VibrationEffect.createWaveform והזמנים שהוגדרו ב-frameworks/base/core/res/res/values/config.xml##config_clockTickVibePattern.

תרשים זרימה של השלבים לבדיקה של משוב פיזי

איור 4. הטמעת קבועי משוב

כדאי לבדוק את הסטטוס של הקבועים הבאים של משוב ציבורי.

קבועים של משוב פיזי מיקומים ותקצירים
CLOCK_TICK, CONTEXT_CLICK, KEYBOARD_PRESS, KEYBOARD_RELEASE, KEYBOARD_TAP, LONG_PRESS, TEXT_HANDLE_MOVE, VIRTUAL_KEY, VIRTUAL_KEY_RELEASE, CONFIRM, REJECT, GESTURE_START, GESTURE_END הקלאס HapticFeedbackConstants
המשתנים הקבועים של המשוב החזותי ב- HapticFeedbackConstants עוזרים לאירועי קלט עם רכיבי ממשק משתמש מסוימים, כמו KEYBOARD_PRESS ו-KEYBOARD_RELEASE, שנקראים על ידי performHapticFeedback().

שלב 2: הטמעת פרימיטיבים

לפרימיטיבים של משוב מישוש ב-VibrationEffect.Composition יש עוצמה שניתן לשנות, והמפתחים יכולים להשתמש בהם באמצעות addPrimitive(int primitiveId, float scale, int delay). אפשר לחלק את הפרימיטיבים לשתי קטגוריות:

  • פרימיטיבים קצרים: פרימטיבים עם משך קצר, בדרך כלל פחות מ-20 אלפיות שנייה. אלה הם CLICK, ‏ TICK ו-LOW_TICK.

  • פרימיטיבים של ציוץ: פרימיטיבים עם תדירות ואמפליטודה משתנות, בדרך כלל עם משך ארוך יותר מפרימיטיבים קצרים. אלה הערכים SLOW_RISE,‏ QUICK_RISE,‏ QUCK_FALL,‏ THUD ו-SPIN.

פרימיטיבים קצרים

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

מדד איכות חשוב של רטט קצר הוא יחס הפולס לצלצול (PRR), שמוצג באיור 5. ה-PRR מוגדר כיחס בין הדופק הראשי, שמוגדר על ידי האות בחלון משך הזמן שבו האמפליטודה יורדת ל-10% מאמפליטודת השיא, לבין הדופק הרטטני, שמוגדר על ידי האות שבו האמפליטודה יורדת מ-10% מאמפליטודת השיא לפחות מ-1% מאמפליטודת השיא. מידע נוסף על PRR זמין במאמר ניתוח צורת הגל, ומידע נוסף על ניתוח והשוואה של תוצאות זמין במאמר השוואת תוצאות באמצעות מפת הביצועים.

יחס בין הדופק לבין הטבעת

איור 5. הגדרה של יחס דופק לצלצול

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

קליק פרימיטיבי

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

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

לוחצים על 'פרופיל האצה של פלט פרימיטיבי'.

איור 6. דוגמה לפרופיל האצה של פלט לרכיב קליק פשוט

פרמטר הנחיה
משך הזמן

יעד: 12 אלפיות שנייה

מגבלה: פחות מ-30 אלפיות שנייה

האצת פלט שיא

יעד: 2 G

מגבלה: יותר מ-1 GB

תדירות בערך בתדירות התהודה

רכיב טיקט ראשוני (טיקט בהיר)

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

מסמנים את פרופיל האצת הפלט של הפרימיטיב

איור 7. דוגמה לפרופיל האצה של פלט לרכיב טיקים (tick) בסיסי

פרמטר הנחיה
משך הזמן

יעד: 5 אלפיות השנייה

מגבלה: פחות מ-20 אלפיות השנייה

האצת פלט שיא

יעד: מחצית מ-CLICK, 1 G

מגבלה: בין 0.5GB ל-1GB

תדירות

יעד: תדירות תהודה כפולה

מגבלה: פחות מ-500 Hz

רכיב פשוט של סימון זמן נמוך

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

פרופיל האצה של יציאה פרימיטיבית עם טיקים נמוכים

איור 8. דוגמה לפרופיל האצה של פלט לפרימיטיב של טיקים נמוכים

פרמטר הנחיה
משך הזמן

יעד: 12 אלפיות שנייה

מגבלה: פחות מ-30 אלפיות שנייה

האצת פלט שיא

יעד: 1/4 מ-TICK, 0.25 G

מגבלה: בין 0.2G ל-0.5G

תדירות

יעד: 2/3 מתדירות התהודה

מגבלה: פחות מ-100 Hz

רכיבים בסיסיים של צפצופים

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

פונקציית התחלה איטית

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

פרמטרים של קלט ופרופיל תאוצה של פלט לרכיב פרימיטיבי של עלייה איטית

איור 9. פרמטרים של קלט ודוגמה לפרופיל האצה של פלט לפרימיטיב של עלייה איטית

אם תגובת התדר של המנוע מוגבלת (לא חזקה מספיק מחוץ לתדר התהודה שלו), אפשר להשתמש בהטמעה חלופית של סריקה בסינוס מ-1/2x עד 1x תדר התהודה. תהודת המנוע תורמת להגיע לשיא האות בסוף.

פרמטר הנחיה
משך הזמן

יעד: 500 אלפיות השנייה

סבילות: 20 אלפיות שנייה

האצת פלט שיא

יעד: 0.5 G

מגבלה: בין 0.5GB ל-1GB

תדירות

יעד: 1/2 עד 2/3 מתדר התהודה

חלופה: 1/2 עד תדר התהודה

פונקציית התחלה מהירה

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

פרמטרים של קלט ופרופיל תאוצה של פלט לרכיב פרימיטיבי של עלייה מהירה

איור 10. פרמטרים של קלט ודוגמה לפרופיל תאוצה של פלט לרכיב פרימיטיבי של עלייה מהירה

פרמטר הנחיה
משך הזמן

יעד: 150 אלפיות השנייה

סבילות: 20 אלפיות שנייה

האצת פלט שיא

יעד: זהה ל-SLOW_RISE

מגבלה: זהה ל-SLOW_RISE

תדירות

יעד: זהה ל-SLOW_RISE

חלופה: בדיוק כמו במלון SLOW_RISE

פונקציית ירידה מהירה

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

פרמטרים של קלט ופרופיל תאוצה של פלט לרכיב פוליגון פשוט של נפילה מהירה

איור 11. פרמטרים של קלט ודוגמה לפרופיל תאוצה של פלט לפרימיטיב של נפילה מהירה

פרמטר הנחיה
משך הזמן

יעד: 100 אלפיות השנייה

סבילות: 20 אלפיות שנייה

האצת פלט שיא

יעד: 1 G

מגבלה: בין 0.5GB ל-2GB

תדירות

יעד: פי 2 עד פי 1 מתדירות התהודה

פונקציית Thud

חבטה היא אפקט חבטה נמוך ועמוק, שמחקה את התחושה הפיזית של דפיקה על עץ חלול. הרכיב הזה פועל בטווח תדרים נמוך, בדומה לרכיב ה-low tick, כדי להוסיף גוף לאפקט. אפשר להטמיע את הפרימיטיב של הדפיקה כתנועה ירידה של תדירות ואמפליטודה בטווח תדר נמוך יותר (רצוי פחות מ-100 Hz). באיור 12 מוצגים הפרמטרים של הקלט ופרופיל דוגמה של האצת הפלט להטמעה הזו. (הקו האדום תואם לתוויות האמפליטודה בצד ימין, והוא מייצג את האופן שבו אמפליטודת הרטט משתנה עם הזמן. הקו הכחול תואם לתוויות התדירות בצד שמאל, והוא מייצג את האופן שבו תדירות הרטט משתנה לאורך זמן).

פרמטרים של קלט ופרופיל האצה של פלט לרכיב 'דפיקה'

איור 12. פרמטרים של קלט ודוגמה לפרופיל האצה של פלט לרכיב 'דפיקה'

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

פרמטר הנחיה
משך הזמן

יעד: 300 אלפיות שנייה

סבילות: 20 אלפיות שנייה

האצת פלט שיא

יעד: 0.25 G

מגבלה: בין 0.2G ל-0.5G

תדירות

יעד: 1/2 עד 1/3 מתדירות התהודה

חלופה: 1x עד 1/2 מתדירות התהודה

פונקציית Spin ראשונית

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

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

אם תגובת התדר של המנוע מוגבלת, אפשר להשתמש בהטמעה חלופית של סנון סינוס מהיר מ-1/2x עד 1x תדר התהודה ובחזרה. תהודת המנוע יוצרת באופן אוטומטי אירוע הדגשה באמצע האות.

פרמטרים של קלט ופרופיל תאוצה של פלט לרכיב פרימיטיבי של סיבוב

איור 13. פרמטרים של קלט ודוגמה לפרופיל האצה של פלט לרכיב פרימיטיבי של סיבוב

פרמטר הנחיה
משך הזמן

יעד: 150 אלפיות השנייה

סבילות: 20 אלפיות שנייה

האצת פלט שיא

יעד: 0.5 G

מגבלה: בין 0.25GB ל-0.75GB

תדירות

יעד: 2/3 עד 1/3, ואז חזרה ל-1/2 מתדירות התהודה

חלופה: 2/3 עד 1x, ואז חזרה ל-1/2 מתדירות התהודה

שלב 3: מיפוי קבועים בין HAL ל-API

שלב 3 מציג מיפויים מומלצים בין קבועים ציבוריים של HAL לקבועים של API. אם החומרה שנבדקה בשלב 1 לא מיישמת את המשתנים הקבועים של HAL, צריך להשתמש בשלב 3 כדי לעדכן את דפוסי החזרה לגיבוי שמתוארים בשלב 1, כדי ליצור תוצאות דומות. המיפוי מתבצע בעזרת שני מודלים שונים של ברירת מחדל:

  • מודל בדיד (פשוט)

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

    • המרקם והאמפליטודה הם המשתנים העיקריים של המודל הזה. כל ישות ב-HAL מייצגת מרקמים שונים של משוב מישוש. האמפליטודה של כל ישות HAL נשלטת על ידי גורם ההמרה (S).
    • הדגם הזה דורש חומרה מתקדמת. אם יצרני ציוד מקורי רוצים להשתמש בחוויית משתמש מתקדמת של משוב מישוש עם VibrationEffect.Composition (כדי להפיק את התועלת המרבית מ-APIs העדכניים ביותר של משוב מישוש), מומלץ להטמיע את החומרה שלהם באמצעות המודל הזה.

מודל בדיד

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

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

תרשים של טווח קבוע של HAL ואמפליטודות משוב

איור 14. טווח קבוע של HAL לפי משרעת

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

מודל בדיד למיפוי קבוע של HAL-API

איור 15. מיפוי קבוע של HAL-API: מודל בדיד

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

מודל רציף

אפשר להשתמש במודל הרציף עם יכולת התאמה לעוצמה כדי להגדיר קבועי 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. הגדלת הווריאציה באמצעות יכולת ההתאמה לעומס של Amplitude

בכל קבועי ה-API שניתן להתאמה, כמו PRIMITIVE_TICK ו-PRIMITIVE_CLICK ב-VibrationEffect.Composition, רמת האנרגיה של קבוע ה-API תלויה בפרמטר float scale כשמגדירים את קבוע ה-API באמצעות addPrimitive(int primitiveID, float scale, int delay). אפשר להבדיל בבירור בין PRIMITIVE_TICK לבין PRIMITIVE_CLICK באמצעות קבועי HAL שונים. מומלץ להשתמש בגישה הזו אם רוצים להוסיף וריאציה למרקם.

שלב 4: הערכת החומרה

הערכת החומרה כוללת הגדרה של שלוש השפעות הלטקס, שמסומנות בתור השפעות 1, 2 ו-3 במסגרת ההערכה הספציפית הזו.

אפקט 1: ערכי קבועים מוגדרים מראש של משוב מישוש קצר

הקבוע VibrationEffect.EFFECT_CLICK הוא האפקט הבסיסי או המכנה המשותף במיפוי HAL-API שצוין בשלב 2. הוא ממופה לאפקט הנפוץ ביותר, HapticFeedbackConstants.KEYBOARD_PRESS. הערכת האפקט הזה עוזרת לקבוע את המוכנות של מכשיר היעד לתחושות מגע ברורות.

אפקט 2: אפקט רטט קצר בהתאמה אישית

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

צורת גל של אפקט רטט קצר בהתאמה אישית

איור 19. אפקט רטט קצר בהתאמה אישית

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

הקבוע VibrationEffect.createWaveform(timings[], amplitudes[], int repeat) הוא להשפעות מותאמות אישית ארוכות עם תנודות באמפליטודה. היכולת ליצור אמפליטודות משתנות לאפקטים הקטנים והרטטניים בהתאמה אישית היא אחד המדדים להערכת היכולות של המכשיר לרטט עשיר. הערכים המומלצים של timings [] ו-amplitudes [] הם {500, 500} ו-{128, 255}, בהתאמה, שמציגים מגמת עלייה של האמפליטודה מ-50% ל-100%, עם קצב דגימה של 500 אלפיות השנייה.

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

איור 20. אפקט רטט ארוך בהתאמה אישית עם שינוי באמפליטודה

כדי לבדוק את יכולות החומרה של בקרת האמפליטודה לאפקט 3, משתמשים בשיטה Vibrator.hasAmplitudeControl(). התוצאה צריכה להיות true כדי להריץ את VibrationEffect.createWaveform עם אמפליטודה משתנה כמתוכנן.

תרשים זרימה של הערכת ההשפעה החזותית הסובייקטיבית

איור 21. הערכת הנושא של האפקט הפיזי 1, 2 ו-3

ביצוע הערכה סובייקטיבית

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

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

ביצוע הערכה מתקדמת

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