Version: 2022.3
언어: 한국어
Unity의 AR 개발
XR 아키텍처

Unity에서 VR 개발

VR 개발은 Unity의 모든 실시간 3D 개발과 공통된 워크플로와 디자인 고려 사항을 공유합니다.그러나 다음과 같은 차별화 요소가 있습니다.

  • 더 많은 사용자 입력: VR 기기는 “기존” 버튼과 조이스틱 컨트롤러 외에도 공간 헤드, 컨트롤러, 손 및 손가락 트래킹(경우에 따라)을 제공합니다.
  • 환경과 더욱 “밀접한” 상호작용: 더 많은 입력 가능성과 함께 VR은 일반적인 3D 게임 및 애플리케이션보다 환경과 훨씬 더 밀접하고 “물리적인” 상호작용에 대한 기대치가 높습니다.사용자는 환경에서 사물을 집어 들고 오브젝트와 상호작용할 수 있기를 기대합니다.헤드 트래킹을 사용하면 카메라가 벽과 기타 환경의 경계에 훨씬 더 가까이 다가갈 수 있으며, 심지어 벽을 통과할 수도 있습니다.
  • 사용자 편의성 문제: 카메라의 움직임이 머리의 움직임과 일치하지 않을 때 VR에서 멀미를 경험하는 사람이 많습니다.높은 프레임 속도를 유지하고, 사용자가 편안한 모드를 선택할 수 있도록 다양한 로코모션 옵션을 제공하며, 사용자의 헤드 트래킹과 독립적으로 카메라가 움직이지 않도록 하여 멀미의 원인을 완화할 수 있습니다.

VR 개발을 시작하려면 XR 플러그인 관리 시스템을 사용하여 지원하려는 기기에 대한 XR 공급자 플러그인을 설치하고 활성화하십시오.자세한 내용은 XR 프로젝트 설정을 참조하십시오.

기본 VR 씬 요소

기본 VR 씬에는 트래킹 데이터의 3D 원점을 정의하는 XR 원점이 있어야 합니다.이 게임 오브젝트 및 컴포넌트 컬렉션에는 메인 씬 카메라와 사용자의 컨트롤러를 나타내는 게임 오브젝트도 포함되어 있습니다.기본 VR 씬 설정에 대한 지침은 XR 씬 설정을 참조하십시오.

기본 사항 외에도 일반적으로 사용자가 이동하고 생성한 3D 월드와 상호작용할 수 있는 방법이 필요합니다.XR 인터랙션 툴킷은 오브젝트 선택 및 잡기 등의 상호작용을 생성하기 위한 컴포넌트를 제공합니다.또한 커스터마이징할 수 있는 로코모션 시스템도 제공합니다.XR 인터랙션 툴킷과 함께 또는 대신 입력 시스템을 사용할 수 있습니다.

VR 패키지

Unity에서 VR을 개발하는 데 사용되는 대부분의 기능 및 API는 패키지를 통해 제공됩니다.이러한 패키지에는 다음이 포함됩니다.

VR 공급자 플러그인

Unity에서 VR 앱을 빌드하려면 XR 플러그인 관리 시스템을 사용하여 지원하려는 기기에 대한 공급자 플러그인을 추가하고 활성화하십시오.지침은 XR 프로젝트 설정을 참조하십시오.

Unity에서 지원하는 VR 공급자 플러그인에는 다음이 포함됩니다.

  • Oculus Rift, Meta Quest 2 및 Quest Pro용 Oculus
  • Meta 헤드셋, Vive 헤드셋, Valve SteamVR, HoloLens, Windows Mixed Reality 등을 포함한 OpenXR 런타임이 장착된 모든 기기용 OpenXR
  • Sony PS VR 및 PS VR2 기기용 PlayStation VR(등록된 PlayStation 개발자에게만 제공)자세한 내용은 PlayStation 파트너를 참조하십시오.
  • Unity 에디터 플레이 모드 뷰에서 VR 헤드셋을 시뮬레이션하기 위한 Mock HMD

참고:많은 헤드셋 제조업체가 OpenXR 런타임을 표준으로 사용하기 위해 노력하고 있습니다.그러나 이 프로세스는 완료되지 않았으며 OpenXR과 헤드셋 제조업체의 자체 공급자 플러그인 또는 SDK 간에 기능 차이가 있을 수 있습니다.

XR 인터랙션 툴킷

XR 인터랙션 툴킷을 사용하면 VR 애플리케이션을 더 쉽고 빠르게 개발할 수 있습니다.XR 인터랙션 툴킷은 다음을 제공합니다.

XR 코어 유틸리티

XR Core Utilities 패키지에는 다른 Unity XR 플러그인 및 패키지에서 사용되는 소프트웨어 유틸리티가 포함되어 있습니다.일반적으로 이 패키지는 프로젝트에 다른 XR 패키지의 종속성으로 설치됩니다.

입력 시스템

Unity Input System 패키지는 VR 컨트롤러 버튼과 조이스틱의 사용자 입력에 대한 액세스를 지원할 뿐만 아니라 XR 트래킹 데이터와 햅틱에 대한 액세스도 제공합니다.Input System 패키지는 XR 인터랙션 툴킷이나 OpenXR 공급자 플러그인을 사용할 경우 필요합니다.

VR 템플릿

Unity의 VR 프로젝트 템플릿은 Unity에서의 가상 현실 개발을 위한 시작점을 제공합니다.템플릿은 프로젝트 설정을 구성하고, 적합한 패키지를 사전 설치하며, 시전 설정된 다양한 예시 에셋이 포함된 샘플 씬을 제공하여 VR에 적합한 프로젝트를 설정하는 방법을 보여줍니다.새 프로젝트를 생성할 때 Unity Hub를 통해 VR 템플릿에 액세스합니다.템플릿을 사용하여 프로젝트를 생성하는 방법에 대한 내용은 새 프로젝트 생성을 참조하십시오.

템플릿 에셋과 샘플 씬 설정 방법에 대한 자세한 내용은 VR 프로젝트 템플릿 소개를 참조하십시오.

핸드 트래킹

핸드 트래킹은 사용자가 손을 사용하여 VR 애플리케이션과 상호작용할 수 있도록 하는 기능입니다.핸드 트래킹은 XR Hands 패키지에서 지원됩니다.

Hands 패키지는 다음을 제공합니다.

  • 표준 손 데이터 모델.
  • 핸드 트래킹 데이터에 액세스하기 위한 API
  • 트랜스폼 세트를 해당 손 조인트에 매핑하고 트래킹 데이터가 수신되면 해당 트랜스폼을 업데이트하는 XR Hand Skeleton Driver 컴포넌트
  • 핸드 트래킹을 획득하거나 잃으면 메시를 활성화하거나 비활성화하는 XR Hand Mesh Controller
  • 핸드 트래킹 API 사용 방법을 보여주는 HandVisualizer 샘플
Unity의 AR 개발
XR 아키텍처