Demo

유니버설 렌더 파이프라인 프로젝트에 VR 지원을 추가하는 방법

RYAN CASSELL Software Quality Engineer
Jun 14, 2023|15 분
유니버설 렌더 파이프라인 프로젝트에 VR 지원을 추가하는 방법
이 웹페이지는 이해를 돕기 위해 기계 번역으로 제공됩니다. 기계 번역으로 제공되는 콘텐츠에 대한 정확도나 신뢰도는 보장되지 않습니다. 번역된 콘텐츠의 정확도에 관해 의문이 있는 경우 웹페이지의 공식 영어 원문을 참고해 주시기 바랍니다.

유니버설 렌더 파이프라인(URP)을 기반으로 Unity 타이틀을 개발하면 렌더링 설정 변경을 최소화하면서 다양한 플랫폼에서 지원된다는 이점이 있습니다. 프로젝트는 모바일 기기부터 콘솔, PC, 심지어 VR에 이르기까지 모든 플랫폼에서 실행할 수 있습니다.

VR 개발을 해본 적이 없는 사람이라면 어디서부터 시작해야 할지 막막할 수 있습니다. 이제 막 프로젝트를 시작했거나 다른 플랫폼에 퍼블리시한 기존 URP 프로젝트가 있는 경우, 최소한의 노력으로 여러 VR 플랫폼에서 실행할 수 있도록 VR 지원을 추가하는 단계를 살펴봅니다.

올바른 패키지 추가하기

모든 VR Unity 프로젝트에 필요한 것 중 하나는 XR 플러그인 관리 패키지입니다. 이 패키지를 사용하면 메타 퀘스트와 매직 리프부터 PlayStation®VR2(PS VR2)에 이르기까지 원하는 VR 플랫폼에 맞게 프로젝트를 쉽게 구성할 수 있습니다.

또 다른 유용한 패키지는 XRI(XR 인터랙션) 툴킷입니다. 이 패키지는 텔레포트, 스냅 턴 등 대부분의 VR 타이틀에서 흔히 볼 수 있는 이동 옵션을 구현하는 프리팹을 제공하여 설정 시간을 단축합니다. 이 블로그에서 XRI 패키지가 제공하는 옵션에 대해 자세히 알아보세요.

프로젝트에 이러한 패키지를 추가하려면 창 메뉴를 열고 패키지 관리자를 클릭합니다. 패키지 관리자 창에서 '패키지'를 클릭합니다: 프로젝트에서" 드롭다운을 클릭하여 옵션을 확장한 다음 "Unity 레지스트리" 옵션을 클릭하여 패키지 관리자가 사용 가능한 모든 패키지를 나열하도록 합니다.

유니티는 많은 패키지를 지원하므로 패키지 관리자 창의 검색창에 "xr"을 입력하여 목록을 필터링하면 XR 전용 패키지만 표시됩니다. 그런 다음 XR 플러그인 관리 패키지를 클릭한 다음 설치 버튼을 선택하여 프로젝트에 추가합니다. XRI 툴킷 패키지에 대해서도 동일한 프로세스에 따라 추가할 수 있습니다.

패키지 관리자 창에서 설치 버튼을 클릭하여 XR 플러그인 관리 패키지를 설치합니다.

다음으로, XRI 팀에서 제공하는 샘플 에셋을 추가하여 시작해 보겠습니다. 패키지 관리자에서 XR 인터랙션 툴킷 패키지를 클릭한 다음 패키지 세부 정보 패널에서 샘플 탭을 클릭합니다. 그런 다음 스타터 에셋 옆에 있는 임포트 버튼을 클릭하여 VR 동작과 입력 동작의 설정을 간소화할 에셋을 추가합니다.

패키지 관리자 창에서 XR 인터랙션 툴킷 패키지의 샘플 탭을 클릭한 다음 시작 에셋 아래의 임포트 버튼을 클릭하여 해당 에셋을 프로젝트에 추가합니다.

이 패키지를 설치하면 VR 개발의 절반 이상이 완료된 것입니다.

프로젝트에서 특정 플랫폼에 대한 VR 지원 활성화하기

