Split Application Binary로 인한 Image tracker issue
Please provide your development details as below;
1. SDK Version: 4.1.1
2. Development Environment: Unity-Android
3. Tracker/Scanner: Image Tracker
4. License Type(Free / Pro-One Time Fee / Pro-Subscription / Enterprise): Pro-One Time Fee
5. Target Device(Optional): sm-t536
유니티에 적용 후 안드로이드 빌드시 큰 문제없이 동작을 합니다.
그런데 OBB로 뽑게되면 Trackable add는 되는데 OnTrackFail로만 적용이 됩니다.
따로 변경사항은 없으며 단지 obb를 뽑는 Split Application Binary만 체크했을 뿐입니다.
We can assist better if you attach screenshots of issues.
안녕하세요.
저희가 제공한 샘플 코드를 유니티-안드로이드 환경에서 실행하신건가요?
기입해주신 기기에서 이미지 트래커를 수행하였을 때 이미지 추적이 계속 실패하여 디버깅을 했을때
TrackFail 함수를 계속 호출하는 상황인건가요?
답변 주시면 확인해보겠습니다.
Leo
Maxst Support Team
현재는 샘플코드에 있는 imageTackerSample을 이용해 map에 등록하고 있으며
imageTrackerableBehaviour를 그대로 이용하고 있습니다.
앱을 실행하면 카메라가 시작됨과 동시에 TrackFail을 계속 호출하고 TrackSuccess를 받아오지 못하고 있습니다.
동일한 환경에서 OBB가 아닌경우는 TrackSuccess를 잘 호출하고 있습니다.
흠.. 현재 저희가 갤럭시 S3 태블릿에서 테스트해보았을때 증상이 재현되지 않고 있습니다.
기존 출시전에 여러 다른 기기로 OBB에 대한 테스트를 진행하였을때도 문제가 없었구요.
해당 기종에서만 문제가 발생되는건지 확인이 필요할것 같습니다.
유니티에서 저희 샘플코드를 다운받아 실행하였을 때, 샘플코드를 전혀 수정하지 않고 태블릿에서 실행하였을 때는
이미지 트래커가 정상적으로 동작하였다는 말씀이신가요?
그럼 OBB를 사용할 때, 빌드세팅 - Player Settings - Public Settings - Split Application Binary 항목을 체크해주는것
이외에 다른 설정사항은 변경한게 없으신가요?
혹시 이미지 트래커를 수행할 때 우측 하단에 INVALID SIGNATURE라는 문구가 뜨지는 않으셨나요?
Leo
Maxst Support Team
말씀해주신것을 토대로 샘플코드 자체 데모 씬을 테스트 해본 결과
데모씬에서는 이미지 트래커가 정상적으로 동작을 합니다.
문제는 지금 진행하고 있는 프로젝트에서 해당 데모씬과 코드상으로 다른점이 없으며
OBB가 없는 상태에서는 정상동작을 하다가 OBB로 진행했을때만 Track Success함수를 호출하지 않는다는 것입니다.
인식하는 씬에서는 데모씬과 같이 별도로 이루어져 있으며 따로 다른씬과의 코드로 연계되어 있지 않습니다.
또한 라이센스도 정상적으로 적용되어 별도의 문구가 뜨지 않습니다.
그리고 적어주신대로
'OBB를 사용할 때, 빌드세팅 - Player Settings - Public Settings - Split Application Binary 항목을 체크해주는것
이외에 다른 설정사항은 변경한게 없으신가요? '
처럼 해당 항목만 체크 유무가 다릅니다.
그럼 증강시킬 컨텐츠를 Streaming Asset 폴더 하위에 바로 두셨나요?
Streaming Asset 폴더 하위에 바로 두면 컨텐츠가 생성되지않고, 폴더를 하나 생성해서 그 안에 컨텐츠를 두어야합니다.
OBB 사용하지 않으셨을때 인식이 된다고 하신걸보니 가능성은 적겠지만 확인한번 부탁드립니다.
Split Apk를 업데이트한 버전이 4.1.1인데 SDK버전은 4.1.1이 맞으신건가요?
혹시 이전 SDK 버전을 사용하여 프로젝트를 진행하시다가 4.1.1로 버전 업데이트 하신건가요?
위 내용들 점검해서 답변부탁드립니다.
감사합니다.
Leo
Maxst Support Team
현재 StreamingAsset 폴더 안에 구조를 보면
StreamingAssets/MaxstAR/(Targetmanager에서 생성한 폴더명)
형식으로 Path가 되어 있고 하위로 데이터들이 존재합니다.
버전은 4.1.1버전을 처음부터 사용했습니다.
1. 현재 세팅내용 그대로 다른 기기에 Split APK를 사용하여 빌드 후 정상동작하는지 확인해주세요.
2. 빌드세팅 - 플레이어세팅 - Other settings - Write permission이 Internal로 되어있는지 확인해보시고
External로 바꿔서 실행해주세요.
3. 생성하신 2dmap만 빼서 새로운 프로젝트에 SDK 임포트 후, Split APK 체크 후 2dmap을 로드하여
정상동작하는지 확인해주세요.
위 사항들 점검부탁드립니다.
감사합니다.
Leo
Maxst Support Team
답변 감사합니다.
말씀해주신 내용을 전체적으로 진행해 보았습니다.
1. 다른 기기에 적용했을때도 정상동작하지 않았습니다.
2. 빌드 세팅에서 permission이 이미 External로 되어 있었습니다.
3. 샘플프로젝트에 2dmap만 적용했을때는 정상동작하였습니다.
추가로 maxst를 적용한 다른프로젝트도 obb 형태로 빌드후 적용을 해보았더니 역시나 인식하지 않는 이슈가 있었습니다.
소스코드는 전체적으로 샘플코드 및 기존 sdk에 존재하는 코드를 기반으로 되어 있습니다.
3번째에 샘플프로젝트에 2dmap만 적용했을때는 Split APK를 사용하셔서 OBB가 적용된 상태로 정상동작 한건가요?
TrackFail을 호출하는 상황은 트래킹 결과 카운트가 0이 나오는 상황입니다.
그 원인은 두 가지가 있는데, 첫 번째로 2dmap이 제대로 로드되지 않았을 가능성이 있으며,
두 번째로 2dmap이 제대로 로드되었지만 추적에 실패하는 경우입니다.
어떤 단계까지 수행되었는지 확인이 필요할 것 같습니다.
현재 컨텐츠가 뜨지 않는 프로젝트에서 빌드 후 이미지 트래커를 수행하신 후,
안드로이드 스튜디오의 로그캣에 MaxstAR-Native라고 검색하시면
Start to load 2d maps 라는 로고가 보이며, 그 후로 로드된 2dmap의 경로와 파일명이 보입니다.
그 아래로 AR2D Map Count : n 이렇게 몇개의 맵이 로드되었는지 로그가 뜨는데,
위 사항을 확인하시고 몇개의 맵이 로드되었는지 알려주세요.
감사합니다.
Leo
Maxst Support Team
답변 감사합니다.
알려주신 내용을 통해 로그캣을 확인해본결과
map File을 정상적으로 열고 읽지 못하는것 같습니다.
AR2D Map Count = 0 이 확인되었습니다.
안녕하세요.
이전 답변에서 저희가 제공한 샘플 코드에서는 정상적으로 작동한다는 것으로 보아
글 작성자님께서 2dmap은 정상적으로 생성하신 것 같습니다.
2dmap을 로드하는 함수가 AddTrackerData()인데, 이 부분에서 저희가 제공한 샘플코드에서는 로드가 되지만
작성자님이 작성한 코드에서는 로드가 되지 않는걸로 보아 혹시 수정하신게 있는지
diff같은 툴로 확인부탁드립니다.
감사합니다.
Leo
Maxst Support Team