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

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

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

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

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

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

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

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

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

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

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

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

الوضع في الوسط

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

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

  • يشير المحور X الموجب (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 من أجل إنشاء نموذج مُعدّ مسبقًا.

  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.

    مؤشرات شبكة الوجه في Blender

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