다음으로 타겟팅할 VR 플랫폼을 지정해야 합니다. 이렇게 하려면 프로젝트 설정을 열고 XR 플러그인 관리 탭(패키지 설치 시 포함됨)을 클릭하여 프로젝트에 선택할 수 있는 플러그인 공급자 목록을 확인합니다. 플러그인 제공업체는 VR 플랫폼의 다른 이름입니다. Oculus 또는 Open XR과 같은 옵션을 선택하면 유니티가 해당 플랫폼에 맞는 패키지를 설치합니다.

XR 플러그인 관리 창의 플러그인 제공업체 창에서 타겟팅할 플랫폼을 선택합니다.

일부 XR 플랫폼은 빌드 설정에서 Windows, Mac 및 Linux 빌드 대상을 사용하지만 다른 플랫폼은 다른 대상에서 실행됩니다. 예를 들어 PS VR2용으로 빌드하려면 빌드 타깃을 PlayStation®5(PS5)로 전환해야 하고, 다른 경우에는 Android 또는 iOS로 전환해야 합니다. 개발하는 동안 올바른 빌드 대상으로 전환하여 중요한 오류와 경고를 조기에 발견할 수 있도록 하세요. PS5용 게임을 개발하려면 PlayStation 개발자로 등록해야 한다는 점에 유의하세요.

각 XR 플러그인은 프로젝트가 XR용으로 빌드되도록 올바르게 구성되었는지 확인하기 위한 유효성 검사를 제공합니다. 이를 찾으려면 프로젝트 설정 창으로 이동한 다음 XR 플러그인 관리 탭에서 프로젝트 유효성 검사 탭을 클릭하여 처리해야 할 경고나 오류가 있는지 확인합니다. 대부분의 점검에는 문제를 해결할 수 있는 '수정' 버튼이 포함되어 있습니다.

프로젝트 유효성 검사 창에서 수정하려는 문제 옆에 있는 수정 버튼을 클릭하거나 발견된 모든 문제를 해결하려면 모두 수정 버튼을 클릭합니다.

올바른 플러그인 제공업체를 선택했으면 이제 원하는 VR 플랫폼에 맞게 빌드를 시작할 준비가 된 것입니다. 하지만 기존 플레이어 캐릭터에 VR 컨트롤을 매핑해야 합니다. 바로 이 부분에서 XRI 툴킷에서 제공하는 스타터 에셋이 중요한 역할을 합니다.

VR 플레이어 컨트롤러 추가하기

프로젝트 창에서 샘플/XR 인터랙션 툴킷/2.3.2/스타터 에셋/프리팹 폴더로 이동한 다음, 완전한 XR 오리진 셋업 프리팹을 씬에 드래그합니다. 이 프리팹에는 플레이어 컨트롤러의 VR 입력을 구성하는 데 필요한 모든 컴포넌트가 미리 로드되어 있습니다.

프리팹에는 대부분의 VR 컨트롤러 설정을 처리하는 중첩된 XR 오리진 프리팹이 있습니다. 플레이어의 왼손과 오른손을 나타내는 두 개의 게임 오브젝트와 플레이어가 앉은 모드인지 서 있는 모드인지에 따라 카메라의 움직임을 처리하는 카메라 오프셋 게임 오브젝트에 중첩된 메인 카메라가 있습니다. 완전한 XR 오리진 셋업 프리팹에는 자체 메인 카메라가 포함되어 있으므로 씬에 이미 메인 카메라 오브젝트가 있는 경우 이를 비활성화하여 여러 카메라가 플레이어의 메인 뷰를 한 번에 렌더링하지 않도록 해야 합니다.

전체 XR 오리진 셋업 프리팹을 씬으로 드래그하세요. 프리팹에는 플레이어의 손과 머리를 특정 게임 오브젝트에 매핑하는 자식이 중첩되어 있습니다.

