고스트 오브 요테이의 기술적 요소 자세히 살펴보기

0 0
고스트 오브 요테이의 기술적 요소 자세히 살펴보기

Sucker Punch가 아츠의 몰입감 넘치는 여정을 생생하게 구현하기 위해 사용한 기술적 요소들을 탐구합니다.

고스트 오브 요테이는 Sucker Punch가 오랜 시간 애정을 쏟아 제작한 작품으로, 마침내 전 세계 모든 분들이 즐길 수 있게 되어 매우 기쁩니다. 이제 플레이어 여러분이 고스트 오브 요테이를 경험해 보셨으니, 이번 작품을 구현하기 위해 저희가 사용한 기술적 접근 방식에 대해 이야기해 보고자 합니다.

고스트 오브 요테이는 Ghost of Tsushima에서 쌓은 성과를 바탕으로, 플레이어가 인적이 닿지 않은 광활한 황야를 자유롭게 탐험하는 감각을 극대화하는 데 중점을 두었습니다. 이를 위해 플레이 흐름을 방해하는 안내 방식를 최소화하고, 시야를 확장해 더 멀리까지 아름다운 환경을 바라볼 수 있도록 했으며, 무기 전투를 보다 유연하게 다듬었습니다. 또한 개성 넘치고 기억에 남는 캐릭터, 그리고 플레이어가 감정적으로 몰입할 수 있는 서사적 순간을 강조했습니다. 이 모든 요소를 구현하면서도 안정적인 프레임 레이트를 유지하는 것은 결코 쉽지 않은 도전이었습니다.

이제 고스트 오브 요테이를 만드는 데 사용한 주요 기술들을 몇 가지 소개해 드리겠습니다!

거친 세계에서의 방랑

자유로운 탐험 경험을 구현하기 위한 프로토타입을 개발하는 과정에서, 저희는 플레이어가 아름다운 풍경을 바라보며 호기심을 따라가도록 하는 것이 가장 효과적이라는 결론에 도달했습니다. 이런 감각을 기술적으로 실현하기 위해서는 더 먼 거리까지 시야가 트여야 했고, 그러기 위해서는 풀, 지형, 산맥 등 원거리 풍경의 렌더링 품질을 개선해야 했습니다.

저희는 멀리 있는 산을 더 잘 표현하기 위해, 모델과 세밀한 지형 소재를 텍스처에 베이킹하여 더 높은 디테일로 표시할 수 있었습니다. 또한 GPU 컴퓨트 렌더러가 생성할 수 있는 풀과 렌더링 가능한 오브젝트의 양을 두 배로 늘렸습니다. 이 장면에서는 100만 개가 넘는 나무, 바위, 관목으로 이루어진 산이 처리 과정에서 약 6만 개의 개별 오브젝트로 컬링되며, 이렇게 선별된 데이터를 기반으로 G-버퍼를 생성해 최종 이미지를 완성합니다. 

저희는 프로시저럴 보조 제작 기법을 활용하고, GPU 컴퓨트 연산에 크게 의존하여 CPU의 개입 없이도 수많은 장면을 효율적으로 처리했습니다. 이 과정에서는 일련의 계산 작업을 수행하여 오클루전 컬링, 메모리 할당, 드로 기록 작성 등을 처리한 뒤, 그 정보를 CPU로 리드백하여 해당 프레임의 최종 커맨드 리스트에 결합합니다. 아래 애니메이션은 이와 유사한 장면을 GPU로 그린 모든 지오메트리가 순차적으로 배치되는 모습을 보여주며, 필요한 과정을 직관적으로 느껴볼 수 있습니다. 이러한 기술은 런타임에 생성되는 데이터에도 사용되며, 예를 들어 광활한 꽃밭이나 밧줄 혹은 사슬 같은 사물에도 적용합니다. 

저희는 세계 속 각 지역 특유의 분위기를 살리기 위해, 각 테마를 강조할 수 있는 상호작용 시스템을 구축했습니다. 대부분의 지역에는 풀이나 작은 식물이 자라 있는데, 이들은 바람이나 캐릭터의 움직임에 반응할 뿐 아니라, 무기를 휘두르는 것을 “컷 버퍼”에 렌더링하는 시스템을 새롭게 추가했습니다. 이 버퍼는”‘잘릴 수 있는” 지오메트리가 샘플링하여, 절단면 위쪽에서 입자를 생성합니다. 이 시스템을 통해 아츠는 게임 내 대부분의 풀, 꽃, 그리고 작은 식물들을 실제로 벨 수 있게 되었습니다. 

