Kendi uygulamanızda insan yüzlerinin üzerinde öğeler oluşturmak için Artırılmış Yüzler'i nasıl kullanacağınızı öğrenin.
Ön koşullar
Devam etmeden önce temel AR kavramlarını ve ARCore oturumunu nasıl yapılandıracağınızı anladığınızdan emin olun.
Yüzleri algılama
Yüzler, ARFaceManager
tarafından oluşturulan, güncellenen ve kaldırılan ARFace
nesneleriyle temsil edilir. ARFaceManager
, her karede bir kez facesChanged
etkinliğini çağırır. Bu etkinlik, üç liste içerir: eklenen yüzler, güncellenen yüzler ve son kareden bu yana kaldırılan yüzler. ARFaceManager
, sahnede bir yüz algıladığında, yüzü izlemek için ARFace
bileşeni eklenmiş bir Prefab oluşturur. Hazır Nesne null
olarak bırakılabilir.
ARFaceManager
'yi ayarlamak için yeni bir oyun nesnesi oluşturun ve ARFaceManager
'i buna ekleyin.
Face Prefab, yüzün orta duruşunda örneklenen Prefabrik. Maximum Face Count, izlenebilecek maksimum yüz sayısını temsil eder.
Algılanan yüzlere erişme
Yüz hazır ayarına bağlı ARFace
bileşeni aracılığıyla algılanan yüzlere erişin. ARFace
, köşe noktaları, dizinler, köşe noktası normalleri ve doku koordinatları sağlar.
Algılanan bir yüzün bölümleri
Artırılmış Yüzler API'si bir merkez pozu, üç bölge pozu ve 3D yüz örgüsü sağlar.
Pozu ortala
Kullanıcının kafasının ortasını işaretleyen merkez pozu, ARFaceManager
tarafından oluşturulan Prefab'ın orijin noktasıdır. Kafatası içinde, burnun arkasında bulunur.
Ortadaki pozun eksenleri aşağıdaki gibidir:
- Pozitif X ekseni (X+) sol kulağı işaret ediyor
- Pozitif Y ekseni (Y+) yüzün dışa doğru yukarısını işaret eder
- Pozitif Z ekseni (Z+) kafanın merkezini işaret ediyor
Bölge pozları
Sol alın, sağ alın ve burun ucunda bulunan bölge pozları, kullanıcının yüzünün önemli kısımlarını işaret eder. Bölge pozları, merkez pozuyla aynı eksen yönünü izler.
Bölge pozlarını kullanmak için ARFaceManager
alt sistemini ARCoreFaceSubsystem
olarak aşağı yayınlayın ve her bölgenin poz bilgilerini almak için subsystem.GetRegionPoses()
'ı kullanın. Bunun nasıl yapılacağına dair bir örnek için GitHub'da Unity'nin kullanım örneğine göz atın.
3D yüz örgüsü
Yüz örgüsü, bir insan yüzünü oluşturan 468 noktadan oluşur. Ayrıca merkezdeki pozla göreceli olarak tanımlanır.
Yüz örgüsünü görselleştirmek için Face Prefab öğesine bir ARFaceMeshVisualizer
ekleyin. ARFaceMeshVisualizer
, algılanan yüze karşılık gelen bir Mesh
oluşturur ve bu Mesh
'i ekli MeshFilter
ve MeshCollider
'lerde ızgara olarak ayarlar. Yüzü oluşturmak için kullanılan Material
öğesini ayarlamak üzere MeshRenderer
kullanın.
AR Default Face Prefab, algılanan yüz örgülerinde varsayılan malzeme oluşturur.
AR Varsayılan Yüzünü kullanmaya başlamak için şu adımları uygulayın:
ARFaceManager
oluşturun.Hierarchy sekmesinde, yeni bir yüz nesnesi oluşturmak için + > XR > AR Default Face'ı kullanın. Bu nesne geçicidir ve yüz hazır nesnesi oluşturduktan sonra silinebilir.
Denetleyici'de AR Default Face'e erişin.
Prefab oluşturmak için yeni oluşturulan AR Varsayılan Yüz'ü Hierarchy sekmesinden Project Assets penceresine sürükleyin.
Yeni oluşturulan Prefab'ı,
ARFaceManager
'un Face Prefab alanında Yüz Prefab'ı olarak ayarlayın.Artık gerekli olmadığı için Hierarchy sekmesinde yüz nesnesini silin.
Kadran örgüsünün ayrı ayrı köşe noktalarına erişme
Yüz örgüsünün köşe noktalarının konumlarına erişmek için face.vertices
öğesini kullanın. İlgili köşe normallerine erişmek için face.normals
öğesini kullanın.
Yüz ağının köşelerini tek tek görselleştirin
Bir yüz ağının köşelerine karşılık gelen dizin numaralarını kolayca görüntülemek için Blender'ı kullanabilirsiniz:
- Blender'ı açın ve GitHub'dan
canonical_face_mesh.fbx
dosyasını içe aktarın. - Edit > Preferences > Interface adresine gidiş rotasını izle.
Display menüsünde Developer Extras'ı seçin.
3D görüntü alanında tıklayarak yüzü seçin ve Düzenleme Moduna girmek için Sekme tuşuna basın.
Overlays Görüntü alanının yanındaki açılır menüyü açıp Indices'yi seçin.
Dizin numarasını belirlemek istediğiniz köşeyi vurgulayın. Tüm köşe noktalarını vurgulamak için Select > All simgesini kullanın.