Unity의 세계 잠금 및 공간 앵커

세계 잠금 도구 영웅 이미지

홀로그램을 제 위치에 유지하거나, 사용자와 함께 이동하거나, 경우에 따라 다른 홀로그램을 기준으로 배치하는 것은 Mixed Reality 애플리케이션을 만드는 데 중요한 부분입니다. 이 문서에서는 World Locking Tools를 사용하는 권장 솔루션을 안내하지만 Unity 프로젝트에서 공간 앵커를 수동으로 설정하는 방법도 설명합니다. 코드를 시작하기 전에 Unity가 자체 엔진에서 좌표 공간 및 앵커를 처리하는 방법을 이해하는 것이 중요합니다.

세계적 크기 조정 좌표계

오늘날 게임, 데이터 시각화 앱 또는 가상 현실 앱을 작성할 때 일반적인 방법은 다른 모든 좌표가 안정적으로 다시 매핑할 수 있는 하나의 절대 세계 좌표계를 설정하는 것입니다. 이 환경에서는 항상 해당 세계의 두 개체 간의 관계를 정의하는 안정적인 변환을 찾을 수 있습니다. 이러한 개체를 이동하지 않은 경우 상대 변환은 항상 동일하게 유지됩니다. 이러한 종류의 전역 좌표계는 모든 기하 도형을 미리 알고 있는 순수 가상 세계를 렌더링할 때 쉽게 파악할 수 있습니다. 오늘날 방 규모 VR 앱은 일반적으로 이러한 종류의 절대 방 크기 조정 좌표계를 층의 원점으로 설정합니다.

반면, HoloLens 같은 테더링되지 않은 혼합 현실 디바이스는 전 세계에 대한 동적 센서 기반의 이해를 가지고 있으며, 건물 전체 층에서 여러 미터를 걸으며 사용자의 주변 시간에 따른 지식을 지속적으로 조정합니다. 세계적 규모의 경험에서 모든 홀로그램을 순진한 고정 좌표계에 배치하면 이러한 홀로그램은 세계를 기반으로 하거나 서로를 기준으로 시간이 지남에 따라 드리프트됩니다.

예를 들어 헤드셋은 현재 전 세계의 두 위치가 4미터 떨어져 있다고 판단한 다음, 나중에 위치를 3.9미터 떨어져 있다는 것을 알게 되며 이러한 이해를 구체화할 수 있습니다. 처음에 홀로그램이 단일 고정 좌표계에서 4미터 떨어진 위치에 배치된 경우 그 중 하나는 항상 실제 세계에서 0.1미터 떨어져 표시됩니다.

사용자가 모바일일 때 실제 세계에서 홀로그램의 위치를 유지하기 위해 Unity에 공간 앵커를 수동으로 배치할 수 있습니다. 그러나 가상 세계 내에서 자체 일관성이 없어지게 됩니다. 서로 다른 앵커는 지속적으로 서로 관련해서 이동하며 전역 좌표 공간을 통해서도 이동합니다. 이 시나리오에서는 레이아웃과 같은 간단한 작업이 어려워지고 물리학 시뮬레이션에 문제가 있습니다.

World Locking Tools는 사용자가 이동할 때 가상 장면 전체에 분산된 공간 앵커의 내부 공급으로 단일 고정 좌표계를 안정화하여 두 세계의 최고를 제공합니다. 도구는 카메라의 좌표를 분석하고 해당 공간 앵커는 모든 프레임을 고정합니다. 사용자 머리 좌표의 수정 사항을 보정하기 위해 전 세계의 모든 좌표를 변경하는 대신, 도구는 머리의 좌표를 수정하기만 합니다.

세계 잠금 방법 선택

  • 모든 홀로그램 위치 요구에 World Locking Tools를 사용하는 것이 좋습니다.
    • World Locking Tools는 가상 세계 표식과 실제 표식 간의 표시 불일치를 최소화하는 안정적인 좌표계를 제공합니다. 다시 말해서, 각 개체 그룹을 그룹의 개별 앵커로 잠그지 않고 앵커의 공유 풀을 통해 전체 장면을 세계로 잠급니다.
    • World Locking Tools는 공간 앵커의 모든 생성 및 관리를 내부적으로 자동으로 처리합니다. 홀로그램을 세계 잠금 상태로 유지하기 위해 ARAnchorManager 또는 WorldAnchor와 상호 작용할 필요가 없습니다.
  • OpenXR 또는 Windows XR 플러그 인을 사용하는 Unity 2019/2020의 경우ARAnchorManager를 사용해야 합니다.
  • 이전 Unity 버전 또는 WSA 프로젝트의 경우 WorldAnchor를 사용해야 합니다.

