[AR, 유니티] 1강. AR Project Setting Tutorial

2022. 11. 11. 14:35코딩 3막 <AR>

728x90

목차

안녕하세요 ^.^ 이번 챕터는 유니티 환경의 ARCore을 이용한 프로젝트를 도전해보려고 합니다

새롭게 시도해볼 AR 프로젝트를 진행하기 앞서 기본 튜토리얼을 준비해보았습니다!!

(아무래도 작성자도 공부를 하면서 진행하고 있다는 점을 감안해주시고, 오류 및 오타를 발견하셨다면 댓글로 남겨주시면 즉시 수정하겠습니다)

그럼 AR 프로젝트 빌드에 대한 기본 튜토리얼을 시작하겠습니다


Chap 1. 유니티 설치

Unity Hub 설치 및 실행

먼저 유니티 공식 홈페이지에 접속하셔서 환경에 맞는 버전의 유니티를 무료로 설치해줍니다

유니티 허브를 설치했다면 이제 AR 프로젝트를 만들어 보겠습니다

허브가 실행됬다면 먼저 설치 탭에 들어가셔서 유니티 엔진을 다운받으셔야 하는데 가장 최신 버전을 다운 받으시면 됩니다

저는 이미 3.13f1(LTS)버전으로 다운로드를 해두었습니다.

[TMI] ※ LTS 란? 장기 지원 버전(Long Term Support의 약자)으로 LTS가 찍힌 버전을 설치할 경우 주기적인 업데이트 지원을 받기 때문에 안정적인 운용을 할 수 있어서 이 버전을 권장하는 편이다

그 다음 설치된 릴리스를 보시면 톱니바퀴처럼 생긴 아이콘이 보일텐데 이것을 클릭하면 모듈추가를 들어가주세요

리는 AR Core와 AR Kit를 둘다 사용하지는 않지만 두 방법 다 설치를 먼저 해두도록 하겠습니다

AR CORE와 Kit에 대한 내용은 차후에 다시 설명하겠습니다

그래서 만약 안드로이드 디바이스에 AR을 빌드하고 싶다면 안드로이드 빌드 서포트를 체크해주시고, iOS 디비이스를 가지고 계신분은 iOS를 체크하십시오

이제 새로운 프로젝트를 하나 만들겠습니다

원하는 저장위치를 선택하시고 탬플릿은 3D로 선택하고 원하는대로 프로젝트 이름을 지정 후 생성하시면 됩니다

시간이 다소 소요됨..

 

게임 및 모바일 앱의 크로스 플랫폼 개발을 위한 강력한 2D, 3D, VR 및 AR 소프트웨어를 제공합니다.

크로스 플랫폼 기능이 필요한 2D, 3D, VR, AR 프로젝트를 진행하셔야 하나요? 취미 개발자부터 전문 개발자 및 기업 비즈니스에 이르기까지 Unity가 도와드리겠습니다! Unity 실시간 개발 플랫폼에 대

store.unity.com


Chap 2. AR 프로젝트 세팅

생성한 프로젝트 설치가 완료 되면 지금은 3D 탬플릿을 가지고 있기때문에 AR이 가능한 세팅을 해야합니다
먼저 Window - PackageManager로 들어갑니다
패키지매니저에는 유니티에서 제공하는 다양한 패키지들이 포함되어 있습니다

unity Registry탭에서 AR과 관련된 프레임워크들을 모두 설치해줄겁니다

설치해야할 워크들은 다음과 같습니다 이 4가지를 모두 install 해줍니다

 AR Foundation
ARCore XR Plugin
ARKit Face Tracking
ARKit XR Plugin
인터페이스가 되는 AR 파운데이션과 내부적으로 동작하는 SDK역할을 하는 Core와 Kit를 설치하셔야 합니다.

 

여기서 Core와 Kit의 차이는 Core는 안드로이드 디바이스용이고 Kit는 iOS 디바이스용입니다.
설치에 주의할점은 모든 프레임워크들의 버전이 동일하게 맞춰줘야한다는 점입니다. 버전이 다르면 차후에 문제가생길수도 있음.

 

 

위 4가지 워크들이 모두 설치가 되면 이제 제대로 설치가 됬는지 확인!

Hierarchy창에 우클릭해보면 XR메뉴가 새로 생겼을 것입니다

필수적으로 XR메뉴에서 AR SessionAR Session Origin를 추가하셔야 합니다

객체 명 내용
AR Session 전체적인 AR라이프 사이클을 관리(AR 구축을 위한 주요 프로세스를 관리)하는 오브젝트.
하드웨어 디바이스에서 모션 데이터나 카메라 이미지 데이터를 받아와 이미지를 분석하고 여러 알고리즘을 수행하는 역할을 함.
그리고 알고리즘과 이미지 분석을 통해 나온 결과물을 통합해서 실제 존재하는 RealWorld와 AR 컨텐츠를 모델링하는 VirtualWorld 사이의 연결을 구축함.
글로벌객체이기 때문에 객체 하나만 추가해두고 별도로 인스펙터창을 설정해줄것은 없음.
AR Session Origin  VirtualWorld에서 렌더링된 AR 컨텐츠들을 RealWorld 좌표공간위에 mapping(어떤 값을 다른 값에 대응시키는 과정)하기 위한 객체.
전체적으로 보여주는 AR객체들의 스케일을 조정하거나 Offset적용
하위자식으로 AR카메라를 가지고 있다는 특징.
이 카메라는 사용자가 이용할 디바이스의 카메라와 동일.
그렇기 때문에 기존의 defalut로 되어있는 mainCamera는 3d공간내의 카메라기 때문에 필요가 없어 제거하고 AR Camera를 tag해서 메인으로 바꿔줘야한다.
이 AR카메라의 위치를 원점으로 해서 AR요소들이 카메라 공간에 transform되어 나타나게 됨.
AR카메라의 컴포넌트를 보면 AR Pose Driver, AR Camera Manager, AR Camera Background가 있는데 기초적인 부분에선 따로 수정할 필요는 없어보인다.
AR Camera Manager를 보면 기본적으로 Facing 방향이 world인데 이것은 후면 카메라를 사용한다는 의미.
만약 전면카메라를 사용하는 AR프로젝트의 경우에는 이것을 User로 바꿔주면 된다.