홋카이도는 일본에서 가장 혹독한 겨울로 유명하기 때문에, 우리는 깊은 눈 속에서 캐릭터가 상호작용하는 모습을 현실감 있게 표현하고 싶었습니다. 이를 위해 저희는 지형 테셀레이션 시스템을 구축했는데, 이 시스템은 표현 가능한 지형 디테일을 높임과 동시에 런타임 중에도 역동적으로 변형될 수 있도록 설계되었습니다. 이 과정에서는 캐릭터가 눈 위를 걷거나 구르거나 전투를 벌일 때, 입자와 지오메트리를 디스플레이스먼트 버퍼에 렌더링합니다. 이 시스템은 매우 유연하여, 캐릭터가 나무나 관목에 쌓인 눈을 털어내면 그 과정에서 눈 입자가 생성되도록 확장할 수도 있었습니다. 이런 요소에 스크린 공간 노이즈를 활용한 눈의 반짝임 효과를 더해, 더욱 사실적이고 생생한 눈을 구현할 수 있었습니다. 

요테이산처럼 높은 산에는 대체로 구름이 자주 걸려 있습니다. 따라서 우리는 월드 지오메트리 앞에 구름을 렌더링할 방법을 찾아야 했습니다. 이는 Ghost of Tsushima 엔진에서는 구현할 수 없었던 기능이기도 합니다. 또한 저희는 구름이 움직이는 속도를 높여 폭풍이 몰아치고 날씨가 불안정한 분위기를 전달하고자 했습니다. 불편한 아티팩트 없이 더 빠르고 자연스러운 구름 움직임을 구현하기 위해, 우리는 각 텍셀의 평균 가시값을 구름 맵에 저장했습니다. 이를 통해 구름 프레임을 스크롤할 때 패럴랙스 매핑 기술을 적용할 수 있게 되었으며, 두 개의 구름 프레임 대신 세 개를 블렌딩하여 더욱 부드러운 움직임을 구현했습니다. 또한 평균 가시 제곱 깊이 값까지 함께 저장함으로써, 각 광선 방향에 따른 구름 불투명도의 간단한 통계적 분포를 재구성할 수 있었습니다. 이 데이터 덕분에 구름이 산과 같은 월드 지오메트리를 얼마나 가려야 하는지도 정확하게 계산할 수 있게 되었습니다. 

안개와 대기 산란은 Ghost of Tsushima의 아트 스타일을 정립할 때 중요한 핵심 요소였습니다. 고스트 오브 요테이에서는 여기에 로컬 안개 볼륨 지원을 추가하여 그 표현을 한층 발전시키고자 했습니다. 이런 계산은 PS5의 확장된 16비트 부동소수점 GPU 명령어를 활용하여 효율적으로 처리됩니다. 또한 구름 렌더링 최적화 과정에서 광원 공간 구름 그림자 맵을 함께 계산하게 되었는데, 이를 통해 볼류메트릭 안개 속에서도 카메라에서 멀리 떨어진 영역의 광선 산란(갓 레이) 효과를 자연스럽게 표현할 수 있게 되었습니다. 또한 아티스트가 월드 내에 “갓 레이 타깃”을 배치할 수 있도록 하여, 구름 사이의 틈으로 들어오는 빛에 더 자주 비치도록 했습니다. 

캐릭터와 움직임

저희는 고스트 오브 요테이에 생동감을 불어넣고자 했습니다. 캐릭터가 입는 옷, 무기의 장식술, 거주지에 널린 옷감 등 화면 안의 모든 것이 바람을 따라 움직이게 하고자 했습니다. 플레이어가 구르고 싸울 때에는 먼지와 낙엽이 흩날리며, 몸에는 진흙과 피가 묻도록 해 세계 속에 진짜로 존재한다는 감각을 전달하고자 했습니다.

