2015의 게시물 표시

유니티3D 뷰포리아 SDK 3.0.9 iOS 실행시 EXC_BAD_ACCESS 에러

이미지
유니티3D에 퀄컴 뷰포리아로 증강현실 앱 만들기 튜토리얼 작성하다말고 뜬금없이 이슈하나 남겨봅니다. 그런데 이 이슈는 더이상 발생하지 않을 듯 싶은데요, 지난주에 뷰포리아가 4.0 정식을 출시 했기때문이죠. 아래 정리하는 링크는 이제 뷰포리아 개발자 포털에 링크마저도 사라진 3.0.9 버전에 대한 내용입니다. 임시로 저장했더건데 삭제하긴 뭐해서 남겨봅니다.

 먼저 유니티 4.6.1 또는 2였던거 같구요, iOS는 최신의 xcode와 SDK 환경이었습니다. 빌드 후 실행하면 아래와 같이 applicationDidBecomeActive에서 UIInterfaceOrientation을 mainBundle에서 가져오지 못하고 nil 값인 상태로 QCARUnityPlayer에 넘겨져서 생긴 EXC_BAD_ACCESS 에러였습니다.



 그래서 최종적으로 QCARUnityPlayer::getRotationFlag에서 뻗어버리죠.



 해결 방법은 Info.plist에 키값으로 UIInterfaceOrientation을 넣어주시고 개발하시는 앱의 회전 상태에 맞는 값을 선택해주면 됩니다.

 간단히 정리해봤습니다. 최신 릴리즈인 4.x에서는 발생 안하는 것 같네요. 그나저나 기존 포스팅도 4.0 기준으로 해야하고하는데 사실 다른 이슈 때문에 유니티에 뷰포리아 연동 포스팅을 더 이어나갈 수 있을지 모르겠네요.

참고
Unity 4.5.4 - 4.5.5 and Vuforia on iOS
Crash with Unity3d 4.5.4 ios8

유니티3D와 퀄컴의 Vuforia로 증강현실앱 만들기 - 1. 준비작업

이미지
지난 포스팅에서 증강현실이 무엇인가에 대해 간단히 리서치를 해봤습니다. 뭐 거의 퀄컴의 뷰포리아에 대한 소개였죠. 이번 포스팅은 본격적으로 유니티로 증강현실 앱을 만들기 전 단계인 퀄컴의 뷰포리아 개발자 포털 가입과 SDK 다운로드에 대해 설명하겠습니다.

 먼저 개발 환경은 아래와 같습니다.
유니티 4.6.2퀄컴 Unity Extension Vuforia SDK 3.0.9
 뷰포리아 SDK는 아래 영상과 같이 객체를 인식할 수 있는 4.0 베타도 있지만 아직은 베타이므로 안정화 버전인 3.0.9 버전으로 진행해보겠습니다. 빌드 테스트를 안드로이드로 해볼텐데요, 빌드에 필요한 기타 사항(안드로이드 SDK, 자바 SDK등)들은 이미 설치가 된 것으로 간주합니다. 제 블로그에도 있지만 좀 오래된 내용들이기도하고 또 따로 정리하기도 뭐한 것들이라 생략해봅니다.



1. 뷰포리아 개발자 포털 가입하기  뷰포리아 SDK를 다운로드 받기 위해서는 뷰포리아 개발자 포탈에 먼저 가입해야합니다. 링크를 따라가셔서 아래 그림과 같이 오른쪽 상단의 Register를 눌러 가입 페이지로 갑니다.



 각자의 내용에 맞게 가입 양식에 내용을 작성 후 Register를 클릭합니다.



 등록한 메일 계정으로 메일을 하나 보낸다는 팝업이 아래와 같이 뜹니다. OK를 누르시고 각자의 메일함을 확인해봅니다.



 메일이 왔다면 클릭하라고 하는 중간부분을 클릭해서 인증을 받아서 최종 계정 등록을 해줍니다.



 링크를 클릭하면 아래와 같이 뷰포리아 개발자 포털 로그인 페이지가 열리고 계정 생성이 완료됩니다. 가입 신청했던 이메일과 패스워드를 입력해서 로그인을 합니다.



2. 유니티용 뷰포리아 SDK 다운로드  로그인 하셨다면 이제 유니티용 뷰포리아 SDK를 다운받아야 합니다. 개발자 포털 Resources -> SDK -> Unity Extension을 클릭 후 유니티용 SDK를 다운로드 합니다.



 아래와 같이 약관 동의 창이 뜨는데 제일 밑으로 스크롤 후 I Agree를 눌러 동의 후 다운로드를 진…

유니티3D와 퀄컴의 Vuforia로 증강현실앱 만들기 - 0. AR(Augmented Reality) Overview

