ดูวิธีใช้ Augmented Faces เพื่อแสดงเนื้อหาบนใบหน้าของมนุษย์ในแอปของคุณเอง
ข้อกำหนดเบื้องต้น
ตรวจสอบว่าคุณเข้าใจแนวคิด AR พื้นฐาน และวิธีกําหนดค่าเซสชัน ARCore ก่อนดำเนินการต่อ
ตรวจจับใบหน้า
ใบหน้าจะแสดงด้วยออบเจ็กต์ ARFace
ที่สร้าง อัปเดต และนำออกโดย ARFaceManager
1 ครั้งต่อเฟรม ARFaceManager
จะเรียกใช้เหตุการณ์ facesChanged
ที่มี 3 รายการ ได้แก่ ใบหน้าที่เพิ่ม ใบหน้าที่ได้รับการอัปเดต และใบหน้าที่ถูกนำออกตั้งแต่เฟรมที่แล้ว เมื่อ ARFaceManager
ตรวจพบใบหน้าในฉาก ก็จะสร้าง Prefab ขึ้นมาโดยมีคอมโพเนนต์ ARFace
แนบอยู่เพื่อติดตามใบหน้า Prefab ออกจาก null
ได้
ในการตั้งค่าARFaceManager
ให้สร้างออบเจ็กต์เกมใหม่และเพิ่ม ARFaceManager
ไปยังออบเจ็กต์ดังกล่าว
Face Prefab คือ Prefab ที่สร้างขึ้นในท่าทางตรงกลางของใบหน้า Maximum Face Count หมายถึงจำนวนใบหน้าสูงสุดที่ติดตามได้
เข้าถึงใบหน้าที่ตรวจพบ
เข้าถึงใบหน้าที่ตรวจพบผ่านคอมโพเนนต์ ARFace
ซึ่งแนบอยู่กับ Prefab ใบหน้า ARFace
ระบุจุดยอด ดัชนี จุดยอดมุมปกติ และพิกัดพื้นผิว
ส่วนต่างๆ ของใบหน้าที่ตรวจพบ
Augmented Faces API มีโพสท่าตรงกลาง ท่าโพส 3 ตำแหน่ง และตาข่ายของใบหน้า 3 มิติ
โพสท่าตรงกลาง
ท่าทางตรงกลาง เป็นจุดศูนย์กลางของศีรษะของผู้ใช้ คือจุดเริ่มต้นของ Prefab ที่ 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
ตั้งค่า Prefab ที่สร้างใหม่เป็น Face Prefab ในช่อง Face Prefab ของ
ARFaceManager
ในแท็บ Hierarchy ให้ลบวัตถุใบหน้าเนื่องจากไม่จำเป็นต้องใช้แล้ว
เข้าถึงจุดยอดของแต่ละจุดของโครงหน้า
ใช้ face.vertices
เพื่อเข้าถึงตำแหน่งจุดยอดของโครงหน้า ใช้ face.normals
เพื่อเข้าถึง Vertex ปกติที่เกี่ยวข้อง
แสดงภาพจุดยอดแต่ละจุดของโครงหน้า
คุณใช้เครื่องปั่นเพื่อดูหมายเลขดัชนีที่ตรงกับจุดยอดของโครงหน้าได้อย่างง่ายดายดังนี้
- เปิด Blender แล้วนำเข้า
canonical_face_mesh.fbx
จาก GitHub - นำทางไปยัง Edit > Preferences > Interface
เลือก Developer Extras ในเมนู Display
เลือกใบหน้าด้วยการคลิกในวิวพอร์ต 3 มิติ แล้วกด Tab เพื่อเข้าสู่โหมดแก้ไข
เปิดเมนูแบบเลื่อนลงข้างวิวพอร์ต Overlays แล้วเลือก Indices
ไฮไลต์จุดยอดที่มีหมายเลขดัชนีที่คุณต้องการระบุ หากต้องการไฮไลต์จุดยอดทั้งหมด ให้ใช้ Select > All