Unity 검색

The next generation of VR gaming on PS5 | Hero image
The next generation of VR gaming on PS5 | Hero image
다루는 주제
공유

Is this article helpful for you?

Thank you for your feedback!

Sony Interactive Entertainment의 차세대 VR 헤드셋 PlayStation® VR2(PS VR2)가 오늘 출시됩니다. 이 블로그 게시글에서는 PS VR2라는 혁신적인 플랫폼을 타게팅한 개발에 사용할 수 있는 최신 툴을 소개합니다. PS VR2를 타게팅하는 게임 개발을 그래픽스와 입력 측면에서 살펴보세요.

PS VR2와 그래픽스

Example of the graphics potential with PS VR2’s 4K resolution

PS VR2는 PS5의 차세대 컴퓨팅과 그래픽스를 활용하여 멋진 고성능 VR 게임의 개발을 지원합니다. 아래에서 설명하는 몇 가지 기술을 사용하면 PS5에서 60Hz, 90Hz, 120Hz로 구동되며 4K 수준의 해상도를 선보이는 게임을 만들 수 있습니다.

먼저 소개할 것은 렌더 파이프라인입니다. 유니티는 VR 개발 시 가급적 URP(유니버설 렌더 파이프라인)를 사용할 것을 권장합니다. URP가 렌더 파이프라인으로서는 최초로 PS VR2 고유의 기능인 포비티드 렌더링(Foveated Rendering)과 시선 추적(Gaze Tracking)을 지원할 것이기 때문입니다. 물론 SRP(스크립터블 렌더 파이프라인), 빌트인 렌더 파이프라인, HDRP(고해상도 렌더 파이프라인)도 사용할 수 있지만, 포비티드 렌더링을 비롯한 일부 기능은 현재 오직 URP에서만 사용할 수 있습니다.

URP는 전반적으로 VR 게임에 매우 적합합니다. 유연하고 손쉽게 사용할 수 있으며 커스터마이징도 가능합니다. 또한 올인원 VR 기기를 포함해 다양한 플랫폼에서 즐길 수 있는 게임을 개발할 때도 유용합니다. SRP를 통해 나만의 커스텀 렌더 파이프라인을 만들 수 있으며, 유니티가 제공하는 광범위한 C# API를 활용하여 게임에 필요한 렌더러를 구현할 수도 있습니다.

또한 PS5는 새로운 NGGC 그래픽스 API를 통해 GPU의 성능을 한층 끌어올립니다. 유니티는 NGGC를 통해 이전에는 사용할 수 없었던 최적화 기술을 PS5에 적용하였습니다. 그뿐만 아니라 렌더링 백엔드 재설계를 통해 다중 코어에서의 효율적인 활용을 지원하는 동시에 GPU 상태 전환을 개선했습니다. 덕분에 에셋이나 게임 코드를 재작성하지 않고도 동일한 수준의 시각적 결과물을 제작하는 데 필요한 CPU, GPU, 메모리 사용량을 줄임으로써 더 효율적인 렌더링이 가능해졌습니다.

포비티드 렌더링

Example of foveated rendering in use in PS VR2

PS VR2에서는 포비티드 렌더링이라는 기술을 활용할 수 있습니다. 이 기술은 씬을 렌더링하는 데 필요한 GPU 워크로드를 줄여 시각적으로 더욱 정확한 VR 게임을 만들 수 있게 해 줍니다. 포비티드 렌더링을 사용하면 주변 부분의 이미지 화질을 낮추어 GPU 성능을 향상하게 됩니다.

시선 추적을 사용해 GPU 렌더링을 최적화하면 PS VR2의 하드웨어 성능을 한 단계 더 끌어올릴 수 있습니다. 시선 추적 정보를 스크린 공간에 투영하면 플레이어가 보는 스크린 영역의 렌더링 품질을 높일 수 있습니다.

포비티드 렌더링과 시선 추적의 목적은 전체 이미지에서 중요한 것으로 판단되는 영역의 화질을 높게 유지하고, 중요성이 비교적 떨어지는 영역에서는 이미지의 해상도를 점진적으로 낮추는 것입니다. 이를 통해 원하는 영역의 이미지 화질을 유지하면서도 일부 렌더 타겟의 크기를 축소할 수 있습니다.

