All Walls Must Fall
2017. 4. 4.

단순한 음향을 뛰어넘은 All Walls Must Fall의 비트에 숨은 비법

글쓴이 Isaac Ashdown,

안녕하세요, 저는 인비트윈 게임즈(inbetweengames)의 공동 설립자 겸 테크니컬 디렉터 아이작 애쉬던(Isaac Ashdown)입니다. 저희 개발사는 베를린에 위치해 있으며, 스펙 옵스: 더 라인(Spec Ops: The Line)과 데드 아일랜드 2(Dead Island 2)의 제작사인 YAGER에서 몸담았던 개발자 3명으로 구성되어 있습니다. 제작진은 현재 제작중인 2089년 나이트클럽 배경의 테크-느와르 전술 게임 신작 올 월즈 머스트 폴(All Walls Must Fall)의 킥스타터 캠페인을 진행하고 있습니다. 이번 포스트에서는 음악과 음향 효과를 절차적으로 믹스하는, 이 게임 내에서 아주 중요한 기능을 언리얼 엔진으로 어떻게 만들어 내었는지 다루어보고자 합니다.
 



올 월즈 머스트 폴에서는 모든 진행이 음악의 비트에 맞추어 이루어집니다. 플레이어는 시간 여행 능력을 가진 비밀 요원들을 조종해 베를린의 음지에서 각종 임무를 수행해야 합니다. 이 게임의 장르는 전술 게임으로 각 요원들은 모두 플레이어의 명령을 직접 받고 수행하며, 모든 행동의 지속 시간은 음악의 비트를 기준으로 계산됩니다. 또한 각 행동의 음향 효과는 배경 음악에 타악기 등의 음악 구성 요소로 추가되며, 이 배경 음악의 비트는 라이팅과 애니메이션 등에도 영향을 미치게 됩니다. 제작팀의 목표는 게임 내에서 오디오 및 그래픽 효과를 총동원하여, 마치 정말 클럽에 온 듯한 공감각적인 효과를 만들어 내는 것입니다.


blogAssets%2F2017%2FAPRIL+2017%2FAll+Walls+Must+Fall+Tech+Blog%2FAllWallsMustFall_TechBlog_Pic1-770x433-56f03e07f8e3b658936a5fe4ebf77cbb078cca8c

이렇게 게임용 음악을 만들기 위해 제작진은 일렉트로닉 장르의 음악을 작곡하는 방법에서 영감을 얻었으며, 서로 다른 음악의 루프를 한데 이어주는 인게임 절차적 시퀀서를 만들었습니다. 이를 통해 게임 속에서 벌어지는 사건에 따라서 악기의 종류나 곡 자체를 바꾸어 게임 속 분위기에 긴장감을 더하거나 덜어줄 수 있으며, 플레이어로 하여금 전술적 선택을 내리는 데 더욱 강렬한 심적인 압박을 가하게 됩니다. 각 트랙은 악기 유형, 긴장감의 수준과 해당 트랙을 재생해야 할 상황이나 게임 플레이별로 구성한 데이터테이블로 이루어져 있습니다.

이는 수많은 게임 플레이 시스템을 기반으로 루프와 스템을 역동적으로 추가 / 제거해야 하는 굉장히 복잡한 시스템입니다. 다행히 제작진은 언리얼 엔진의 UMG 시스템을 활용하여, 음악 시스템이 현재 무엇을 재생중인지 확인할 수 있는 라이브 비주얼라이저를 빠르게 구성할 수 있었습니다. 그저 시스템의 일부 파라미터를 블루프린트에 노출시키는 것만으로도 단순한 UMG 위젯을 활용해 현재 무슨 루프가 재생중인지, 또 어떤 게임플레이 태그가 구성되어 있는지 파악할 수 있으며, 몇 가지 드롭다운 메뉴를 통해 파라미터에 변화를 주어 게임 시스템 자체와의 인터랙션도 관찰할 수 있는 비주얼라이저를 만들어낼 수 있었습니다. 이를 통해 전체 시스템의 직관성을 높여 새로운 사용자도 어려움 없이 사용할 수 있으며, 게임의 시스템을 위해 음악을 작곡해줄 수많은 작곡가들과 협업하면서도 해당 음악이 원작자의 구상에 잘 맞게 재생되고 있는지 확실하게 파악할 수 있었습니다.
 



