בדף הזה מוצגים מיפויים מומלצים בין קבועים ציבוריים של HAL לבין קבועים של API. אם החומרה שנבדקה לא מיישמת את הקבועים של HAL, צריך לעדכן את דפוסי החזרה (fallback) שמתוארים בדף יישום קבועים ופרימיטיבים כדי ליצור פלט דומה. המיפוי מתבצע בעזרת שני מודלים שונים שמוגדרים כברירת מחדל:
מודל נפרד (פשוט)
- המשתנה המרכזי במודל הזה הוא אמפליטודה. כל ישות ב-HAL מייצגת עוצמת רטט שונה.
- המודל הזה הוא דרישה מינימלית להטמעה של ממשק משתמש בסיסי עם משוב מישוש.
- ממשק משתמש מתקדם יותר עם משוב הפטי דורש חומרה מתקדמת ומודל מתקדם (מודל רציף).
מודל רציף (מתקדם)
- המרקם והאמפליטודה הם המשתנים העיקריים במודל הזה. כל ישות ב-HAL מייצגת מרקמי משוב מישוש שונים. אמפליטודת כל ישות HAL נשלטת על ידי מקדם קנה המידה (
S). - המודל הזה דורש חומרה מתקדמת. אם יצרני ציוד מקורי רוצים להשתמש בחוויית משתמש מתקדמת של משוב הפטי עם
VibrationEffect.Composition(כדי להפיק את המרב מ-API המשוב ההפטי העדכני), מומלץ להטמיע את החומרה שלהם באמצעות המודל הזה.
- המרקם והאמפליטודה הם המשתנים העיקריים במודל הזה. כל ישות ב-HAL מייצגת מרקמי משוב מישוש שונים. אמפליטודת כל ישות HAL נשלטת על ידי מקדם קנה המידה (
מודל נפרד
מומלץ למפות את כל הקבועים הציבוריים שמופיעים ב-API לקבועים מתאימים של HAL. כדי להתחיל בתהליך הזה, צריך לברר כמה צורות גל של משוב מישוש עם אמפליטודה נפרדת המכשיר יכול להגדיר ב-HAL. שאלה ספציפית שמנוסחת סביב הרעיון הזה נראית כך: כמה אפקטים הפטיים של דחף יחיד עם הבדלים במשרעת שניתנים לתפיסה על ידי בני אדם אפשר להגדיר בטלפון שלי? התשובה לשאלה הזו קובעת את המיפוי.
הגדרת קבועי HAL היא תהליך שתלוי בחומרה. לדוגמה, יכול להיות שלטלפון ברמת הכניסה יש רק את היכולות של החומרה ליצירת צורת גל הפטי אחת. מכשירים עם רכיבי חומרה מתקדמים יותר יוצרים טווח רחב יותר של רמות אמפליטודה נפרדות, ויכולים להגדיר כמה צורות גל של משוב הפטי בממשק HAL. מיפוי קבוע של HAL-API לוקח את הקבוע של HAL (באמצעות האמפליטודה הבינונית כבסיס), ואז מסדר אפקטים חזקים או חלשים יותר.
איור 1. טווח קבוע של HAL לפי אמפליטודה.
כשמוגדר מספר קבועי HAL עם אמפליטודה נפרדת, הגיע הזמן למפות קבועי HAL ו-API לפי מספר קבועי HAL. תהליך המיפוי הזה יכול לפלח קבוע יחיד של API של דחף לעד שלוש קבוצות נפרדות של רמות אמפליטודה. האופן שבו קבועי ה-API מפולחים מבוסס על עקרונות UX לאירועי קלט נלווים. מידע נוסף זמין במאמר בנושא עיצוב חוויית משתמש עם משוב הפטי.
איור 2. מיפוי קבוע של HAL-API: מודל נפרד.
אם המכשיר תומך רק בשני קבועים של HAL עם אמפליטודות נפרדות, כדאי למזג את הקבועים של HAL ברמות אמפליטודה בינונית וגבוהה. דוגמה למיפוי כזה בפועל היא מיפוי של EFFECT_CLICK ו-EFFECT_HEAVY_CLICK לאותו קבוע HAL, שהוא קבוע HAL של רמת אמפליטודה בינונית. אם המכשיר תומך רק בקבוע HAL אחד עם אמפליטודה נפרדת, כדאי למזג את כל שלוש הרמות לרמה אחת.
מודל רציף
אפשר להשתמש במודל הרציף עם יכולת שינוי גודל של האמפליטודה כדי להגדיר קבועים של HAL. אפשר להחיל על קבועי ה-HAL (לדוגמה, HAL_H0, HAL_H1) מקדם קנה מידה (S) כדי ליצור את ה-HAL המותאם (HAL_H0 x S). במקרה הזה, ה-HAL המותאם ממופה כדי להגדיר קבועי API (HAL_H0 x S1 = H0S1 = EFFECT_TICK), כפי שמוצג באיור 3. באמצעות מדרגיות האמפליטודה של המודל הרציף, מכשיר יכול לאחסן מספר קטן של קבועי HAL עם טקסטורות ייחודיות ולהוסיף וריאציות של אמפליטודה על ידי התאמת מקדם קנה המידה (S). יצרני מכשירים יכולים להגדיר את מספר קבועי ה-HAL על סמך מספר הטקסטורות ההפטיות השונות שהם רוצים לספק.
איור 3. טווח קבוע של HAL לפי טקסטורה (HAL_H0) וקנה מידה של אמפליטודה (S).
איור 4. מיפוי קבוע של HAL-API: מודל רציף.
במודל הרציף, קבועים שונים של HAL מייצגים מרקמים שונים של משוב הפטי ולא אמפליטודות שונות. גורם קנה המידה (S) יכול להגדיר את האמפליטודה. עם זאת, מכיוון שהתפיסה של המרקם (לדוגמה, חדות) קשורה לתפיסה של משך הזמן והאמפליטודה, מומלץ לשלב את המרקם ואת גורם קנה המידה (בתהליך התכנון של מיפוי HAL-API).
איור 5 ממחיש מיפוי קבוע על ידי הגדלת השונות מקבוע HAL אחד להרבה קבועי API עם יכולת שינוי גודל של האמפליטודה.
איור 5. הגדלת השונות באמצעות יכולת התאמה לעומס של האמפליטודה.
לכל הקבועים של API שניתנים להרחבה, כמו PRIMITIVE_TICK ו-PRIMITIVE_CLICK ב-VibrationEffect.Composition, רמת האנרגיה של קבוע ה-API תלויה בפרמטר float scale כשקבוע ה-API מוצהר באמצעות addPrimitive(int primitiveID, float scale,
int delay). אפשר לעצב את PRIMITIVE_TICK ואת PRIMITIVE_CLICK כך שיהיה ביניהם הבדל ברור באמצעות קבועים שונים של HAL. הגישה הזו מומלצת אם רוצים להוסיף וריאציה לטקסטורה.