뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 4.Cylinder Target
블로그에 올려둔 뷰포리아 관련 적용글에 문의가 많이 들어와서, 나머지 기능에 대한 부분도 마저 포스팅 해보려고 합니다.
( 마침 외주작업도 마무리 되가고, 개인 시간이 조금 생겼네요. ㅎㅎ )
외주작업 진행하게되면서 유티니 버전 업데이트도 되고,
뷰포리아도 새로운 버전이 나왔으므로 새로운 버전 기준으로 작성합니다.
이번 포스팅에 사용할 Vuforia SDK 버전은 5.0.3이며, 유니티는 4.6.8p3 입니다.
Cylinder Target 은 말그대로 실린더 모양(캔)의 이미지를 인식하여 보여주는 방법입니다.
아래 참고용 영상 확인하세요.
유니티 하이어라키 셋팅하기
[ 처음 하이어라키에 ARCamera를 넣었을 때 인스펙터 창에 보이는 스크립트들 ]
[ 달라진건 Image Target 대신에 Cylinder Target 프리팹을 넣었다는 것... ]
카메라 셋팅부터 뷰포리아 개발자 페이지에서의 TargetManager 설정방법은 지난번 포스팅과 같습니다.
이전 글 - [ 뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 3.Image Target ]
- 하이어라키(Hierarchy) 탭에서 추가한 CylinderTarget 을 눌러보면 인스펙터(Inspecter) 창에 지난번에 봤던 부분과 별 차이가 없음을 알수 있습니다.
- Target Manager 설정하는 방법은 이전 포스팅에 다 나와있습니다만, 적용하는 버전도 바뀌었으니,
처음부터 다시 포스팅 해보도록 하겠습니다.
- 위 스샷에 보이는 빨간색 버튼을 눌러주시면, 뷰포리아 개발자 페이지의 License Manager 페이지로 이동할 수 있습니다.
[ 여기 ] 를 누르셔도 됩니다.
License Manager ; App Lisence Key 발급 받기
뷰포리아는 하나의 앱당 하나의 라이센스 키를 가지게 됩니다.
그러기 위해선 먼저 라이센스 키를 발급받아야되는데요...
이 부분 역시 지난 포스팅에 다 설명했으므로 자세한 내용은 생략합니다.
( ... 그냥 한번 더하죠 )
[ Add License Key 클릭 ]
[ Application Name 란에 원하는 이름을 작성 하시고, Next 클릭! ]
- 각 메뉴에 대한 정보는 이전 포스팅 - [ 뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 3.Image Target ] 에
설명해놓았으니 참고하세요.
[ 약관 체크하시고, Confirm 클릭하시면... ]
[ 라이센스 생성 완료! ]
- 하나 앱당 하나의 라이센스 키를 가집니다.
이제 방금 생성했던 라이센스를 클릭해보시면, 아래와 같은 메뉴가 나옵니다.
[ 회색 칸 안에 있는 라이센스 키를 복사하신다음, 유니티로 돌아가셔서, 사진에 보이는 App License Key 란에 복붙!! ]
- 유니티 하이어라키(Hierarchy)에 올려두었던, ARCamera를 클릭하시면
인스펙터(Inspector)에서 App License Key 부분을 확인 하실 수 있습니다.
[ 이렇게 넣으면 라이센스 키 등록 끝! ]
Target Manager ; 오브젝트 등록하기
다음은 타겟으로 인식할 이미지를 등록할 차례입니다.
개발자 페이지에서 상단 메뉴 Developer - Target Manager 를 클릭하시면 아래와 같은 페이지가 나옵니다.
Add Database 를 눌러보세요.
( 그 아래있는 데이터들은 제가 이미 사용중인 데이터들이니 무시하시면 됩니다. )
[ Add Database 클릭 ]
[ 데이터베이스의 이름을 짓고, Type은 Device 선택 후... Create ! ]
- Type 에 대한 자세한 정보 역시 이전 포스팅에 다 설명했으므로 생략합니다.
- 추후에 Cloud 관련 빌드도 제작해보도록 하겠습니다. ( 언젠가... 아마도... 시간이 된다면... )
[ 방금 생성한 2dollar라는 이름의 DB가 목록에 추가된 걸 확인하실 수 있습니다. ]
추가한 2dollar를 눌러보시면...
[ 2dollar DB안에 등록된 이미지 목록을 확인하실 수 있습니다. 지금은 아무 이미지가 등록되어 있지 않아 비어있는 상태. ]
이제 Add Target 버튼을 눌러보세요,
여기서부터 이젠 지난번과 설정하는 방법이 조금 다릅니다.
[ Type 란에서 Cylinder 클릭 후 타겟의 크기 입력. ]
- mm 단위로 입력하시면 됩니다. ( 15cm -> 150 입력 )
- 아랫면 지름 (Bottom Diameter) 를 입력하시고, 윗면 지름 (Top Diameter)를 0으로 입력하시면,
고깔모양 (Cone Shape) 으로 인식하게 됩니다.
* 추가 : 옆면 길이... 뭔가 이상하게 적었네요. 그냥 높이값입니다.
[ 타겟으로 인식할 모델의 사이즈 셋팅완료. 아직 다 끝난게 아닙니다. ]
리스트에 추가된 Target을 눌러보면 아래와 같이 입력했던 사이즈에 맞게 오브젝트가 뜹니다.
[이미지를 업로드한 모습. Cylinder 전체를 덮을수 있는 이미지가 모두 준비되어있다면, 각면을 클릭하면, 모두 업로드 가능. ]
- 저는 2달러 이미지 하나만 쓸 예정이므로, 하나만 업로드하였습니다.
( 위아랫면 업로드는 하지 않아도 무방합니다만, 정확한 인식률을 위해선 이미지를 모두 업로드하는게 좋습니다. 옆면 하나만 업로드할 경우 인식률이 조금 떨어집니다. )
* 주의! 업로드할 이미지 비율과 입력한 실린더의 사이즈 비율이 맞지 않은 경우 업로드가 되지 않습니다.
타겟으로 사용할 실린더 모양의 물체 사이즈를 잘 확인해서 생성하세요!
이미지 업로드 완료 후 다시 Target Manager로 돌아옵니다.
[ 이미지 업로드를 완료하고나면 Status 가 Incomplete 에서 Active로 바뀐 것을 확인하실 수 있습니다. ]
이제 우측의 Download Dataset(All) 버튼을 눌러서 유니티에 추가할 데이터베이스를 다운받아봅시다.
[ 유니티에서 적용할 것이므로 Unity Editor 토글 후 Download 클릭 ! ]
[ 다운받은 DB의이름.unitypackage 파일을 실행하면, 유니티 상에 곧바로 임포트 창이 나타난다. ]
설정한 데이터, 유니티에서 적용하기
Target Manager 에서 다운받은 unitypackage 를 임포트 하고난 다음,
맨 처음 하이어라키에 넣었던 CylinderTarget 을 눌러보세요.
[ Empty 로 되어있던 Dataset에 방금 추가했던 DB의 이름이 리스트에 뜨는 걸 확인할 수 있다.
적용을 완료하면, 추가했던 이미지가 실린더에 보인다. ]
[ 이전 포스팅에도 강조했던 내용. 적용한 Database가 활성화되어있지않으면, 이미지 인식을 못합니다. ]
- Load Data Set "DB이름" 과 바로 밑에 생기는 Activate 2개를 모두 체크한다.
다음은 실린더 타겟을 찾았을 때 화면에 보여질 오브젝트를 배치합니다.
[ 실린더 타겟을 찾았을때 그 주변으로 피카츄가 돌아가도록 작업 했습니다. ]
이제 앱을 빌드해서 디바이스에 넣으신 다음 ... 테스트하면
끄읏~!!
피카츄가 2달러 주변을 빙빙...
* 상세하게 적는다고 적었습니다만, 부족한 부분이 많습니다.
막히시는 부분 있으시면 댓글로 남겨주세요.
* 댓글로 적기엔 부족하다 싶으시면, 제 메일로 문의주셔도 됩니다. ( dark0946@naver.com )
* 퇴근하고 오자마자 바로 작성했는데 벌써 시간이... 1시가 넘엇다니 ... 으헝...
참고 영상
관련 게시글
[ 뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 1.개발자등록 ]
[ 뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 2.SDK 다운로드 ]
[ 뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 3.Image Target ]
* 위에 링크된 포스팅 글에서 사용하는 Vuforia SDK 버전은 4.2이며, 유니티는 4.6.3p2 입니다.
[뷰포리아(Vuforia), 유니티(Unity) SDK 적용하기 :: 4.Cylinder Target] <- 현재 보고계신 글
* 이번 포스팅부터 사용한 Vuforia SDK 버전은 5.0.3이며, 유니티는 4.6.8p3 입니다.
참고사이트
- [ 뷰포리아 개발자 페이지 :: License Managger ]
- [ 뷰포리아 개발자 페이지 :: Target Managger ]
- [ 뷰포리아 ImageTarget 가이드 : 영문 ]