아츠의 복잡한 의상이 현실적으로 움직일 수 있는 것은, 저희가 고성능 GPU 기반 천 시뮬레이션 시스템에 새롭게 다중 레이어 지원을 구축했기 때문입니다. 저희가 추가한 시뮬레이션된 옷감(아래 참조)의 다층 레이어 지원에 더해, 이 시스템은 옷감 충돌도 지원합니다. 또한 고심하여 조정한 휴리스틱 세트를 사용하여 대규모의 개별 옷감 시뮬레이션을 효과적으로 시뮬레이트하기도 합니다. 아래에서 복잡한 의상을 입은 아츠가 움직이는 옷감 사이에 둘러싸여 있는 예시를 보시기 바랍니다. 

Infamous Second Son을 제작할 때부터 Sucker Punch는 GPU 파티클을 효과적으로 활용해 왔습니다. 저희는 고스트 오브 요테이에서도 이를 이어나가며 입자 시스템이 지형의 재질, 변형 상태, 그리고 물의 흐름까지 샘플링할 수 있도록 확장했습니다. 예를 들어, 이 장면에서는 입자들이 강 위에 떨어지고 흐르는 모습을 볼 수 있습니다. 

게임 세계에 영향을 미치는 것에 더해, 저희는 월드가 캐릭터에게 역으로 반응하도록 하여 캐릭터를 고정시켰습니다. 캐릭터 주변에서 변형된 디렉셔널 그리드에 정보를 스플래팅한 다음, 이를 사용해 텍스처 이펙트를 레이어링하여 캐릭터를 물이나 피에 젖게 하거나, 진흙이나 눈이 묻게 하는 식으로 구현했습니다. 

또한 저희는 플레이어가 과거로 전환해 아츠의 과거를 살펴볼 때도 이런 입자 시스템을 활용합니다. 과거와 현재 사이를 전환할 때는, 캐릭터 상태와 애니메이션의 일관성을 유지하면서 아츠의 스켈레톤과 지오메트리만 변경합니다. 또한, SSD의 빠른 속도와 세심하게 설계된 프리패칭 덕분에 배경 요소와 조명 효과도 즉시 전환됩니다. 이 모든 과정은 전환 직전 프레임 버퍼를 샘플링하는 애니메이션 입자들로 이루어진 커튼 뒤에서 자연스럽게 처리됩니다. 

레이 트레이싱과 PS5 Pro에서의 성능 향상

고스트 오브 요테이는 네이티브 PS5 게임이며, 저희는 플랫폼의 최신 기술을 활용해 영상 품질을 향상시키는 것을 목표로 삼았습니다. PS5 Pro의 출시와 함께, 향후 게임 개발에도 도움이 될 방향으로 기술적 기반을 확장하고자 했습니다. PlayStation 중앙 기술팀의 강력한 지원을 바탕으로, 우리는 두 가지 주요 영역에 집중 투자했습니다. 바로 레이 트레이싱과 PSSR를 활용한 이미지 업샘플링이었죠.

고스트 오브 요테이는 17세기 홋카이도의 광활한 자연을 배경으로 하고 있어, 거울처럼 반사되는 표면이 거의 없습니다. 따라서 저희는 레이 트레이싱 반사 효과가 아닌, 전역 조명의 정확도를 높이는 데 레이 트레이싱을 활용했습니다. 이를 위해 두 가지 접근 방식을 사용했습니다. 먼저, 자동화 수준과 품질이 개선된 베이크드 조명 모델을 구축했고, 여기에 근거리 레이 트레이스 전역 조명(RTGI, Ray-Traced Global Illumination)을 추가했습니다. 이 과정에는 메시 스트리밍 포맷에 대한 대규모 변경이 필요했습니다. 이를 통해 레이 트레이싱 하드웨어가 사용하는 가속 구조를 동적으로 디컴프레스 할 수 있게 되었죠. 그리고 PS5 Pro의 보다 효율적인 레이 트레이싱 하드웨어를 사용하면, 플레이어는 RTGI를 60fps로 사용할 수 있죠. 

