TODAY : / TOTAL :

[AR] 뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 3.ImageTarget

  • Share this:
반응형




뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 3.ImageTarget



이번에는 ImageTarget ( 특정 이미지가 인식되면, 오브젝트 띄우기 ) 기능을 구현해보겠습니다.



유니티 하이어라키 셋팅

프로젝트(Project) 탭에서 Qualcomm Augmented Reality - Prefabs 폴더 안에 있는

ARCamera , ImageTarget 

프리팹(Prefab) 2개를 하이어라키(Hierarchy) 탭 내에 셋팅합니다.

하이어라키(Hierarchy) 탭에 Main Camera 가 있다면, 삭제해줍니다.


[ ARCamera 와 ImageTarget을 셋팅해주고 난 뒤, 하이어라키 내에 있던 Main Camera는 삭제해준다. ]





Lisence Manager ; App License Key  발급 받기

뷰포리아는 하나의 앱당 하나의 라이센스 키를 가지게 됩니다.
기본적인 기능을 사용하려면 등록된 라이센스 키를 앱에 적용 시켜줘야 합니다.

라이센스 메니저 페이지에서 라이센스 키를 발급 받아봅시다.


1. 링크 주소로 이동하기 :

https://developer.vuforia.com/targetmanager/licenseManager/licenseListing ]


또는 


2. 프리팹에 설정된 링크 따라가는 방법 :

[ 아직 이미지가 등록되어있지 않은 상태라 ImageTargetBehaviour 란엔 개발자페이지로 연결되는 버튼이 떠 있다. ]

하이어라키 탭에서 ImageTarget을 선택한 후 인스팩터(Inspector) 탭 내 ImageTargetBehaviour 스크립트란에 있는
 [ No targets defined, Press here for target creation! ] 버튼을 누르면 자동으로 개발자 페이지 내 라이센스 메니저 탭으로 이동 된다.








라이센스 메니저 페이지에 오시면, 등록했던 앱들이 표시됩니다.
( 로그인이 되어있지 않으면, 로그인하라는 표시가 뜹니다. )


[ Add License Key 선택!! ]




[ 어플리케이션 이름을 설정하고, Next를 누른다. ]


* 라이센스 키 종류 별 정보.

- Starter : 무료. 워터마크 표시, Cloud 인식 제한적 트래픽 사용.

- Classic : 유료 ( 라이센스 1개, $499 ) , 워터마크 제거 가능 (Cloud 인식 기능 사용 불가 )

- Cloud : 유료 ( 월$99 ~$999 ) , 워터마크 제거 및 Cloud 인식 트래픽 차등.

 

* 2016. 08. 23 추가

- 앱의 용도 ( 마케팅, 게임, 장난감... ) 에 따라 가격이 변동됩니다.
- 개발용 앱 라이센스 등록은 무료입니다. 
  

  * 보다 자세한 정보는 개발자 페이지 내 Pricing 탭을 참고하세요. [ 링크 ]






[ 최종적으로 설정한 내용을 다시 확인하고 약관 동의 체크 후 Confirm ]







[ 다시 라이센스 창으로 돌아오고 방금 등록한 라이센스가 새로 추가된 것을 볼 수 있다. ]






[ 방금 등록한 라이센스 이름쪽을 클릭해보면 해당 라이센스에 대한 키를 확인 할 수 있다. 이 항목들을 모두 복사한다. ]






[ 복사한 라이센스 키 값을 이미지에 보이는 위치(App License Key) 에다가 붙여 넣는다. ]

* 하이어라키 (Hierachy) 탭에서 좀 전에 셋팅해두었던 ARCamera를 누르면 인스팩터 (Inspector) 창에서 확인할 수 있습니다.

* 그러실 일은 없겠지만.... 프로젝트(Project) 탭 Prefabs 안에 있는 ARCamera에 셋팅하는게 아닙니다.


* 추가 :: 뷰포리아 SDK 버전업데이트로 지금은 인스펙터창에 위와같이 표시되지 않습니다.

