[Unity]01.Vuforia 사용 - 마커 등록 후 AR 구현하기

안녕하세요 유랑입니다.



오늘부터 AR에 대해 알아보겠습니다.

예제와 실습을 통해 차근차근 진행할테니 부족한 부분있으면 댓글 부탁드릴게요^^




1. AR(Augmented Reality)



증강현실이란? 실제 환경에 가상 사물이나 정보를 합성하여 원래의 환경에 존재하는 사물처럼

보이도록 하는 컴퓨터 그래픽 기법이다.

포켓몬Go처럼 실제 환경에서 포켓몬을 접할 수 있게된다.







2. AR방식에 대해 알아보기



Vuforia, ARCore, ARKit 등 증강현실 콘텐츠를 만들기 편하게 도와주는 소프트웨어 플랫폼들이 있습니다.




2-1) ARCore



Google의 ARCore는 자바/OpenGL, Unity 및 Unreal과 연동되며 다음 세 가지 사항에 중점을 둡니다.

* 모션 트래킹 => IMU 센서 데이터를 활용하여 휴대폰의 움직임에 따른 휴대폰의 위치와 방향을 알 수 있다.

* 평면 감지 => 특징 점을 활용하여 수평면을 감지

* 조명 추정 => 주변 조명을 관찰하고, 가상 물체에 빛을 비추어 더 사실적으로 구현







2-2) ARKit



Google의 ARCore에 뒤지지 않는 Apple의 ARKit입니다.

기능은 ARCore와 유사하며 다음 특징을 가지고 있습니다.

* 모션 트래킹 => 카메라 추적 및 모션 센서 데이터와 결합되어 장치의 위치가 실시간 기록됩니다.

* 평면 감지 => 바닥, 테이블, 천장 같은 주변 환경을 인식합니다.

* 실시간 비디오 렌더링 => Unity와 Unreal Engine에 대한 추가 지원으로 SceneKit을 쉽게 통합 가능합니다.








2-3) Vuforia



퀄컴에서 제작한 AR 소프트웨어 플랫폼으로서 이미지 타겟 시스템을 제공합니다.

* Image Target => 특정 이미지 인식이 가능합니다.(단면 이미지)

* Multi Target => 여러 개의 이미지 인식이 가능합니다.

* 3D 오브젝트 인식 => 넓은 범위의 3D 오브젝트를 인식하고 추적이 가능합니다.







3. Vuforia 환경구성



3-1) 개발자 등록 및 패키지 내려받기



프로젝트의 이름과 저장할 위치를 지정 후 프로젝트를 생성한다.






상단 메뉴 File => Build Settings에서 안드로이드 플랫폼으로 변경하자.





뷰포리아 사이트에 접속하여 개발자 계정을 만든 후 패키지를 다운받자.

https://developer.vuforia.com/downloads/sdk





내려받은 패키지를 Import로 프로젝트에 추가하자.






3-2) 마커 등록 및 준비 과정



Vuforia 개발자 사이트에 접속한 후 Develop 메뉴 => License Manager로 들어가자.

License Manager 페이지에서는 하나의 AR 앱당 하나의 라이센스를 받아야 한다.

Get Development Key를 누르자. 






이름을 적당히 짓고 Confirm을 누르자.

만들 수 있는 타겟 개수와 기간이 나와있다.





Target Manager에서는 마커 등록이 가능하다.

* Device => 마커의 정보가 모바일 폰에 저장되는 유형

* Cloud => 마커의 정보가 Vuforia 클라우드 저장소에 저장되는 유형. 

* VuMark => Vuforia에서 제공하는 고유의 마커







Add Target 버튼을 클릭하면 어떠한 형태의 마커를 생성할 것인지 물어본다.

필자는 만원지폐 이미지로 하였다.

* 인식할 형태에 따라 Single Image부터 3D Object까지 설정이 가능하다.

* File에 인식할 이미지를 업로드하자.

* Width는 업로드하는 이미지의 크기를 유니티에서 몇 유닛으로 표현할 것인지 결정한다.

* 1유닛은 1m에 해당한다.(카메라의 거리에 따라 이미지의 크기도 다르게 보이니 참고하자.)







이미지를 추가하였으면 Download Database를 통해서 이미지를 유니티에 추가 가능하다.

별점은 마커의 인식률이다.

불규칙적인 패턴인 무늬 사용과 명암 대비를 높여주면 올라간다.










3-3) AR 카메라 추가 및 설정



Vuforia 패키지에는 AR Camera가 존재한다.

웹캠이나 핸드폰 카메라를 통해서 실제화면을 볼 수 있다.

ARCamera를 추가하자.






AR Camera에는 Vuforia configuration 속성이 있다.

라이센스를 추가하고, 데이타셋을 활성화하자.

이제 AR Camera 사용이 가능하다.








내장된 카메라나 웹캠을 연결하면 자동적으로 Camera Device에 연결된다.

게임을 시작하면 라이센스가 정확히 입력됐는지 확인 가능하다.






3-4) 행성 제작



이미지를 인식하면 생성 할 행성을 제작해 보겠다.

에셋스토어에서 Poly Planets를 임포트하자.

다른 에셋을 가져와도 무방하다.






ice와 orange_planet을 추가해 주자.

크기를 비교하기 위해서 캡슐을 생성하자.

캡슐은 사람 크기에 해당한다.





ice 모델을 찾아 Scale Factor를 0.5로 바꾸고 저장하자.

그리고 쉐이더는 Mobile용 기본값으로 설정하자.

처음 프리팹을 들고오면 쉐이더가 안맞아 이미지가 깨져있을 것이다.







ice 행성이 orange 행성을 주위로 회전을 할 것이다.

Traile Renderer와 스크립트를 추가하자.

PlanetTraile 머티리얼은 따로 생성해 주고 쉐이더는 파티클 기본값으로 설정하자.





스크립트는 orange 위치값을 토대로 주위로 회전하는 코드이다.

해당 프리팹을 컴포넌트에 드래그앤 드랍을 해서 넣어주고 스피드는 적당히 맞춰주자.







게임을 실행하면 orange 행성을 주위로 회전 하는걸 확인할 수 있다.






3-5) Image Target



Image Target 프리팹은 Single Image 마커를 인식해 특정 객체를 활성화하는 역할을 한다.

해당 프리팹을 추가하자.






Image 타겟은 세 가지 주요한 스크립트로 구성돼 있다.

Type, Database, Image Target을 다음과 같이 설정하자.

* Image Target Behavior => 마커의 유형, 데이터베이스, 마커를 선택하는 스크립트

* Turn Off Behavior => 디자인 시점에 표현된 Mesh Renderer와 Mesh Filter를 런타임에서 제거하는 스크립트

* Default Trakable Event Handler => AR 카메라가 마커를 인식하고 트래킹을 시작하거나 

                                                트래킹이 종료됐을 때 이벤트를 발생시키는 스크립트





만원을 인식하면 행성이 뜨게 된다.

Image Target 자식으로 행성들을 넣어주자.





어플을 실행시키거나 웹캠을 통해서 타겟이미지를 인식하면 행성이 나타나는걸 확인할 수 있다.






4. 마무리



오늘 강의는 여기까지입니다.

AR에 대해 알아보고 Vuforia를 통해서 마커인식과 행성을 보여주었습니다.

다음 시간에는 여러 개의 마커를 인식해 보겠습니다.

오늘도 고생하셨습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unity---AR












댓글

Designed by JB FACTORY