Chap 3. Android 및 iOS 빌드

3.1 Android Build 세팅

① 기본적으로 빌드를 들어가면 플랫폼이 PC로 설정이 되어있음. 이것을 Android로 Switch Platform 해주면 된다

② 이제 휴대폰을 USB로 PC에 연결해줍니다. 연결을 마치고 개발자설정을 해주면 빌드세팅의 Run Device부분에 연결된 디바이스들이 나와 연결한 디바이스를 선택하고 빌드하게되면 pc와 연결된 핸드폰에 앱(app)이 자동으로 설치가 됨
③ Project Settings-Player : 그 다음 몇가지 설정을 더 해줘야 하는데 빌드세팅의 하단에 보이는 Player Settings으로 들어감

④ Project Settings-XR Plugin Management : ARFoundation 인터페이스를 사용하는데 내부적으로 어떤 SDK를 사용할것인지를 선택하는 부분. 안드로이드경우 필히 ARCore를 체크해주어야 함

⑤ 빌드

Company Name과 Product Name 자유롭게 설정
Defalut Icon 텍스처를 추가하여 앱의 아이콘을 만들수 있음
Other Settings에서 Graphics APIs Vulkan은 삭제해주어야 함. AR쪽에서는 Vulkan엔진을 지원하지 않음
Packgage Name  위에서 설정한 대로 자동생성되어있음(컴패니와 프로덕트 이름) 한 모바일에 동일한 패키지 이름을 가진 두가지 앱은 공존할수없기때문에 이를 고려하여 이름 설정을 유니크하게 생성해야함
Minimum API Level 설정 AR가 지원하는 API레벨은 24이상부터 지원하기때문에 필히 24이상을 선택하시고 디바이스 또한 24이상으로 버전업그레이드 해야 AR이 정상적으로 실행됨.

이제 모든 빌드는 끝이났고 bulid를 하게되면 apk파일이 생성된다

그런데 만약 디바이스 관련 팝업창이 뜨게되면 연결한 모바일 디바이스가 컴퓨터에서 신뢰할수있는것인지 체크하는 팝업이 뜰텐데 그것을 허용해주고 usb디버깅도 허용한다고 체크하면 빌드가 정상적으로 진행되는것을 볼 수 있다

여기까지 빌드를 해보고 이제 디바이스에서 앱을 실행시켰을때 카메라 화면이 나오는지 확인해야 한다

만약 그게 확인이 안된다면 AR 프로젝트 세팅에 문제가 있거나 빌드세팅이 잘못된것이기 때문에 다시 한번 처음부터 세팅을 해보길 바랍니다


3.2 iOS Build 세팅 (mac OS에서만 진행 가능!!)

기본적으로 빌드를 들어가면 플랫폼이 PC로 설정이 되어있음. 이것을 iOS로 Switch Platform 해주면 된다

② XR Plugin Management에서 ARKit를 체크

③ 하단에 있는 ARKit에 들어와서 Face Tracking(얼굴 인식)을 체크하면 됩니다(이 기능을 사용하지 않을거면 체크X)

④ Player 메뉴로 들어와서 Camera Usage Description에 사용목적, 즉 '카메라를 왜 사용을 하는지 앱 시작시 띄워주는 문구'를 적으시면 됩니다. 저는 '증강현실 지원에 필요'라는 문구를 영문으로 적었습니다

⑤ Target Device를 통해 원하는 디바이스를 체크해주시면 됩니다. 그리고 Target minimum iOS 버전이 최소 11.0 이상에서만 ARKit가 동작합니다

⑥ Requires ARKit support를 체크해주셔야 합니다

⑦ 빌드

 

 iOS에서 빌드를 할 때는 유니티쪽에서 PlayerSettings을 해줄게 많지 않다. 그 대신에 빌드를 총 2번 거쳐야 한다. 위 과정까지 진행이 되면 빌드를 해주면 되는데 빌드 후에 바로 앱을 실행할 수 있는 형태로 떨어지는게 아니라 Xcode에서 다시한번 빌드를 해야합니다.

(*주의)

  • iOS 앱은 Xcode 개발툴과 iOS sdk를 이용하여 개발하며 이는 Mac OS에서만 구동 가능합니다.
  • 또한 Xcode 사용을 위해서는 apple 개발자 계정이 필요합니다.
  • 단말기의 연결 없이 시뮬레이션 테스트는 개발자 계정만으로도 이용 가능합니다.
  • 단 개발, 테스트, 배포를 사용하기 위해서는 1년 단위로 iOS 개발자 프로그램에 가입해야합니다. (유료)

 

......결론적으로 작성자는 디바이스는 iOS이지만, Mac OS가 없기때문에

안드로이드 공기계를 구하여서 Android SDK를 쓰려고 합니다......


*AR 혹은 Unity를 처음 시도해보는 입문자의 입장에서 보기쉽게 순차적으로 설명하였습니다.
* 순서 상 이해가 되지않거나 오류가 난 부분은 댓글로 알려주시면 감사하겠습니다.

728x90