적절한 센터 모드 선택
적절한 센터 모드를 선택하는 것은 콘텐츠 제작에 매우 중요합니다. 이 문서에서는 센터 모드를 얻고 수정하는 방법과, 적절한 센터 모드를 고르는 방법을 설명합니다.
시작하기 전에
- AR Session 简介를 통해 session의 기본 개념, 구성, 워크플로를 이해하세요.
- AR Session 的中心模式를 통해 센터 모드의 기본 개념과 씬 안의 물체 움직임에 미치는 영향을 이해하세요.
사용 가능한 센터 모드 얻기
session이 실행 중일 때는 현재 session에서 사용할 수 있는 센터 모드만 Inspector 패널의 Center 드롭다운에 표시됩니다. session이 시작되지 않았다면 모든 센터 모드가 표시됩니다.

이 그림은 에디터에서 CameraDeviceFrameSource를 사용할 때 session에서 사용할 수 있는 센터 모드를 보여 줍니다.
스크립트에서는 session이 assemble에 성공한 뒤 ARSession.AvailableCenterMode 속성을 통해 현재 session에서 사용 가능한 센터 모드 목록을 얻을 수 있습니다.
예를 들어 아래 코드는 어떤 센터 모드가 현재 session에서 사용 가능한지 확인하는 방법을 보여 줍니다.
if (Session.AvailableCenterMode.Contains(mode))
{
// mode는 현재 session에서 사용 가능
}
센터 모드 수정
Inspector 패널을 열고 Center 드롭다운에서 원하는 센터 모드를 선택하세요.

