تعرَّف على كيفية استخدام ميزة الوجوه المعزَّزة لعرض مواد العرض فوق الوجوه البشرية في تطبيقك.
المتطلبات الأساسية
قبل المتابعة، تأكد من فهم مفاهيم الواقع المعزّز الأساسية وكيفية ضبط جلسة ARCore.
اكتشاف الوجوه
يتم تمثيل الوجوه من خلال الكائنات ARFace
التي يتم إنشاؤها وتعديلها وإزالتها من خلال ARFaceManager
. مرة واحدة لكل إطار، يستدعي ARFaceManager
حدث facesChanged
يحتوي على ثلاث قوائم: الوجوه التي تمت إضافتها والوجوه التي تم تعديلها والوجوه التي تمت إزالتها منذ الإطار الأخير. عندما ترصد ARFaceManager
وجهًا في المشهد، يتم إنشاء مثيل لـ Prefab مع إرفاق مكوّن ARFace
لتتبُّع الوجه. يمكن ترك الإعداد المسبق null
.
لإعداد ARFaceManager
، أنشِئ عنصر لعبة جديدًا وأضِف ARFaceManager
إليه.
Face Prefab هو نموذج مسبق للوجه في الوضع الأوسط للوجه. يمثّل Maximum Face Count الحد الأقصى لعدد الوجوه التي يمكن تتبُّعها.
الوصول إلى الوجوه التي تم رصدها
يمكنك الوصول إلى الوجوه التي تم رصدها من خلال المكوِّن ARFace
المرتبط بالإعدادات المفضّلة للوجه. توفّر ARFace
الرؤوس والمؤشرات والرؤوس العادية وإحداثيات الهيئة.
أجزاء من وجه تم التعرّف عليه
توفّر واجهة برمجة التطبيقات للوجوه المعززة وضعية في المنتصف ووضعيات ثلاث مناطق وشبكة للوجه ثلاثية الأبعاد.
الوضع الأوسط
إنّ الوضع الأوسط الذي يشير إلى منتصف رأس المستخدم هو نقطة الأصل لـ Prefab التي يتم إنشاؤها عن طريق ARFaceManager
. وهي تقع داخل الجمجمة خلف الأنف.
في ما يلي محاور الوضعية:
- يشير المحور السيني الموجب (X+ ) إلى الأذن اليسرى
- يشير المحور الصادي الموجب (Y+ ) إلى أعلى من الوجه
- يشير المحور Z الموجب (Z+) إلى وسط الرأس
وضعيات المنطقة
تشير وضعيات المنطقة، التي تقع على الجبهة اليسرى والجبهة اليمنى وطرف الأنف، إلى الأجزاء المهمة من وجه المستخدم. تتبع وضعيات المنطقة نفس اتجاه المحور مثل الوضع الأوسط.
لاستخدام أوضاع المنطقة، يمكنك خفض النظام الفرعي لخدمة ARFaceManager
إلى ARCoreFaceSubsystem
واستخدام subsystem.GetRegionPoses()
للحصول على معلومات حول وضعية كل منطقة. للحصول على مثال على كيفية إجراء ذلك، يُرجى الاطّلاع على نموذج استخدام Unity على GitHub.
شبكة ثلاثية الأبعاد للوجه
تتكون شبكة الوجه المتداخلة من 468 نقطة تشكل وجه بشري. كما أنه يتم تحديده بالنسبة إلى الوضع الأوسط.
لعرض شبكة الوجه المتداخلة، عليك إرفاق ARFaceMeshVisualizer
بـ Face Prefab. سينشئ جهاز ARFaceMeshVisualizer
علامة Mesh
تتوافق مع الوجه الذي تم رصده، مع ضبطه على أنّه الشبكة المتداخلة في MeshFilter
وMeshCollider
s المُرفقة. استخدِم MeshRenderer
لضبط Material
المستخدَمة لعرض الوجه.
تعرض السمة AR Default Face Prefab مادة تلقائية على شبكات الوجه التي تم رصدها.
اتّبِع الخطوات التالية لبدء استخدام "الوجه التلقائي للواقع المعزّز":
- إعداد
ARFaceManager
في علامة التبويب Hierarchy، استخدم + > XR > AR Default Face لإنشاء كائن جديد للوجه. إنّ هذا الكائن مؤقّت ويمكن حذفه بعد إنشاء ميزة Face Prefab.
الوصول إلى AR Default Face في "أداة الفحص"
اسحب "الوجه التلقائي للواقع المعزّز" الذي تم إنشاؤه حديثًا من علامة التبويب "Hierarchy" إلى نافذة "Project Assets" من أجل إنشاء "الوجه التلقائي".
اضبط Prefab الذي تم إنشاؤه حديثًا كإعداد مسبق للوجه في حقل Face Prefab في
ARFaceManager
.في علامة التبويب Hierarchy، احذف كائن الوجه الذي لم يعد ضروريًا.
الحصول على رؤوس فردية من شبكة الوجه
استخدِم face.vertices
للوصول إلى مواضع قمم شبكة الوجه. استخدِم face.normals
للوصول إلى القيم العادية للرأس.
تصوير القلوب الفردية لشبكة الوجه
يمكنك استخدام Blender لعرض أرقام الفهرس التي تتوافق مع رؤوس الشبكة المتداخلة بسهولة:
- افتح Blender واستورِد
canonical_face_mesh.fbx
من GitHub. - الانتقال إلى Edit > Preferences > Interface
ضِمن قائمة "Display"، اختَر Developer Extras.
اختَر الوجه من خلال النقر عليه في إطار العرض الثلاثي الأبعاد، واضغط على Tab للدخول إلى "وضع التعديل".
افتح القائمة المنسدلة بجانب إطار العرض Overlays واختَر Indices.
حدِّد الرأس الذي تريد تحديد رقم فهرسه. لتمييز جميع الرؤوس، استخدِم Select > All.