본문 바로가기

기술&정보

ARCore SDK for Unity - HelloAR

반응형

ARCore SDK는 구글에서 제작한 모션 트래킹, 환경 이해, 조명 추정 기능이 제공되는 증강현실 SDK입니다. ARCore를 사용하면 다음과 같은 것을 할 수 있습니다.

끊김없는 증강 이미지

 

스캔한 물체 공유

ARCore SDK는 Android 7.0 (누가, API Level 24) 이상의 기기에서 사용이 가능하며, 아이폰의 경우 iOS 11.0 이상의 기기에서 Cloud Anchors 기능과 Augmented Faces 기능만 사용 가능하다고 하네요. 자세한 지원 기기 목록은 다음에서 확인하세요.

developers.google.com/ar/discover/supported-devices

 

ARCore supported devices  |  Google Developers

오늘은 Unity에서 ARCore SDK를 사용할 수 있도록 프로젝트를 설정하고, HelloAR을 구동해보도록 하겠습니다. 먼저 다음과 같은 준비물이 필요합니다.

Hardware
- ARCore 지원 기기
- 모바일 기기를 컴퓨터에 연결하기 위한 USB 케이블

Software
- ARCore SDK for Unity 1.22.0 이상 버전: github.com/google-ar/arcore-unity-sdk/releases
- Unity 2017.4.40 이상 버전
  - Android Build Support 포함하기
  - Unity 2019부터 다음 패키지를 추가로 필요
    - Multiplayer HLAPI: Cloud Anchors 기능에 사용
    - XR Legacy Input Helper: Instant Preview 기능에 사용, 빌드 없이 곧바로 수정 사항 핸드폰에서 실행 가능
  - ARCore SDK 사용 시 Lightweight RP는 지원되지 않습니다.

Releases · google-ar/arcore-unity-sdk

ARCore SDK for Unity. Contribute to google-ar/arcore-unity-sdk development by creating an account on GitHub.

github.com

위 페이지에 들어가셔서 다음과 같이 arcore-unity-sdk-1.22.0.unitypackage만 다운 받으시면 됩니다.

 

 

 

먼저 Unity Hub에서 새로운 3D 프로젝트를 생성해주세요. 이름은 적당히 ARCoreTest로 하겠습니다.

 

 

 

다음으로 Window > Package Manager에서 다음 두 패키지를 설치해주세요.

 

 

 

설치가 끝나셨으면, 아까 다운로드 했던 unitypackage를 추가해봅시다. Assets > Import Package > Custom Package...를 누른 뒤, 패키지를 추가합니다. 추가할 때는 빼먹은 것이 없도록 All 버튼을 누른 뒤 Import 해주세요.

 

 

 

Import가 완료되면 Assets에 GoogleARCore라는 폴더가 생깁니다. 예제 파일을 실행시키기 위해 먼저 Scene이 들어있는 폴더를 찾습니다. HelloAR Scene은 GoogleARCore > Examples > HelloAR > Scenes에 있습니다.

 

 

 

아직은 실행시켜도 화면이 보이거나 하지 않을 겁니다! Instant Preview를 사용하더라도 빌드 설정과 최초 빌드는 필요한가 보더라고요!! 빌드 설정을 위해 File > Build Settings를 누릅니다. Build Settings에서

1. Add Open Scenes
2. Platform > Android
3. Switch Platform
4. Player Settings... 순으로 클릭합니다.

 

 

 

Player Settings에서는 Auto Graphics API 선택 해제, Graphics APIs > Vulkan 제거, Multithreaded Rendering 선택, Package Name 임의로 설정, Minimum API Level을 Android 7.0 이상으로 설정합니다.

 

 

 

빌드 타겟이 64비트 기기라면 추가로 Scripting Backend를 IL2CPP로 변경하고, Target Architectures > ARM64를 선택합니다. 저는 설정하지 않고 기본으로 두었습니다.

 

 

 

실행하면 다음과 같이 가이드가 나옵니다. 카메라를 물체 표면을 비추면서 흔들흔들~하면 플레인처럼 표시가 생깁니다. 이때 원하는 위치를 터치하면 다음과 같이 마커가 표시됩니다. 이 마커는 카메라를 회전시켜도, 심지어는 이리저리 이동해도 원래 위치에 남아있습니다!! 참 신기하네요... 방에 설치한 뒤 방 밖에 돌아다녀도 그대로 있더라고요.

이리저리 확인한 바로는 최초에 카메라가 비추는 영역이 (0, 0, 0)으로 설정되는 것 같습니다. 또한 사물의 복잡도(옷, 의자 등)에 따라 어느 정도 오차가 생기는 것은 어쩔 수 없는 것 같습니다. 여러 명이서 같은 화면을 공유하기 위해 최초 시작점을 인식하지 않고도 사용할 수 있는지 확인해봐야 할 것 같습니다.

 

반응형