Image Tracker

평면 이미지를 인식 / 추적하여 3D 콘텐츠와 비디오 영상, 크로마키 영상까지 증강시킬 수 있습니다.

Tracker 시작 / 종료
Tracking 정보 이용
Image Tracker 씬 구성
타깃 이미지 설정
타깃 이미지 추가 / 교체
Tracking 모드 변경

Tracker 시작 / 종료

맵을 로딩한 후 Tracker를 시작 / 종료하려면 다음 코드를 참고하세요.

ImageTrackerSample.cs

void Update()
{
    ...
    TrackerManager.GetInstance().StartTracker(MaxstARUtils.TrackerMask.IMAGE_TRACKER);
    ...
}

void OnApplicationPause(bool pause)
{
    ...
    TrackerManager.GetInstance().StopTracker();
    ...
}

void OnDestroy()
{
    ...
    TrackerManager.GetInstance().StopTracker();
    TrackerManager.GetInstance().DestroyTracker();
}

Tracking 정보 이용

Tracking 정보를 이용하려면 다음 코드를 참고하세요.

ImageTrackerSample.cs

void Update()
{
    ...
    TrackingResult trackingResult = TrackerManager.GetInstance().GetTrackingResult();
    
    for (int i = 0; i < trackingResult.GetCount(); i++)
    {
        Trackable trackable = trackingResult.GetTrackable(i);
    
    if (!imageTrackablesMap.ContainsKey(trackable.GetName()))
    {
        return;
    }
    
    imageTrackablesMap[trackable.GetName()].OnTrackSuccess(trackable.GetId(), trackable.GetName(), trackable.GetPose());
    }
}

Image Tracker 씬 구성

  1. 유니티용 MAXST AR SDK를 설치하세요.

  2. 새로운 씬을 생성하세요.

  3. Default 로 존재하는 Main Camera를 삭제한 후, Assets > MaxstAR > Prefabs > ARCamera, ImageTrackable을 씬에 추가하세요.

    imagePrefab

    ※ 빌드할 경우 ARCamera에 라이선스 키를 추가해야 합니다.

  4. 빈 객체를 생성하고 Assets > MaxstARSamples > Scripts > ImageTrackerSample 스크립트를 컴포넌트로 추가하세요.

    imageSample

  5. Assets > StreamingAssets > MaxstAR > ImageTarget > 샘플 맵 파일을 ImageTrackable의 Inspector에 드래그하여 맵을 설정합니다.

    imageMap

  6. ImageTrakable 하위에 Cube를 생성하고 크기와 위치를 적절히 조절합니다.

    imageCube

  7. Play 후 카메라에 타깃 이미지를 비추면 Cube가 증강됩니다.

    ※ 타깃 이미지 파일은 Assets > Editor > MaxstAR > Textures > ImageTarget 폴더 안에 있습니다.

타깃 이미지 설정

addTrackerData ()를 호출해서 맵 파일을 등록하고 loadTrackerData ()를 호출하면 타깃 이미지를 Tracking 할 수 있는 상태가 됩니다. 타깃 이미지를 설정하는 방법은 다음 코드를 참고하세요.

ImageTrackerSample.cs

private void AddTrackerData()
{
    foreach (var trackable in imageTrackablesMap)
    {
        if (trackable.Value.TrackerDataFileName.Length == 0)
        {
            continue;
        }

        if (trackable.Value.StorageType == StorageType.AbsolutePath)
        {
            TrackerManager.GetInstance().AddTrackerData(trackable.Value.TrackerDataFileName);
        }
        else
        {
            if (Application.platform == RuntimePlatform.Android)
            {
                TrackerManager.GetInstance().AddTrackerData(trackable.Value.TrackerDataFileName, true);
            }
            else
            {
                TrackerManager.GetInstance().AddTrackerData(Application.streamingAssetsPath + "/" + trackable.Value.TrackerDataFileName);
            }
        }
    }

    TrackerManager.GetInstance().LoadTrackerData();
}

타깃 이미지 추가 / 교체

  1. Documentation > Target Manager를 참고하여 맵 파일을 생성합니다.

  2. 생성한 파일을 다운로드합니다.

  3. 다운로드 받은 파일을 import합니다.

  4. 타깃 이미지를 설정합니다.

Tracking 모드 변경

Image Tracker는 normal, extended, multi 세가지 Tracking 모드가 있습니다.

기본 설정은 normal 모드 입니다.

  • normal 모드: 기존 image tracker와 같은 기능입니다.
TrackerManager.GetInstance().SetTrackingOption(MaxstARUtils.ImageTrackerMode.NORMAL_MODE);
  • extended 모드: 타깃 이미지로부터 거리가 많이 멀어져도 추적 가능한 기능입니다.
TrackerManager.GetInstance().SetTrackingOption(MaxstARUtils.ImageTrackerMode.EXTEND_MODE);
  • multi 모드: 동시에 세개까지의 타깃 이미지를 인식 및 추적할 수 있는 기능입니다.
TrackerManager.GetInstance().SetTrackingOption(MaxstARUtils.ImageTrackerMode.MULTI_MODE);