Artırılmış Yüzler özelliğini kendi uygulamalarınızda nasıl kullanacağınızı öğrenin.
Örnek uygulamayı oluşturup çalıştırın
AugmentedFaces Java uygulamasını geliştirmek ve çalıştırmak için:
Android Studio'nun 3.1 veya daha yeni bir sürümünü açın. Artırılmış Yüzler ile çalışmak için Android emülatörünün değil, fiziksel bir cihazın kullanılması önerilir. Cihaz, USB ile geliştirme makinesine bağlı olmalıdır. Ayrıntılı adımlar için Android hızlı başlangıç sayfasına bakın.
AugmentedFaces Java örneğini projenize aktarın.
Android Studio'da Çalıştır'ı tıklayın. Ardından, dağıtım hedefi olarak cihazınızı seçin ve cihazınızda örnek uygulamayı başlatmak için Tamam'ı tıklayın.
Kameranın örnek uygulamaya erişmesine izin vermek için Onayla'yı tıklayın.
Uygulama, ön kamerayı açmalı ve yüzünüzü kamera kamerası feed'inde hemen izlemelidir. Tilki kulaklarının görüntülerinin her iki kenarının da alnına ve tilki burnunun kendi burnunun üstüne yerleştirilmesi gerekir.
Artırılmış Yüzleri Sahnede Kullanma
Öğeleri Sceneform'a aktarma
Genişletilmiş Yüzler için kullandığınız öğelerin ölçeklendirildiğinden ve doğru şekilde konumlandığından emin olun. İpuçları ve uygulamalar için Artırılmış Yüzler için Öğeler Oluşturma bölümüne bakın.
Doku ve 3D modeller gibi öğeleri Sceneform'da artırılmış yüz örgüsine uygulamak için öncelikle öğeleri içe aktarın.
Çalışma zamanında *.sfb
modelleri yüklemek için ModelRenderable.Builder
özelliğini, yüz için bir doku yüklemek üzere Texture.Builder
kullanın.
// 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);
Yüz örgü yönü
Sceneform için yüz örgüsünün yönünü not edin:
ARCore oturumunu yapılandırma
Artırılmış Yüzler, ARCore oturumunun ön yüzdeki (selfie) kamerayı kullanacak şekilde yapılandırılması ve yüz örgü desteğini etkinleştirmesi gerekir. Bunu Sahne biçiminde yapmak için ARparça sınıfını genişletin ve yapılandırmayı geçersiz kılın:
@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;
}
Etkinlik düzeninizde bu alt sınıflı ArFragment
sınıfına bakın.
Algılanan yüze erişim elde edin
AugmentedFace
sınıfı, Trackable
sınıfını genişletir. Uygulamanızın etkinliğinde, algılanan yüze addOnUpdateListener()
yöntemini kullanarak erişmek için AugmentedFace
özelliğini kullanın.
// Get list of detected faces.
Collection<AugmentedFace> faceList = session.getAllTrackables(AugmentedFace.class);
Yüz için efekt oluşturun
Efekti oluşturmak için şu adımları uygulayın:
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);
…
}