06. 얼굴 추적하기(Face Tracking)
AR 개발을 위한 프로젝트를 준비하기 위해 Window | Package Manangement 메뉴를 선택하여 Package Manangement 창을 열고 AR 장치 플러그인을 설치합니다.
1장의 ARCore 개발을 위한 환경 구축하기 참고하세요
- AR 장치용 XR plugins 설치하기
- ARCore XR Plugin 설치하기
- AR Foundation 패키지 설치하기
- Input System 설치하기
- Androd 플랫폼의 ARcore 설정하기
- Player 설정하기
1. 기본 AR 장면 만들기
① File | Save As 메뉴를 선택하여 Assets/Scenes/ 폴더에 이름을 BasicARScene으로 저장합니다.
② Hierarchy 창에서 Main Camera를 삭제합니다.
③ GameObject | XR | AR Session 메뉴를 선택하여 Hierarchy 창에 AR Session을 추가합니다.
④ GameObject | XR | XR Origin 메뉴를 선택하여 Hierarchy 창에 XR Origin 을 추가합니다.
2. AR 장면에 기본 얼굴 오브젝트 출력하기
① Hierarchy 창에서 XR Origin오브젝트를 선택하고 Inspector 창에 Add Component 버튼을 클릭하여 AR Face Manager 컴포넌트를 추가합니다.
② Hierarchy 창에서 GameObject | XR | AR Default Face을 선택하여 오브젝트를 추가합니다.
③ Hierarchy 창에서 Project 창의 Prefabs 폴더로 AR Default Face 오브젝트를 드래그하여 프리팹으로 만듭니다.
④ Hierarchy 창에서 AR Default Face 오브젝틀르 삭제합니다.
⑤ Hierarchy 창에서 XR Origin 오브젝트를 선택하고 Inspector 창에서 AR Face Manager 의 Face Prefab에 AR Default Face 프리팹을 설정합나다.
⑥ Hierarchy 창에서 XR Origin 하위의 Main Camera 를 선택하고 Inspector 창에서 AR Camera Manager 컴포넌트의 Facing Direction의 속성값을 User로 설정합니다.
⑦ 실행하기
3. 얼굴 마스크 변경하기
3.1 UI 버튼 만들기
① 메인 메뉴에서 GameObject | UI | Canvas를 선택하여 Canvas를 추가합니다.
② 메인 메뉴에서 GameObject | UI | Button 을 선택하여 Canvas를 하위에 추가하고 하위에 Text의 Text속성은 Change Face로 입력합니다.
3.2 얼굴 마스트 추가하기
① 하이러키 창의 XR Origin을 선택하고 인스펙터 창에서 Add Component 버튼을 클릭하여 FaceSwap.cs를 추가합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
public class FaceSwap : MonoBehaviour
{
private ARFaceManager faceManager;
public List<Material> faceMaterials = new List<Material>();
private int faceMaterialIndex = 0;
void Start()
{
faceManager = GetComponent<ARFaceManager>();
}
public void SwitchFace()
{
foreach (ARFace face in faceManager.trackables)
{
face.GetComponent<Renderer>().material = faceMaterials[faceMaterialIndex];
}
faceMaterialIndex++;
if(faceMaterialIndex == faceMaterials.Count)
{
faceMaterialIndex = 0;
}
}
}
② 추가한 FaceSwap.cs 스크립트의 Face Materials 속성에 원하는 머티리얼을 만든 후 항목에 추가 설정합니다.
③ 하이러키 창에 Canvas=>Button를 선택하고 인스펙터 창에 OnClick() 함수에 XR Orign을 설정하고 함수는 FaceSwap 스크립트의 SwitchFace() 메소드를 설정합니다.
④ 실행하기