안녕하세요. SDK 관련해서 질문이 있습니다.
Please provide your development details as below;
1. SDK Version: -
2. Development Environment: Unity - Android
3. Tracker/Scanner: SmartPhone(Galaxy S8+)
4. License Type(Free / Pro-One Time Fee / Pro-Subscription / Enterprise): not used now
5. Target Device(Optional): 2D Image Tracker
안녕하세요. AR관련 초보 개발자입니다. 몇가지 질문사항이 있어 글을 남깁니다.
현재 ARFoundation을 이용해 App 개발을 하고 있습니다. 이후 ImageTracking 관련해서 추가적인 공부 및 개발이 필요해 Vuforia를 이용중 라이선스 구입 금액이 부담스러워 다른 SDK를 찾아 들어오게 되었습니다.
제가 Vuforia를 이용하면서 주로 쓴 기능은 (보기 편하시도록 항목별로 분류하겠습니다.)
1. 'Ground Plane - Plane Finder'라는 명칭의 스크립트를 이용해 시작 위치(Unity 기준 터치를 통해 Transform position (0,0,0))를 지정해주는 기능.
2. 예를들면 평면 카드(2D Image)에 인식된 오브젝트를 y축으로 증가시키는 코드를 작성하면, 카드의 Local 평면을 인지해서 카드가 옆으로 누워있으면 그에 맞춰 y축도 옆으로 인식이 되어 누운채로 증가하는지(이 질문은 ARFoundation과 Vuforia가 인식하는게 달라서, 어느 기준을 따르는지 여쭙고싶어 질문합니다. 제가 설명을 어렵게해서 대답안해주셔도 괜찮습니다.)
3. Unity-Vuforia에서 제공하는 스크립트에 'OnTargetFound()'라는 기능.(해당 이미지 인식이 완료되었을때 실행되도록 하는 이벤트형식)
위 3가지 종류였습니다. 1,3번은 거의 비슷한 질문이라고도 할수있는것이, Vuforia에서 제공해주는 편의기능들이 MAXST AR SDK로 변경했을때 어려움이 있는지 여쭙고 싶습니다. 그중 가장 필요한 기능들을 적었습니다.
마지막으로 AR Fusion Tracker 부분 질문인데, DeviceTracking기능과 같은기능인지 여쭙고싶습니다. 혹은 시작 좌표계(0,0,0)을 설정한뒤, 그 이후 ImageTracking을 이용해 세가지 이미지와 상호작용하고싶다고 한다면, AR Fusion Tracker기능을 이용해 한가지 이미지를 좌표설정에 사용한 뒤 나머지 2가지 ImageTracking을 사용해야하는지 알고싶습니다.
질문중에 대답하기 어려운 항목이 있으면 안해주셔도 됩니다. 질문들 자체도 제가 부족하여 질문한것이란걸 알기에, 미리 사과드립니다. 감사합니다.
--------------------------------------------------------------------
추가질문사항
MAXST SDK Demo를 사용했을때, ImageTracking이 일정거리 이상 멀어지면 인식이 안되는데, 대강 어느정도거리까지 인식이 되는건지, Unity / ARCamera / Camera / Clipping Planes를 늘리면 인식거리가 늘어나는지 여쭙고싶습니다. (최대 인식거리 파악)
------------------------------------------------------------------
추가질문사항 2
처음 질문했던 질문중 2번은 테스트 완료해서 제외했습니다.
추가질문으로 MAXST AR을 실행했을 때, Collider가 강제로 꺼지는데, 이 이유를 알수있을까요? 충돌관련 이벤트를 주고싶은데 혹여 다른 오류 때문인지 궁금합니다.
MAXST AR SDK에 관심을 가져주셔서 감사합니다.
1번 질문
- MAXST AR SDK에서 Vuforia의 Ground Plane Detection과 유사한 기능으로는 Instant Tracker가 있습니다.
Instant Tracker는 사전에 이미지 및 맵을 학습 없이 순간적으로 카메라 영상에서 찾은 평면을 기준으로 3D 콘텐츠를 증강시킬때 쓰이는 트래커 입니다.
아래 링크에서 MAXST AR SDK의 샘플앱인 MAXST AR View app을 다운로드 하셔서 Instant Tracker를 경험해보세요.
https://play.google.com/store/apps/details?id=com.maxst.arsdk.demoapp
2번 질문
- MAXST AR SDK는 Unity 환경에서 Tracker 좌표계는 왼손 좌표계를 사용하고 있습니다.
아래 링크를 통해, Unity 환경에서의 Tracker 좌표계를 확인해보세요.
https://developer.maxst.com/MD/doc/g/unity/coordi
3번 질문
- MAXST AR SDK에서 Vuforia의 'OnTargetFound()'과 유사한 함수는 maxstAR.TrackerManager.GetInstance().FindSurface()가 있습니다.
아래 링크에서 FindSurface()를 확인해보세요.
4번 질문
- Vuforia의 Device Tracking는 Ground Plane Detection에 gyroscope의 센서를 퓨전시켜서 Tracking 하는것으로 보여집니다.
하지만, 우리 Instant Tracker는 Ground Plane Detection 보다는 Device Tracking하고 유사합니다.
왜냐하면 Instant Tracker는 VIO(Visual Inertial Odometry)에 기반한 강력한 알고리즘을 통해 트래킹 합니다.
또한, 말씀하신 AR Fusion Tracker는 기존 MAXST AR Tracker에 ARKit 및 ARCore의 강력한 추적 성능을 더한 Tracker로써,
카메라로 입력되는 프레임 밖의 영역에서도 3D 콘텐츠를 증강시킬 수 있습니다.
아래 영상을 참고하셔서, 원하시는 기능이 AR Tracker인지 AR Fusion Tracker인지를 확인해보세요.
https://www.youtube.com/watch?v=tTfMKuxPjh0&list=PLS4FJnCcWItOra0XtdDKi7rOax0mqmT7Z&index=2
아래 링크를 통해 AR Fusion Tracker의 정의와 샘플 앱을 다운받을 수 있습니다.
https://developer.maxst.com/MD/doc/5_0_x/features/fusion
추가적인 질문이 있으시면 언제든지 문의주세요.
Best regards
Francisco
MAXST Support Team
추가 질문1
- 초기 질문에서는 평면을 인식하여 객체를 증강시키는 Instant Tracker에 대해 질문 하신것 같은데,
Instant Tracker에서의 인식가능 거리가 궁금하신가요
아니시면 Image Tracker의 인식가능 거리가 질문이신가요?
추가적인 질문이 있으시면 언제든지 문의주세요.
Best regards
Francisco
MAXST Support Team
추가 질문2
- AR Camera의 Collider가 강제로 꺼진다고 하셨는데, 변경하신 사항이 있으신가요?
우리가 테스트를 해보면 아래의 사진과 같이 Tracker가 작동중일때,
Collider가 비활성화 되지 않으며 충돌 효과를 확인 할 수 있습니다.
추가적인 질문이 있으시면 언제든지 문의주세요.
Best regards
Francisco
MAXST Support Team
감사합니다! 다른 질문에 앞서 추가 질문 2 자료부터 먼저 올리겠습니다.
그림으로 설명드리면,
1. 일단 MaxstARSamples안에 있는 Scenes / ImageTracker에 있는 Scene입니다.
2. 우측하단에 있는 'Collider Test'와 'Rotate Test' 두개의 스크립트는 제가 아주 간단히 테스트용으로 만든 스크립트입니다. 'Rotate Test'는 transform.Rotate(Vector3 ~~~)를 넣어 회전하도록 만들었고, 'Collider Test'는 간단하게 collider반응해서 부딪히면 destroy하는 기능이었습니다. Rotate는 정상작동되고, collider에서 문제가 생겼는데, Play를 시작하면 제가 Component를 추가한 BoxCollider와 기존에 있었던 MeshRenderer가 비활성화 되었습니다. 확인해보니 다른 Object에선 이런 일이 없는데, 'ImageTrackable'오브젝트에서 비활성화 되는것 같습니다. 제가 개발하려고 했던 목표에서 두 물체간의 충돌 이벤트 관련하여 제작을 하고싶어 문의드렸습니다.
추가 질문1
- 초기 질문에서는 평면을 인식하여 객체를 증강시키는 Instant Tracker에 대해 질문 하신것 같은데,
Instant Tracker에서의 인식가능 거리가 궁금하신가요
아니시면 Image Tracker의 인식가능 거리가 질문이신가요?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
추가질문1 내용 부연하자면,
제가 구상하는 기능은
1. 텅빈 정육면체의 큰 방안에 있는 상태
2. AR기능이 존재한 스마트폰을 들고있음.
3. 정육면체의 방 바닥중 원하는 위치에 시작 좌표(0,0,0)으로 지정하려함(이게 Instant Tracker기능이라고 생각합니다. (0,0,0)으로 시작할수있도록)
4. 좌표가 지정되어 그곳에 오브젝트가 생김(예를들면, 바닥에 좌표 (0,0,0)을 선언하면 중앙에 섬이 생깁니다.) 그 후 ImageTrackable을 사용해 카드형태로 된 그림 3개를 인식시켜, 그 좌표에 돌아다니는 오브젝트들과 상호작용(충돌이벤트와 같은 효과)를 하려함.
이정도인것 같습니다. Instant Tracking과 Image Tracking을 동시에 사용하면서 문제점이 없는지 여쭙고싶습니다.
추가 질문 2에 대한 추가 답변
- 앱을 빌드하시고 maxst_cude의 충돌 이벤트가 동작하지 않았나요?
또한 maxst_cube의 부모 객체인 ImageTrackable 객체안에 Image Trackable Behaviour 스크립트는 확인 하셨나요?
코드를 보시면 해당 스크립트에서 트래킹이 성공하면, maxst_cube의 충돌 이벤트를 활성화 시켜줍니다.
그러나 트래킹이 실패되면, maxst_cube의 충돌 이벤트를 비활성화 합니다.
추가적인 질문이 있으시면 언제든지 문의주세요.
Best regards
Francisco
MAXST Support Team
추가 질문 1에 대한 추가 답변
- MAXST AR SDK는 하나의 Scene에서 하나의 트래커가 동작되므로,
한 Scene에서 두개 이상의 트래커의 동작은 불가능 합니다.
그러므로 Instant Tracker와 Image Tracker를 같이 사용하려면
스위칭 코드를 작성하셔서 상황에 따라 트래커를 스위칭하며 사용하셔야 됩니다.
추가적인 질문이 있으시면 언제든지 문의주세요.
Best regards
Francisco
MAXST Support Team