تعرَّف على كيفية استخدام ميزة الوجوه المحسّنة لعرض مواد العرض فوق الوجوه البشرية في تطبيقك.
المتطلبات الأساسية
احرص على فهم مفاهيم الواقع المعزّز الأساسية. وكيفية ضبط جلسة 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 مادة تلقائية على الشبكات المتداخلة للوجوه التي تم رصدها.
اتبع الخطوات التالية لبدء استخدام الوجه التلقائي للواقع المعزّز:
- إعداد
ARFaceManager
في علامة التبويب Hierarchy، استخدِم + >. XR AR Default Face لإنشاء كائن وجه جديد. هذا الكائن مؤقت ويمكن حذفه بعد إنشاء الإعدادات المسبقة للوجه.
عليك الوصول إلى "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.