ดูวิธีใช้ Augmented Faces เพื่อแสดงผลเนื้อหาทับใบหน้ามนุษย์ในแอปของคุณเอง
ข้อกำหนดเบื้องต้น
ตรวจสอบว่าคุณเข้าใจแนวคิด AR พื้นฐาน และวิธีกำหนดค่าเซสชัน ARCore ก่อนดำเนินการต่อ
ตรวจจับใบหน้า
ใบหน้าจะแสดงด้วยออบเจ็กต์ ARFace
ที่ ARFaceManager
สร้าง อัปเดต และนำออก 1 ครั้งต่อเฟรม ARFaceManager
จะเรียกใช้เหตุการณ์ facesChanged
ที่มีรายการ 3 รายการ ได้แก่ ใบหน้าที่เพิ่ม ใบหน้าที่อัปเดต และใบหน้าที่ถูกนำออกตั้งแต่เฟรมล่าสุด เมื่อ ARFaceManager
ตรวจพบใบหน้าในฉาก ก็จะสร้าง Prefab ที่มีคอมโพเนนต์ ARFace
แนบอยู่เพื่อติดตามใบหน้า สามารถเพิ่ม Prefab ได้ null
หากต้องการตั้งค่า ARFaceManager
ให้สร้างออบเจ็กต์เกมใหม่และเพิ่ม ARFaceManager
ไปยังออบเจ็กต์เกม
Face Prefab เป็นอินสแตนซ์ Prefab ที่ตำแหน่งตรงกลางของใบหน้า Maximum Face Count แสดงจำนวนใบหน้าสูงสุดที่สามารถติดตามได้
เข้าถึงใบหน้าที่ตรวจพบ
เข้าถึงใบหน้าที่ตรวจพบผ่านคอมโพเนนต์ ARFace
ซึ่งแนบอยู่กับ Face Prefab ARFace
จะระบุจุดยอด ดัชนี ค่าปกติของจุดยอด และพิกัดพื้นผิว
ส่วนต่างๆ ของใบหน้าที่ตรวจพบ
Augmented Faces API จัดท่าศูนย์กลาง ท่า 3 ภูมิภาค และตาข่ายหน้าแบบ 3 มิติ
จัดท่ากึ่งกลาง
ท่าที่อยู่ตรงกลางซึ่งทำเครื่องหมายตรงกลางศีรษะของผู้ใช้คือจุดเริ่มต้นของการจำลองล่วงหน้าของ ARFaceManager
อยู่ภายในกะโหลกศีรษะบริเวณหลังจมูก
แกนของท่าศูนย์กลางมีดังนี้
- แกน X เชิงบวก (X+) ชี้ไปยังหูด้านซ้าย
- แกน Y บวก (Y+) ชี้ขึ้นออกจากใบหน้า
- แกน Z ที่เป็นบวก (Z+) จะชี้ไปยังกึ่งกลางของศีรษะ
ท่าทางตามภูมิภาค
บริเวณหน้าผากซ้าย หน้าผากขวา และปลายจมูกจะเป็นเครื่องหมายส่วนสำคัญของใบหน้าของผู้ใช้ พื้นที่ดังกล่าววางแนวตามแนวแกนเดียวกับจุดศูนย์กลาง
หากต้องการใช้การระบุตำแหน่งตามภูมิภาค ให้ดาวน์เกรดระบบย่อยของ ARFaceManager
เป็น ARCoreFaceSubsystem
และใช้ subsystem.GetRegionPoses()
เพื่อรับข้อมูลการท่าทางสำหรับแต่ละภูมิภาค ดูตัวอย่างวิธีดำเนินการได้จากตัวอย่างการใช้งานของ Unity ใน GitHub
ตาข่ายแบบ 3 มิติ
ตาข่ายใบหน้ามีจุด 468 จุดที่ประกอบกันเป็นใบหน้าคน นอกจากนี้ยังกำหนดโดยสัมพันธ์กับศูนย์กลางโพสท่า
หากต้องการแสดงภาพตาข่ายใบหน้า ให้แนบ ARFaceMeshVisualizer
เข้ากับ Face Prefab ARFaceMeshVisualizer
จะสร้าง Mesh
ที่ตรงกับใบหน้าที่ตรวจพบ โดยตั้งค่าเป็น Mesh ใน MeshFilter
และ MeshCollider
ที่แนบมา ใช้ MeshRenderer
เพื่อตั้งค่า Material
ที่ใช้ในการแสดงใบหน้า
AR Default Face Prefab จะแสดงเนื้อหาเริ่มต้นในตาข่ายใบหน้าที่ตรวจพบ
ทำตามขั้นตอนเหล่านี้เพื่อเริ่มใช้ใบหน้าเริ่มต้นของ AR
- ตั้งค่า
ARFaceManager
ในแท็บ Hierarchy ให้ใช้ + > XR > AR Default Face เพื่อสร้างวัตถุใบหน้าใหม่ ออบเจ็กต์นี้เป็นออบเจ็กต์ชั่วคราวและสามารถลบได้เมื่อคุณสร้าง Face Prefab แล้ว
เข้าถึง AR Default Face ในเครื่องมือตรวจสอบ
ลากใบหน้าเริ่มต้นของ AR ที่สร้างใหม่จากแท็บ Hierarchy ไปยังหน้าต่าง Project Assets เพื่อสร้างสำเร็จรูป
ตั้งค่า Prefab ที่สร้างใหม่เป็น Face Prefab ในช่อง Face Prefab ของ
ARFaceManager
ในแท็บ Hierarchy ให้ลบวัตถุใบหน้า เนื่องจากไม่จำเป็นแล้ว
เข้าถึงจุดยอดแต่ละจุดของตาข่ายใบหน้า
ใช้ face.vertices
เพื่อเข้าถึงตำแหน่งจุดยอดของโครงตาข่ายใบหน้า ใช้ face.normals
เพื่อเข้าถึงค่าปกติของจุดยอดมุมที่สอดคล้องกัน
แสดงภาพจุดยอดแต่ละจุดของโครงตาข่ายใบหน้า
คุณใช้ Blender เพื่อดูหมายเลขดัชนีที่สอดคล้องกับจุดยอดมุมของตาข่ายใบหน้าได้อย่างง่ายดาย โดยทําดังนี้
- เปิด Blender แล้วนำเข้า
canonical_face_mesh.fbx
จาก GitHub - นำทางไปยัง Edit > Preferences > Interface
ในเมนู Display ให้เลือก Developer Extras
เลือกใบหน้าโดยคลิกในวิวพอร์ต 3 มิติ แล้วกด Tab เพื่อเข้าสู่โหมดแก้ไข
เปิดเมนูแบบเลื่อนลงถัดจากวิวพอร์ต Overlays แล้วเลือก Indices
ไฮไลต์จุดยอดที่มีหมายเลขดัชนีที่คุณต้องการกำหนด หากต้องการไฮไลต์จุดยอดทั้งหมด ให้ใช้ Select > All