Try MAXST AR Fusion Tracker Now ✨
List
유니티 버전업 한 후 카메라 뷰가 뒤틀렸습니다.
Posted Date: 2021-11-03 6:30     Edited Date: 2021-11-05 1:38     Writer: sukim

Please provide your development details as below;

1. SDK Version: 4.1.2
2. Development Environment:  Unity-Android, Unity-iOS

3. Tracker/Scanner:
4. License Type: Pro-Subscription
5. Target Device(Optional): Android

사용하던 2018.4.17f1 버전의 유니티 프로젝트를 2019.4.20f1 로 버전 업 하니 아래 사진과 같이 '왼쪽 뷰만 좌우반전으로 반반씩 켜진 상태'가 되었습니다. 카메라의 좌측 부분만 화면에 보입니다.

맥스트 버전은 '4.1.2 클라우드 방식' 입니다 

Unity Android에서만 확인했습니다.

에디터와 빌드한 폰 모두 동일한 증상입니다.

유니티 버전 업 직후 오류인건 실험으로 확실히 확인 했습니다.

상황: 유니티 버전 업 직후 GUIText 관련 오류 나는 다른 스크립트 제거 후 카메라씬 확인 해보니 이렇게 되어있습니다. (Maxst 관련된건 X)

아예 클라우드 트래커 샘플로 버전업 테스트만 해보니 이상없이 되긴 하는데요

AR 카메라가 이렇게 되면 어느 부분을 수정해야 하나요?

직접적으로 실제 웹캠 뷰를 수정해 본적이 없어서 이렇게 되니 어떻게 할지 모르겠네요.

짐작가는 부분이 있을까요? 


Posted Date: 2021-11-03 8:17     Edited Date: 2021-11-03 8:17     Writer: sjkim

MAXST AR SDK에 관심을 가져주셔서 감사합니다.

 

포럼에서는 MAXST AR SDK에 관련된 버그나 문제 사항에 대해서만 답변하고 있습니다. 

 

해당 문제는 추가하신 GUIText 스크립트에서 발생한 문제 같습니다. 

첨언하자면, ARCamera의 수직적 반전 효과를 주면 해결 될 것 같습니다.

 아래 함수를 참조하시기 바랍니다. 

CameraDevice.GetInstance().FlipVideo(CameraDevice.FlipDirection.VERTICAL, verticalFlip);

 

 

Best regards,

Francisco

MAXST Support Team

Posted Date: 2021-11-03 10:49     Edited Date: 2021-11-04 1:14     Writer: sukim

손으로 가려보면 비디오 자체가 렌즈의 반(왼쪽)만 찍히는 상태고  오른쪽 반은 안찍힙니다.

위 코드로는 전체적인 반전만 줄뿐입니다.

유니티 2018 버전의 코드에서 GUIText 포함된 스크립트는 카메라와 전혀 무관하며 사용되지 않는 예제 코드이고,  UGUI Text로 전환 후 그대로 살려둬도 마찬가지입니다.

정말 2018.4.17f1에서 버전에서 2019.4.20f1 로 버전업만 한 상태에서 이런 현상이 발생합니다.

2018 버전에서 카메라 비추면 정상입니다. 웹캠도 정상입니다. 다른 웹캠 써도 마찬가지입니다.

꼭 버전업을 해야 하는 상황이고 CameraDevice 참조 봐도 포커스나 verticalflip, horizontal flip 뿐입니다.

 

'한가지 특이한점이 새로 받은 샘플 프로젝트는 NativeAPI. 함수 명들 앞에 maxst_ 가 있는데 이 버전업한 이 프로젝트에선 버전업 전과 동일하게 maxst_가 붙어있지 않습니다. ' 

ex) 샘플 프로젝트 : public static extern int maxst_CameraDevice_start(int cameraId, int preferredWidth, int preferredHeight);

     문제의 프로젝트: public static extern int CameraDevice_start(int cameraId, int preferredWidth, int preferredHeight);

