AR Foundation용 Augmented Faces 개발자 가이드

증강 얼굴을 사용하여 앱에서 사람의 얼굴 위에 애셋을 렌더링하는 방법을 알아보세요.

기본 요건

기본 AR 개념을 이해합니다. ARCore 세션을 구성하는 방법을 알아보세요.

얼굴 감지

얼굴은 ARFaceManager에 의해 생성, 업데이트, 삭제되는 ARFace 객체로 표현됩니다. 프레임당 한 번 ARFaceManager는 추가된 얼굴, 업데이트된 얼굴, 마지막 프레임 이후 삭제된 얼굴과 같은 세 가지 목록이 포함된 facesChanged 이벤트를 호출합니다. ARFaceManager는 장면에서 얼굴을 감지하면 ARFace 구성요소를 사용하여 Prefab을 인스턴스화하여 얼굴을 추적합니다. Prefab은 null 상태로 둘 수 있습니다.

ARFaceManager를 설정하려면 새 게임 객체를 만들고 여기에 ARFaceManager를 추가합니다.

Face Prefab는 얼굴의 중앙 포즈에서 인스턴스화되는 Prefab입니다. Maximum Face Count는 추적할 수 있는 최대 얼굴 수를 나타냅니다.

감지된 얼굴에 액세스

얼굴 Prefab에 연결된 ARFace 구성요소를 통해 감지된 얼굴에 액세스합니다. ARFace는 꼭짓점, 색인, 꼭짓점 노멀, 텍스처 좌표를 제공합니다.

인식된 얼굴의 일부

Augmented Faces API는 중앙 자세, 3개의 영역 포즈, 3D 얼굴 메시를 제공합니다.

가운데 포즈

사용자 머리의 중심을 표시하는 중앙 포즈는 ARFaceManager로 인스턴스화한 Prefab의 원점입니다. 두개골 내부, 코 뒤쪽에 있습니다.

중심 포즈의 축은 다음과 같습니다.

  • 양의 X축 (X+)이 왼쪽 귀를 향합니다.
  • 양의 Y축 (Y+)이 얼굴의 위쪽을 향합니다.
  • 양의 Z축 (Z+)이 머리 중심을 가리킵니다.

리전 포즈

왼쪽 이마, 오른쪽 이마, 코 끝에 위치한 부위 자세는 사용자 얼굴의 중요한 부분을 나타냅니다. 영역 포즈는 중심 포즈와 동일한 축 방향을 따릅니다.

영역 포즈를 사용하려면 ARFaceManager의 하위 시스템을 ARCoreFaceSubsystem로 다운캐스트하고 subsystem.GetRegionPoses()를 사용하여 각 지역의 포즈 정보를 가져옵니다. 그 방법의 예는 GitHub에 있는 Unity의 사용 샘플을 참고하세요.

3D 페이스 메시

얼굴 메시는 사람의 얼굴을 구성하는 468개의 점으로 구성됩니다. 또한 중앙 포즈를 기준으로 정의됩니다.

얼굴 메시를 시각화하려면 ARFaceMeshVisualizerFace Prefab에 연결합니다. ARFaceMeshVisualizer는 감지된 얼굴에 해당하는 Mesh를 생성하여 연결된 MeshFilterMeshCollider의 메시로 설정합니다. MeshRenderer을 사용하여 얼굴을 렌더링하는 데 사용되는 Material를 설정합니다.

AR Default Face Prefab는 감지된 얼굴 메시에 기본 머티리얼을 렌더링합니다.

AR 기본 얼굴을 사용하려면 다음 단계를 따르세요.

  1. ARFaceManager를 설정합니다.
  2. Hierarchy 탭에서 + 사용 > XR > AR Default Face: 새 얼굴 객체를 만듭니다. 이 객체는 임시 객체이며 Face Prefab을 만든 후에 삭제할 수 있습니다.

  3. Inspector에서 AR Default Face에 액세스합니다.

  4. 새로 만든 AR 기본 얼굴을 Hierarchy 탭에서 Project Assets 창으로 드래그하여 Prefab을 만듭니다.

  5. 새로 만든 Prefab을 ARFaceManagerFace Prefab 필드에서 Face Prefab으로 설정합니다.

  6. 얼굴 객체는 더 이상 필요하지 않으므로 Hierarchy 탭에서 삭제합니다.

얼굴 메시의 개별 꼭짓점에 액세스

face.vertices를 사용하여 얼굴 메시 꼭짓점 위치에 액세스합니다. face.normals를 사용하여 해당하는 꼭짓점 노멀에 액세스합니다.

얼굴 메시의 개별 꼭짓점 시각화

Blender를 사용하면 얼굴 메시의 꼭짓점에 해당하는 색인 번호를 쉽게 확인할 수 있습니다.

  1. Blender를 열고 GitHub에서 canonical_face_mesh.fbx를 가져옵니다.
  2. Edit > Preferences > Interface로 이동합니다.
  3. Display 메뉴에서 Developer Extras를 선택합니다.

  4. 3D 표시 영역에서 얼굴을 클릭하여 선택하고 Tab을 눌러 수정 모드로 들어갑니다.

  5. Overlays 표시 영역 옆의 드롭다운 메뉴를 열고 Indices을(를) 선택합니다.

    믹서 페이스 메시 색인

  6. 색인 번호를 확인할 꼭짓점을 강조 표시합니다. 모든 꼭짓점을 강조 표시하려면 Select > All을 사용합니다.