Unity에서는 이러한 작업의 까다로운 설정 과정을 모두 없애, 구체적인 요구 사항에 맞게 포비티드 렌더링을 수행함으로써 이미지 화질과 GPU 성능의 균형을 자유롭게 조정할 수 있도록 했습니다.

이를 통해 표준 스테레오 렌더링을 거친 이미지 화질의 수준에 비해 인지적 차원에서의 화질을 저하하지 않으면서도 PS VR2에서의 포비티드 렌더링 속도를 최대 2.5배까지 높일 수 있습니다. 더 나아가 포비티드 렌더링과 시선 추적을 함께 사용하면 그 속도가 최대 3.6배까지 빨라지는 것으로 나타났습니다. 이러한 결과는 Unity 데모에서 테스트를 진행하여 얻은 이상적인 성능 개선이며, 구체적인 수치는 게임에 따라 다를 수 있습니다.

PS VR2의 포비티드 렌더링을 활용하면 GPU 사용량을 대폭 절감하면서 인지적으로는 동일한 화질을 구현할 수 있으며, 이를 시선 추적 기술과 함께 사용하면 성능을 한층 더 향상할 수 있습니다.

PS VR2에서의 입력 제어

PS VR2

시선 추적은 그래픽스 성능을 높일 뿐만 아니라 새로운 입력 방법도 제공합니다. 플레이어가 메뉴에서 아이템을 선택하거나, NPC와 상호 작용을 시작하거나, 게임 월드 내의 툴을 사용하는 등의 경험에 시선 추적을 활용할 수 있습니다. 시선 추적은 심지어 게임플레이 메카닉의 핵심이 될 수도 있습니다.

PS VR2에서 시선 추적의 작동 방식은 여타 XR 입력 기기와 거의 동일합니다. 시선에 대한 컴포넌트를 활용하여 양쪽 눈의 위치와 회전의 조합으로 가상 월드의 한 위치를 정의하는 방식입니다. 이를 통해 플레이어가 현재 바라보는 위치를 파악할 수 있습니다.

또한 기본적인 포즈 정보뿐만 아니라 플레이어의 양안 동공 지름과 깜빡임을 활용할 수도 있습니다. 이를 포즈 정보와 결합하여 자신만의 독특한 게임플레이 아이디어와 상호 작용을 구현하면 플레이어와 더욱 긴밀하게 교감할 수 있게 됩니다.

간단한 시선 기반 레티클의 예시를 하나 보여 드리겠습니다.

public class GazeReticle : MonoBehaviour
{
Vector3 m_GazePosition;
Vector3 m_GazeForward;
Quaternion m_GazeRotation;

	// In this script, gazeTracker is driven by a TrackedPoseDriver component wired up to the Position/Rotation
// of the eyeGazePosition and eyeGazeRotation from PSVR2 headset in the Input System Actions.
public GameObject gazeTracker;

void Update()
{
RaycastHit hitInfo;
m_GazePosition = gazeTracker.transform.position;
m_GazeRotation = gazeTracker.transform.rotation;
m_GazeForward = m_GazeRotation * Vector3.forward;
if (Physics.Raycast(m_GazePosition, m_GazeForward, out hitInfo, 10.0f))
{
transform.position = hitInfo.point;
}
}
}

위의 스크립트에서 레티클을 움직이는 gazeTracker 오브젝트를 확인할 수 있는데, 이는 Unity에서 기타 XR 컨트롤러를 추적하는 데 사용할 수 있는 TrackedPoseDriver를 통해 작동합니다. 이 컴포넌트는 Unity의 Input System Action Map의 eyeGazePosition 및 eyeGazeRotation 설정과 연결되어 있습니다. 또한 기존의 Unity 입력 방식을 활용하려는 경우, 시선 추적 처리를 위해 개발된 TrackedPoseProvider도 있습니다.

Sense 컨트롤러

이제 Unity 개발자들은 PS VR2에서만 제공되는 여러 흥미로운 기능이 포함된 Sense 컨트롤러를 사용할 수 있습니다.

