[Unity] AR Face Tracking

limce·2025년 3월 29일

Unity

목록 보기
2/6
post-thumbnail

AR Face Tracking

자폐 아동을 대상으로 한 표정 / 감정 학습 기능성 게임을 개발하려고 한다.
첫 번째 학습 단계는 제시된 상황 - 감정을 보고 그에 맞는 표정을 짓는 것이다.
전면 카메라로 플레이어가 표정을 지으면 표정을 인식하도록 구현할 예정인데, 우선 플레이어의 페이스 트래킹 먼저 구현해보고자 한다.

먼저 Window -> Package Manager를 들어간다.
상단 'Packages:'를 Unity Registry로 선택한다.
AR을 검색하면 여러 패키지들이 나오는데 AR Foundation과 Andriod를 사용할 예정이라면 Google ARCore XR Plugin,
iOS를 사용할 예정이라면 Apple ARKit XR Plugin을 설치한다.
주의할 점은 AR Foundation 버전과 ARCore / ARKit 버전이 같아야 한다.

설치를 마치면 Hierachy 창을 우클릭 했을 때 XR 메뉴가 생긴다.

XR 메뉴에서 XR Origin, AR Session, AR Default Face를 추가해준다.
카메라는 XR Origin 하위에 있는 카메라를 사용할 것이기 때문에 기존에 있던 Main Camera는 삭제한다.

XR Origin 하위에 있는 Main Camera를 클릭하면 AR Camera Manager가 있는데, 여기서 Facing Direction을 User로 바꿔준다.
World는 후면, User는 전면이다.

XR Origin에는 AR Face Manager 컴포넌트를 추가해준다.
Face Prefab에는 아까 추가해줬던 AR Default Face를 넣어주면 되고 Maximum Face Count는 인식할 수 있는 얼굴 개수인데,
이 프로젝트에서는 한 명의 얼굴만 인식할 것이기 때문에 1을 넣어주었다.
(그런데 사실 ARCore은 한 사람만 인식 가능하고 ARKit는 여러 명의 언굴 인식을 지원하고 있다.)

이렇게 하면 기본적인 페이스 트래킹 설정을 모두 맞췄는데 추가적인 빌드 세팅을 해주어야 한다.
Andriod와 iOS 설정이 조금씩 다른데 아래 링크를 참고하여 해주었다.
https://www.youtube.com/watch?v=lSJwqfc9imU&t=144s


이렇게 잘 연결해주었다면 핸드폰을 연결하여 테스트 했을 때 정상적으로 페이스 마스크가 얼굴 위로 나타나는 것을 확인할 수 있다.
사실 빌드 과정에서 문제가 있었는데 iOS는 빌드하려면 Xcode로 한 번 더 빌드를 해주어야 한다.
Xcode는 맥북에서만 지원하고 있기 때문에 iOS로 빌드/테스트 해보려면 무조건 맥북이 필요한 상황이다..
필자는 윈도우로 개발, iOS로만 빌드/테스트 가능한 상황이었다.. 설상가상으로 Android 공기계는 오래되어서 요구하는 버전 이하였는지 유니티에서 인식할 수 없었다.
결국 팀원의 도움을 받아 정상 작동하는 것은 확인했는데 글을 따라 똑같이 시도했다면 페이스 트래킹 자체는 문제없이 될 것으로 보인다.

에러 해결

안드로이드 앱 빌드 후 실행하자마자 앱이 꺼지는 현상이 발생할 수 있는데
ProjectSettings의 Player에서 Scripting Backend를 "IL2CPP"로 변경, Target Architectures에 ARMv7, ARM64 체크를 활성화하면 해결된다.

0개의 댓글