دليل المطوّرين الذي طوّرناه حول ميزة "الوجوه المعززة" لمؤسسة AR Foundation

تعرَّف على كيفية استخدام ميزة الوجوه المعزَّزة لعرض مواد العرض فوق الوجوه البشرية في تطبيقك.

المتطلبات الأساسية

قبل المتابعة، تأكد من فهم مفاهيم الواقع المعزّز الأساسية وكيفية ضبط جلسة 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 وMeshColliders المُرفقة. استخدِم MeshRenderer لضبط Material المستخدَمة لعرض الوجه.

تعرض السمة AR Default Face Prefab مادة تلقائية على شبكات الوجه التي تم رصدها.

اتّبِع الخطوات التالية لبدء استخدام "الوجه التلقائي للواقع المعزّز":

  1. إعداد ARFaceManager
  2. في علامة التبويب Hierarchy، استخدم + > XR > AR Default Face لإنشاء كائن جديد للوجه. إنّ هذا الكائن مؤقّت ويمكن حذفه بعد إنشاء ميزة Face Prefab.

  3. الوصول إلى AR Default Face في "أداة الفحص"

  4. اسحب "الوجه التلقائي للواقع المعزّز" الذي تم إنشاؤه حديثًا من علامة التبويب "Hierarchy" إلى نافذة "Project Assets" من أجل إنشاء "الوجه التلقائي".

  5. اضبط Prefab الذي تم إنشاؤه حديثًا كإعداد مسبق للوجه في حقل Face Prefab في ARFaceManager.

  6. في علامة التبويب Hierarchy، احذف كائن الوجه الذي لم يعد ضروريًا.

الحصول على رؤوس فردية من شبكة الوجه

استخدِم face.vertices للوصول إلى مواضع قمم شبكة الوجه. استخدِم face.normals للوصول إلى القيم العادية للرأس.

تصوير القلوب الفردية لشبكة الوجه

يمكنك استخدام Blender لعرض أرقام الفهرس التي تتوافق مع رؤوس الشبكة المتداخلة بسهولة:

  1. افتح Blender واستورِد canonical_face_mesh.fbx من GitHub.
  2. الانتقال إلى Edit > Preferences > Interface
  3. ضِمن قائمة "Display"، اختَر Developer Extras.

  4. اختَر الوجه من خلال النقر عليه في إطار العرض الثلاثي الأبعاد، واضغط على Tab للدخول إلى "وضع التعديل".

  5. افتح القائمة المنسدلة بجانب إطار العرض Overlays واختَر Indices.

    فهارس متداخلة للوجه في جهاز الخلاط

  6. حدِّد الرأس الذي تريد تحديد رقم فهرسه. لتمييز جميع الرؤوس، استخدِم Select > All.