손가락 터치 감지 기능은 정전식 터치를 사용하여 플레이어가 실제로 버튼을 누르지 않고 그 위에 손가락을 얹기만 해도 감지해 냅니다. 이러한 컨트롤 방식은 모든 주요 버튼과 아날로그 스틱에 적용할 수 있으므로, 게임플레이 동안 플레이어의 손동작을 더욱 자연스럽게 구현할 수 있게 합니다. 혹은 더 기본적인 방법으로, 플레이어가 컨트롤러를 바라볼 때 손가락의 위치를 '볼 수 있게' 해 주는 손 모델을 구동할 수도 있습니다. 이렇게 하면 플레이어가 특정 버튼을 찾기 위해 주변을 더듬거나 헤드셋을 올릴 필요 없이 게임에 계속 집중하고 몰입할 수 있습니다.

PS VR2는 새로운 시스템에 인사이드-아웃(inside-out) 추적 기술을 적용하여 헤드셋과 컨트롤러 모두에 6개 자유도의 추적 기능을 제공합니다. 이제 표준 Unity XR 스택의 전부는 아니더라도 대부분을 활용할 수 있으므로 다양한 플랫폼에 출시할 수 있는 게임을 더욱 쉽게 개발할 수 있을 것입니다. 유니티는 컨트롤러 자체를 설정할 수 있도록 기존의 Unity Input Manager와 새로운 Input System 패키지를 통해 해당 입력 컨트롤을 추가했습니다.

또한 PS VR2의 SDK를 사용하면 시선 추적과 컨트롤러 입력 외에도 PS VR2 Sense 기술 햅틱을 완벽하게 제어할 수 있습니다. 여기에는 기존의 진동 지원뿐만 아니라 게임플레이의 몰입감을 더하는 오디오 기반 햅틱 피드백도 포함됩니다. 또한 새로운 컨트롤러는 PS5 DualSense 컨트롤러와 동일한 적응적 트리거(Adaptive Triggers)를 포함하고 있으므로, 해당 트리거를 프로그래밍하여 게임 상황에 따라 다양한 피드백을 제공할 수 있습니다. PS VR2에는 컨트롤러 기반 햅틱뿐만 아니라 헤드셋 피드백도 추가되어, 헤드셋을 통해 플레이어에게 전달되는 진동의 조절이 가능합니다. 이는 플레이어에게 특정 이벤트를 알리거나, 혹은 오디오와 결합하여 더욱 생생한 감각적 경험을 구현하는 용도로 사용될 수 있습니다.

유니티는 개발자 여러분이 PS VR2의 입력 및 햅틱을 게임에 유연하게 통합할 수 있도록 지원하고자 많은 노력을 기울여 왔습니다. 향상된 추적 기능과 PS VR2를 위한 표준 Unity XR SDK를 함께 사용하면 XR Interaction Toolkit, 기타 XR SDK 종속 에셋, Unity 에셋 스토어 패키지 및 Unity 패키지 관리자를 통해 사용할 수 있는 기타 패키지 등 Unity XR 스택 전체를 활용할 수 있습니다.

다양한 기능을 활용하여 새로운 게임플레이와 월드 구축의 가능성을 탐색해 보세요.

PS VR2 시작하기

PS VR2는 오늘 출시되었으며, PS VR2용 게임 개발은 Unity 2021 LTS 이상 버전에서 가능합니다. 포비티드 렌더링에는 Unity 2022.2 이상 버전이 필요합니다. 새로운 차원의 성능과 입력 컨트롤을 바탕으로 더욱 몰입감 넘치고 흥미로운 경험을 가져다 줄 헤드셋이 VR 업계에 어떠한 가능성을 선사할지 무척 기대됩니다.

소셜 미디어에서 #MadewithUnity 해시태그를 사용해 여러분의 PS VR2와 PS5 게임을 소개해 주세요. 궁금한 점이 있으신가요? 등록을 완료한 PlayStation 개발자 여러분은 PlayStation 개발자 사이트의 Unity 포럼을 통해 유니티와 소통하실 수 있습니다.

Is this article helpful for you?

Thank you for your feedback!

다루는 주제
관련 게시물