고스트 오브 요테이에서는 PSSR을 적극적으로 활용하기 위해, 업샘플링을 포함한 보다 일반화된 동적 해상도 알고리즘으로 렌더링 프레임을 재구성했습니다. PSSR은 약간의 조정만으로도 매우 좋은 결과를 보여주었으며, 그중 하나가 작은 입자에 대해 보수적 래스터화를 적용하는 방식이었습니다. 이에 비해, 저희의 기존 업샘플링 알고리즘은 양질의 결과를 얻기 위해 훨씬 더 많은 힌트와 수작업 보정이 필요했습니다. 아래 이미지는 두 방식을 나란히 비교한 예시입니다. 16배 확대(그리고 GIF 압축 적용 전)로 자세히 보면, PSSR이 건축물과 잎새의 미세한 디테일을 더 잘 복원하는 것을 확인할 수 있습니다. 움직임 역시 더 안정적입니다. 

로딩 속도

오랫동안 Sucker Punch는 플레이어가 가능한 한 빠르게 게임에 몰입할 수 있도록 하는 데 자부심을 가져왔습니다. 고스트 오브 요테이에서도 이러한 전통을 이어가며, 더욱 빠른 로딩 속도에 집중했습니다.

저희는 데이터를 사전에 처리하여, 각 지역이나 지형 타일을 불러올 때 필요한 SSD 읽기 및 패칭 작업의 횟수를 최소화함으로써 로딩을 최적화합니다. 그 후 첫 프레임을 렌더링하기 위해 필요한 텍스처 밉과 메시 레벨 오브 디테일(LOD)만 계산하고 불러오며, 각 요소당 한 번의 읽기만 수행합니다. 다음은 남쪽 끝에서 북쪽 끝까지 로딩하는 과정을, 화면이 어둡게 페이드 아웃되지 않은 상태에서 본 모습입니다. (참고로, 이 경우에는 전체 세계를 렌더링해야 하기 때문에 실제보다 약간 느리게 보일 수 있습니다.) 

저희는 개발 과정 중에 출시 빌드와 다른 별도의 로딩 모델을 사용하는 대신, “도그 푸드” 작업을 합니다. “도그 푸드”란 모든 프로그래머, 아티스트, 디자이너가 출시할 타이틀을 직접 테스트하여 품질을 개선한다는 프로그래머 용어입니다.

결론

지금까지 Sucker Punch가 했던 기술적 작업에 관해 간단하게 알아보았습니다. 하지만 게임 제작은 그보다 훨씬 더 거대한 팀의 협업 결과로, 예술이 기술에 영감을 주고 기술이 예술을 이끄는 상호작용의 과정입니다.

5년 전 이 프로젝트를 시작할 때 우리의 목표는, 플레이어가 기꺼이 길을 잃고 싶어질 만큼 몰입감 있는 게임 세계를 만드는 것이었습니다. 많은 기술적 결정들은 고스트 오브 요테이의 핵심 판타지 즉, 과거의 사건과 마주하는 방랑 무사의 이야기를 중심으로 이루어졌습니다. 저희의 비전이 실현되어 플레이어 여러분이 서로의 경험을 나누고, 포토 모드를 사용하여 멋진 게임 내 스크린샷과 영상을 공유하는 모습을 보니 정말 즐겁습니다.

이 모든 결과에 만족하며, 모두가 고스트 오브 요테이의 황무지를 돌아다니며 즐기시길 바라겠습니다.

Sucker Punch의 기술과 개발 과정에 관한 자세한 정보를 알아보고 싶으시다면 GDC와 SIGGRAPH에서 했던 이전 프레젠테이션을 참조해 주시기 바랍니다. 2026년에 더 많은 정보를 공유하도록 하겠습니다.

이번 포스팅 편집 및 준비에 도움을 주신 재스민 파트리(Jasmin Patry), 더그 데이비스(Doug Davis), 에릭 울라입(Eric Wohllaib)과 Sucker Punch의 모든 분께 감사 인사를 드립니다.

대화에 참가하기

댓글 달기

댓글을 달기 전에

다같이 즐겁게 이야기할 수 있도록 친절하고 배려하는 댓글 달기에 힘써주세요. 부적절한 댓글을 발견하면 PlayStationBlogModeration@sony.com에 신고해주세요

답글 남기기