세계 잠금 설정

새 Mixed Reality 기능 도구를 사용하여 World Locking Tools를 설치하는 것이 좋습니다. 아래 링크에서 Mixed Reality 기능 도구를 다운로드했으면 World Locking Tools 섹션에서 최신 버전의 WLT Core를 선택합니다.

World Locking Tools가 선택된 Mixed Reality 기능 도구 기능 선택 창

자동화된 설정

프로젝트를 진행할 준비가 되면 Mixed Reality World Locking Tools 에서 장면 구성 유틸리티를 실행합니다.

Mixed Reality Toolkit 메뉴가 선택된 Unity 편집기

중요

장면 구성 유틸리티는 언제든지 다시 실행될 수 있습니다. 예를 들어 AR 대상이 레거시에서 XR SDK로 변경된 경우 다시 실행해야 합니다. 장면을 이미 제대로 구성한 경우 유틸리티를 실행해도 아무 효과가 없습니다.

시각화 도우미

초기 개발 중에 시각화 도우미를 추가하면 WLT가 제대로 설정되고 작동하는지 확인하는 데 도움이 될 수 있습니다. 프로덕션 성능을 위해 제거하거나 어떤 이유로든 더 이상 필요하지 않은 경우 시각화 도우미 제거 유틸리티를 사용하여 제거할 수 있습니다. 시각화 도우미에 대한 자세한 내용은 도구 설명서에서 확인할 수 있습니다.

영구 세계 잠금

공간 앵커는 애플리케이션 세션 간의 실제 공간에 홀로그램을 저장합니다. HoloLens 앵커 저장소에 저장되면 다른 세션에서 찾아서 로드할 수 있으며 인터넷에 연결되지 않은 경우 이상적인 대체(fallback)입니다.

중요

로컬 앵커는 디바이스에 저장되는 반면, Azure Spatial Anchors는 클라우드에 저장됩니다. Azure Cloud Services를 사용하여 앵커를 저장하려는 경우 Azure Spatial Anchors 통합 과정을 안내하는 문서를 참조하세요. 로컬 및 Azure 앵커는 동일한 프로젝트에서 충돌 없이 사용할 수 있습니다.

기본적으로 World Locking Tools는 로컬 공간 앵커의 지속성을 지원하는 디바이스의 세션에서 실제 세계를 기준으로 Unity의 좌표계를 복원합니다. 홀로그램이 애플리케이션을 종료하고 다시 실행한 후 실제 세계의 동일한 위치에 나타나도록 하려면 홀로그램이 동일한 자세만 다시 가져야 합니다.

Unity 검사기에서 세계 잠금 컨텍스트 구성 요소

애플리케이션에 더 세부적인 제어가 필요한 경우 검사기에서 자동 저장자동 로드를 사용하지 않도록 설정하고 설명서의 지속성 섹션에설명된 대로 스크립트에서 관리되는 지속성을 사용할 수 있습니다.

로컬 앵커 지속성은 현재 HoloLens 디바이스 제품군에서만 지원됩니다. 그러나 Android 및 iOS뿐만 아니라 HoloLens 세션 간에 좌표 공간의 지속성과 디바이스 간에 좌표 공간을 공유하는 것은 Azure Spatial Anchors 통합을 통해 지원됩니다. Azure Spatial Anchors 함께 World Locking Tools를 사용하는 다양한 추가 정보 및 샘플이 있습니다.

좌표 공간 공유

세계 잠금 좌표 공간을 공유하려면 포괄적인 공유 환경 설명서 를 확인하세요.

다음 개발 검사점

앞에서 설명한 Unity 개발 검사점 여정을 수행하는 경우 Mixed Reality 핵심 구성 요소에 대해 탐색해야 합니다. 여기에서 다음 구성 요소로 진행할 수 있습니다.

또는 Mixed Reality 플랫폼 기능 및 API로 이동합니다.

언제든지 Unity 개발 검사점으로 돌아갈 수 있습니다.

참고 항목