List
NavigationController 클래스의 메소드 MakePath가 Documentation과 실제 함수 구현 상태가 다릅니다.
Posted Date: 2021-09-28 15:24     Edited Date: 2021-10-01 3:29     Writer: inactive

Please provide your development details as below;

1. SDK Version:  MAXST VPS SDK
2. Development Environment: (eg. Unity-Android, Unity-iOS, Native Android, Native iOS) Unity-Mac & Android
3. Tracker/Scanner:
4. License Type(Free / Pro-One Time Fee / Pro-Subscription / Enterprise): Pro(Studnet)
5. Target Device(Optional): Samsung, MacPro

VPS Documentation을 보면, NavigationController의 메소드 MakePath() 함수의 인자가 3개가 들어가는 것으로 보여집니다.
하지만, 실제로 Unity에서 C# 스크립트로 함수를 사용하려고하면, 자동완성 기능을 통해 확힌해보면 6~7개의 인자가 들어가는 것으로 보입니다.

각각의 파라미터에 대한 설명과 파라미터에 넣어야할 값들을 무엇인지 궁급합니다. 그리고 어떻게 코드상에서 얻을 수 있는지 궁금합니다.
감사합니다.

Posted Date: 2021-09-29 0:50     Edited Date: 2021-09-29 0:50     Writer: hjyim

안녕하세요. steniipion2님

MakePath에서 start_location, start_position 은 길안내의 시작 지점으로 출발지의 Localizer Location 과 위치 좌표 입니다.
end_location, end_position 은 길안내의 도착 지점으로 도착지의 Localizer Location 과 위치 좌표 입니다.
trackables는 Scene에 있는 Trackable Object을 사용하는 것으로 참조하여 배열로 전달하시면 됩니다.
Fail의 잘못된 정보 기입 등의 이유로 길안내 실패 했을 때는 콜백함수로 보시면 됩니다.

참고로 Localizer Location 은 현재 인식되는 맵의 이름이며 인식 과정에서의 VPSTrackable.cs를 참고하시면 됩니다.

 


Best regards,

Rudy

MAXST Support Team

Posted Date: 2021-09-29 4:02     Edited Date: 2021-09-29 5:29     Writer: inactive

Localizer Location과 VPS 내에서의 위치를 대응시키기 어려운 문제가 있습니다.

https://developer.maxst.com/BoardQuestions/Details/1266 포럼에서 "Localizer Location는 현재 인식된 맵의 작은 단위의 이름" 라고 하셨습니다.

아래 이미지를 보면 지하1층에 있는 Localizer Location은 총 6개이지만, prefab에서 object는 총 20개입니다.

각각의 Localizer location이 어떤 object 혹은 objects의 집합을 의미하는지 또는 VPS에서 Vector3의 위치로 어떤 값과 대응하는지 알기가 힘듭니다. 알 수 있는 방법이 있나요?

그리고, end_location을 도착지의 Localizer Location을 넣는 것이라고 하셨는데, 실제로는 Localizer Location에서 앞 부분을 제외한 값을 넣어야 네이게이션 기능을 이용할 수 있었습니다.
예를 들면, MaxstSceneManager.cs 의 public void OnClickNavigation() 함수에서
navigationController.MakePath(currentLocalizerLocation, arCamera.transform.position, "outdoor", new Vector3(77.975977f, 0, 71.859565f), vPSTrackablesList.ToArray(),
               () => {
                    Debug.Log("No Path");
                },"coex_outdoor");

이렇게 "p0008_p0009_outdoor" 라는 localizer Location 을 사용하고 싶다면, "outdoor" 을 파라미터로 넣어야했습니다.
이렇게 기입하면, 앞 부분이 빠지기때문에 특정 Localizer Location을 지칭하는 것이 아니라 코엑스의 층수만을 구별하는 end_location이 되기떄문에 잘 동작하는 것과는 별개로 올바르지 못한 사용법 같았습니다.
이 부분에 대해서 답변 받을 수 있을까요?

Posted Date: 2021-09-29 7:15     Edited Date: 2021-09-29 7:15     Writer: hjyim

안녕하세요. steniipion2님

VPS 내에서의 위치를 대응시키기 어려운 문제를 얘기하셨는데 컨텐츠를 배치하기 위함 용도인지 확인 부탁드립니다.

우선 컨텐츠 배치는 다음과 같은 방법으로 진행하시면 도움이 되실 것 같습니다.
MAXST에서 제공되는 시뮬레이션 데이터를 통해 VPS Studio에 원하는 데이터를 로드하고 나면 ReferenceCamera가 생성 되어 있고
하위에 각 노드들이 카메라의 Pose와 프리뷰를 볼 수 있습니다.
이를 이용하여 컨텐츠를 월드상에 제작하고 배치하면 됩니다.


localizer Location의 경우 문서상에 설명되어 있어 추가로 언급드리지는 않았는데 이 부분이 혼선을 드린 것 같아 송구합니다.
위에서 언급하신 것 처럼 사용하시면 되고 길찾기 시 각 층에 맞는 이름을 컨텐츠와 매핑하여 사용해주시면 됩니다.

 


Best regards,

Rudy

MAXST Support Team

Posted Date: 2021-09-30 17:05     Edited Date: 2021-09-30 17:05     Writer: inactive

답변 감사합니다. 크게 도움이 됬습니다.

특정 위치에서의 하나 두개의 컨텐츠가 아니라, 상점들에 대한 위치를 코드로 쉽게 대입하고싶어서 "Localizer Location과 VPS 내에서의 위치를 대응시키기 어려운 문제가 있습니다." 라고 질문을 올렸었습니다.

Localizer Location이 어떤 특정 건물지형이나 구역을 의미하는 것 같아서 그렇게 질문을 드렸습니다.

"실제로도 현재 인식된 맵의 작은 단위의 이름이라고 답변주셨는데요"(https://developer.maxst.com/BoardQuestions/Details/1266)

위에서 언급됬듯이 MakePath 함수를 사용할 때, Localizer Location에서 맵의 작은 단위을 가리키는 앞부분은 제외하고 층수에 해당하는 뒷부분만 넣는 것으로 보아 맵의 작은 단위가 어느 위치를 가리키는지는 저희가 알 수 있거나

사용할 수 없는 것으로 이해했습니다. 이렇게 이해하는 것이 맞을까요?

 

 

Posted Date: 2021-09-30 23:31     Edited Date: 2021-09-30 23:31     Writer: hjyim

안녕하세요. steniipion2님
 

사용하고 계신 SDK 버전은 Start Localizer Location 인식된 현재 맵의 이름을 전달하면 되고 End Localizer Location은 층수에 해당되는 부분만 넣도록 되어 있습니다.
대략적으로 이해를 정확하게 하신듯 합니다.

다만 좀더 개발을 수월하게 하실 수 있게 최신 SDK나 샘플을 다운받아 진행하는 것을 권장드리고 싶습니다.
그 이유는 아래 첨부 된 이미지를 보면 이해가 쉬우 실 것입니다.
이해하기 어려운 부분이 있을 수 있기에 개선을 위해 Navigation Location을 추가하였고, 각 층별로 해당 이름을 직접 사용하시면 됩니다.

 

Best regards,

Rudy

MAXST Support Team

Posted Date: 2021-10-01 3:29     Edited Date: 2021-10-01 3:29     Writer: inactive

감사합니다!