למידע נוסף על השימוש בפנים מתקדמות כדי לעבד נכסים מעל פנים אנושיות באפליקציה שלך.
דרישות מוקדמות
לפני שממשיכים, חשוב לוודא שאתם מבינים את המושגים הבסיסיים של 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
שתואם לפנים שזוהו, ותגדיר אותו כרשת ה-MeshFilter
s ו-MeshCollider
המצורפים. משתמשים ב-MeshRenderer
כדי להגדיר את Material
לעיבוד הפנים.
AR Default Face Prefab מעבד חומר שמוגדר כברירת מחדל ברשתות הפנים שזוהו.
כדי להתחיל להשתמש בתצוגת ברירת המחדל של AR צריך לפעול לפי השלבים הבאים:
- מגדירים
ARFaceManager
. בכרטיסייה Hierarchy, משתמשים ב-+ > XR > AR Default Face כדי ליצור אובייקט פנים חדש. האובייקט הזה הוא זמני, ואפשר למחוק אותו לאחר היצירה של Face Prefab.
נכנסים ל-AR Default Face ב'בודק'.
כדי ליצור מודעת Prefab, גוררים את תצוגת ברירת המחדל החדשה של ה-AR מהכרטיסייה Hierarchy אל החלון Project Assets.
בשדה Face Prefab של
ARFaceManager
, מגדירים את ה-Prefab החדש שנוצר כ-Face Prefab.בכרטיסייה Hierarchy מוחקים את אובייקט הפנים, כי אין בו יותר צורך.
גישה לקודקודים בודדים ברשת הפנים
באמצעות face.vertices
אפשר לגשת למיקומים של הקודקודים ברשת. שימוש ב-face.normals
כדי לגשת לנורמלי הקודקוד התואמים.
הציגו קודקודים בודדים ברשת הפנים
אפשר להשתמש בתכונה Blender כדי לראות בקלות את מספרי האינדקס שתואמים לקודקודים של רשת הפנים:
- פותחים את בלנדר ומייבאים את
canonical_face_mesh.fbx
מ-GitHub. - נווט אל Edit > Preferences > Interface.
בתפריט Display, בוחרים באפשרות Developer Extras.
בחר את הפנים באמצעות לחיצה באזור התצוגה בתלת-ממד, והקש על Tab כדי להיכנס למצב עריכה.
פותחים את התפריט הנפתח ליד אזור התצוגה של Overlays ובוחרים באפשרות Indices.
מדגישים את הקודקוד שאת מספר האינדקס שלו רוצים לקבוע. כדי להדגיש את כל הקודקודים, צריך להשתמש בפונקציה Select > All.