스크립트에서는 ARSession.CenterMode 속성으로 센터 모드를 바꿀 수 있습니다.
예를 들어 아래 코드는 사용 가능한 센터 모드를 순서대로 바꾸는 방법을 보여 줍니다.
while (true)
{
Session.CenterMode = (ARSession.ARCenterMode)(((int)Session.CenterMode + 1) % Enum.GetValues(typeof(ARSession.ARCenterMode)).Length);
if (Session.AvailableCenterMode.Contains(Session.CenterMode)) { break; }
}
session은 매 프레임 업데이트할 때 현재 센터 모드가 유효한지 확인합니다. 유효하면 새 센터 모드를 바로 사용하려고 시도합니다.
위 영상에서는 session이 처음에 FirstTarget 모드를 사용하며, 중심 물체는 크리스마스 트리(연한 파란 점군)입니다. 이후 센터 모드를 수동으로 Camera로 바꾸면 중심 물체가 카메라(파란 원뿔)로 바뀝니다. 자세한 설명은 AR Session 的中心模式를 참고하세요.
수정한 센터 모드가 현재 session에서 유효하지 않으면, CenterMode 속성은 자동으로 첫 번째 사용 가능한 센터 모드(보통 FirstTarget 또는 SessionOrigin)로 바뀌고 로그에 경고 한 줄이 출력됩니다.
Center mode {Value} is unavailable in this session, reset to {NewValue}.
센터 모드 고르기
현실 세계의 물체와 맞추는 것은 AR 콘텐츠 제작의 핵심이며, 센터 모드는 씬 안의 다른 물체 위치와 방향을 계산할 때 기준이 되는 물체를 결정합니다. 따라서 적절한 센터 모드를 고르는 것이 매우 중요합니다.
일반적인 권장
많은 경우 FirstTarget 또는 SpecificTarget을 target 중심으로 쓰는 것이 콘텐츠 제작에 더 편합니다. 그러면 target 아래에 둔 콘텐츠의 기준점이 안정적으로 유지되고, XR Origin이나 camera의 이동에 의해 불필요한 영향을 받지 않습니다(예: 물리 시스템 계산 영향). 다만 이것이 절대적인 것은 아닙니다.
어떤 걸 골라야 할지 모르겠다면 기본값인 FirstTarget을 사용하세요.
대부분의 AR 기능은 오차가 있고, 실행 중 계속 그 오차를 보정합니다. 그래서 현실 세계에서 정지한 것처럼 보이는 물체(예: sparse spatial map의target과 motion tracking의XR Origin)도 가상 공간에서는 상대적으로 움직일 수 있습니다. 이 경우target을 중심으로 두는 편이 제작 의도에 더 맞습니다.여러
target을 동시에 추적하는 경우
이 경우에도 계산 오차 때문에 현실 세계에서 서로 정지해 있어도target사이에 상대적인 움직임이 생길 수 있습니다. 어떤 물체를 중심으로 둘지는 실제 필요에 따라 판단해야 하며, 보통 FirstTarget가 더 적합합니다.SessionOrigin을 쓰는 경우
SessionOrigin은 motion tracking만 동작하는 씬에 적합합니다. 이때XR Origin이 유일한 기준점입니다. 헤드셋 제조사가 motion tracking 기준점을 올바르게 구현하지 않은 특수한 경우에도 사용합니다. 이때는 Unity 월드 원점을 강제로 쓰기 위해 SessionOrigin을 사용해야 합니다.Camera의 사용 시나리오
Camera는 물리 카메라가 움직이지 않는 씬(예: 고정 카메라를 쓰는 카드형 AR)에 더 적합합니다. 이 경우 콘텐츠 제작이 더 쉽습니다.
AR 기능별로 자주 쓰는 센터 모드
일부 AR 기능을 단독으로 사용할 때는 특정 센터 모드가 더 자주 쓰입니다. 아래 표는 기능별로 흔히 사용하는 센터 모드를 보여 줍니다.
| 기능 | 자주 쓰는 센터 모드 |
|---|---|
| Mega | FirstTarget 또는 SpecificTarget |
| Motion tracking | SessionOrigin |
| Plane detection | SessionOrigin |
| Sparse spatial map | FirstTarget 또는 SpecificTarget |
| Dense spatial map | SessionOrigin |
| Surface tracking | FirstTarget 또는 SpecificTarget |
| Image tracking | FirstTarget, SpecificTarget, 또는 Camera |
| Cloud image recognition | FirstTarget, SpecificTarget, 또는 Camera |
| Object tracking | FirstTarget, SpecificTarget, 또는 Camera |
여러 기기에서 고려할 점
여러 기기용 AR 앱을 개발할 때는 각 기기의 센터 모드 지원을 고려해야 합니다.
- 휴대폰과 태블릿만 다루는 경우 보통 큰 문제는 없습니다. SessionOrigin을 사용해야 한다면 motion tracking이 동작하는지 확인하세요.
- 헤드셋을 써야 한다면 특히 주의해야 합니다.
- 유효 센터 모드를 참고해 사용할 기기가 어떤 센터 모드를 지원하는지 확인하세요. 서드파티 확장을 사용한다면 그 확장이 쓰는 OriginType도 확인하세요.
- Rokid 기기에서는 가능하면 UXR을 쓰지 마세요. XRI를 쓰면 대부분의 센터 모드를 사용할 수 있습니다.
- FirstTarget과 SpecificTarget을 지원하지 않는 헤드셋에서는, Mega나 image tracking 같은 대부분의 콘텐츠가 Unity 세계 좌표계에 대해 정지 상태를 유지할 수 없다는 점에 유의하세요.
모든 센터 모드에서 올바르게 보이는 콘텐츠
경고
Unity AR에서는 Unity 세계 좌표계에 있고 session 구성 요소에 맞춰 transform을 조정하지 않은 객체는 올바르게 보이지 않을 수 있습니다.
세계 좌표계에 모델을 두면 위치와 방향이 현실 세계의 어떤 물체와도 대응하지 않을 수 있습니다. 결과가 우연히 정상처럼 보일 수도 있고, 공중에 떠 있거나 이리저리 움직이는 것처럼 보일 수도 있습니다.
어떤 센터 모드에서도 콘텐츠가 올바르게 보이게 하려면 다음 방법이 맞습니다.
- 표시할 콘텐츠를 항상 해당
target노드 아래에 두거나, XR Origin의 움직임을 따라가야 한다면XR Origin노드 아래에 둡니다 - 또는 콘텐츠를
target이나XR Origin에 수동으로 맞추되, ARSession.PostSessionUpdate 이벤트 후에 수행합니다
참고
Unity의 일부 기능은 월드 좌표계에서만 동작하므로(예: 물리 시스템), 이것만으로 모든 요소가 완벽히 동작한다고 보장할 수는 없습니다. 적절한 센터 모드를 고르는 일은 여전히 중요합니다.