XRI 툴킷에는 액션을 일반적인 VR 컨트롤에 매핑하는 입력 맵도 함께 제공됩니다. 이러한 컨트롤은 대부분의 VR 플랫폼에서 표준으로 사용되므로 메타 퀘스트, 매직 리프, PS VR2 등 다양한 플랫폼에서 입력이 인식되도록 하기 위해 추가 코딩이 필요하지 않습니다. 게임 상태 추적에 중요한 스크립트를 기존 플레이어 컨트롤러에서 새로 추가된 Complete XR Origin Set Up 프리팹에 복사하여 붙여넣어야 합니다. 프리팹의 이름을 VR FPS 컨트롤러와 같이 기억하기 쉬운 이름으로 자유롭게 변경할 수 있습니다.

XRI 디폴트 입력 액션 맵은 대부분의 VR 플랫폼에서 일반적인 상호작용을 매핑하기 위해 XR 오리진 프리팹에서 사용됩니다.

XR 오리진 게임 오브젝트에는 처음에는 꽤 혼란스러울 수 있는 많은 구성 요소가 포함되어 있습니다. XR 오리진 프리팹의 XR 오리진 구성 요소를 다른 모든 XRI 구성 요소의 드라이버로 생각하면 됩니다. 이 기능이 없으면 XR 로코모션이 작동하지 않습니다. 나머지 구성 요소는 특정 XR 이동을 가능하게 하는 제공자입니다. 텔레포트부터 스냅 턴, 두 손으로 표면을 잡고 몸을 끌어당기는 등 다양한 유형의 VR 동작에 해당합니다.

XR 오리진 프리팹의 로코모션 값을 원하는 대로 조정하는 방법을 알아보려면 문서를 참조하세요. 하지만 처음 시작하는 경우에는 기본값을 사용하는 것이 좋습니다.

대상 플랫폼의 사양 고려하기

물론 모든 VR 플랫폼이 동일한 것은 아니며, 특히 멀미를 최소화하기 위해 초당 60, 90, 120프레임을 일정하게 유지해야 하는 VR 타이틀의 경우 대상 플랫폼의 하드웨어 사양을 염두에 두는 것이 중요합니다. 이는 최대 눈 해상도를 낮추고, 메인 카메라의 안티 에일리어싱 옵션을 조정하고, 구운 조명을 선호하는 다이내믹 라이트의 수를 줄이고, 게임 오브젝트에 사용되는 알파 투명도를 줄이고, 플레이어가 가까이 있을 때만 더 높은 지오메트리 버전을 렌더링하도록 게임 오브젝트의 LOD 값을 조정하는 방식으로 달성할 수 있습니다. 더 많은 제안 사항은 그래픽 성능 최적화에 대한 가이드를 참조하세요.

좋은 소식은 각 플랫폼에 지정한 화질 수준에 따라 다양한 화질 설정 간에 매우 쉽게 전환할 수 있다는 것입니다. 프로젝트 설정 창의 퀄리티 탭에서 각 플랫폼을 최대한 활용할 수 있도록 고유한 렌더러, 앤티 앨리어싱, LOD 및 조명 설정을 설정하는 퀄리티 레벨을 생성하고 사용자 지정할 수 있습니다. 화질 설정 조정에 대해 자세히 알아보세요.

VR 설정 테스트

이제 프로젝트가 원하는 VR 플랫폼을 타겟팅하도록 구성되었으니, 프로젝트에 새로 추가된 XR 릭을 테스트할 차례입니다. VR 테스트에는 두 가지 권장 방법이 있습니다. XRI 툴킷의 XR 디바이스 시뮬레이터를 사용하여 에디터에서 설정을 테스트하거나 플레이어를 빌드하여 디바이스에서 실행하는 것입니다.

유니티에는 플레이 모드일 때 에디터의 게임 뷰에서 XR 컨트롤을 시뮬레이션할 수 있는 XR 디바이스 시뮬레이터라는 편리한 툴이 있습니다. 프로젝트를 빌드하지 않고도 로케이션 설정을 테스트하여 시간을 절약할 수 있습니다. 프로젝트에 XR 디바이스 시뮬레이터를 추가하려면 패키지 관리자 창을 열고 XRI 툴킷 패키지로 돌아가서 샘플 탭을 클릭한 다음 샘플 에셋 아래에서 XR 디바이스 시뮬레이터 옆에 있는 임포트 버튼을 클릭합니다.

