ARCore를 이용한 간단한 AR 예제

평범한 앱 개발이 아닌 AR을 개발 해보자!

Seungwon Choo
Berkbach
Published in
6 min readJun 20, 2018

--

Photo by Lisa del Arte on Unsplash

애플에 ARKit이 있다면 안드로이드에는 ARCore가 있으니…
오늘은 ARCore의 간단한 예제를 실행해 볼 것이다.

코드짜기는 귀찮고 뭔가 신박하면서 빠르게 결과를 낼 수 있는 앱이 필요할 때 이 예제를 강추한다!

ARCore 란?

ARCore는 현재

  • Android
  • Android NDK
  • Unity(for Android / iOS)
  • Unreal
  • Web
  • iOS

에서 SDK를 제공한다.

SDK는 모션 트래킹, 환경 이해, 조명 평가 등 모든 필수 AR기능에 기본 API를 제공하여 완전히 새로운 AR경험을 구축하거나 AR기능을 통해 기존 앱을 향상시킬 수 있다.

ARCore에 대해 알아 보았으니 지금 바로 예제로 들어가겠다!

주의사항!

예제를 시작하기전 실제 기기로 테스트 하시는 분들은 아래 링크에서 자신의 기기가 ARCore가 지원되는 기기인지 확인해 보시기 바랍니다!

만약에 지원되는 기기가 아니더라도 에뮬레이터로 실행할 수 있으니 실망마시기 바랍니다.

준비

git이 자신의 컴퓨터에 설치가 되어있다면 아래의 간단한 커맨드로 git 클론을 하여 다운 받을 수 있다.

git clone https://github.com/google-ar/arcore-android-sdk.git

git 이 없다면 여기를 클릭하여 다운 받자

다운을 받으면 Android Studio에서 아래 사진에 있는 경로의 프로젝트 파일을 선택 해 열어준다.

프로젝트 파일을 열면 Gradle 플러그인 업데이트를 하라고 경고창이 나오는데 작성자가 느끼기엔 Gradle의 일처리 속도가 너무 느려 Remind me tomorrow 버튼을 눌렀다.

실행

사실 코드는 다 짜여있는 샘플 프로젝트로 별다른 코딩없이 Run 버튼을 눌러실행 시키면 된다. 그리고 앱이 하라고 하는데로 따라하면 문제 없이 AR을 즐길 수 있다.

Enjoy~

처음엔 평평한 부분을 찾아야 한다. 그러면 앱이 알아서 평평한 부분을
육각 그리드로 표시해주는데 그 부분을 터치하면 안드로이드가 생성되어 AR을 즐길 수 있다.

에뮬레이터에서의 실행

에뮬레이터 구성

AndroidStudio3.1이상을 설치합니다.

AndroidStudio에서 Tools>Android>SDKManager로 이동합니다.

기본적으로 SystemSettings>AndroidSDK메뉴가 열립니다.

AndroidSDK메뉴에서 SDK플랫폼을 선택하고 ShowPackageDetails를 클릭합니다.

Android8.1(Oreo)에서 다음을 선택합니다.
GoogleAPIIntelx86Atom시스템 이미지(버전 4이상).

AndroidSDK메뉴에서 SDKTools(SDK도구)를 선택하고 AndroidEmulator(버전 27.1.10 이상)를 추가합니다.

확인을 클릭하여 도구를 설치합니다.

ARCore 설치

에뮬레이터에서는 Play Store가 없기 때문에 독특한 방식으로 ARCore를 설치 한다.

위 사이트로 들어가 ARCore_1_2_x86_for_emulator.apk 파일을 다운 받고 에뮬레이터로 드래그 하면 apk가 자동으로 인스톨 된다.

실행

앱을 실행하면 이렇게 아름다운 집안이 나온다.

에뮬레이터에서 시야를 조정하는 방법은 (맥북 기준)

Option 버튼을 눌러 마우스를 움직이면 시야
Option + W,A,S,D 버튼은 이동
Option + E / Q 버튼은 높이 조절이다.

그래서 시야를 조금 조절하면 바닥에 그리드가 생기는데 그 그리드를
클릭하면 안드로이드가 나타난다.

은근히 에뮬레이터 속 세상도 넓기 때문에 이리저리 돌아다니며 AR을
즐길 수 있다.

이렇게해서 간단하지만 큰 즐거움을 선사하는(?) 예제를 해보았다. 다음에는 안드로이드가 아닌 다른 물체가 나오도록 해봐야겠다. 시간이 얼마나 걸릴지는 모르겠지만 말이다…

Another article by `Seungwon Choo`

--

--