Pelajari cara menggunakan Tampilan Augmented untuk merender aset di atas wajah manusia di aplikasi Anda sendiri.
Prasyarat
Pastikan Anda memahami konsep AR dasar dan cara mengonfigurasi sesi ARCore sebelum melanjutkan.
Mendeteksi wajah
Wajah diwakili oleh objek ARFace
yang dibuat, diperbarui, dan dihapus oleh ARFaceManager
. Sekali per frame, ARFaceManager
memanggil peristiwa facesChanged
yang berisi tiga daftar: wajah yang telah ditambahkan, wajah yang telah diperbarui, dan wajah yang telah dihapus sejak frame terakhir. Saat ARFaceManager
mendeteksi wajah di tampilan, instance akan membuat instance Prefab dengan komponen ARFace
yang terpasang untuk melacak wajah. Prefab dapat ditinggalkan null
.
Untuk menyiapkan ARFaceManager
, buat objek game baru dan tambahkan ARFaceManager
ke objek tersebut.
Face Prefab adalah Prefab yang dibuat instance-nya di pose tengah wajah. Maximum Face Count menunjukkan jumlah maksimum wajah yang dapat dilacak.
Mengakses wajah yang terdeteksi
Mengakses wajah yang terdeteksi melalui komponen ARFace
, yang dilampirkan ke Prefab Wajah. ARFace
menyediakan verteks, indeks, normal verteks, dan koordinat tekstur.
Bagian dari wajah yang terdeteksi
Augmented Faces API menyediakan pose tengah, tiga pose area, dan mesh wajah 3D.
Pose tengah
Pose tengah, yang menandai bagian tengah kepala pengguna, adalah titik asal Prefab yang dibuatkan instance-nya oleh ARFaceManager
. Terletak di dalam tengkorak, di belakang hidung.
Sumbu pose tengah adalah sebagai berikut:
- Sumbu X positif (X+) mengarah ke telinga kiri
- Sumbu Y positif (Y+) menunjuk ke atas dari wajah
- Sumbu Z positif (Z+) menunjuk ke tengah kepala
Pose wilayah
Terletak di dahi kiri, dahi kanan, dan ujung hidung, area pose yang menandai bagian penting dari wajah pengguna. Pose region mengikuti orientasi sumbu yang sama dengan pose tengah.
Untuk menggunakan pose wilayah, turunkan subsistem ARFaceManager
ke ARCoreFaceSubsystem
dan gunakan subsystem.GetRegionPoses()
untuk mendapatkan informasi pose untuk setiap wilayah. Untuk contoh cara melakukannya, lihat contoh penggunaan Unity di GitHub.
Mesh wajah 3D
Mesh wajah terdiri dari 468 titik yang membentuk wajah manusia. Hal ini juga ditentukan secara relatif terhadap pose tengah.
Untuk memvisualisasikan mesh wajah, lampirkan ARFaceMeshVisualizer
ke Face Prefab. ARFaceMeshVisualizer
akan menghasilkan Mesh
yang sesuai dengan wajah yang terdeteksi, menyetelnya sebagai mesh di MeshFilter
dan MeshCollider
yang terlampir. Gunakan MeshRenderer
untuk menyetel Material
yang digunakan untuk merender wajah.
AR Default Face Prefab merender material default pada mesh wajah yang terdeteksi.
Ikuti langkah-langkah berikut untuk mulai menggunakan Wajah Default AR:
- Siapkan
ARFaceManager
. Di tab Hierarchy, gunakan + > XR > AR Default Face untuk membuat objek wajah baru. Objek ini bersifat sementara dan dapat dihapus setelah Anda membuat Face Prefab.
Akses AR Default Face di Inspector.
Tarik Wajah Default AR yang baru dibuat dari tab Hierarchy ke jendela Project Assets untuk membuat Prefab.
Tetapkan Prefab yang baru dibuat sebagai Prefab Wajah di kolom Face Prefab
ARFaceManager
.Di tab Hierarchy, hapus objek wajah karena tidak diperlukan lagi.
Mengakses verteks individual mesh wajah
Gunakan face.vertices
untuk mengakses posisi verteks mesh wajah. Gunakan face.normals
untuk mengakses normal verteks yang sesuai.
Memvisualisasikan verteks individual mesh wajah
Anda dapat menggunakan Blender untuk melihat nomor indeks yang sesuai dengan verteks mesh wajah dengan mudah:
- Buka Blender dan impor
canonical_face_mesh.fbx
dari GitHub. - Buka Edit > Preferences > Interface
Di bawah menu Display, pilih Developer Extras.
Pilih wajah dengan mengkliknya di area pandang 3D, lalu tekan Tab untuk masuk ke Mode Edit.
Buka menu drop-down di samping area pandang Overlays dan pilih Indices.
Tandai titik sudut yang nomor indeksnya ingin Anda tentukan. Untuk menandai semua verteks, gunakan Select > All.