Unity AR의 추적 대상 —— target
target은 Unity에서 다양한 추적 가능한 객체를 표현합니다. 다음 내용을 통해 Unity AR에서의 추적 객체 target의 기본 개념, 상태 및 라이프사이클을 이해할 수 있습니다.
시작하기 전에
- ARSession 소개를 통해 session의 기본 개념, 구성 및 워크플로를 이해하세요.
target이란
target은 AR 기능에 의해 인식되고 추적되는 객체를 Unity에서 표현한 것입니다. 실제 세계에서 이러한 객체는 이미지, 3D 객체, 공간 맵 등이 될 수 있습니다. 이러한 객체를 인식하고 추적함으로써 AR 애플리케이션은 현실 세계에 가상 콘텐츠를 중첩하여 풍부한 상호작용 경험을 구현할 수 있습니다.
일부 target은 현실 세계에서 정지 상태입니다(예: 벽에 붙은 포스터).
이 비디오는 간단한 이미지 추적 AR 씬을 보여줍니다. 왼쪽은
Hierarchy뷰, 가운데는Scene뷰, 오른쪽은Game뷰입니다. 비디오는 Unity 에디터의Play모드에서 시뮬레이션 실행 데이터로 녹화되었습니다.Game뷰의 내용은 현실 세계에서 사용자의 휴대폰에 표시되는 내용과 동일합니다. 이 비디오에서 target(ImageTarget)은 현실 세계의 명함을 나타냅니다. 관찰을 용이하게 하기 위해 그 위에 노란색 구체 마커를 배치했습니다.target은 현실 세계와 씬에서 위치가 고정된 반면, 사용자를 나타내는 카메라(파란색 콘)는 사용자가 현실 세계에서 이동함에 따라 움직입니다. 흰색 콘은 과거 일정 시간 동안의 카메라 위치와 방향 궤적을 캡처합니다. 노란색 구체가 target(ImageTarget) 노드 아래에 있음을 볼 수 있으며, 이는 이러한 유형의 씬에서 객체의 일반적인 구조입니다.
일부 target은 현실 세계에서 이동 가능합니다(예: 버스 안의 포스터).
이 비디오는 동일한 씬을 보여주지만, 이번에는 현실 세계에서 target(명함)을 이동시켰습니다. target이 이동하면 노란색 구체가 명함을 따라 움직이고,
Game뷰에서 구체 마커는 여전히 명함 위에 정확히 위치합니다.
이해를 돕기 위해 위 두 비디오에서는 ImageTarget의 기즈모 표시를 끄고, 모두 SessionOrigin 중심 모드를 사용했습니다. 이 비디오에서 Scene 뷰의 객체 움직임은 현실 세계와 동일합니다. 실제 AR 씬에서는 이러한 움직임 관계가 더 복잡합니다.
target의 다양한 중심 모드에서의 동작
Unity에서 모든 AR 추적의 중심 참조점을 session 중심이라고 하며, session 실행 중 이 중심을 결정하는 규칙을 중심 모드라고 합니다. 다양한 중심 모드에서 target의 동작은 다음과 같이 다릅니다:
SessionOrigin 중심 모드에서 target은 임의로 이동할 수 없습니다.
SessionOrigin 모드는 모션 추적이 있는 씬에서만 존재할 수 있습니다.
이 모드는 앞선 간단한 씬에서 target과 카메라의 현실 세계 움직임을 잘 보여주지만, 실제 AR 씬에서는 흔히 사용되지 않습니다. 이 모드에서 session은 target의 움직임을 제어하며, 모션 추적이나 AR 기능 자체의 계산 오차로 인해 target이 완전히 고정되기 어렵기 때문입니다. 이때 콘텐츠 루트 노드는 target의 움직임을 따라야 하며, Unity 시스템에서 콘텐츠 동작(예: 물리 시스템)에 일부 영향을 미칠 수 있습니다.
FirstTarget 또는 SpecificTarget 중심 모드에서 target이 중심 객체로 선택된 경우 임의로 이동할 수 있습니다.
일반적으로 FirstTarget 모드가 더 흔히 사용됩니다. 이 모드는 첫 번째로 추적된 객체가 씬에서 session에 의해 제어되지 않도록 보장합니다. target 이동이 필요하지 않은 경우, 현실 씬의 해당 객체가 움직이는지 여부와 관계없이 고정됩니다.
FirstTarget 또는 SpecificTarget 중심 모드에서 target이 중심 객체로 선택되지 않은 경우, 그리고 Camera 중심 모드에서 target은 임의로 이동할 수 없습니다.
일반적으로 여러 객체를 동시에 추적할 때, 현실 환경에서 이러한 객체가 상대적으로 고정되어 있더라도 계산 오차로 인해 동시에 오직 하나의 target만 session 제어를 받지 않습니다. 구성에 따라 다른 target의 움직임 여부는 보장되지 않으며, 현실에서 움직이지 않더라도 씬에서 미세한 움직임이 발생할 수 있습니다. 여러 객체 동시 추적 시 이 동작을 충분히 고려하고 콘텐츠 전략을 합리적으로 조정해야 합니다.
중심 모드 및 씬 내 객체 움직임 방식에 대한 자세한 내용은 다음을 참조하세요: 중심 모드.
target의 상태
target의 상태는 현재 session에서의 인식 및 추적 상황을 반영합니다. 일반적인 상태는 다음과 같습니다:
- 추적됨(Tracked): target이 성공적으로 인식 및 추적되었으며, AR 애플리케이션이 그 위에 가상 콘텐츠를 중첩할 수 있습니다. 콘텐츠는 현실 세계의 객체에 정확히 부합합니다.
- 추적되지 않음(Not Tracked): target이 현재 인식되지 않거나 추적되지 않습니다. AR 애플리케이션이 여전히 가상 콘텐츠를 중첩하면 콘텐츠가 현실 세계 객체에 부합하지 않습니다.
또한 상태 변경 시 다음과 같은 이벤트를 통해 응답할 수 있습니다:
- TargetFound: target이 성공적으로 인식 및 추적될 때 트리거됩니다.
- TargetLost: target이 추적 상태를 잃을 때 트리거됩니다.
target의 라이프사이클
Unity AR 씬에서 target은 일반적으로 해당 frame filter 컴포넌트에 의해 관리됩니다. frame filter는 frame source의 이미지 데이터를 처리하고 그 안의 target을 인식하고 추적합니다. frame filter의 라이프사이클은 session에 의존합니다. 다양한 AR 기능 구현상 차이가 있을 수 있지만, 대부분의 경우 session 시작 시 target이 로드되고, 로드 후 session에 의해 제어됩니다. session 중지 시 target은 언로드되고 다음 session에 사용되거나 수동으로 삭제될 때까지 그 자리에 남습니다.
다음 단계
- target 상태 가져오기를 시도하세요
- 다양한 AR 기능에서 해당 target 사용하기