위처럼 모든 DLL 함수명에 maxst_가 없습니다. 원래 maxst_ 가 없는 맥스트 버전도 있나요?

Posted Date: 2021-11-04 1:29     Edited Date: 2021-11-04 1:33     Writer: sjkim

아닙니다.

MAXST AR SDK의 [DllImport(MaxstARLibName)]는 maxst_ 로 시작하는 함수만 import 합니다. 

이는, 모든 유니티 버전에서 AR SDK 4.1.x 패키지를 불러와도 동일합니다. 

 

기존 프로젝트의 NativeAPI를 샘플 프로젝트의 NativeAPI로 대체하시기 바랍니다.

또한 Unity 2019 버전에서 AR SDK 4.1.x 를 이용하려면 ARCamera의 depth가 -1이 아닌 1으로 수정해야 되는점 참고하시기 바랍니다. 

 

만약, 버그가 잡히지 않는다면 sjkim@maxst.com으로 프로젝트 파일을 공유해주시면 버그를 확인 해보겠습니다.

 

 

Best regards,

Francisco

MAXST Support Team

Posted Date: 2021-11-04 1:48     Edited Date: 2021-11-04 2:39     Writer: sukim

원인을 찾았습니다. CameraBackground에 메쉬 필터에 Quad Instance 대신 기본 Quad를 넣어보니 화면 자체는 깨져 보이지 않습니다.

그런데 기본 Quad의 크기를 그대로 사용하니 가로플립에 180도 돌려야 하네요.

해결은 했습니다만 Quad가 달라진 원인을 모르겠네요

Native API를 제대로 불러오지 않기 때문인걸까요?

 

Native API를 변경 했더니 Maxst 스크립트들에서 변수명이나 인수등 안맞는게 굉장히 많습니다.

4.1.2 패키지에 맞게 모든 스크립트 오류를 수정하고 플레이 해보니 엔트리 포인트를 찾을수 없다며 엄청난 에러를 뿜고 동작하지 않네요.

아예 다른 유니티 패키지를 보는것 같이 비슷하면서도 다르네요. 4.1 대가 아니라 더 전버전을 쓰고 있었던 건 아닐까요? 저는 4.1.대로 알고있었는데 아닐수도 있을거 같은데요

앱상에서 이런 스크립트들을 조작할 이유가 전혀 없습니다.

 

4.1.x 이전 버전엔 maxst_ 로 시작하는 함수가 없었던건 아닌지 궁금합니다.

프로젝트 파일은 아니지만 문의 사항에 대한 메일 보내 드렸습니다.

 

 

Posted Date: 2021-11-04 6:20     Edited Date: 2021-11-05 1:38     Writer: sjkim

기본적으로, Native API가 제대로 import 되어야 유니티 씬이 정상적으로 빌드되므로,

말씀하신 Native API의 이름 문제는 아닌것 같습니다.  

 

또한 MAXST AR SDK 4.0.x 이전 버전에서는 [DllImport(MaxstARLibName)]하는 함수가 maxst_ 로 시작하지 않았는데,

사용하시는 4.1.x 버전에서 [DllImport(MaxstARLibName)]되는 함수가 maxst_ 로 시작되지 않아 이상합니다. 

 

아울러, 정상적인 샘플씬에서는 CameraBackground의 Mesh Filter는 기본적으로 Quad mesh로 설정 되어 있으나,

씬 실행시에는 Quad Instance로 변하여, 정상적으로 Camera가 출력됩니다. 

 

 

Best regards,

Francisco

MAXST Support Team

Posted Date: 2021-11-04 6:26     Edited Date: 2021-11-04 6:26     Writer: sjkim

MAXST AR SDK의 버전 확인은 아래 함수를 통해 파악이 가능합니다.

maxstAR.MaxstAR.GetVersion()

 

 

Best regards,

Francisco

MAXST Support Team