전체 오디오 시스템은 언리얼 엔진의 표준 오디오 컴포넌트를 활용해 모든 사운드를 재생합니다. 이를 통해 사운드 큐를 활용하여 현재 재생중인 사운드도 수정이 가능합니다. 제작진의 오디오 디자이너 앨무트 슈바크(Almut Schwacke)는 각 레이어에서 선택한 다양한 무작위 노드를 활용해 다양한 컴포넌트를 연결해주는 미래적 느낌의 멋진 총소리를 만들어 내었습니다. 그런 다음에는 모듈레이터 노드가 최종 피치 및 볼륨의 다양성을 추가해주며, 마지막으로는 믹서 노드가 이 모든 것을 하나로 통합해줍니다. 이런 과정을 통해 적은 숫자의 소스 오디오만을 가지고 정말 엄청난 양의 파생곡들을 변주해낼 수 있었습니다.

blogAssets%2F2017%2FAPRIL+2017%2FAll+Walls+Must+Fall+Tech+Blog%2FAllWallsMustFall_TechBlog_Pic2-770x396-b0604cb4ab6d59bd18ffbe21ef4a275e736c400c

사운드 큐 프레임워크는 사용하기가 간편할 뿐만 아니라 강력한 위력도 지니고 있으며, 커스텀 사운드 노드 제작 기능을 통해 쉽게 확장할 수 있다는 특징도 가지고 있습니다. 그저 USoundNode에서 새로운 c++ 클래스를 파생시키고 몇 가지 함수를 오버라이드하는 것만으로도, 기존 사운드에 커스텀 음향 효과를 더하는데 활용할 수 있는 완전히 새로운 기능을 추가할 수 있습니다. 또한 클럽 바깥에서 두꺼운 콘크리트 벽 너머로 희미하게 들려오는 음악과 댄스플로어 바로 위에서 뚜렷하게 들리는 음악 간의 차이 같은 효과를 주기 위해 간단한 Global Club FX 노드도 제작하였습니다. 이 노드는 게임 월드 내에서의 플레이어의 위치를 활용하여 저역 필터 등의 파라미터를 수정해, 게임의 배경 음악에 변화를 주고 원하는 효과를 반영합니다.
 



이 오디오 시스템은 벌써 수 개월 동안이나 개발에 착수해 왔으며, 그 결과물은 상당히 만족스럽습니다. 베를린은 테크노 및 일렉트로닉 장르의 음악계가 탄탄하게 구성되어 있으며, 제작진이 이번 게임 제작에서 항상 추구했던 목표 중 하나는 다양한 작곡가들 및 음악가들과 협력하여 풍성한 사운드트랙을 만들어내는 것이었습니다. 하지만 위와 같이 만들어낸 시스템에는 각 트랙에 루프별로 나뉜 개별적인 wav 파일 세트와 메타데이터 전부가 추가되며, 보다 복잡한 트랙의 경우에는 70개가 넘어가는 루프가 추가되고 맙니다. 제작진은 이 데이터를 언리얼 엔진의 데이터블 시스템을 활용해 엔진에 입력했지만, 이 정도 양의 데이터를 유연성까지 유지하면서 추가하는 것은 굉장히 시간이 많이 드는 작업입니다. 또한 제작진은 작곡가들로 하여금 이 값들을 직접 조정하고 트랙 내에서 반복 재생할 수 있기도 바랐습니다. 이 부분에서 오토마톤(Automation) 시스템이 등장합니다. 제작진은 애셋 레지스트리 API에 대한 단순한 호출을 통해, 사용자가 애셋 브라우저에 간단하게 wav 파일을 드롭한 다음 자동화 작업을 실행하여 에디터로 하여금 자동으로 데이터테이블을 wav 파일로 채울 수 있는 작업방식을 만들어내었습니다. 이 과정에서는 파일에서 이미 발견되었을 수 있는 메타 데이터를 추출하기 위해 간단한 파일명의 구문 분석까지도 시행하게 됩니다.

