작년 11월, 건설 시뮬레이션, 턴제 전투 및 4X 게임 요소를 결합한 새로운 게임에 대한 발표가 있었습니다. 해당 게임의 공식 디스코드 커뮤니티 회원 수는 몇 달 만에 94만 명까지 증가했으며, 트위터 팔로워 수도 84만 명에 이르렀습니다. 게임 업계에서 "Fusionist"가 상당한 관심을 받고 있다는 것은 분명합니다
"Fusionist"는 기계와 행성 탐험을 테마로한 매크로 유니버스를 제작했습니다. 플레이어는 로봇 사령관의 역할을 맡아 자신의 행성을 관리하고, 희귀 자원을 수집하고, 기술을 업그레이드하고, 설계도를 스캔하여 기계를 제조하고, 생산 파이프라인을 구축하게 됩니다. 게임은 2023년 말 Steam 플랫폼에서 정식 출시될 예정입니다.
"Fusionist" 프로젝트 팀은 47명의 임직원으로 구성되어 있으며, 이들 모두는 게임 업계에서 시니어 수준의 풍부한 경험을 가지고 있습니다. 이들은 HDRP, DOTS, 육각 조명 맵 등 Unity의 최첨단 기술을 능숙하게 사용하여 실감나는 물체, 구름층, 폭발 등의 정교한 그래픽을 제작합니다.
이번 기사에서 저희는 기술적 관점에서 그래픽 성능에 대한 Unity 엔진의 무한한 잠재력에 대해 설명하기 위해 해당 개발 팀을 초대했습니다.
HDRP: 극사실적인 게임 세계 창조
Unity의 HDRP(고해상도 렌더 파이프라인:High Definition Render Pipeline)는 물체 표면 재질, 질감 및 반사 피라미터를 정확하게 계산하여 보다 사실적인 비주얼을 생성하는 PBR(물리 기반 렌더링:Physically Based Rendering)프레임워크를 사용합니다.
HDRP는 더욱 풍부한 시각 효과와 후처리(post-processing) 효과를 지원하여 시각 효과를 더욱 빛나게 만들어줍니다. 예를 들어 SSR(스크린 공간 반사:Screen Space Reflection) 및 볼류메트릭 포그(Volumetric Fog) 효과는 시각적 표현에 깊이와 색채적 효과를 제공할 수 있습니다.
또한 HDRP에는 컬러 그레이딩(Color Grading) 및 블룸(Bloom)과 같은 내장된 후처리 효과가 포함되어 있으며, 최종 시각 효과를 더욱 다채롭고 선명하게 만들어줍니다.
"Fusionist"에서는 Layered Lit Material, PBR physical rendering, SSR, SSAO, Volumetric Fog, post-processing 및 HDR을 포함한 다양한 HDRP pipeline 기술이 사용됩니다.
스크린 공간 반사(Screen Space Reflection), 스크린 공간 앰비언트 오클루전(Screen Space Ambient Occlusion) 및 HDRISky 관련:
다양한 각도에서 소량의 레이저로 반사되는 빛을 시뮬레이션함으로써, 해당 장면 속의 물체는 빛을 적게 받더라도 자체적으로 그림자가 생기고, 물체의 입체감과 장면의 전체적인 조명과 그림자의 느낌을 현실적으로 재현할 수 있습니다. 이러한 효과를 활용하면 그래픽 퀄리티를 크게 향상시킬 수 있으며, On/Off를 통해 결과를 비교해 볼 수 있습니다:
Path Tracing
Path Tracing 알고리즘은 카메라에서 레이저를 쏘아 표면에 닿으면서 반사하거나 굴절하는 방식으로 작동합니다. 이러한 과정은 레이저가 광원에 도달할 때까지 반복됩니다. 볼륨에 Path Tracing overload를 추가하려면 다음 단계를 수행해야합니다:
1. Path Tracing overload를 추가해야 할 volume을 식별합니다.
2. 식별된 volume에 overload를 추가합니다.
최대 샘플 매개변수(Maximum Samples parameter)는 최종 이미지를 렌더링하는 데 사용되는 프레임 수를 제어합니다. 해당 값을 높이면 화질이 향상되지만 필요한 프레임 수가 증가하여 이미지를 렌더링하는 데 많은 시간이 소요됩니다.
Path tracing은 렌더링된 최종 결과의 현실감을 향상시킬 수 있는 기술입니다. 일반적으로 게임 내 기계 디스플레이 및 제품 쇼케이스에 활용됩니다.
Layered Lit Material
HDRP Layered Lit는 Unity HDRP(고화질 렌더 파이프라인)의 구성요소로, 고퀄리티 PBR 머티리얼을 생성하는데 활용됩니다.
"Fusionist" 프로젝트의 메카 모델에는 다양한 머티리얼과 색상 변화를 갖춘 아바타 시스템이 필요했습니다. 개발팀은 일련의 테스트와 토론을 거쳐 HDRP의 Layered Lit 머티리얼을 활용하기로 결정했습니다. 해당 머티리얼은 시스템에서 구축한 머티리얼이지만 게임의 시각 효과에 대한 요구 사항을 효과적으로 충족할 수 있었습니다.
Layered Lit 머티리얼을 사용하면 동일한 오브젝트에 최대 4개의 서로 다른 머티리얼을 레이어링할 수 있으므로 HDRP에서 다양하고 사실적인 재질(realistic material)을 쉽게 만들 수 있습니다. 메인 레이어는 반사율, 노멀, 높이를 상위 레이어에 영향을 줄 수있는 하단 레이어 역할을 합니다. 이후 다음 HDRP는 메인 레이어 위에 레이어1, 레이어2, 레이어3을 렌더링합니다.
"Fusionist"에서 각 레이어는 특정 머티리얼 효과와 색상 변화을 제어합니다. 머티리얼의 수를 늘림으로써 메카 외형의 다채로움을 무한대로 확장할 수 있습니다.
속성(Attributes) |
설명(Description) |
Layer Count |
슬라이더를 조정하여 해당 자료에 사용할 레이어 수를 선택합니다. 슬라이더를 사용하면 최대 4개의 레이어를 선택할 수 있습니다. |
Layer Mask |
해당 필드에 텍스처를 할당하여 각 레이어의 가시성을 관리합니다. 텍스처가 할당되지 않은 경우 머티리얼은 각 채널의 최대값을 사용합니다. • 알파 채널(alpha channel)은 메인 레이어에 적용됩니다. • 빨간색 채널(red channel)은 레이어1에 적용됩니다. • 녹색 채널(green channel)은 레이어2에 적용됩니다. • 파란색 채널(blue channel)은 레이어3에 적용됩니다. |
"Fusionist"에서 모든 메카는 RGBA 채널에 해당하는 마스크 텍스처를 가지며, 이는 머티리얼 영역의 세분화를 정의합니다. 각 세분화 영역의 머티리얼은 일반 Lit 머티리얼을 사용하여 PBR propertie(속성)을 할당할 수 있습니다.
"Fusionist"는 범용 PBR 마스크 텍스처를 활용하여 재료 표면의 물리적 특성과 마모 디테일을 결정합니다.
머티리얼 강화는 캐릭터의 외형을 다채롭게 만들어줍니다.
HDRP/Lit에서는 Layered Lit에 비해 더욱 다양한 머티리얼 유형을 선택할 수 있습니다. 그 결과로, 이 개발팀은 개선 작업을 수행하고 통합했습니다.
Fusionist 팀은 게임에 Iridescence라는 흥미롭고 독특한 머티리얼를 구현했습니다.
위에서 언급한 머티리얼 매개변수(material parameter)를 기반으로 메카 디자인을 다양화하기 위해 인상적인 머티리얼 샘플들을 개발했습니다.
Unity의 풍부한 플러그인 지원 활용
KWS Water System
바다, 해, 강, 호수, 수영장을 포함한 수면을 사실적으로 시뮬레이션하는 모듈식 컴포넌트입니다. "Fusionist" 게임 내에서 더욱 사실적인 수면 효과를 구현하고 PC/콘솔 플랫폼 및 HDRP 렌더링에 사용하기 위해 특별히 설계되었습니다.
카우스틱 효과(caustic effect)는 부분적으로 수중 효과를 만들기 위해 사용되는 기술입니다. 해당 기술을 통해 물속에서 빛의 굴절과 반사를 시뮬레이션하여 매우 사실적인 수중 효과를 만들 수 있습니다.
Wave
- 파도 모양의 파티클 효과 생성하기
- 생성된 파티클 효과를 해안선에 적용하기
- 파티클 효과에 거품 파티클 렌더링 효과 추가하기
Flowing
KWS Water System은 강, 폭포 및 기타 물이 있는 지역의 자연스러운 흐름을 시뮬레이션하여 게임에서 보다 사실적인 물의 효과를 생성할 수 있습니다. 또한 이 기능은 잔물결이나 파도와 같은 효과를 자동으로 생성하여 물 퍼포먼스의 전반적인 현실감과 역동성을 향상시킵니다. 추가로 유속, 방향, 물결과 같은 파라미터를 커스터마이징하면 물에 대한 다양성한 모습과 현실감을 더욱 향상시킬 수 있습니다.
MicroSplat
뛰어난 성능을 유지하면서 매우 디테일한 지형 머티리얼을 제작하기 위해 사용할 수 있는 또 다른 매우 유용한 Unity 셰이더 플러그인(shader plugin)입니다. "Fusionist"가 Unity에서 보다 사실적인 지형 효과를 제작하는 데 도움이 되었습니다. MicroSplat의 지형 블렌딩 모듈은 지형과 오브젝트를 부드럽게 블렌딩할 수 있습니다.
MicroSplat은 높이 블렌딩, 텍스처 블렌딩 및 디테일 매핑을 포함한 다양한 텍스처 컨트롤을 지원합니다. 이러한 컨트롤을 통해 지형을 보다 상세하고 사실적으로 묘사할 수 있습니다.
Expanse
Expanse는 제작자가 사실적인 하늘, 구름, 대기 효과를 실험해 볼 수 있는 Unity HDRP용 플러그인입니다. Expanse를 사용하면 하루 중 원하는 시간대를 빠르게 선택하고, 날씨 조건을 조정하여 원하는 모습을 이를 구현할 수 있습니다.
Expanse는 사실적인 하늘, 구름, 대기 효과를 만드는 데 도움이 되는 최고 수준의 머티리얼 및 셰이더를 제공합니다. 필요에 따라 머티리얼과 셰이더의 파라미터를 조정하여 다양한 효과를 얻을 수 있습니다.
Unity의 강력한 VFX 도구를 통해 여러분의 시각 효과를 향상시키세요.
육각 조명 맵(hexagonal lighting map)을 사용하여 폭발 및 연기 효과 만들기
게임에서 연기와 폭발 효과를 실시간으로 렌더링하는 것은, 복잡한 조명 반사와 분산(scattering)에 높은 계산 비용이 필요하기 때문에 항상 어려운 과제였습니다. 게임에서 이를 구현하기 위해 개발팀들은 보편적으로 textured sprite를 사용하여 연기를 시뮬레이션합니다. 하지만 textured sprite를 사용하면 연기와 주변 조명 간의 상호작용을 구현하기 어렵기 때문에 현실감이 떨어집니다.
육각 조명(Hexagonal lighting) 기술은 textured sprite를 사용하는 것보다 더 나은 방법입니다. 6개의 directional lighting 맵을 사용하여 연기가 6방향에서 들어올때의 빛의 반사 및 분산을 기록합니다. 게임 런타임 중에 개발팀은 장면의 현재 조명환경을 기반으로 연기 스프라이트를 렌더링하기 위해 하나 이상의 조명 맵을선택합니다. 이를 통해 실제 조명 환경에 따라 연기 모양이 변화되고, 더욱 사실적으로 묘사할 수 있습니다.
Unity 2022.2 버전에서는 엔드 투 엔드 워크플로(DCC에서 Unity)가 추가되어, 베이킹 시뮬레이션(baking simulation)으로 얻은 연기를 현실적으로 렌더링할 수 있습니다. 해당 솔루션에는 누구나 쉽게 연기 효과를 새로운 수준의 시각적 현실감을 향상시킬 수 있도록 설계된 즉시 사용 가능한 텍스처 라이브러리 세트도 포함되어 있습니다.
VFX Graph
VFX Graph asset은 일반적으로 개발자가 VFX Graph 장면으로 쉽게 이동하여 사용할 수 있는 서브그래프로 제공됩니다. 색상, 크기, 애니메이션 속도와 같은 간단한 속성 조정으로도 효과에 큰 변화를 줄 수 있습니다.
높은 수준의 커스터마이징을 통해, 동일한 에셋이라도 파라미터 조정을 통해 완전히 다른 효과를 만들어 다양한 효과의 요구 사항을 충족시키고, 작업 효율성을 향상시킬 수 있습니다.
개발자들은 화염 및 잔해와 같은 다른 VFX를 매끄럽게 결합하여 보다 복잡하고 포괄적인 시각 효과를 만들어낼 수 있습니다. 파라미터 링크를 통해 서로 다른 VFX 간의 상호작용을 적용하여 더욱 풍부한 인터랙티브 효과를 구현할 수있습니다.
ShaderGraph
Shader Graph는 Unity에서 HDRP용으로 특별히 설계한 음영(Shader) 편집에 사용되는 도구입니다. Shader Graph를 사용하여 다양한 HDRP 기능을 보다 깊이 통합할 수 있으며, HDRP 머티리얼 및 VFX 그래프와 원활하게 연결하여 매우 효율적인 워크플로우를 제공합니다. 따라서 shaderGraph를 사용하여 HDRP에서 음영(shader)을 더 쉽고 효율적으로 제작할 수 있습니다.
Cinemachine & Timeline
Cinemachine은 다양한 카메라 흔들림 모드와 Target Camera, Track Camera, Orbit Camera와 같은 가상 카메라를 제공하여 개발자가 인상적인 클로즈업을 쉽게 구현할 수 있도록 지원합니다. Timeline을 사용하면 전체 클로즈업의 구현 프로세스가 크게 간소화됩니다. 개발자는 타임라인에서 키프레임을 설정하고 적절한 가상 카메라를 선택하기만 하면 됩니다.
DOF(Depth of Field), 모션 블러(Motion Blur), 색수차(Chromatic Aberration)와 같은 포스트 프로세싱 볼륨(Post-Processing Volume)의 효과를 결합하면 클로즈업을 더욱 영화 같고 드라마틱하게 만들어 클로즈업의 창조적인 공간과 표현력이 확장되며, 이는 작업시 매우 놀라운 방법입니다.
Unity DOTS: 대폭적인 성능 향상
- 게임 성능에서 DOTS의 높은 성능과 확장성
- "Fusionist"는 최종적으로 글로벌 서버를 갖춘 우주 테마의 4X(탐험, 확장, 개발, 섬멸) 게임이 될 것이며, 피크 시간대 서버는 실시간으로 수만명의 유저가 접속해도 문제가 발생하지 않도록 유지해야 합니다. Netcode for Entities를 통해 프런트엔드와 백엔드 간 실시간 동기화를 달성하고, 클라이언트는 "Windows Target"으로 컴파일되고 서버는 "Dedicated Server Target"으로 컴파일되어 프런트엔드와 백엔드 기술을 통합하고 개발자들에게 동일한 코드 리포지토리를 제공합니다.
- 내부 성능 평가에서 AWS c6a.xlarge 서버는 대략 100개의 시스템과 수만 명의 유저에 대한 유니버스 시뮬레이션을 지원할 수 있습니다. 서버의 Logic Ticket은 항상 10FPS 이상으로 유지되었습니다.
높은 수준의 크로스 플랫폼 개발 지원
Unity 엔진은 단일 워크플로우와 기술 스택을 통해 여러 플랫폼을 지원할 수 있습니다.
Fusionist 공식 웹사이트에 Alpha Prestige Card를 표시하려면 Unity Editor에서만 편집해야 합니다. 렌더링 효과가 완성되면 웹사이트에 통합하기 위해 카드를 웹 형식으로 내보낼 수 있습니다.
Unity Editor에 실시간 결과가 표시됩니다.
Unity의 워크플로우 및 타사 도구와의 연동
World Creator 2022
World Creator 2022는 개발자가 산, 강, 호수, 숲을 포함한 지형을 고품질로 구축할 수 있도록 지원합니다. 다양한 지형 생성 알고리즘과 다중 지형 머티리얼를 지원하여 풍부한 지형 효과를 구현할 수 있습니다.
World Creator 2022는 다양한 지형 편집 도구와 여러 지형 변형 기능을 제공하여 개발자가 지형을 형성하고 텍스처링을 더욱 유연하게 구축할 수 있도록 지원합니다.
요약
"Fusionist"는 최신 Unity 엔진 기능의 실제 적용에 대한 자심감을 보여주는 대표적 사례입니다. "Fusionist"는 압도적인 비주얼과 매력적인 게임 플레이를 통해 AAA 게임 업계에서 Unity의 무한한 가능성을 명확하게 보여줍니다. 팀은 이 기술 문서가 귀중한 인사이트를 제공하고 더 많은 개발자들이 Unity 엔진의 최신 기능을 탐색하는데 영감을 줄 것이라고 확신합니다.