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

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

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

احرص على فهم مفاهيم الواقع المعزّز الأساسية. وكيفية ضبط جلسة ARCore قبل المتابعة.

اكتشاف الوجوه

يتم تمثيل الوجوه بكائنات ARFace التي تنشئها وتعدّلها وتزيلها ARFaceManager. بعد كل إطار، يستدعي ARFaceManager حدث facesChanged الذي يحتوي على ثلاث قوائم: الوجوه التي تمت إضافتها والوجوه التي تم تعديلها والوجوه التي تمت إزالتها منذ الإطار الأخير. عندما ترصد ARFaceManager وجهًا في المشهد، فإنّها تنشئ مثيلاً بتنسيق Prefab مع إرفاق مكوّن ARFace لتتبُّع الوجه. يمكن ترك Prefab null.

لإعداد ARFaceManager، أنشِئ عنصر لعبة جديدًا وأضِف ARFaceManager إليه.

Face Prefab عبارة عن ابتكارات جاهزة في الوضع الأوسط للوجه. يمثّل Maximum Face Count الحد الأقصى لعدد الوجوه التي يمكن تتبُّعها.

الوصول إلى الوجوه التي تم رصدها

الوصول إلى الوجوه التي تم رصدها من خلال المكوِّن ARFace المرتبط بميزة "الإعداد المسبق للوجوه". توفّر السمة ARFace الرؤوس والمؤشرات ومعايير الرؤوس وإحداثيات القوام.

أجزاء الوجه الذي تم رصده

توفّر واجهة Augmented Faces API وضعًا متوسطًا وثلاث أوضاع للوجه وشبكة ثلاثية الأبعاد للوجه.

وضع الوسط

الوضع الأوسط، الذي يحدد مركز رأس المستخدم، هو نقطة الأصل لـ Prefab الذي تم إنشاء مثيل له بواسطة ARFaceManager. يتم وضعها داخل الجمجمة، خلف الأنف.

في ما يلي محاور الوضعية المركزية:

  • المحور س الموجب (X+ ) نحو الأذن اليسرى
  • يشير المحور ص الموجب (+ص) للأعلى خارج الوجه
  • يشير المحور Z الموجب (Z+) إلى وسط الرأس

حالات المنطقة

تقع منطقة الجبهة اليسرى والجبهة اليمنى ورأس الأنف، وهي تشير إلى الأجزاء المهمة من وجه المستخدم. تتبع المنطقة نفس اتجاه المحور مثل وضع الوسط.

لاستخدام صور المنطقة، عليك خفض النظام الفرعي الخاص بـ ARFaceManager إلى ARCoreFaceSubsystem واستخدام subsystem.GetRegionPoses() للحصول على معلومات عن الوضعيات الخاصة بكل منطقة. للاطّلاع على مثال حول كيفية إجراء ذلك، اطّلِع على نموذج استخدام Unity على GitHub.

شبكة وجه ثلاثية الأبعاد

تتكون شبكة الوجه من 468 نقطة تشكل وجه الشخص. ويتم تحديده أيضًا بالنسبة إلى الوضع الأوسط.

لعرض شبكة وجه، عليك إرفاق ARFaceMeshVisualizer بالعنصر Face Prefab. سينشئ ARFaceMeshVisualizer Mesh يقابل الوجه الذي تم رصده، لضبطه كشبكة في الأجهزة MeshFilter وMeshCollider المرفقة. استخدِم MeshRenderer لضبط Material المستخدَم لعرض الوجه.

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

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

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

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

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

  5. اضبط الإعدادات المسبقة التي تم إنشاؤها حديثًا كإعدادات مسبقة للوجه في حقل 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.