blogAssets%2F2017%2FAPRIL+2017%2FAll+Walls+Must+Fall+Tech+Blog%2FAllWallsMustFall_TechBlog_Pic3-770x292-e708746692f978524bd7542d9a3b102d53fa838e

액션과 총격전만이 게임 속 비트에 맞추어 벌어지는 것이 아니라, 배경 요소 역시 음악과의 상호작용을 보여줍니다. 클럽에 놀러온 사람들은 음악에 맞추어 춤을 추고, 조명은 움직이며, 댄스 플로어는 리듬에 맞추어 진동하는 모습을 보여줍니다. 이 중 대부분은 타임라인을 활용한 블루프린트로 만들어낸 것입니다. 제작진은 음악의 유연성을 극대화하기 위해, 타임라인의 길이나 트랙의 속도와는 관계 없이 모든 타임라인 및 커브를 사용하고 리듬에 맞출 수 있기를 바랐습니다. 이를 위해 트랙이 시작되면 타임 라인의 자연 길이를 비트의 세트 넘버로 전환하는 배수를 계산하고, 세트 플레이 속도 노드를 사용해 타임라인의 속도를 적절하게 조절합니다. 그런 다음에는 트랙이 시작되면 어떤 타임라인이든 재생할 수 있으며, 그 출력을 활용해 라이트의 밝기나 머티리얼 파라미터, 혹은 리듬에 맞는 움직임 등의 요소를 조정할 수 있습니다.

blogAssets%2F2017%2FAPRIL+2017%2FAll+Walls+Must+Fall+Tech+Blog%2Floopdance-094ba326939a84f68243fdbeb3dd4c1455dc2351

제작진은 지난 몇 년 동안 AAA급 개발사에서 경력을 쌓으며 언리얼 엔진 활용 경험을 쌓았기 때문에, 처음으로 착수하는 인디 게임 프로젝트에 언리얼 엔진을 차용한 것은 너무나 당연한 선택이었습니다. 하지만 이렇게 작은 규모의 팀과 예산으로도 엔진의 확장성과 위력 덕분에, 자신의 규모보다 훨씬 체급이 높은 게임의 개발에도 도전할 수 있다는 점은 정말 믿을 수가 없을 정도입니다. 저는 이번 프로젝트의 시작 전까지만 하더라도 오디오 및 사운드 코딩을 잠깐 건드려 본 수준에 불과했지만, 툴체인의 친화성과 기반 시스템의 확장성을 통해 인디 게임의 오디오 제작에도 굉장히 혁신적인 접근을 취할 수 있었으며 그 결과도 굉장했습니다.

올 월즈 머스트 폴은 현재 1년이 넘는 기간 동안 제작해 왔으며, 오는 5월 시작되는 클로즈 알파 액세스를 위한 자금을 모으기 위해 현재 킥스타터 캠페인이 진행중입니다. 만약 이 게임의 알파 액세스에 관심이 있으시다면, 지금 바로 킥스타터를 확인해 보시기 바랍니다!

최근 게시글

Andy Serkis가 비디오 게임 기술 속 언리얼 엔진의 발전을 논하다

언리얼 엔진으로 제작된 Planet of the Apes: Last Frontier는 동명의 Fox 영화 프랜차이즈를 인터랙티브 엔터테...

Stonehenge VR SANDBOX로 독창적인 스톤헨지를 건설해 보십시오.

VR을 직접 경험한 후 열정으로 가득해진 Jessica Villarreal과 Christian Bretz는 즉시 VR이 가지고 있는 잠...

Maelstrom의 환상 속, 높은 파도가 치는 위험한 바다

Maelstrom은 해상 전투에 수많은 커스터마이제이션을 가진 아케이드 스타일의 액션과 판타지의 분위기를 합쳐, 여러분이 이 장르에 대...