המדריך למפתחים של Augmented Faces ל-AR Foundation

למידע נוסף על השימוש בפנים מתקדמות כדי לעבד נכסים מעל פנים אנושיות באפליקציה שלך.

דרישות מוקדמות

לפני שממשיכים, חשוב לוודא שאתם מבינים את המושגים הבסיסיים של AR ואת האופן שבו מגדירים סשן של ARCore.

זיהוי פנים

פנים מיוצגות על ידי ARFace אובייקטים שנוצרו, עודכנו והוסרו על ידי ARFaceManager. בכל פריים, הסמל ARFaceManager מפעיל אירוע facesChanged שמכיל שלוש רשימות: פנים שנוספו, פנים שעודכנו ופנים שהוסרו מאז הפריים האחרון. כשהסמל ARFaceManager מזהה פנים בסצנה, הוא יוצר 'Prefab' עם רכיב ARFace שצורף למעקב אחרי הפנים. אפשר להשאיר את ה-Prefab null.

כדי להגדיר את ה-ARFaceManager, יוצרים אובייקט משחק חדש ומוסיפים לו את התג ARFaceManager.

Face Prefab הוא יצירת מופע מראש של הפנים בתנוחה המרכזית. Maximum Face Count מייצג את המספר המקסימלי של תמונות פנים שאפשר לעקוב אחריהן.

גישה לפנים שזוהו

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

חלקים של פנים שזוהו

ממשק ה-API של Augmented Faces מספק תנוחה מרכזית, שלוש תנוחות אזוריות ורשת פנים בתלת-ממד.

תנוחת המרכז

התנוחה המרכזית, שמסמנת את מרכז ראשו של המשתמש, היא נקודת המוצא של ה-Prefab שנוצר על ידי ה-ARFaceManager. הוא נמצא בתוך הגולגולת, מאחורי האף.

הצירים של התנוחה המרכזית הם:

  • ציר ה-X החיובי (X+) פונה לכיוון האוזן השמאלית
  • ציר ה-Y החיובי (Y+ ) פונה למעלה מהפנים
  • ציר ה-Z החיובי (Z+ ) מצביע למרכז הראש

תנוחות אזוריות

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

כדי להשתמש בתנוחות האזור, מורידים את מערכת המשנה של ARFaceManager ל-ARCoreFaceSubsystem ומשתמשים ב-subsystem.GetRegionPoses() כדי לקבל פרטי תנוחה בכל אזור. בדוגמה לשימוש של Unity ב-GitHub.

רשת פנים בתלת-ממד

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

כדי להמחיש את רשת הפנים, מחברים ARFaceMeshVisualizer אל Face Prefab. הסמל ARFaceMeshVisualizer יפיק Mesh שתואם לפנים שזוהו, ותגדיר אותו כרשת ה-MeshFilters ו-MeshCollider המצורפים. משתמשים ב-MeshRenderer כדי להגדיר את Material לעיבוד הפנים.

AR Default Face Prefab מעבד חומר שמוגדר כברירת מחדל ברשתות הפנים שזוהו.

כדי להתחיל להשתמש בתצוגת ברירת המחדל של AR צריך לפעול לפי השלבים הבאים:

  1. מגדירים ARFaceManager.
  2. בכרטיסייה Hierarchy, משתמשים ב-+ > XR > AR Default Face כדי ליצור אובייקט פנים חדש. האובייקט הזה הוא זמני, ואפשר למחוק אותו לאחר היצירה של Face Prefab.

  3. נכנסים ל-AR Default Face ב'בודק'.

  4. כדי ליצור מודעת Prefab, גוררים את תצוגת ברירת המחדל החדשה של ה-AR מהכרטיסייה Hierarchy אל החלון Project Assets.

  5. בשדה Face Prefab של ARFaceManager, מגדירים את ה-Prefab החדש שנוצר כ-Face Prefab.

  6. בכרטיסייה Hierarchy מוחקים את אובייקט הפנים, כי אין בו יותר צורך.

גישה לקודקודים בודדים ברשת הפנים

באמצעות face.vertices אפשר לגשת למיקומים של הקודקודים ברשת. שימוש ב-face.normals כדי לגשת לנורמלי הקודקוד התואמים.

הציגו קודקודים בודדים ברשת הפנים

אפשר להשתמש בתכונה Blender כדי לראות בקלות את מספרי האינדקס שתואמים לקודקודים של רשת הפנים:

  1. פותחים את בלנדר ומייבאים את canonical_face_mesh.fbx מ-GitHub.
  2. נווט אל Edit > Preferences > Interface.
  3. בתפריט Display, בוחרים באפשרות Developer Extras.

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

  5. פותחים את התפריט הנפתח ליד אזור התצוגה של Overlays ובוחרים באפשרות Indices.

    סמני שעה ברשת בלנדר

  6. מדגישים את הקודקוד שאת מספר האינדקס שלו רוצים לקבוע. כדי להדגיש את כל הקודקודים, צריך להשתמש בפונקציה Select > All.