공동 디렉터 Naoki Hamaguchi FINAL FANTASY VII REMAKE INTERGRADE 개발 당시 게임 디자인을 감독하고 개발 환경 관리를 담당했습니다.
리드 렌더링 프로그래머 Shuichi Ikeda 리드 테크니컬 프로그래머 Tomohito Hano
작년에 출시된 파이널 판타지 VII 리메이크(FINAL FANTASY VII REMAKE)는 더 게임 어워즈 2020 최고의 RPG 부문(Best RPG at The Game Awards 2020)에서 수상하는 등 많은 찬사를 받았습니다. 최근 스퀘어 에닉스(Square Enix)는 플레이스테이션 5(PlayStation 5)의 차세대 하드웨어로 더욱 향상된 비주얼과 그래픽을 제공하는 파이널 판타지 VII 리메이크 인터그레이드(FINAL FANTASY VII REMAKE INTERGRADE)를 출시했습니다. 이제 4K 해상도로 출력되는 그래픽 모드와 60fps를 유지하는 퍼포먼스 모드 중에서 선택할 수 있으며, 두 모드 모두 기존 버전보다 시각적 충실도가 훨씬 향상되었습니다. 이 같은 최적화를 두고 디지털 파운드리(Digital Foundry)에서 “FF7 리메이크는 예견된 성과였다”
라는 평을 남기기도 했습니다.
스퀘어 에닉스에서 소니(Sony)의 차세대 콘솔을 어떻게 활용했는지 알아보기 위해 스퀘어 에닉스의 공동 디렉터 나오키 하마구치(Naoki Hamaguchi), 리드 렌더링 프로그래머 스이치 이케다(Shuichi Ikeda), 리드 테크니컬 프로그래머 토모히토 하노(Tomohito Hano)를 인터뷰했습니다. 원활하고 일관된 퍼포먼스를 유지하면서 텍스처 퀄리티를 대폭 향상하고, 로딩 시간을 단축하고, 라이팅과 섀도를 향상한 비결을 이야기합니다.
디지털 파운드리에서는 파이널 판타지 VII 리메이크 인터그레이드를 '지금까지 본 것 중에서 가장 만족스러운 PS5 업그레이드'라고 평가했습니다. 게임을 차세대 콘솔로 업데이트할 때 기술적인 면에서 최우선 목표는 무엇이었나요?
공동 디렉터 나오키 하마구치:파이널 판타지 VII 리메이크의 다음 편으로 이어질 차세대 하드웨어의 퍼포먼스를 직접 체감하는 게 가장 큰 목표였습니다. 고속 SSD의 구현으로 인해 I/O 병목 현상이 사라지면서, 3K, 4K 렌더링 해상도에서 로딩이 어느 정도까지 가능한지, 플레이어가 스트레스 없이 플레이하게 하면서 불러올 수 있는 고퀄리티 에셋의 한계치는 얼마나 되는지를 알 수 있었죠. 차기작을 개발하던 저희 개발자들에게 뜻깊은 경험이었습니다.
파이널 판타지 VII 리메이크 인터그레이드는 플레이스테이션 5에서 로딩 시간이 극적으로 빨라졌습니다. PS5의 NVME SSD에서 로딩 속도 향상을 위해 게임 최적화에 많은 작업이 필요했나요?
리드 테크니컬 프로그래머 토모히토 하노: PS5에 SSD가 탑재되자 I/O 병목 현상은 옛말이 되었습니다. 대신 타임 슬라이싱 및 CPU 로딩으로 인해 로딩 시간이 길어졌죠.
그래서 저희는 병목 현상이 발생하기 쉬운 영역에서 디시리얼라이제이션 시 로딩을 줄일 수 있도록 별도로 시리얼라이제이션을 입력하는 등의 조치를 통해 로딩 흐름을 개선했습니다. 이 같은 노력을 통해 로딩 시간을 12초에서 6초까지 단축할 수 있었습니다.
저희는 더 향상할 구석이 없는지 찾다가 로더가 비효율적이라는 사실을 깨달았습니다. 그래서 언리얼 엔진 4.25에 도입된 언버전드 프로퍼티 시리얼라이제이션(Unversioned Property Serialization)과 IO스토어(IOStore)를 통합했죠. 이번 작품은 UE 4.18을 기반으로 개발되었기에 어느 정도 변경할 필요가 있었지만, 이를 통해 로딩 시간을 2초 정도 단축할 수 있었으니 투자할 가치가 있었다고 생각합니다.
Square Enix 이미지 제공
로딩 화면을 최소화했을 뿐만 아니라 텍스처 로딩 속도도 훨씬 빨라졌습니다. 특히 7번가(Sector 7) 슬럼 구역에서 확실히 느껴졌는데요. 이런 스트리밍 이슈를 언리얼 엔진으로 해결하기 위해 어떤 노력을 하셨는지 말씀해 주실 수 있나요?
하노: 플레이스테이션 4 버전에서는 메모리와 디스크 용량의 한계 때문에 고퀄리티 포맷과 고해상도 텍스처를 포기해야 했습니다. 파이널 판타지 VII 리메이크 인터그레이드를 개발할 때도 고퀄리티 포맷, 고해상도 텍스처를 포함하기에는 디스크 용량이 부족했죠.
앞서 해주신 질문과 이어지는데. PS4보다 늘어난 메모리, 논 스트리밍 밉맵 향상도 텍스처 로딩 개선에 도움이 되었습니다.
고해상도 라이트맵도 사용할 수 있어서 라이팅의 정확도를 향상할 수 있었죠.
Square Enix 이미지 제공
게임의 다양한 장소에 등장하는 스카이박스도 훨씬 선명해지고 사실적으로 바뀌었습니다. PS5의 향상된 처리 능력을 활용해 더 선명한 에셋을 사용했나요?
리드 렌더링 프로그래머 스이치 이케다: 파이널 판타지 VII 리메이크 인터그레이드의 그래픽 모드에 4K 지원을 추가하면서, 기존 스카이박스를 계속 사용하면 해상도의 차이가 상당하다는 사실을 깨달았습니다. 그래서 낮 세팅 위주로 일부 장소의 스카이박스를 업그레이드했습니다. 이 변경에 맞게 렌더링 에셋의 디테일도 업데이트했죠.
파이널 판타지 VII 리메이크 인터그레이드에는 향상된 블룸 라이팅이 추가되어 희미하게 비추던 영역의 조명이 향상되었습니다. 그 결과, 네온으로 가득한 월 마켓(Wall Market) 구역도 훨씬 화려해졌죠. 언리얼 엔진으로 파이널 판타지 VII 리메이크 인터그레이드의 라이팅을 향상할 때 진행하신 작업에 대해 설명해 주실 수 있나요?
이케다: 파이널 판타지 VII 리메이크 인터그레이드 제작을 시작하면서 도시에 배치된 모든 라이트를 다시 계산했고, 그 결과를 바탕으로 배치 수도 늘리기로 했습니다. 네온 라이트의 리플렉션을 위한 표면 역할을 하는 인바이런먼트 맵의 해상도도 늘렸습니다. 스태틱 라이트의 컬러 번 처리 방식도 다시 정비하는 한편, 라이트 프로브를 통한 휘도 보정도 수정했습니다.
구석구석에 배치된 포그 정보가 모든 라이트 소스에 반응하면서 월 마켓의 소란스러운 분위기가 살아났다고 생각합니다. 블룸은 여러 포스트 프로세스에 볼류메트릭 포그를 믹스하는 식으로 제작했지만, 데시메이션과 커널의 처리 방식을 업데이트하여 조그만 장작불의 반응도 보여줄 수 있게 되었습니다.
Square Enix 이미지 제공
디지털 파운드리에 따르면, 파이널 판타지 VII 리메이크 인터그레이드는 라이팅 향상에 그치지 않고 새로운 라이트 포인트도 추가했다는데요. 라이트 포인트를 새로 추가하신 이유를 자세히 들을 수 있을까요?
이케다: 리소스를 활용할 수 있는 여지가 늘어남에 따라, 다양한 장소에 더 많은 라이트 에셋을 추가할 수 있었습니다. 단조로운 지역에 더 많은 정보를 추가해 미드가르(Midgar)의 활기찬 분위기를 강조하는 게 목표였죠.
파이널 판타지 VII 리메이크 인터그레이드에서 SSR(스크린 스페이스 리플렉션)이 업그레이드되었습니다. 특히 워터 리플렉션에서 그 효과를 체감할 수 있었는데요. SSR을 향상하기 위해 어떤 작업을 하셨는지 들을 수 있을까요?
이케다: 파이널 판타지 VII 리메이크 인터그레이드에서 사용한 SSR은 광택이 나는 표면뿐만 아니라 거친 표면에도 레이 트레이싱을 적용하는데, 보통은 생략되는 편입니다. SSR을 사용하면 훨씬 정확한 오클루전을 지오메트리에 적용할 수 있으므로, 표면에 반사되는 풋 램프의 라이트나 칼의 날밑에 반사되는 클라우드(Cloud)의 칼자루에서도 라이트를 볼 수 있죠.
앰비언트 라이트의 에일리어싱이 눈과 코를 통과하며 보기 흉할 때도 있었는데, 이 현상을 상당히 줄였습니다. 일반적으로, 대부분 시선이 닿지 않는 방향의 노멀 매핑 포인트를 통해 매핑 벡터를 얻습니다. SSR에서 해당 벡터를 사용하면 리플렉션 포인트의 방향이 표면의 안쪽을 가리키므로, 항상 트레이싱 오류를 반환하게 됩니다. 이번엔 폴리곤 표면의 매핑 벡터를 버퍼에도 저장하여 리플렉션이 생성될 때 오류 픽셀을 수정하여 문제를 해결했습니다.
일반적인 SSR은 이전 프레임의 이미지를 참조하므로, 카메라가 변경된다거나 할 때마다 리플렉션을 처리하느라 지연되는 현상이 있었습니다. 이번 작품을 개발할 때는 이 현상이 발생할 때마다 미완성된 현재 프레임을 우선 렌더링하도록 설정하여, 대체 레퍼런스를 통해 부자연스러운 현상을 처리하도록 했습니다. 그리고 평범하게 구현할 때는 레퍼런스된 이전 프레임에 이미 렌더링된 포그가 포함될 수 있어 SSR에서 참조될 때 포그를 두 번 처리하게 됩니다.
이미지를 개발할 때는 볼륨 포그가 기억에 많이 남는데, 이 오류는 먼 거리의 랜드스케이프를 반사하는 수면에서 악화됐기 때문이죠. 그래서 저희는 포그가 있는 이미지와 없는 이미지를 따로 저장했습니다. 리플렉션 레이가 닿는 거리에 따라 재구성할 때 환경적으로 더 적합한 포그 밀도를 형성함으로써 훨씬 자연스러운 리플렉션을 구현했습니다.
Square Enix 이미지 제공
파이널 판타지 VII 리메이크 인터그레이드의 섀도 퀄리티를 보니 외곽선도 뚜렷해지고 훨씬 현실적으로 변했습니다. 특히 관문 같은 엘리먼트에 캐스트된 섀도에서 두드러졌죠. 게임 속 섀도의 충실도를 개선하면서 어떤 작업을 하셨는지 들을 수 있을까요?
이케다: 일단 섀도의 프로세싱 버퍼부터 다시 할당해야 했습니다. 메모리 할당을 변경하여 전체적인 충실도를 개선한 덕분에, 이전에는 구현할 수 없었던 지오메트리 디테일에도 리플렉션을 적용할 수 있었습니다. 게다가 샘플링 도중 발생하는 떨림 현상과 바이어스를 수정해 충실도가 떨어지는 일도 줄일 수 있었죠.
마이크로 섀도잉에는 SSAO를 사용하고 있는데, 그중에서 디노이징 컴포넌트를 포함한 일부를 다시 작성했으니 더욱 선명한 디테일이 느껴지실 겁니다.
Square Enix 이미지 제공
파이널 판타지 VII 리메이크 인터그레이드에 사용된 볼류메트릭 포그로는 에어리스(Aerith)의 집밖 정원 같은 환경의 분위기를 바꿨습니다. 이 기능을 차세대 업데이트에서 구현하는 게 적절했던 이유와 언리얼 엔진으로 어떻게 구현하셨는지 들을 수 있을까요?
이케다: 볼류메트릭 포그는 이미 사용하고 있었지만, 위치나 밀도 같은 에셋 세팅은 최적화가 더 필요했습니다. 그래서 임의의 파라미터를 전부 제거하고 PBR(물리 기반 렌더링)을 사용해 미드가르의 분위기를 더 일관적으로 만들 수 있었습니다.
포그 밀도와 같은 세팅은 아티스트가 붓으로 칠하듯이 월드 공간에 반영되었습니다. 이 정보는 프로브 데이터로 배치된 다음, 런타임 시 카메라의 뷰 프러스텀 내의 복셀 계산에 포함됩니다. 이 계산은 아지랑이도 고려하므로, 가까이서 유심히 보면 라이트 섀프트가 약간 흔들리는 모습을 볼 수 있습니다.
포그를 비추는 소스의 경우, 규칙적 라이트 소스만 있는 게 아니라 다수의 라이트 프로브도 공간을 채우고 있습니다. 스캐터링용 계산 모델은 미 스캐터링을 준수했으며, 프론트 릿도 생략 없이 표시되었습니다. 이 포그도 이펙트에서 포함할 수 있습니다. 네로(Nero)의 공격이 좋은 예시죠.
비주얼 면에서도 많은 개선을 이루었지만, 파이널 판타지 VII 리메이크 인터그레이드의 가장 큰 성과는 4K 그래픽 모드에서 30fps, 저해상도 퍼포먼스 모드에서 60fps를 일관되게 유지한 점입니다. 게임을 목표 퍼포먼스까지 최적화하면서 어떤 작업을 하셨나요?
하노: PS4 버전에서 거둔 성과 중 하나로 워크플로를 들 수 있는데, 이를 통해 프로세스에 사용되는 로딩을 개선할 수 있었습니다. 반드시 수정해야 할 부분부터 살펴보고, 프로세싱 로딩 규칙을 정했습니다. 이를 바탕으로 QA 팀은 이 규칙에 맞지 않는 영역을 확인하고 버그 신고를 통해 보고했죠. 이렇게 보고된 버그 신고는 최적화 담당 프로그래머에게 전달됩니다. 프로파일링 결과, 이슈, 솔루션은 각 담당자에게 전달됐죠. 각 항목이 이 규칙에 부합할 때까지 프로세스를 반복했습니다. 이런 노력을 통해 플레이어의 관점에서 발생하는 수많은 문제를 이해하고 안정적인 프레임 레이트를 유지할 수 있었습니다.
Square Enix 이미지 제공
차세대 콘솔로 게임을 포팅하려는 언리얼 엔진 개발자들에게 드리고 싶은 조언이 있나요?
하마구치: 파이널 판타지 VII 리메이크 인터그레이드를 개발하는 동안, 언리얼 엔진이 얼마나 다재다능한 툴인지 알 수 있었습니다. UE 4.18을 기반으로 PS4용 파이널 판타지 VII 리메이크를 개발할 때는 당연히 PS5 같은 차세대 플랫폼을 지원할 여지가 없었습니다. 하지만 UE4의 최신 버전을 기반으로 직접 몇 가지 항목을 부분 병합하거나 구현하기만 하면 됐습니다. 언리얼 엔진에는 구버전에서 확장할 수 있는 유연성이 있습니다. 물론 UE의 네이티브 코드를 수정해야 할 때가 있어서 엔지니어의 기술이 필요한 경우도 여전히 있지만, 오늘 이 기사가 좋은 참고 자료가 되어 차세대 콘솔로 게임을 포팅하려는 분들에게 도움이 되길 바랍니다.