AR Foundation용 Augmented Faces 개발자 가이드

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

기본 요건

계속 진행하기 전에 기본 AR 개념ARCore 세션 구성 방법을 이해해야 합니다.

얼굴 감지

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

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

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

감지된 얼굴에 액세스

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

인식된 얼굴의 일부

Augmented Faces API는 중앙 포즈, 세 개의 영역 포즈, 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. 검사기에서 AR Default Face에 액세스합니다.

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

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

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

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

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

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

블렌더를 사용하여 얼굴 메시의 꼭짓점에 해당하는 색인 번호를 쉽게 볼 수 있습니다.

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

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

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

    블렌더 페이스 메시 색인

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