필자는 motion tracking 기법을 적용한 앱을 만들어 보고 싶어서 ARKit에 대해 공부하게 되었다.
ARKit는 이름에서부터 알 수 있듯이, AR과 관련된 프레임워크이다.
AR은 Augmented Reality의 줄임말로 증강현실을 의미하는데 가상현실인 VR(Virtual Reality)의 한 분야로 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 기법이다.
Apple의 공식 문서에서는 'iOS device 카메라와 motion 기능을 통합하여 앱이나 게임에서 증강 현실 경험을 생성한다.'라고 설명하고 있다.
ARKit는 device motion tracking, camera scene capture, advanced scene processing, display conveniences를 결합하여 작업을 단순화한다. 기기의 전면 또는 후면 카메라를 사용해 이러한 기술을 사용할 수 있다.
필자는 motion tracking을 위해 ARKit를 공부하므로 우선 초점을 motion tracking에 맞출 계획이고 자료가 많지 않아 공식 문서를 바탕으로 정리할 것이다.
ARKit를 공부하기 전에 필수적으로 알아야 할 것이 있다.
ARKit를 사용하려면 device가 반드시 iOS 11.0 이상이어야 하고 A9 이상의 processor가 탑재되어야 한다.
또한, body tracking을 사용하기 위해서는 반드시 A12 이상의 processor가 탑재되어야 한다. 필자는 A11 processor가 탑재된 기기를 사용하고 있었는데 이를 제대로 숙지하지 못하고 하룻동안 '맞왜틀'을 했던 경험이 있다.(어쩔 수 없이 다음날 바로 기기를 바꿨다.)
위 조건을 충족한다면 ARKit는 카메라를 사용하기 때문에 사용자가 앱에 카메라 접근 권한을 명시적으로 부여해야 한다.
Info.plist에 들어가서 Privacy - Camera Usage Description
을 설정하면 된다.
카메라는 후면 카메라와 전면 카메라 중 하나를 선택할 수 있다.
후면 카메라를 사용한 AR
일반적으로 후면 카메라를 사용하여 사용자에게 주변 세계와 상호 작용할 수 있게 제공한다. 필자는 motion tracking 중 body tracking에 관심이 있으므로 후면 카메라를 사용할 것이다. face tracking을 제외한 tracking은 후면 카메라를 사용한다.
전면 카메라를 사용한 AR
TrueDepth 카메라가 있는 iOS device의 경우 전면 카메라 feed를 보강하는 동시에 얼굴의 포즈와 표정을 실시간으로 추적할 수 있다. 해당 정보를 사용하여 예를 들어 사실적인 가상 마스크를 오버레이하도록 선택할 수 있다.