6월 5일 애플(Apple)은, 자사의 혁명적인 AR킷(ARKit)으로, iOS 디바이스를 가지고 여러분 자신의 이야기를 어떻게 완전히 새로운 방법으로 보여줄 수 있는지 보여주었습니다. 언리얼 엔진에 AR킷을 통합해 나가면서, WWDC의 윙넛 AR(Wingnut AR)에 영감을 얻기도 했고, 이미 수많은 언리얼 개발자들이 iOS 디바이스용으로 AR 체험을 개발중이라는 사실이 정말 기쁘기도 했습니다.
AR킷을 어디에 사용하시겠습니까? 건축 디자인인가요, 플레이어와 환경 상호작용 방식을 바꾸는 게임을 만드시나요, 아니면 완전히 다른 것을 만드시나요?
이 언리얼 엔진 4.17용 퀵스타트 시작 가이드를 통해, AR킷으로 여러분의 아이디어를 실현해 보세요!
프로젝트 구성
애플 AR킷 플러그인을 가지고 프로젝트를 사용하려면, 먼저 다음 조건을 갖추어야 합니다:
- 언리얼 엔진 4.17 + AR킷 지원
- 엑스코드(XCode) 9 Beta 3 또는 4
- 아이폰(iPhone) 또는 아이패드(iPad) + iOS 11 베타
엑스코드 9 베타 3 또는 4 및 아이폰 또는 아이패드용 iOS 베타는 http://developer.apple.com에서 다운로드할 수 있습니다.
올바른 버전의 엑스코드를 사용중인지 확인하려면, 터미널 창에서 다음 명령을 실행하세요:
sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
이제 언리얼 엔진 4.17 버전을 실행하고 모바일 타겟의 새 프로젝트를 만듭니다. 프로젝트를 실행하고 플러그인 메뉴에서 Apple ARKit (Experimental) 플러그인의 Enabled를 체크해 활성화 합니다. 깃허브(GitHub) 소스에서 작업중일 때 확인 창이 뜨면, 지원을 활성화하기 위해 플러그인을 빌드해야 할 수도 있습니다.
그리고 아직 하지 않았다면, 다음 문서를 따라 사인된 어플리케이션을 만들기 위한 Certificate를 설정하십시오..
편집 > Plugins에서 ARKit 플러그인의 Enabled에 체크를 한 다음 에디터를 재시작합니다.
ARKit 플러그인이 사용 가능해지면, 프로젝트 세팅 > 플랫폼 > iOS로 갑니다. AR킷을 사용하기 위해서는 다음을 설정해 주어야 합니다:
- 최소 iOS 버전: 11 베타
- 추가 Plist 데이터:
- Max Metal Shader Standard to Target(타겟으로 삼을 최대 Metal 셰이더 표준): Metal v1.2
프로젝트에서 AR킷 사용
AR킷 프로젝트에는 총 세 가지 주요 영역이 있습니다: 카메라, 패스-스루(pass-through), 그리고 평면 감지입니다. 시작을 돕기 위해 각 영역을 간단히 소개해 드리겠습니다!
카메라(CAMERA) 구성
다행히 카메라 작동방식은 VR 카메라 구성과 아주 비슷하므로, VR 구성을 해 보신 분들께는 친숙할 것입니다. 특수한 애플 AR킷 카메라 컴포넌트(Apple ARKit Camera Component)를 내장한 Pawn 클래스를 새로 만들기만 하면 됩니다. 디바이스에서 실행하면, 여러분이 현실에서 돌아다니는 방식 그대로 카메라 컴포넌트가 가상 세계에서 돌아다닐 것입니다.
패스-스루(PASS-THROUGH) 구성
패스-스루는 아이폰 또는 아이패드 후면의 카메라로부터 피드를 받아, 그것을 가상 콘텐츠 배경으로 사용할 수 있게 해 줍니다. 가상 콘텐츠가 현실 세계를 “증강”시키는 환상적인 모습을 보여줍니다. 패스 스루 카메라 구성 기본의 몇 가지 대략적 단계는 다음과 같습니다. 보다 완전한 예제는 이 블로그 마지막에 링크된 ARSample 프로젝트의 머티리얼 구성을 참고하십시오.
- AppleArkit Camera Texture를 프로젝트에 하나 추가합니다.
- 새 머티리얼을 만듭니다(AppleArkit Camera Texture 우클릭 후 머티리얼 생성). shading model은 Unlit으로 바꾸고 Two-Sided 체크박스에 체크를 해 줍니다.
- Texture Sample 노드를 추가하고, 만들어둔 ARKit Texture 레퍼런스를 머티리얼의 Emissive channel에 연결합니다. ScreenPosition 노드를 추가해 ARKit Texture 노드의 UV 입력에 연결합니다. 주의: ARKit Texture UV는 여러분의 화면비에 맞춰 조정해야 합니다. 이것의 실제로 작동하는 예제는 이 블로그 마지막에 링크된 ARSample 프로젝트의 머티리얼 구성을 참고하시기 바랍니다
- 구체 메시를 씬에 추가한 다음 여러분의 콘텐츠를 포함하도록 스케일을 조절해주고, 그 다음 새롭게 만든 머티리얼을 적용하세요. 이것은 스카이박스로 작동하면서 카메라가 보는 것을 구체에 렌더링할 것입니다.
플레인 디텍션(PLANE DETECTION)
가상 콘텐츠를 현실 속에 배치할 때, 종종 벽, 바닥, 테이블 위 등 평평한 표면을 찾는 것이 유용합니다. 여기서 플레인(평면) 디텍션이 효과를 발휘합니다. 플레인 디텍션은 AR킷에게 세계 주변에서 평평한 표면을 찾아, 그 위에 여러분의 가상 콘텐츠를 위치시키도록 요청할 수 있게 해 줍니다. 예를 들어 가상 고양이를 만들고 있었다면, 플레인 디텍션은 고양이가 뛰어 돌아다닐 수 있는 바닥을 찾는 것을 도와줍니다.
플레인 디텍션은 여러분이 디바이스를 들고 돌아다닐 때 자동으로 일어나며, 찾아낸 평면을 터치 입력으로 사용하는 것은 ARKit Camera Component에 “Hit Test at Screen Position” 기능을 호출하는 것처럼 간단합니다. 평면을 찾았다면, 여러분은 Apple ARKit Hit Test Result에서 찾아낸 트랜스폼 정보에 액세스하여 현실 속 해당 지점과의 인터랙션 로직을 처리할 수 있습니다.
디바이스에서 테스트
프로젝트가 구성된 후, Launch> (여러분의 아이패드 혹은 아이폰)을 클릭하면, 다른 모바일 프로젝트에서처럼 프로젝트를 빌드하고 디바이스로 디플로이 할 것입니다.
AR 샘플 프로젝트
AR킷 및 언리얼 엔진 4와 함께 빠른 시작을 돕기 위한 모든 것을 이미 구성해 둔 샘플 프로젝트를 만들었습니다. 여기서 4.17.1 버전용 ARSample 프로젝트를 다운로드 하세요.
이 실험적인 플러그인은 관련 기술이 현재 발전하고 있음에 따라 변화할 것이라는 점을 염두에 두시기 바랍니다. AR킷 플러그인이 4.18 버전에서 엔진의 일부로 정식 공개되면, 지원 문서가 최종 구조를 반영하도록 업데이트하겠습니다.
여러분이 이 혁명적인 기술을 가지고 무엇을 만들지 정말 기대됩니다. AR킷과 함께한 경험을 트위터(Twitter), 페이스북(Facebook) or 인스타그램(Instagram) 등 소셜 미디어에 공유한 다음 @UnrealEngine과 #UE4으로 태그해 주세요!