با نحوه استفاده از چهرههای افزوده برای نمایش داراییها در بالای چهره انسان در برنامه خود آشنا شوید.
پیش نیازها
قبل از ادامه، مطمئن شوید که مفاهیم اساسی AR و نحوه پیکربندی یک جلسه ARCore را درک کرده اید.
تشخیص چهره ها
چهره ها توسط اشیاء ARFace
که توسط ARFaceManager
ایجاد، به روز و حذف می شوند نشان داده می شوند. یک بار در هر فریم، ARFaceManager
یک رویداد facesChanged
فراخوانی میکند که شامل سه لیست است: چهرههایی که اضافه شدهاند، چهرههایی که بهروزرسانی شدهاند، و چهرههایی که از آخرین فریم حذف شدهاند. هنگامی که ARFaceManager
چهره ای را در صحنه تشخیص می دهد، یک Prefab را با یک جزء ARFace
متصل می کند تا چهره را ردیابی کند. Prefab را می توان null
گذاشت.
برای راه اندازی ARFaceManager
، یک شی بازی جدید ایجاد کنید و ARFaceManager
را به آن اضافه کنید.
Face Prefab همان Prefab است که در ژست مرکز صورت به کار می رود. Maximum Face Count نشان دهنده حداکثر تعداد چهره هایی است که می توان ردیابی کرد.
به چهره های شناسایی شده دسترسی داشته باشید
از طریق مؤلفه ARFace
که به Face Prefab متصل است به چهره های شناسایی شده دسترسی پیدا کنید. ARFace
رئوس، اندیس ها، نرمال های راس و مختصات بافت را ارائه می دهد.
بخش هایی از یک چهره شناسایی شده
Augmented Faces API یک حالت مرکزی، سه حالت ناحیه ای و یک شبکه صورت سه بعدی را ارائه می دهد.
ژست وسط
حالت مرکزی، که مرکز سر کاربر را مشخص می کند، نقطه مبدا Prefab است که توسط ARFaceManager
ارائه شده است. در داخل جمجمه، پشت بینی قرار دارد.
محورهای پوز مرکزی به شرح زیر است:
- محور X مثبت (X+) به سمت گوش چپ است
- محور مثبت Y (Y+) از صورت به سمت بالا اشاره می کند
- محور Z مثبت (Z+) به مرکز سر اشاره می کند
موقعیت های منطقه
این ناحیه در پیشانی چپ، پیشانی راست و نوک بینی قرار دارد و قسمت های مهم صورت کاربر را مشخص می کند. پوزهای ناحیه همان جهت محوری پوز مرکز را دنبال می کنند.
برای استفاده از پوزهای منطقه، زیرسیستم ARFaceManager
را به ARCoreFaceSubsystem
پایین بیاورید و از subsystem.GetRegionPoses()
برای به دست آوردن اطلاعات پوز برای هر منطقه استفاده کنید. برای مثالی از نحوه انجام این کار، نمونه استفاده Unity را در GitHub ببینید.
مش سه بعدی صورت
توری صورت از 468 نقطه تشکیل شده است که صورت انسان را تشکیل می دهد. همچنین نسبت به وضعیت مرکزی تعریف شده است.
برای تجسم مش چهره، یک ARFaceMeshVisualizer
به Face Prefab وصل کنید. ARFaceMeshVisualizer
یک Mesh
ایجاد می کند که با چهره شناسایی شده مطابقت دارد و آن را به عنوان مش در MeshFilter
s و MeshCollider
s متصل می کند. از MeshRenderer
برای تنظیم Material
مورد استفاده برای رندر چهره استفاده کنید.
AR Default Face Prefab یک ماده پیشفرض را روی مشهای چهره شناساییشده ارائه میکند.
برای شروع استفاده از چهره پیش فرض AR این مراحل را دنبال کنید:
- یک
ARFaceManager
راه اندازی کنید. در تب Hierarchy ، از + > XR > AR Default Face برای ایجاد یک شیء چهره جدید استفاده کنید. این شی موقت است و پس از ایجاد Face Prefab قابل حذف است.
AR Default Face در Inspector دسترسی پیدا کنید.
چهره پیشفرض AR جدید ایجاد شده را از زبانه Hierarchy به پنجره Project Assets بکشید تا یک Prefab ایجاد کنید .
Prefab جدید ایجاد شده را به عنوان Face 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 استفاده کنید.