( http://dark0946.tistory.com/342 참고 )




라이센스 키 등록하는 방법은 여기까지 입니다.
다음은 AR에서 인식할 오브젝트(모델링 or 이미지)를 등록해봅시다.



Target Manager ; 오브젝트 등록하기

뷰포리아 개발자 페이지에서 Develop -> Target Manger 탭으로 들어가면 License Manager 와 비슷한 형식으로 된 페이지를 볼 수 있습니다.

거기서 [ Add Database ] 를 클릭하시면 아래와 같은 창이 뜹니다.



[ Database의 이름 입력 후, Device로 선택하고 Create 를 누른다. ]


* Type 의 차이점

 - Device : 기기안에 오브젝트 (이미지 or 모델링) 데이터를 담아두고, 데이터를 읽는 방식

   #장점 : 인식 횟수 무제한.

   #단점 : 앱 용량 증가. 새로운 Target 오브젝트를 추가할때마다 빌드를 새로 해야함.


- Cloud : 개발자 페이지에서 셋팅한 데이터를 뷰포리아 서버와 연결하여 데이터를 읽는 방식.

  #장점 : 오브젝트 관련 데이터를 서버와 연동하므로 앱을 가볍게 만들수 있음.

           신규 Target을 추가하더라도 데이터를 서버에서 받아오므로 앱 빌드를 새로 할 필요 없음.

  #단점 : 인식 횟수 제한. ( 트래픽을 추가하려면 비용 지불 )





[ 라이센스 메니저에서 봤던 것 처럼 리스트형식으로 표시되며, 추가된 Database를 클릭하면 아래의 페이지로 이동한다. ]




[ test001 이라는 이름으로 만든 Database 구성 모습 ]

각각의 Database는 여러개의 Target 오브젝트 (이미지 or 모델링) 데이터를 가집니다.
  이제 Target에 이미지를 추가해봅시다.




[Add Target을 누르면 나오는 메뉴 ]

* 보면 대충 어떤 건지 감이 잡히실 겁니다.

  지금 구현하고자하는 것은 하나의 이미지를 인식해 띄우는 것이므로, Single Image 를 선택하고, File 에서 원하는 이미지를 선택해줍니다.


File 을 눌러서 원하는 이미지를 선택합니다.


[ 저는 제가 가지고 있는 책 표지를 이미지 타겟으로 설정해보겠습니다. ]

- 자신이 가지고 있는 책은 인터넷에 치면 표지 이미지를 쉽게 찾을 수 있으니, 테스트용으로 참 편합니다. (개인적인 생각)



[ 이미지 관련 정보 셋팅 ]

 - Width 는 인식하려는 이미지의 실제 크기를 mm단위로 입력하시면 됩니다. (189mm)




[ 이미지 추가가 완료된 모습 ]

* 3D 오브젝트 같이 용량이 큰 오브젝트 업로드시 Status 가 Active로 변하는데 다소 시간이 걸릴수 있습니다.


원하는 이미지를 모두 추가하셨다면, 우측 상단에 있는 [ Download Dataset(All) ] 버튼을 누르세요.


[Unity 에서 사용할 예정이므로, Unity Editor 를 선택하여, 다운로드 시작 ! ]




프로젝트가 실행중인상태로, 다운받은 파일을 실행하시면 바로 임포트 가능합니다. ]




[ 임포트를 완료 한 뒤, 아까 전에 보았던 ImageTarget Behaviour 란을 보면, 링크페이지로 이동하던 버튼이 사라지고, 다른 변수값들이 생긴다. ]

* --- EMPTY --- 란을 눌러보시면 TargetManager 에서 셋팅했던 Database 와 Image 의 이름이 보입니다.
  카메라가 인식하게 될 원하는 이미지를 선택해줍니다.




[ Database 와 Target 설정을 하고나면, 하얀 네모칸만 있던 ImageTarget 부분에 이미지가 나타난다. ]



[ 추가 - Unity 5.5 이상 버전 사용자 확인하세요. ]

삽입하신 이미지가 나오지않고, 흰색으로만 보이거나, 이상하게 표시되실겁니다.

아래대로 따라해주시면 됩니다. 


뷰포리아 TargetManager에서 데이터 셋팅후 다운받은 unitypackage 파일들중에서 업로드하신 이미지가 포함되어있습니다.


해당이미지들 기본 텍스쳐 셋팅이 유니티 5.5로 올라오면서 조금 바꼇는데요.

아직 뷰포리아 SDK에서 수정되지 않아서 수동으로 바꿔주셔야됩니다.


Editor - QCAR - ImageTargetTextures - database 안에 본인이 업로드하신 이미지 텍스쳐가 있습니다. 해당 텍스쳐를 선택하셔서 아래 설정으로 변경해주시면 됩니다.


Texture Type - Default

Texture Shape - 2D






[ 해당 이미지가 카메라에 인식되었을 때 띄울 모델링을 셋팅해준다. ]

- 무료로 가장 무난한 유니티쨩을 넣어봤습니다.

* ImageTarget 오브젝트 하위 오브젝트로 넣으시면 됩니다. ( 사진은 잘못나왔습니다. ㅠㅠ ) 


모델링 배치를 완료하고나면.... 끝!!


이 아니군요..


*중요한거 하나 더!!!

마지막으로 해줘야하는 부분이 하나 남았습니다.

ARCamera 선택 후, 인스팩터창에 DataSetLoadBehaviour 스크립트 란을 보시면 


Load Data Set [자신이 설정한 Databse이름]


으로 된 부분이 있습니다. 해당 부분을 체크하시고, 아래에 추가되는 Activate 까지 모두 체크해주셔야 합니다.



[ Data Set Load 체크를 해주지 않으면, 카메라에 해당 이미지가 있어도 인식되지 않는다. ]




이제 빌드를 뽑아서 테스트를 한번 해보시면 됩니다.

앱 생성 후 자신이 넣었던 이미지를 비추면, 배치했던 모델링이 뜨는 모습을 볼 수 있습니다.


기본적인 ImageTarget 기능 구현은 여기까지 입니다.

글에 정정해야될 부분이나 오류가 있으시면 댓글남겨주시면 감사하겠습니다.


오늘도 좋은하루 되세요 ^^






관련 게시글

[ 뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 1.개발자등록 ]

뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 2.SDK 다운로드 ]

*  포스팅하면서 사용하는 Vuforia SDK 버전은 4.2이며, 유니티는 4.6.3p2 입니다.




참고사이트

- [ 뷰포리아 개발자 페이지 :: License Managger ]

- [ 뷰포리아 개발자 페이지 :: Target Managger ]

- [ 뷰포리아 가격 정책 ]

- [ 뷰포리아 ImageTarget 가이드 : 영문 ]

반응형

SEARCH

태그로 찾아보기