유니티 6 프리뷰 : 게임 및 비주얼 콘텐츠 제작 전반의 기능과 편의성 강화
개발 및 공급 : 유니티
주요 특징 : 렌더링을 위한 URP와 HDRP의 성능 향상, 조명 기능 개선, 풍부한 환경 렌더링의 정확성 향상, 멀티 플랫폼 지원 개선, XR 입력 및 상호작용 간소화, AI를 활용한 동적 런타임 경험 제공 등
유니티 6(Unity 6) 프리뷰 버전(이전 명칭은 2023.3 테크 스트림)은 2024년 출시되는 유니티 6 정식 버전의 개발 사이클에서 마지막 릴리스에 해당하며, 유니티 2023.1과 2023.2 버전에서 릴리스된 기능을 포함한다. 유니티는 2023년 11월 진행된 ‘유나이트’ 이벤트에서 명명 규칙을 업데이트한다고 발표한 바 있다.
유니티 6 프리뷰는 테크 스트림 릴리스처럼 구성되어 있으며, 지원되는 릴리스이므로 탐색 중이거나 프로토타이핑 단계에 있는 프로젝트에서 최신 기능과 업데이트된 기능을 미리 사용해 볼 수 있다. 정식 제작 중인 프로젝트에는 향상된 안정성과 지원이 제공되는 유니티 2022 LTS릴리스를 사용하는 것이 좋다.
렌더링 성능 향상
유니티 6 프리뷰에서는 URP(유니버설 렌더 파이프라인)와 HDRP(고해상도 렌더 파이프라인)의 성능이 향상되어 여러 플랫폼 전반에서 제작 속도를 높일 수 있다. 콘텐츠에 따라 다르지만, CPU 워크로드를 30~50%까지 줄이는 동시에 다양한 플랫폼 전반에서 더 원활하고 빠르게 렌더링할 수 있다.
새로운 GPU 상주 드로어를 사용하면 복잡한 수동 최적화를 거치지 않고도 규모가 크고 풍부한 월드를 효율적으로 렌더링할 수 있다. 고사양 모바일 기기, PC, 콘솔 등의 플랫폼에서 복잡한 대형 신(scene)을 렌더링할 때 게임 오브젝트에 사용되는 CPU 프레임 시간을 50%까지 단축하여 게임을 최적화할 수 있다.
▲ 복잡한 대형 신을 렌더링할 때 게임 오브젝트에 사용되는 CPU 프레임 시간을 50%까지 단축하여 게임을 최적화한다.
GPU 상주 드로어와 함께 GPU 오클루전 컬링 또한 프레임마다 오버드로되는 양을 줄여 게임 오브젝트의 성능을 향상시킨다. 즉, 렌더러가 보이지 않는 오브젝트를 드로하느라 리소스를 낭비하지 않게 한다.
GPU 오클루전 컬링은 GPU 기반 접근 방식을 통해 신에서 보이지 않는 오브젝트를 렌더링하지 않게 한다.
STP(시공간 포스트 프로세싱)로 GPU 성능을 최적화하고 시각적 품질과 런타임 성능을 높일 수 있다. STP는 저해상도에서 렌더링된 프레임을 정확도 손실 없이 업스케일링하도록 설계되어, 플랫폼에 다양한 성능 수준과 화면 해상도로 일관적인 고품질 콘텐츠를 제공할 수 있다. STP는 데스크톱과 콘솔 전반에서, 무엇보다도 컴퓨팅 가능한 모바일 기기에서 URP 및 HDRP 모두와 호환된다.
▲ STP는 GPU 성능을 최적화하고 시각적 품질과 런타임 성능을 높인다.
URP용 렌더 그래프(Render Graph)는 새로운 렌더링 프레임워크 및 API로, 렌더 파이프라인의 유지 관리와 확장을 간소화하고 렌더링 효율성과 성능을 높인다. 최신 시스템에는 특히 타일 기반(모바일) GPU에서 메모리 대역폭 사용량과 에너지 소비를 줄이기 위한 네이티브 렌더 패스의 자동 병합 및 생성 같은 핵심 최적화 기능이 다양하게 추가되었다.
또한 새로운 렌더 그래프 API를 통해 커스텀 패스 추가 워크플로를 간소화할 수 있기 때문에, 사용자는 커스텀 래스터와 커스텀 패스로 렌더 파이프라인을 확장하고 새로운 컨텍스트 컨테이너를 사용하여 필요한 파이프라인 리소스에 모두 안전하게 액세스할 수 있다.
마지막으로, 새로운 렌더 그래프 뷰(Render Graph Viewer) 툴을 사용해 엔진의 렌더 패스 생성과 프레임 리소스 사용량을 에디터 내에서 직접 분석하고, 렌더 파이프라인 디버깅과 최적화 과정을 간소화할 수 있다.
▲ 렌더 그래프 뷰를 사용하여 렌더 파이프라인, 패스, 리소스를 분석한다.
URP의 포비티드 렌더링(Foveated Rendering) API를 사용하면 포비티드 렌더링 수준을 설정하여 사용자 주변의 중거리/원거리 정확도를 낮추는 대신 GPU 성능을 높일 수 있다. 유니티 6 프리뷰에서는 두 가지 새로운 포비티드 렌더링 모드를 사용할 수 있다. 고정 포비티드 렌더링(Fixed Foveated Rendering)의 경우 스크린 공간 중앙 영역의 품질이 높아지고, 시선 추적 포비티드 렌더링(Gazed Foveated Rendering)에서는 시선 추적을 통해 스크린 공간에서 품질을 높여야 할 영역을 결정한다.
포비티드 렌더링 API는 오큘러스 XR(Oculus XR) 플러그인을 사용하는 메타 퀘스트(Meta Quest), 그리고 소니 플레이스테이션 VR2(Sony PlayStation VR2) 플러그인과 호환되며, OpenXR 플러그인에 대한 지원이 곧 추가될 예정이다.
▲ 시선이 집중되는 영역의 품질을 높이는 방법으로 GPU 성능을 향상하여, VR에서 시각적 품질을 높이고 프레임 속도를 개선한다.
HDRP 및 URP에서의 볼륨 프레임워크 향상으로 모든 플랫폼에서 CPU 성능이 최적화되어 저사양 하드웨어에서도 실행이 가능하다. 이제 URP에서도 HDRP처럼 전반적으로 향상된 사용자 인터페이스를 사용하여 전역 볼륨과 품질 수준별 볼륨을 설정할 수 있다. 또한 이제 손쉽게 URP용 커스텀 포스트 프로세싱 효과와 함께 볼륨 프레임워크를 사용하여 커스텀 안개와 같은 효과를 직접 제작할 수 있다.
▲ URP 커스텀 포스트 프로세싱
조명 개선 사항
APV(적응적 프로브 볼륨)는 유니티에서 전역 조명을 구현하는 새로운 방법을 제공한다. 라이트 프로브를 통해 빛을 받는 오브젝트의 저작(authoring) 및 반복 작업(iteration)을 더 간소화했으며, 시간대 시나리오나 스트리밍 등의 새로운 작업을 수행할 수 있다.
유니티 2023.1 및 2023.2 테크 스트림 릴리스에서 제공된 APV의 개발을 기반으로, 유니티 6 프리뷰에서는 탁월한 조명 전환을 구현하기 위해 저작 워크플로 개선, 스트리밍 기능 확장, 제어 및 플랫폼 도달률(Reach) 확장 등의 개선이 이루어졌다.
APV 시나리오 블렌딩을 URP로 확장하여, 낮과 밤을 전환하거나 방에서 불을 켜고 끄는 상황에 대한 베이크된 프로브 볼륨 데이터를 손쉽게 블렌딩할 수 있도록 더 광범위한 플랫폼을 지원한다.
여러 조명 시나리오를 베이크한 다음 런타임에 블렌딩할 수 있다. 이 기능은 프로브 볼륨 데이터에만 적용된다. 반사 프로브, 라이트맵, 광원 위치 또는 강도와 같은 기타 요소는 직접 조정해야 한다.
URP와 HDRP에서 모두 지원하는 APV 스카이 오클루전을 사용하면 가상 환경에 시간대별 조명 시나리오를 적용하여 APV 시나리오 블렌딩에 비해 다양한 컬러 배리에이션으로 하늘의 정적 간접 조명을 구현할 수 있다.
스카이 오클루전을 사용하면 APV 시나리오 블렌딩에 비해 다양한 컬러 배리에이션으로 하늘의 정적 간접 조명을 구현할 수 있다.
이제 APV 디스크 스트리밍이 URP에서 비컴퓨트(non-compute) 경로를 지원하며, AssetBundles 및 Addressables 지원 또한 활성화되었다.
Probe Adjustment Volumes 툴을 활용하여 APV 콘텐츠를 미세 조정하고 빛 번짐 효과를 해결할 수 있다. 이러한 볼륨 내부의 프로브에 대해 샘플 카운트 오버라이드 및 프로브 무효화 등을 조정할 수 있다. 조정 볼륨의 영향을 받지 않는 라이트 프로브는 숨길 수 있고, 이제 영향을 받는 프로브의 프로브 조명 데이터만 미리 확인할 수 있으며, Probe Volume 및 Probe Adjustment Volume 컴포넌트에서 곧바로 베이크할 수 있다.
마지막으로, C# Light Probe Baking API가 추가되어 이제 한 번에 베이크할 프로브의 개수를 제어하여 실행 시간과 메모리 사용량 간의 균형을 맞출 수 있다.
더 정확하고 풍부한 환경
유니티 6 프리뷰는 HDRP에서 프로젝트의 시간대 시나리오를 더 사실적으로 구현할 수 있도록 일몰과 일출의 하늘 렌더링을 개선하였다. 또한 먼 거리의 안개를 보완하기 위해 오존층 지원과 대기 산란이 추가되었다.
커스틱을 샘플링하여 볼류메트릭 광원의 빛줄기를 생성하는수중 볼류메트릭 포그 지원이 추가되어 물의 표현도 개선되었다. 성능 최적화 측면에서는 CPU로 시뮬레이션을 모사하는 대신, 몇 프레임이 지연되며 GPU에서 시뮬레이션을 다시 읽어 오는 옵션이 추가되었다. 혼합 트레이싱 모드가 포함된 투명한 표면 지원도 추가되어, 물과 같은 표면을 터레인이나 초목과 함께 렌더링할 때 레이트레이싱과 스크린 공간 효과를 혼합할 수 있다.
대규모의 동적인 월드를 렌더링하려면 무엇보다 성능이 중요하므로 URP와 HDRP의 SpeedTree 초목 렌더링을 최적화했으며, 앞에서 언급한 새로운 GPU 상주 드로어를 활용한다.
VFX 그래프 아티스트 워크플로
유니티 프리뷰 6에서는 VFX 아티스트가 더 많은 플랫폼에 효율적으로 도달할 수 있도록 툴과 URP 지원을 개선했다. VFX 그래프 프로파일링 툴을 사용하면 VFX 아티스트는 메모리와 성능에 대한 피드백을 받고, 그래프 내에서 최적화할 부분을 찾아서 특정 효과를 미세 조정하고 성능을 극대화할 수 있다.
▲ VFX 그래프 프로파일링 툴
셰이더 그래프 키워드의 지원을 받아 VFX 셰이더를 제작할 수 있으며, URP 뎁스 및 컬러 버퍼를 사용하여 빠른 충돌이나 월드 내 파티클 생성을 위해 URP로 더 복잡한 효과를 만들 수 있다. VFX 그래프의 개념과 기능을 학습할 수 있도록 제작된 VFX 애셋 모음인 신규 학습 템플릿으로 VFX 그래프를 빠르게 시작할 수 있다.
셰이더 그래프 아티스트 워크플로
유니티 6 프리뷰에는 셰이더 그래프 사용자들이 많이 겪는 고충을 해결하기 위해 편집이 가능한 키보드 단축키, 그래프에서 가장 GPU 사용량이 많은 노드를 빠르게 식별할 수 있는 히트맵 컬러 모드를 추가하였으며, 실행 취소/재실행 또한 더 빨라졌다.
▲ 노드의 상대적 GPU 비용을 보여 주는 히트맵 컬러 모드
여러 셰이더 그래프 애셋이 담긴 신규 노드레퍼런스 플을 사용할 수 있다. 샘플에 포함된 각 그래프는 하나의 노드를 설명하고, 내부적으로 작동하는 수학을 요약하며, 가능한 노드 사용 방법에 대한 예시를 포함한다.
멀티 플랫폼 개선 사항
유니티 6 프리뷰는 멀티 플랫폼 개발 워크플로를 최적화하고 인기 있는 플랫폼 전반에서 도달률을 향상하는 것을 목표로 데스크톱과 모바일, 웹 및 XR에서 향상된 멀티 플랫폼 기능을 제공한다.
빌드 창 편의성 향상 및 새로운 빌드 프로필
새로운 빌드 프로필 기능을 통해 더욱 유연하고 효율적으로 빌드를 관리할 수 있다. 각 프로필에서 빌드 설정을 구성하는 것 외에 이제 서로 다른 신 목록을 넣어 빌드의 콘텐츠를 커스터마이즈할 수 있어, 게임에서 가장 선보이고 싶은 신이 사용된 고유의 플레이 가능한 데모를 여러 개 만들 수 있다.
또한 플레이어 설정에서 볼 수 있는 스크립팅에 더해 어떤 프로필이든 정의하는 커스텀 스크립팅을 설정할 수 있으며, 이를 통해 빌드와 에디터 플레이 모드의 기능과 동작을 미세 조정할 수 있다. 버티컬 슬라이스(시연 버전)를 만들거나 플랫폼별로 동작을 다르게 설정하려 할 때 이 기능을 활용할 수 있다.
프로필마다 플레이어 설정 오버라이드를 추가하여 플랫폼 모듈에 맞게 설정을 커스터마이즈할 수 있다. 이 기능을 이용하면 프로필마다 다른 퍼블리싱 설정을 손쉽게 구성할 수 있다. 전반적으로 이 최신 기능을 사용하면 에디터에서의 빌드 관리 방식을 커스터마이즈하기 위해 커스텀 빌드 스크립트를 사용해야 하는 빈도를 낮출 수 있다.
마지막으로, 에디터에서 플랫폼을 쉽게 확인할 수 있도록 플랫폼 브라우저를 추가했다. 플랫폼 브라우저에서 Unity가 지원하는 모든 플랫폼을 확인하고 원하는 플랫폼의 빌드 프로필을 생성할 수 있다.
▲ 유니티 6의 새로운 빌드 프로필 창
웹 런타임으로 모바일 게임 도달률 향상
안드로이드 및 iOS 브라우저 지원이 유니티 6 프리뷰에 추가되었다. 이제 모든 웹에서 유니티 게임을 실행할 수 있으며, 브라우저 게임을 데스크톱 플랫폼으로 제한해 개발하지 않아도 된다. 또한 게임을 네이티브 앱의 웹 뷰에 임베드하거나, 유니티의 프로그레시브 웹 앱 템플릿을 사용해 고유한 바로 가기와 오프라인 기능을 가진 네이티브 앱처럼 게임이 작동하도록 구현할 수 있다. 모바일 기기 컴파스 지원과 GPS 위치 트래킹 같은 기능이 추가되어, 게이머가 플레이하는 플랫폼에 맞게 대응하도록 웹 게임을 구현할 수 있다.
Emscripten 3.1.38 툴체인 업데이트와 부호 확장 명령 코드, 트랩 없는 부동 소수점-정수 변환, 벌크 메모리, BigInt, Wasm 테이블, 네이티브 Wasm 예외, Wasm SIMD와 같은 새로운 WebAssembly 언어 기능 모음을 통한 최신 WebAssembly 2023 지원을 통해 웹 게임을 미세 조정할 수 있다. 또한 WebAssembly 2023은 힙 메모리를 4GB까지 지원하므로 최신 하드웨어에서 더 많은 RAM을 사용할 수 있다.
▲ 아이폰 15 프로의 사파리에서 실행되는 유니티의 2D 샘플 프로젝트 해피 하비스트(Happy Harvest)
유니티 6 프리뷰에는 최신 안드로이드 툴, 즉시 사용 가능한 자바(Java) 17 지원, 안드로이드 앱 번들에 디버그 심볼을 추가하는 기능 등을 비롯한 더 많은 모바일 개선 사항이 포함된다. 이를 통해 구글 플레이 스토어(Google Play Store)에 제출하는 시간을 절약하고 플레이 콘솔(Play Console)에서 항상 스택트레이스 정보를 확인할 수 있다.
WebGPU 백엔드 얼리 액세스
WebGPU 백엔드의 실험 단계 지원을 도입하는 것은 웹 기반 그래픽스 가속의 중대한 이정표로서, 앞으로 유니티 웹 게임의 그래픽스 렌더링 정확도를 도약시키는 디딤돌이 될 것이다.
WebGPU는 컴퓨트 셰이더 지원과 같은 최신 GPU 기능을 웹에 노출하고 활용하려는 목적으로 설계되었다. WebGPU는 새로운 웹 API로서, 다이렉트X 12(DirectX 12), 벌칸(Vulkan), 메탈(Metal)과 같은 네이티브 GPU API를 통해 내부적으로 구현하는 최신 그래픽스 가속 인터페이스를 데스크톱 기기에 따라 제공한다.
WebGPU 그래픽스 백엔드는 여전히 실험 단계이므로 정식 제작에 사용하는 것은 권장하지 않는다.
▲ GPU(컴퓨트) 스키닝의 장점을 활용해 높은 프레임 속도를 유지하면서 로봇들의 골격 위에 스킨을 메시 처리한 데모
유니티 에디터의 ARM 기반 윈도우 기기 지원
유니티는 2023.1에서 ARM 기반 윈도우 기기에 대한 지원을 제공하여 새로운 하드웨어로 타이틀을 가져올 수 있게 했다. 유니티 6 프리뷰를 통해 유니티 6에서 ARM 기반 윈도우 기기에 대한 네이티브 유니티 에디터 지원을 제공한다. 따라서 이제 ARM 기반 기기의 성능과 유연성을 활용하여 유니티 게임을 제작할 수 있다.
다이렉트X 12 백엔드 개선 사항
유니티의 다이렉트X 12 그래픽스 백엔드가 정식으로 제작에 사용 가능하며, DX12를 지원하는 윈도우 플랫폼을 타깃으로 제작할 때 사용할 수 있다. 이번 변경에 앞서 렌더링 안정성과 성능에 대한 포괄적인 향상이 이루어진 바 있다.
유니티 에디터와 유니티 플레이어는 DX12에서 Split Graphics Jobs를 사용하여 향상된 CPU 성능의 혜택을 누릴 수 있다. 성능 향상 수준은 신의 복잡도와 제출되는 드로 콜 횟수에 따라 다를 수 있다.
무엇보다도 DX12 그래픽스 API는 광범위한 최신 그래픽스 성능을 지원할 수 있으므로, 유니티의 레이트레이싱 파이프라인 같은 차세대 렌더링 기법을 사용할 수 있다. 조만간 그래픽스에서 머신러닝에 이르는 DX12의 고급 기능을 활용하여, 높은 수준의 정확도와 성능을 실현할 수 있을 것이다.
마이크로소프트 GDK 패키지로 마이크로소프트 플랫폼 생태계 도입
마이크로소프트와 유니티의 지속적인 파트너십 덕분에 이제 유니티 6 프리뷰와 2022 LTS, 2021 LTS에서 2개의 새로운 마이크로소프트 GDK 패키지를 이용할 수 있다. Microsoft GDK Tools와 Microsoft GDK API 패키지를 동일한 구성 및 코드 베이스로 마이크로소프트 게이밍 플랫폼에서 사용할 수 있다. 이 패키지를 사용하면 사용자 ID, 플레이어 데이터, 소셜, 클라우드 스토리지 등의 엑스박스(Xbox) 서비스를 활용할 때와 같은 코드를 사용하여, 윈도우 및 엑스박스같은 마이크로소프트 게이밍 플랫폼에서 더욱 손쉽게 게임을 빌드할 수 있다.
통합 마이크로소프트 GDK 패키지를 사용하면 공유 코드 베이스와 API를 통한 빌드 프로세스 자동화 기능을 활용하여 마이크로소프트 플랫폼에서 게임을 제작할 수 있다. 패키지에 포함된 다양한 기능을 선보이는 새로운 샘플도 제공된다.
이전에는 엑스박스 콘솔과 윈도우의 마이크로소프트 스토어를 타깃으로 삼는 경우 마이크로소프트와 유니티에서 제공하는 별도의 GDK 패키지를 설치하는 것이 지침이었다. 그렇게 하려면 타깃으로 삼은 각 마이크로소프트 플랫폼별로 다른 코드 브랜치를 관리해야 했다. 새로운 마이크로소프트 GDK 패키지를 사용하면 그럴 필요가 없다. 또한 이제 빌드 서버에서 직접 API로 MicrosoftGame.config 파일을 수정할 수 있다. 유니티 6의 새로운 빌드 프로필 기능과 함께 사용하면 하나의 프로젝트만으로도 손쉽게 마이크로소프트 게이밍 생태계에 게임을 공개할 수 있다.
▲ 유니티 패키지 관리자의 새로운 마이크로소프트 GDK API(1단계) 및 마이크로소프트 GDK 툴즈(2단계). 유니티 패키지 관리자에서 직접 마이크로소프트 GDK 패키지를 설치하고 마이크로소프트 GDK를 사용해 개발을 시작할 수 있다.
XR 경험
유니티는 AR킷(ARKit), AR코어(ARCore), 비전OS(visionOS), 메타 퀘스트, 플레이스테이션 VR, 윈도우 MR(Windows Mixed Reality) 등 많이 알려진 알려진 XR(확장현실) 플랫폼을 지원한다. 유니티 6 프리뷰는 혼합 현실, 손 및 시선 입력, 개선된 시각적 정확도 같은 최신 크로스 플랫폼 기능을 포함한다. 이제 향상된 템플릿에 이러한 많은 최신 기능이 통합되어 더 빠르게 시작할 수 있다.
현실 세계를 게임에서 구현하기
기존 게임을 혼합 현실로 확장하려 할 때나 아니면 완전히 새로운 게임을 제작하려는 경우에도 AR 파운데이션(AR Foundation)을 사용하면 크로스 플랫폼 방식으로 현실 세계를 플레이어 경험에 통합할 수 있다. 유니티 6 프리뷰에는 AR코어에서의 이미지 안정화 지원을 추가하였으며, 메타 퀘스트(Meta Quest)와 같은 혼합 현실 플랫폼을 대상으로 메시 및 바운딩 박스 기능 등에 대한 지원을 개선했다.
▲ 최신 AR 파운데이션 메시 기능
XR 입력 및 상호작용
상호작용을 간소화할 수 있도록 XRI(XR Interaction Toolkit) 3.0에 여러 주요 개선 사항이 추가되었다. 그중에서도 Near-Far Interactor라는 새로운 인터랙터는 프로젝트에서 인터랙터의 동작을 커스터마이즈할 때 유연성과 모듈성을 향상시킬 수 있다.
새로운 Input Reader의 추가로 XRI 입력 처리 방식이 개선되었으며, 이를 통해 입력 프로세스가 간소화되고 다양한 입력 유형 전반에서 코드의 복잡도가 줄어든다. 마지막으로, 크로스 플랫폼 방식으로 게임 내 키보드를 구현하고 커스터마이즈할 수 있도록 새로운 가상 키보드 샘플을 출시할 계획이다.
고유의 손 제스처
손을 사용하여 콘텐츠와 상호작용하도록 하는 플랫폼이 점점 더 많아지는 추세이다. 유니티의 XR Hands 패키지를 사용하면 커스텀 손 제스처(예 : 엄지 척, 엄지 다운, 가리키기)나 일반적인 오픈XR 손 제스처를 구현할 수 있다. 샘플이 포함되어 있어 빠르게 작업을 시작할 수 있다. 손 모양과 제스처의 제작, 미세 조정 및 디버깅을 위한 툴이 함께 지원되므로 더 많은 사용자를 대상으로 폭넓은 콘텐츠를 제공할 수 있다.
시각적 정확도 향상
게임의 시각적 정확도를 향상하려는 방법의 하나로 현재 실험 단계 패키지로만 이용할 수 있는 Composition Layers 기능이 있다.
이 기능은 런타임의 합성 레이어에 대한 네이티브 지원을 사용하여 텍스트, 비디오, UI 및 이미지를 더욱 양호한 품질로 렌더링하고, 더 선명한 텍스트, 뚜렷한 윤곽선을 비롯해 전반적으로 더 나은 결과물을 제공하는 동시에 아티팩트도 상당히 줄일 수 있다.
멀티플레이어 제작 간소화
유니티 6 프리뷰는 간단한 엔드 투 엔드 통합 솔루션으로, 멀티플레이어 게임의 제작, 출시, 성장을 가속한다.
실험 단계 멀티플레이어 센터
유니티는 패키지 레지스트리에서 사용할 새로운 실험 단계 멀티플레이어 센터(Experimental Multiplayer Center) 패키지를 제작했다. 멀티플레이어 센터는 멀티플레이어 개발을 시작할 수 있도록 안내하는 간소화된 가이드 툴이다. 에디터의 중심에 있는 이 가이드를 활용하면 프로젝트별 요구 사항에 맞는 유니티 툴과 서비스에 액세스할 수 있다.
멀티플레이어 센터는 프로젝트의 멀티플레이어 사양에 따른 인터랙티브 가이드, 리소스와 교육 자료에 대한 액세스, 그리고 멀티플레이어 기능을 빠르게 배포하고 간단하게 실험할 간편한 방법을 제공한다.
멀티플레이어 플레이 모드
유니티 에디터 내에서 각 프로세스 전반의 멀티플레이어 기능을 테스트해 볼 수 있는 멀티플레이어 플레이 모드(Multiplayer Play Mode) 1.0 버전이 릴리스되었다. 디스크의 동일한 소스 애셋을 사용하면서 하나의 개발 기기에서 최대 4명의 플레이어(기본 에디터 플레이어 및 가상의 플레이어 3명)를 동시에 시뮬레이션할 수 있다. 멀티플레이어 플레이 모드를 사용하면 프로젝트를 빌드하고, 로컬에서 실행하고, 서버-클라이언트 관계를 테스트하는 데 걸리는 시간을 단축하는 멀티플레이어 개발 워크플로를 구축할 수 있다.
▲ 멀티플레이어 플레이 모드는 개발 과정에서 멀티플레이어 게임을 테스트하기 위한 설정 시간을 단축하고 빠른 반복 루프를 유지한다.
멀티플레이어 툴즈
멀티플레이어 툴즈(Multiplayer Tools) 패키지를 2.1.0 버전으로 업데이트하며, 새로운 디버깅 시각화 툴인 네트워크 신 비주얼라이제이션(Network Scene Visualization)을 추가했다. 네트워크 신 비주얼라이제이션(NetSceneVis)은 멀티플레이어 툴즈 패키지에 포함된 강력한 툴로, 유니티 에디터 신 뷰에서 프로젝트를 보며 메시 셰이딩이나 텍스트 오버레이와 같은 시각화 기능을 통해 오브젝트별 네트워크 커뮤니케이션을 시각화하고 디버깅할 수 있다.
Netcode for GameObjects용 실험 단계 분산형 권한
새로운 Experimental Multiplayer Services SDK 0.4.0 버전(com.unity.services.multiplayer)과 함께 사용할 때의 분산형 권한 모드를 Netcode for GameObjects 2.0.0-exp.2 버전(com.unity.netcode.gameobjects)에 추가했다. 분산형 권한 모드에서는 클라이언트가 게임 세션에서 생성된 넷코드(Netcode) 오브젝트에 대해 분산된 소유권/권한을 가진다. 넷코드 시뮬레이션 워크로드는 클라이언트 전반에 분산되며, 네트워크 상태는 유니티가 제공하는 고성능 클라우드 백엔드를 통해 조율된다.
넷코드 포 엔티티즈
게임 오브젝트가 디버그 바운딩 박스를 렌더링할 수 있도록 지원하여 넷코드 포 엔티티즈(Netcode for Entities) 경험을 개선했다. 또한 코드를 수정할 필요 없이 커스터마이즈할 수 있는 넷코드 설정 변수 대부분이 포함된 NetCodeConfig ScriptableObject를 추가했다.
데디케이디드 서버 패키지
프로젝트를 별도로 만들지 않아도 프로젝트에서 서버와 클라이언트 역할을 전환하도록 허용하는 데디케이디드 서버(Dedicated Server) 패키지를 출시했다. 멀티플레이어 역할을 사용하면 클라이언트 및 서버 전반에 게임 오브젝트와 컴포넌트를 배분할 수 있다.
멀티플레이어 역할로 각 빌드 타깃에서 사용할 멀티플레이어 역할(클라이언트, 서버)을 결정할 수 있다. 이는 다음과 같이 구성된다.
콘텐츠 선택 : 여러 멀티플레이어 역할을 대상으로 포함하거나 제거할 콘텐츠(게임 오브젝트, 컴포넌트)를 선택하는 UI 및 API를 제공한다.
자동 선택 : 여러 멀티플레이어 역할에서 자동으로 제거되어야 할 컴포넌트 유형을 선택하는 UI 및 API를 제공한다.
안전성 확인 : 멀티플레이어 역할에서 오브젝트를 제거하여 발생할 수 있는 잠재적인 널(null) 참조 예외를 감지하기 위한 경고를 활성화한다.
이 패키지에는 데디케이디드 서버 플랫폼 개발에 추가로 필요한 최적화 및 워크플로 개선 사항도 포함된다.
Experimental Multiplayer Services SDK
Experimental Multiplayer Services SDK는 유니티 6 프리뷰에서 개발하는 게임에 온라인 멀티플레이어 요소를 한 번에 추가할 수 있는 솔루션이다. UGS(Unity Gaming Services)를 기반으로 릴레이(Relay) 및 로비(Lobby) 서비스의 여러 기능을 새로운 단일 ‘세션’ 시스템으로 결합한 솔루션으로, 빠르게 플레이어 그룹의 연결 방식을 정의할 수 있도록 지원한다.
Experimental Multiplayer Services SDK 0.4.0 버전(com.unity.services.multiplayer)을 사용하면 P2P(peer-to-peer) 세션을 생성하고 플레이어가 참여 코드, 활성 세션 목록 검색 또는 ‘빠른 참여’ 기능 등 다양한 방법으로 참여하도록 구현할 수 있다.
유니티 6 프리뷰의 멀티플레이어
유니티 6 프리뷰에 포함된 많은 기능은 아직 실험 단계에 있으며, 아직 정식 제작에 사용할 수는 없다. 유니티 6가 완전한 지원 경험을 갖출 수 있도록 사용자의 피드백을 바탕으로 해당 기능을 빠르게 사전 릴리스 및 릴리스 단계로 전환할 예정이다.
엔티티 워크플로 개선 사항
유니티 6 프리뷰는 ECS 워크플로를 간소화하고 사용자가 흔히 겪는 어려움을 해결한다. 이러한 노력의 하나로, 유니티는 향후 엔티티와 게임 오브젝트 워크플로가 통합되는 상황에 대비하여 엔티티의 저장 방식을 변경했다. 이제 엔티티 ID가 전역적으로 고유의 값을 가지며, 한 엔티티 시스템에서 다른 시스템으로 원활하게 옮길 수 있다. 이러한 변경이 ECS 워크플로에 영향을 주지는 않지만, 항상 정확한 엔티티를 표시하므로 디버깅 시 모호함을 줄일 수 있다.
또한 유니티 2022 LTS에 제공된 최신 ECS 개선 사항이 유니티 6 프리뷰에도 적용되었다.
ECS 1.1 : 주요 물리 콜라이더 워크플로 및 성능 개선, ECS 프레임워크 전반에서 80개 이상의 수정 사항
ECS 1.2 : 에디터 워크플로 전반의 편의성 및 성능 개선, 직렬화, 베이킹, 50개 이상의 수정 사항 및 유니티 6 호환성
AI를 활용한 동적 런타임 경험 제공
유니티 6 프리뷰에는 런타임에 AI 모델을 통합하는 뉴럴 엔진인 유니티 센티스(Unity Sentis)가 포함된다. 센티스를 통해 오브젝트 인식, 스마트 NPC, 그래픽스 최적화 같은 새로운 AI 기반 기능을 활용할 수 있다. 센티스는 최근에 성능과 사용 초기 경험 간소화에 집중하여 개선이 이루어졌다.
성능
이제 유니티 에디터에서 AI 모델 가중치 양자화(FP16 또는 UINT8)를 지원하므로 필요한 경우 모델 크기를 최대 75%까지 줄일 수 있다. 모바일 게임을 출시하는 경우 상당한 절약 효과를 볼 수 있다. 모델 스케줄링 속도 또한 2배 향상되었고, 메모리 누수와 가비지 컬렉션은 줄어들었다. 마지막으로, 이제 더 많은 ONNX 연산자를 지원한다.
시작하기
프로젝트에 적합한 AI 모델을 더 쉽게 찾을 수 있도록, 유니티는 대규모 60만 개 이상의 AI 모델을 보유한 AI 모델 허브인 허깅 페이스(Hugging Face)와 협력 관계를 맺었다. 이제 센티스에서 ‘바로 사용할 수 있는’ AI 모델을 즉시 찾을 수 있으므로 손쉬운 연동이 가능하다.
적합한 모델을 찾았으면 이제 게임에 연결해야 한다. 더 쉽게 연결할 수 있도록 유니티는 AI 모델을 제작, 수정, 연결하는 데 활용할 새로운 Functional API를 도입했다. 직관적이고, 안정적이며, 인퍼런스에 최적화된 API이다. 메모리 관리 및 스케줄링 전반을 제어하기 위해 완전히 커스터마이즈할 수 있는 낮은 레벨의 API가 필요하다면 Backend API를 계속 사용할 수 있다.
생산성 및 기능성 향상
유니티 엔진은 비주얼 스크립팅에서부터 UI 툴킷까지 사용자의 생산성과 기능성을 향상하기 위한 다양한 툴을 제공한다. 기존 툴에 더해 유니티 6 프리뷰에서는 특히 프로파일링 툴 포트폴리오에 두 가지 업데이트가 추가되었다.
메모리 프로파일러
유니티 6 프리뷰에서는 메모리 프로파일러(Memory Profiler)와 관련해 두 가지 주요 업데이트가 적용되었다. 우선, 기존에는 분류되지 않았던 그래픽스 메모리가 이제 측정되며 리소스별 보고가 이루어진다.(예 : 렌더 텍스처 및 컴퓨트 셰이더) 그리고, 상주 메모리에 대한 정보가 더 자세히 보고된다. 예를 들어 디스크로 전환되는 메모리는 더 이상 여기에 포함되지 않는다. 이러한 업데이트는 특히 네이티브 메모리 사용량을 파악하기 어렵다는 사용자의 직접적인 피드백을 해결한다.
▲ 업데이트된 메모리 프로파일러
■ 기사 내용은 PDF로도 제공됩니다.
작성일 : 2024-07-03