안녕하세요! 저는 폴란드 글리비체에 위치한 카본 스튜디오(Carbon Studio)의 게임 및 레벨 디자이너, 야쿱 팬더(Jakub Pander)입니다. 저희가 최근 출시한 더 위저드(The Wizards)는 얼리 액세스를 마쳤으며, 이 포스트에서는 제가 학생으로서 언리얼 엔진을 처음 접했을 때보다 더 효율적으로 엔진을 활용할 수 있게 된 방법을 공유하고자 합니다.
서펀트 골렘(Serpent Golem)의 기습
저는 카본 스튜디오에서의 디자이너로 일하면서 실레지아 대학(University of Silesia)에서 비디오 게임 디자인을 전공하는 학생이기도 합니다. 학업을 쌓는 과정에서 레벨 디자인부터 짧은 내러티브를 쓰는 것까지, 게임 개발과 관련된 다양한 강의를 들었습니다. 레벨의 프로토타입이나 간단한 게임을 만들어 오라는 과제도 꽤 자주 있었으며, 여기에는 무슨 엔진이든 자유롭게 사용할 수 있었습니다. 다양한 프로젝트와 결과물을 만들기 위해 상당히 다양한 엔진들을 시험해 보았지만, 결국에는 언리얼 엔진을 사용하게 되었습니다. 그 이유는 곧 설명해 드리겠습니다. 저는 게임 및 레벨 디자이너로써 최대한 빨리 플레이할 수 있는 씬과 게임 스테이지의 메커니즘을 쉽게 만들 수 있어야 했습니다. 또한 개발 후반에는 이런 스테이지들의 외형이 멋져보이게 만들어야 했습니다.
언리얼 엔진 사용
언리얼 엔진을 배우기로 결정한 이유는 몇 가지가 있었습니다. 첫 번째로는 애셋의 드래그 및 드롭과 라이팅 추가 만으로 씬과 레벨을 만들 수 있다는 단순성이었습니다. 물론 이런 씬에는 약간의 메커니즘을 첨가해야 했으므로 아직 완성과 거리가 멀었습니다. 그래서 언리얼 엔진을 좋아했던 두 번째 이유는 바로 블루프린트입니다. 이 부분을 설명하기 전에, 먼저 위저드의 블록아웃(Blockout) 레벨 프로토타입 작업을 엄청나게 쉽게 해 준 VR 에디터를 언급하고 싶습니다.
VR 에디터로 만든 블록아웃 레벨
좋은 VR 배경의 핵심 요소 중 하나는 바로 객체 스케일입니다. 헤드셋을 쓰지 않아 1인칭 시점이 아닌 상태에서 작업을 하면 스케일을 잘못 맞추기가 쉽습니다. 분명 평면 화면에서는 전체 씬이 괜찮아 보였는데, VR 속에서 보면 좀 이상한거죠. 저는 일단 일반 에디터로 주요 흥미 지점을 배치한 다음, 헤드셋을 착용하고 VR 속에서 씬을 채웠습니다. VR 속에서의 스케일 감각을 느껴보면 플레이어의 입장에서 게임을 볼 수 있습니다. 게다가 VR 에디터는 다루기도 상당히 쉽습니다.
블루프린트
블루프린트는 레벨에 간단한 메커니즘은 물론, 사용자가 원할 경우 고급의 메커니즘도 추가할 수 있는 좋은 수단입니다. 제가 과제로 처음 작성했던 블루프린트는 자동문과 레버, 그리고 움직이는 플랫폼이었습니다. 간단한 프로토타입으로는 그 정도로도 충분할 수 있으나, 저는 그 당시 코딩이나 프로그래밍과 관련된 지식이 전혀 없었음에도 여기에 좀 더 수준높은 요소를 더 추가하고 싶었습니다. 저는 슈팅 게임이나 공상과학 통로, 또는 블루프린트 같은 예제 콘텐츠와 무료 프로젝트를 연구하기 시작했으며, 그 작동 원리와 이유를 살펴보고 이해하기 위해(이 부분이 중요합니다. 이해하는 것 말이죠) 하나하나 해체해 보았습니다. 이 도움을 통해 연동 시스템과 퍼즐을 만들 수 있었습니다. 정보가 부족하거나 원하는 블루프린트를 어떻게 만들어야 할지 확신이 서지 않을 경우, 유튜브(YouTube)는 좋은 학습 정보의 출처가 되어주었습니다. 정말 수많은 튜토리얼이 있는 덕분에, 언제나 쓸만한 것을 찾을 수 있었습니다. 나중에는 외부의 도움 없이 혼자서도 문제를 해결하고 메커니즘을 만들 수 있게 되었습니다.
머티리얼과 파티클
레벨 디자이너로써 느끼는 언리얼 엔진의 또 다른 장점은 머티리얼 및 파티클 에디터입니다. 여기서는 블루프린트 에디터와 마찬가지로, 만족스러운 결과를 얻기 위해 여기저기 계속 조작하고 고쳐볼 수 있습니다. 만들고 싶은 이펙트가 있을 경우 우선 콘텐츠 예제와 태양의 사원을 분석하였습니다. 에픽게임즈의 이펙트 케이브 쇼케이스(Effects Cave Showcase) 같은 다른 프로젝트에는 해체해 볼 만한 훌륭한 머티리얼과 파티클이 아주 많이 있었습니다. 이런 것들을 해체하면서 학습한 덕분에 위저드에서 가장 좋아하는 이펙트들을 만들어낼 수 있었습니다. 일반적으로 아트 및 이펙트의 경우, realtimevfx.com과 같은 커뮤니티 사이트는 영감과 정보, 그리고 도움을 얻을 수 있는 훌륭한 소스입니다.
프로파일링
부드럽고 안정적인 프레임 속도는 모든 VR 타이틀에 필수적이며, 언리얼 엔진 4는 병목 현상이 어느 중요 프레임에서 언제, 그리고 어떻게 영향을 미치는지 찾아 볼 수 있는 훌륭한 기본 툴과 고급 툴을 모두 제공합니다. 이것은 누구나 사용할 수 있는 아주 기본적인 명령어로, -stat UNIT 및 -stat FPS를 입력하면 현재 프레임 속도, 게임 및 렌더링 스레드와 GPU 사용량이 표시됩니다. 눈에 확 띄는 프레임 드랍은 찾아내기도 쉽지만, 분간하기 힘들 정도로 더 작은 수준의 프레임 드랍을 찾아내는 데도 도움이 될 수 있습니다.
VR 속에서 표시되는 -stat unit 및 -stat fps 명령
프레임 드랍의 원인을 찾아야하는 경우, 프로파일러를 사용하면 됩니다. 프로파일러는 컴퓨팅 파워를 지나치게 소모하고 있는 부분을 찾아내어, 이 문제를 해결하고 부드러운 90 FPS 경험을 즐길 수 있도록 만들어 줍니다.
툴
에디터에 대한 설명은 이것으로 충분한 것 같습니다. 이제 에디터의 툴에 대해 다뤄보겠습니다. 이제부터 다뤄볼 것들은 작업을 정말 매끄럽고 빠르게 만들어 주었습니다. 콘텐츠 브라우저 구성의 폴더 색 및 필터부터 시작해보겠습니다. 제 경우에는 블루프린트에 파란색, 머티리얼에 녹색, 메시는 청록색 등 언리얼 엔진에서 애셋별로 기본 설정된 폴더 색 설정을 사용합니다.
폴더 색 구성
두번째로 다이내믹 콜렉션은 원하는 애셋에 쉽게 접근할 수 있게 해주어 매우 유용합니다. 예를 들어 동굴 속 씬을 만드려고 할 때는, 바위같은 느낌을 주는 애셋에 쉽게 접근할 수 있습니다. 이 경우 다음과 같은 콜렉션을 만들 것입니다: <(rock) AND (Path:'/ Game'...) AND (Static mesh)> rock 은 애셋 이름의 키워드이고, 그 다음은 경로(만약 다른 경로로부터 애셋들을 배제하고 싶다면)와 스태틱 메시이며, 마지막은 스태틱 메시만 찾도록 한정하는 것입니다. 블루프린트나 머티리얼을 비롯한 다른 것들은 검색되지 않죠. 이러한 콜렉션을 통해 프로젝트에서 모든 rock 관련 메시를 찾을 수 있습니다. 이런 필터를 사용해 사용하고 있는 애셋 팩, 애셋의 커스텀 그룹, 블루프린트나 디스트럭터블을 찾습니다.
마지막으로 다루지만 역시 상당한 중요성을 가진 단축키 바인딩입니다. 저는 기본 트랜스포메이션 모드(이동, 회전 및 스케일)부터 "모든 레벨 저장"및 "선택 숨기기"에 대한 사용자 정의 바인딩까지, 거의 모든 작업에서 단축키를 사용합니다. 제가 가장 좋아하는 단축키 기능은 A키와 D키(위치) 및 쉬프트 키(회전)로 그리드 크기를 키우거나 줄이는 것입니다.

저는 기본적으로 두 번 이상 사용하는 기능에는 모두 제 전용의 단축키를 등록해 놓습니다. 그래서 저희 팀원들은 제 컴퓨터의 에디터를 사용할 때 표준 단축키를 누르면 완전히 다른 기능이 작동하는 것을 보고 매우 당황합니다.
읽어주셔서 감사합니다. 이번 기회를 통해 뭔가 새롭거나 유용한 것을 배우셨기를 바랍니다. 위저드에 관심이 있으시다면 저희 웹사이트나 디스코드(Discord)를 방문해 보세요.