Pelajari cara menggunakan fitur Augmented Faces di aplikasi Anda sendiri.
Mem-build dan menjalankan aplikasi contoh
Untuk membuat dan menjalankan aplikasi AugmentedFaces Java:
Buka Android Studio versi 3.1 atau yang lebih baru. Sebaiknya gunakan perangkat fisik (dan bukan Android Emulator) agar berfungsi dengan Augmented Faces. Perangkat harus terhubung ke mesin pengembangan melalui USB. Lihat panduan memulai Android untuk mengetahui langkah-langkah mendetail.
Impor sampel Java AugmentedFaces ke project Anda.
Di Android Studio, klik Run . Kemudian, pilih perangkat Anda sebagai target deployment dan klik OK untuk meluncurkan aplikasi contoh di perangkat Anda.
Klik Setujui untuk memberi kamera akses ke aplikasi contoh.
Aplikasi akan membuka kamera depan dan segera melacak wajah Anda di feed kamera. Gambar ini harus menempatkan gambar telinga rubah di kedua sisi dahi Anda, dan menempatkan hidung rubah di atas hidung Anda sendiri.
Menggunakan Augmented Faces di Sceneform
Mengimpor aset ke dalam Sceneform
Pastikan aset yang Anda gunakan untuk Augmented Faces diskalakan dan diposisikan dengan benar. Untuk tips dan praktik, lihat Membuat Aset untuk Tampilan Augmented.
Untuk menerapkan aset seperti tekstur dan model 3D ke mesh wajah yang ditingkatkan dalam Sceneform, impor aset terlebih dahulu.
Saat runtime, gunakan ModelRenderable.Builder
untuk memuat model *.sfb
, dan gunakan Texture.Builder
untuk memuat tekstur wajah.
// To ensure that the asset doesn't cast or receive shadows in the scene,
// ensure that setShadowCaster and setShadowReceiver are both set to false.
ModelRenderable.builder()
.setSource(this, R.raw.fox_face)
.build()
.thenAccept(
modelRenderable -> {
faceRegionsRenderable = modelRenderable;
modelRenderable.setShadowCaster(false);
modelRenderable.setShadowReceiver(false);
});
// Load the face mesh texture.
Texture.builder()
.setSource(this, R.drawable.fox_face_mesh_texture)
.build()
.thenAccept(texture -> faceMeshTexture = texture);
Orientasi mesh wajah
Perhatikan orientasi mesh wajah untuk Sceneform:
Mengonfigurasi sesi ARCore
Augmented Faces memerlukan sesi ARCore yang dikonfigurasi untuk menggunakan kamera depan (selfie) dan mengaktifkan dukungan mesh wajah. Untuk melakukannya di Sceneform, perluas class ARfragment, dan ganti konfigurasi:
@Override
protected Set<Session.Feature> getSessionFeatures() {
return EnumSet.of(Session.Feature.FRONT_CAMERA);
}
@Override
protected Config getSessionConfiguration(Session session) {
Config config = new Config(session);
config.setAugmentedFaceMode(AugmentedFaceMode.MESH3D);
return config;
}
Lihat class ArFragment
yang di-subclass ini di tata letak aktivitas Anda.
Dapatkan akses ke wajah yang terdeteksi
Class AugmentedFace
memperluas class Trackable
. Dalam aktivitas aplikasi Anda,
gunakan AugmentedFace
untuk mendapatkan akses ke wajah yang terdeteksi dengan memanggilnya dari metode
addOnUpdateListener()
.
// Get list of detected faces.
Collection<AugmentedFace> faceList = session.getAllTrackables(AugmentedFace.class);
Render efek untuk wajah
Proses rendering efek melibatkan langkah-langkah berikut:
for (AugmentedFace face : faceList) {
// Create a face node and add it to the scene.
AugmentedFaceNode faceNode = new AugmentedFaceNode(face);
faceNode.setParent(scene);
// Overlay the 3D assets on the face.
faceNode.setFaceRegionsRenderable(faceRegionsRenderable);
// Overlay a texture on the face.
faceNode.setFaceMeshTexture(faceMeshTexture);
…
}