Unity의 월드 잠금 및 공간 앵커

세계 잠금 도구 영웅 이미지

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

세계 크기 조정 좌표계

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

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

예를 들어, 헤드셋은 현재 전 세계 두 위치가 4미터 떨어져 있다고 생각한 다음 나중에 그 이해를 구체화하여 위치가 실제로 3.9미터 떨어져 있다는 것을 알게 됩니다. 그 홀로그램이 처음에 단일 경직된 좌표계에서 4미터 떨어져 배치되었다면, 그 중 하나는 항상 실제 세계에서 0.1미터 떨어진 곳에서 나타납니다.

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

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

월드 잠금 방법 선택

가능하면 홀로그램 위치 지정 에 World Locking Tools 를 사용합니다.

World Locking Tools 는 가상 및 실제 표식 간의 가시적 불일치를 최소화하는 안정적인 좌표계를 제공합니다. World Locking Tools는 그룹의 개별 앵커를 사용하여 개체의 각 그룹을 잠그지 않고 전체 장면을 공유 앵커 풀로 전 세계에 잠급니다.

World Locking Tools는 공간 앵커의 내부 생성 및 관리를 자동으로 처리합니다. 홀로그램을 월드 잠금 상태로 유지하기 위해 ARAnchorManager 또는 WorldAnchor와 상호 작용할 필요가 없습니다.

  • OpenXR 또는 Windows XR 플러그 인을 사용하는 Unity 2019/2020의 경우 ARAnchorManager를 사용합니다.
  • 이전 Unity 버전 또는 WSA 프로젝트의 경우 WorldAnchor를 사용합니다.

월드 잠금 설정

World Locking Tools 사용을 시작하려면 Mixed Reality 기능 도구를 다운로드합니다. 기본 사항에 대한 자세한 내용은 개요, 빠른 시작 및 기타 유용한 topics 대한 링크는 기본 World Locking Tools 설명서 페이지를 참조하세요.

자동화된 설정

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

Mixed Reality 도구 키트 메뉴가 선택된 Unity 편집기

중요

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

시각화 도우미

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

영구 월드 잠금

공간 앵커는 애플리케이션 세션 간의 실제 공간에서 홀로그램을 저장합니다. HoloLens 앵커 저장소에 저장되면 공간 앵커를 찾아 다른 세션에서 로드할 수 있으며 인터넷 연결이 없을 때 이상적인 대체 기능입니다.

중요

로컬 앵커는 디바이스에 저장되는 반면, Azure Spatial Anchors는 클라우드에 저장됩니다. 충돌 없이 동일한 프로젝트에 로컬 및 Azure 앵커를 사용할 수 있습니다. 앵커를 저장하기 위해 Azure 클라우드 서비스를 통합하는 방법에 대한 자세한 내용은 Azure Spatial Anchors를 참조하세요.

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

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

애플리케이션에 더 세부적인 제어가 필요한 경우 검사기에서 자동 저장자동 로드 를 사용하지 않도록 설정하고 스크립트에서 지속성을 관리할 수 있습니다. 자세한 내용은 공간 좌표계 유지를 참조하세요.

World Locking Tools는 HoloLens 디바이스에서만 로컬 앵커 지속성을 지원합니다. Android, iOS 및 HoloLens 디바이스의 경우 Azure Spatial Anchors와 통합하여 세션 및 디바이스에서 좌표 공간의 지속성 및 공유를 지원합니다. Azure Spatial Anchors와 함께 World Locking Tools를 사용하는 자세한 내용 및 샘플은 ASA(Azure Spatial Anchors)와 결합된 WLT(World Locking Tools)를 참조하세요.

다음 단계

월드 잠금 좌표 공간을 공유합니다.

공간 매핑에 대해 알아봅니다.

Unity 개발 검사점으로 돌아가기.

추가 정보