패키지 관리자에서 XR 인터랙션 툴킷 패키지를 클릭하고 샘플 탭을 클릭한 다음 XR 디바이스 시뮬레이터 옆에 있는 임포트 버튼을 클릭하여 프로젝트에 추가합니다.

설치가 완료되면 프로젝트 설정 창을 열고 XRI 툴킷 탭을 클릭합니다. 이 탭에서 '장면에서 XR 기기 시뮬레이터 사용' 확인란을 활성화하여 플레이 모드로 전환할 때 런타임에 XR 기기 시뮬레이터를 추가합니다. XR 디바이스 시뮬레이터 프리팹을 프로젝트 창에서 씬으로 바로 드래그 앤 드롭할 수도 있습니다.

프로젝트 설정의 XR 인터랙션 툴킷 탭에서 "씬에서 XR 디바이스 시뮬레이터 사용" 체크박스를 활성화하여 플레이 모드로 전환할 때 선택한 XR 디바이스 시뮬레이터 프리팹의 인스턴스를 추가합니다.

이제 에디터에서 플레이 모드로 들어가면 WASD와 마우스 컨트롤을 사용하여 XR 릭을 움직이고 Tab 키를 눌러 모든 컨트롤, 왼손만 또는 오른손만 움직이도록 전환할 수 있습니다. 실제 VR 입력과 1:1로 일치하지는 않지만, 동작 설정이 예상대로 작동하는지 바로 테스트하는 데 도움이 됩니다.

프로젝트를 빌드하기 전에 XRI 툴킷 프로젝트 설정 창에서 "씬에서 XR 기기 시뮬레이터 사용" 확인란을 비활성화하거나 씬에서 XR 기기 시뮬레이터를 비활성화/삭제해야 한다는 점만 기억하세요. 그렇지 않으면 VR 컨트롤이 기기에서 제대로 작동하지 않습니다. 이는 XR 디바이스 시뮬레이터가 마우스와 키보드 또는 게임 컨트롤러의 VR 입력을 시뮬레이션하고 실제 VR 컨트롤러의 입력은 무시하기 때문입니다.

XR 디바이스 시뮬레이터의 실제 사용 예시

XR 릭을 테스트하는 두 번째 방법은 대상 플랫폼에서 간단히 빌드하고 실행하는 것입니다. Unity 빌드를 실행하기 위한 각 XR 디바이스의 설정은 고유하므로 최신 정보는 개발 머신에 연결하는 방법에 대한 설명서를 참조하세요. 디바이스가 연결되면 빌드 설정 창에서 빌드 및 실행을 선택하여 대상 플랫폼에 맞는 빌드를 생성하고 디바이스에 로드합니다.

디바이스에서 빌드가 실행된 후에는 입력을 직접 테스트하여 무엇이 작동하고 무엇이 작동하지 않는지 확인할 수 있습니다. 유일한 제한은 빌드가 완료될 때까지 기다렸다가 테스트할 수 있는 디바이스가 있어야 한다는 것입니다.

이 단계와 포비티드 렌더링 설정의 약간의 조정만으로 GDC 2023에서 선보인 새로운 URP 템플릿의 일본 정원 씬을 PS VR2에서 실행할 수 있었습니다.

이 퀵 가이드를 통해 프로젝트에 VR 지원을 추가하는 데 도움이 되길 바랍니다. VR 설정에 대해 혼란스러운 부분이 있다면 유니티의 XR용 프로젝트 구성 가이드를 검토하여 자세한 내용을 확인할 수 있습니다.

XR 팀과 URP 팀은 여러 플랫폼에 대한 개발이 가능한 한 간단하도록 하기 위해 열심히 노력하고 있습니다. 유니버설 렌더 파이프라인 피드백은 URP 포럼에서, XR 피드백은 XR 포럼에서 공유해 주세요. 현재 진행 중인 참호 속 기술시리즈의 일환으로 향후 유니티 개발자의 기술 블로그를 기대해 주세요.