이미지
오랜만에 포스팅입니다. 이번 포스팅은 쌩뚱? 맞게도 증강현실과 관련된 내용을 정리를 해볼려고합니다. 쌩뚱맞다고 표현한 이유는 제 자신도 딱히 지금까지 증강현실을 간단히 생각했을 땐 카메라를 비추면 3D 객체를 보여주거나 영상정도만 보여주고 뭐 끝 아닌가란 생각을 갖고 있었기 때문입니다. 그 이상도 그 이하도 아니고 별 관심도 없었던거죠.

 하지만 아래에 소개할 몇가지 영상과 링크를 보면서 증강현실에 대한 생각이 좀 바뀌었습니다. 본격적인 유니티3D로 증강현실 앱을 만들기 전에 간단히 증강현실에 대해 리서치 해본것을 정리해보는 포스팅을 남겨봅니다. 주구절절 글보다는 영상과 링크가 많을 듯 싶네요.

 아 미리 말씀 드리면 아래 영상에서 볼 수 있는 얼마전에 공개된 마이크로소프트의 홀로렌즈 같은 HMD류의 증강현실보다는 스마트폰이나 태블릿으로 뭔가 할 수 있는 수준의 것의 내용을 다룰 예정입니다.


 증강현실과 관련해서 검색해보면 대략 아래의 3가지 이미지가 많이들 검색이 되더군요. 영화 마이너리티 리포트와 아이언맨, 애니메이션 드래곤볼의 스카우트입니다. 많은 설명이 없어도 대중적으로 같이 한방에? 공감할 수 있는게 뭐가 있는지 정리겸 올려봤습니다.




 사실 위 3가지는 너무 비현실적인 부분들이 많지요. 아무래도 영화나 애니메이션이다보니 기능적인 부분들이 바로 현실에서는 구현하기에는 아직까지는 힘든 것들로 보입니다. 마이너리티 리포트 정도는 약간 따라하는 수준은 된다고 보여지지만요. 뭐, 드래곤볼의 스카우트도 어찌보면 구글 글래스를 좀 활용하면 재미용으로 비슷한 기능의 앱 정도는 만들 수 있겠죠?

 그럼 현실적으로는 증강현실이 어디까지 와있고 뭘 할 수 있는지로 넘어가보죠. 먼저 아래의 영상을 보시겠습니다.


 불과 약 2주전인 2015. 1. 30일에 올라온 위 영상은 퀄컴의 Vuforia라는 증강현실 관련 플랫폼?으로 실제 구동되고 있는 앱들의 종합선물세트 영상입니다. 교육, 게임, 광고, 아이들 장남감, 쇼핑등 여러분야에서 실제 활용이 되고 있는 모습입니다. 첨…

cocos2d-x 샘플 cpp-tests 빌드 중 fatal error LNK1104: cannot open file 'LIBCMT.lib'

이미지
cocos2d-x 3.3의 샘플을 비쥬얼 스튜디오 2013 커뮤니티 에디션으로 빌드시 제목과 같은 에러가 발생했습니다. 이상하네요 전 버전들은 이런거 없었던거 같은데 3.3의 문제인지 아니면 샘플 솔루션 파일이 cocos2d-win32.vc2012 던데 비쥬얼 스튜디오 2013이랑 버전이 안 맞아서 그러는지...

 아무튼 해결책은 프로젝트 속성 - Linker - Input - Ignore Specific Default Libraries에 libcmt.lib를 추가하면 됩니다. 이민 디버그용인 libcmtd는 추가가 되어 있더군요.

error LNK2026: module unsafe for SAFESEH image.

이미지
SAFESEH(Safe Exception Handlers)가 뭔지는 모르겠으나 아무튼 에러 그대로 모듈이 SAFESEH 이미지에 대해 안전하지 않다는 에러입니다.


 문제를 일으키는 LIB를 SAFESEH 옵션을 사용해 다시 컴파일 해도 될 듯 하지만 위와 같이 exe 프로젝트의 속성 -> Linker -> Advanced -> Image Has Safe Exception Handlers를 NO 로 설정하고 빌드하면 잘 되는군요.

fatal error LNK1104: cannot open file 'LIBCD.lib'

이미지
10년도 더지난 오래된 프로젝트(아마도 비쥬얼 C++ 6.0으로 개발되었던?)를 비쥬얼 스튜디오 커뮤니티 2013 Update4로 빌드하려니 제목과 같은 링크에러가 발생했습니다.

 뭐 강산도 변했으니 당연한 결과이겠거니 하고 구글링해보니 해당 파일은 싱글 쓰레드용 라이브러리인데 비쥬얼 스튜디오 2005부터는 이를 지원하지 않고 멀티 쓰레드용을 사용해야 한다는 것 같네요.

 해결책은 프로젝트 속성 -> Linker -> Input -> Ignore Specific Default Libraries에 LIBCD.LIB를 추가해서 무시하면 됩니다.