유니티에서는 AR 콘텐츠 제작 기능을 지원하고 있다. 이를 활용하여 얼굴을 인식하는 AR카메라를 만들어보겠다.
먼저 Package manger의 Unity Registry에서 AR Foundation, ARCore XR Plugin, ARKit Face Tracking 3가지를 install해주면 된다.
그리고 프로젝트 세팅으로 가서 XR Plug-in Management에서 ARCore을 반드시 체크해주어야 한다.
그리고 Player - Other Setting - Graphics APIs에서 vulkan을 삭제하고 Color Gamut에서 Multithreaded Rendering 체크를 해제해 준다. 그리고 마지막으로 minimum api level을 26이상 버전으로 변경만 해주면 기본적인 세팅이 끝난다.
하이라키창을 우클릭 후 XR 탭으로 들어가 AR Session Origin, AR Session, AR Default Face 세가지를 만들어주면 된다. 여기서 AR Session Origin에 속한 AR 카메라를 선택하고 인스펙터 창의 AR Camera Manager 스크립트를 살펴보자. Facing Direction에 User와 World 2가지 속성이 있는데 User는 셀프 카메라 모드, World는 정면 카메라 모드임을 확인할 수 있다. User 모드로 선택 후
AR Default Face는 생성되는 AR 디폴트 이미지이다. 머터리얼을 생성 후 Albedo, metalic, smoothness 값을 바꿔준 후 AR Default Face에 넣어주면 원하는 이미지로 바꿔줄 수 있다. 해당 오브젝트를 프리팹 화 시켜주고 AR Session Origin의 AR Face Manger에 넣어주기만 하면 끝이다.
지금까지 만든 AR 카메라를 안드로이드 스마트폰에 빌드해보겠다. 먼저 스마트폰을 개발자 모드로 변경 후, 유니티 Build Setting으로 가준다. 저장한 AR 카메라 제작 Scene을 Add Open Scenes을 해주고, Run Device에 USB로 인식한 본인 스마트폰으로 변경해주면 끝, Player Settings에서 적절하게 이름으로 설정하고 Build and Run을 해주면 된다.
앱을 실행 후 본인 얼굴을 인식했더니 다음과 같은 AR FACE 이미지가 생성되었다.
추가적으로 머터리얼에서 Rendering Mode를 Opaque(불투명)에서 Transparent(투명)으로 바꾸고 Albedo R,G,B,A 중 A값을 조정하면 실제 눈, 코, 입이 어느정도 인식되는 효과를 줄 수 있으니 다양한 연출에 참고하면 되겠다.
+AR Default Face에 움직이는 비디오 적용하는 방법
1. 하이라키 창에 비디오 플레이어 생성
2. 프로젝트 창에 render texutre, material 생성
3. AR Default Face 생성 후 material을 입히고 Albedo 옆 작은 사각형에 render texture 넣어줌
4. 동영상 매핑 : 비디오 플레이어 내 clip에 원하는 동영상을 넣어주고 Target Texture에 render texture를 넣어준다.
Aspect Ratio 비율을 Stretch로 설정하여 디폴트 페이스 전체에 영상이 펼쳐지게 설정
5. 빌드
빌드하기 전 큐브를 하나 생성해서 렌더 텍스처를 매핑해 플레이모드를 실행해보면 동영상이 정상적으로 실행되는지 미리 테스트해 볼 수 있다. (굳이 AR 카메라가 아니더라도 동영상을 유니티 상에 제공할 때 다음과 같은 방법을 응용하면 되겠다.)
+꿀팁 : 유투브 영상을 다운받으려면 URL 주소 중 Youtube앞에 ss만 붙여주면 된다.
아래는 다양한 파티클을 다운받을 수 있는 에셋 스토어이다. AR 카메라 효과에 적용하면 더욱 실감나는 연출을 할 수 있겠다.
http://www.jeanmoreno.com/unity/cartoonfx3/?ref=welcome
'게임 프로그래밍 > 유니티 프로젝트' 카테고리의 다른 글
유니티를 활용한 3D 적 피하기 게임 만들기(2) (0) | 2021.08.11 |
---|---|
Vuforia를 활용하여 유니티 AR 카메라 만들기 (1) | 2021.07.31 |
유니티를 활용한 3D 적 피하기 게임 만들기(1) (0) | 2021.07.31 |
[Unity Error]유니티 안드로이드 빌드 시 "Package Name has not been set up correctly" 오류 해결 방법 (0) | 2021.07.29 |
유니티를 활용한 2D Plane Shooting 게임 만들기(2) (0) | 2021.07.29 |