사운드를 이렇게 쉽게 넣어도 되나?
아주 오래 전에 온라인 TPS 게임 만드는데 참여한 적이 있습니다. 유명한 아이피 기반의 TPS 게임이었는데 아주 빠른 의사 결정 구조에 기반해 여러 가지 아이디어를 빠르게 테스트 하는 환경에서 보조 기획자 역할을 통해 게임에 기여할 수 있었습니다. 기획자라는 타이틀을 달고 있긴 했지만 팀 구성은 테크와 아트, 그리고 디렉터와 기획자 한 명으로 구성되어 있어 다른 사람이 하지 않는 일은 뭐든 해야 하는 환경이었는데 덕분에 이게 당연하다고 생각했고 또 이 생각이 지금까지 이어지고 있습니다.
실은 최근에, 그리고 이전에 한 번 이 생각이 현대에는 그리 옳지 않을 수도 있다고 생각한 적이 없지는 않지만 일해 온 전체 기간을 생각하면 나쁜 때 보다는 좋은 때가 더 많았다고 생각합니다. 그리고 나서 아주 오랫동안 여러 플랫폼에 주로 MMO 게임만 만들다가 세월이 흐른 다음 다시 TPS 장르를 만들고 있으니 쓸모 없는 일은 없다 싶기도 합니다.
한편 그 때 한번은 디렉터님과 이야기 하다가 질문을 받았습니다. 당시 저는 팀에서 가장 어린 테크의 병역특례 하시는 분들 보다 나이가 약간 더 많은 그나마 어린 축에 속했기 때문에 종종 뭔가 좋은 아이디어가 필요한 상황에 불려 가곤 했는데 지금 생각해 보면 어리다고 해서 좋은 아이디어를 가지고 있을 리 없었습니다. 이제 게임 규칙은 정립되었고 컨텐츠도 어느 정도 준비되었기 때문에 서비스 준비 단계로 진입할 수 있을 즈음이었는데 이 시점에 뭔가 해야 할 일이 없을지 검토해 보는 중이었습니다. 이 즈음에 개인적으로 아쉬운 점은 게임 내 사운드가 3차원 공간에서 나고는 있었지만 그 소리가 사물에 가로 막히지는 않았습니다. 그래서 벽 뒤에 숨어 있어도 무기를 재장전하거나 아이템을 먹으면 상대가 알 수 있었는데 벽 뒤에서 나는 소리는 가로막혀야 하지 않나 싶어 이 이야기를 했다가 디렉터님의 애정이 가득한 어깨동무를 받은 채 설명을 들어야 했는데 지금 생각하면 제가 얼마나 허무맹랑한 이야기를 했는지 웃깁니다.
"우진아. 지금 네가 한 말이 얼마나 비싼 이야기인 줄 아니?"로 시작한 이야기는 한참이나 이어졌는데 그 때는 되게 부끄럽고 아무 말도 안 했으면 중간이라도 갔을 텐데 싶었습니다. 그 시대에는 아직 언리얼 3이 없었고 우리는 전작인 레이싱 게임을 만들었던 자체 엔진을 마개조해 TPS를 만들고 있어 사운드 시스템 개선 같은 건 아예 생각하지도 못할 상황이었습니다. 간신히 3차원 공간에서 난 소리가 거리에 따라 감쇄하는 상황에서 소리를 벽에 막히게 해 달라고 이야기했으니 얼마나 어처구니가 없었을까 싶습니다.
그리고 시간이 흐르며 다시 사운드 관련 업무를 할 일은 거의 없었는데 다행히 이후 경험한 여러 프로젝트에서는 사운드 부서가 프로젝트 안에 있거나 적어도 같은 회사 안에 있어 사운드 스탭 분들의 강력한 기여 속에 개발할 수 있었기 때문입니다. 사실 이 말을 달리 표현하면 사운드에 별로 신경 쓰지 않고 있어도 서비스 할 즈음이 되면 어느 새 게임에서는 자연스럽게 소리가 났고 심지어 꽤 괜찮은 소리가 났으며 조금 아쉬운 소리에 대한 의견을 내면 사운드 스탭 분들이 정성스럽게 고쳐 주셨습니다. 또 사운드 부서가 회사 밖에 있어도 다행히 회사 안의 카운터 파트를 담당할 일이 없어 사운드 부서가 회사 밖에 있는 상황에서도 제가 맡은 일을 하다 보면 이전과 비슷하게 어느 새 게임에서 소리가 나기 시작했고 이번에도 똑같이 사운드에 크게 신경 쓰지 않고 살았습니다.
하지만 그냥 알아서 잘 되는 일과 그렇게 만드는 프로세스는 없다는 사실을 잘 알고 있기에 사운드 담당자가 회사 밖에 있고 회사 안에서 카운터 파트 역할을 할 다른 사람이 아무도 없는 상황이 닥쳤을 때 이제 오랜 세월에 걸쳐 사운드에 아무 신경 쓰지 않아도 게임에서 좋은 소리가 나는 신기한 경험 속에 감춰진 고통을 마주할 때가 왔다는 사실을 깨달았습니다. 이전에 사운드 관련으로는 그저 사운드 목록을 만들거나 게임에서 나기를 원하는 사운드의 느낌과 의도를 전달하는 것 이외에는 아무 것도 해본 적이 없었지만 어떻게 하는 줄 모르니 다른 사람에게 시킬 수도 없었고 하는 수 없이 회사 바깥의 사운드 담당자와 협업해 게임에서 소리가 나게 만드는 역할을 맡게 됩니다.
사실 믿는 구석이 아예 없지는 않았습니다. 우연히 유튜브 알고리즘이 추천해 줘서 보게 된 몇몇 언리얼 튜토리얼에서 인터페이스 이벤트에 사운드를 넣거나 3차원 공간에서 나는 소리를 넣는 요령을 본 적이 있었고 이 영상들로부터 언리얼에서 사운드 소스는 사운드 큐를 통한 일종의 추상화 과정을 거쳐 실제 소리를 낼 순간에 사용된다는 점을 대략적으로 알고 있었습니다. 튜토리얼 영상과 에픽 문서 사이를 헤매며 어떻게 잘 비비면 이 사태를 무사히 넘어갈 수 있지 않을까 하는 작은 희망을 가졌습니다.
게임을 크게 전투 부분과 비전투 부분으로 구분해 사운드를 넣기로 하고 전투는 언리얼의 애님몽타주에 노티파이에 사운드를 넣었는데 이건 이전에 같은 일을 한 적이 있는 다른 분이 담당하기로 하고 저는 그거 말고 나머지 모든 부분에서 나는 소리를 담당하게 됩니다. 여기에는 인터페이스를 조작할 때 나는 소리에서 시작해 레벨에서 나는 환경음, 레벨에 배치된 물체로부터 나는 효과음, 물체가 동작할 때 나는 소리, 플레이어나 몬스터가 상호작용 할 때 나는 소리 등등이 있었습니다. 다행히 우리는 아주 현실적인 게임은 아니어서 플레이어가 내는 소리라고는 움직일 때 나는 발소리, 점프할 때와 피격 당할 때 내는 보이스 정도면 충분했고 무기나 몬스터도 그리 복잡하지 않았으며 물체 간의 상호작용은 일단 이번에는 크게 신경 쓰지 않는 선으로 목표를 정하면서 유튜브에서 언리얼 튜토리얼을 보고 간신히 언리얼 엔진의 사운드시스템의 완전 기초를 간신히 배운 사람이 어떻게든 할 수 있는 난이도가 되었습니다.
최신 언리얼 환경에서 사운드를 넣다 보니 이 환경이 얼마나 간단하게 잘 만들어져 있는지 감탄했는데 이건 기존에 다른 사운드 시스템을 경험해 본 적 없는 입장이기 때문에 실은 현대 기준으로는 별 것 아닌데도 감탄하는 것일 수도 있습니다. 일단 사운드 소스를 엔진에 가져온 다음 이를 그대로 재생할 수도 있었지만 용도에 따라 사운드를 엔진 자체에서 실시간으로 가공하데 사용하는 사운드 큐라는 일종의 추상화 구조를 만들어 이 사운드 큐를 재생하는 방식을 사용하는 것이 더 일반적인 방법인 것 같아 보였습니다. 사운드 큐는 사운드 소스로부터 소리를 가져와 실시간 효과를 추가하고 간단한 로직에 기반해 사운드를 선택하거나 사운드 종류에 따라 3차원 공간에서 감쇄 시킬 수도 있고 스테레오 환경에서 방향을 지정할 수도 있는 등 사운드 처리에 별 지식 없이도 그냥 필요에 따라 실시간 사운드 가공을 정말 쉽게 만들 수 있었습니다. 물론 그런 사운드가 모여 게임 상에서 실시간으로 재생된 그 결과가 훌륭한지와는 별개의 문제입니다.
사운드를 넣으며 가장 놀란 점은 앞에서 설명한 3차원 공간에서 거리와 방향, 그리고 소리의 종류에 따라 일어나는 감쇄의 정도와 3차원 공간에서 소리를 완전히 막는 물체와 적당히 통과시키는 물체를 얼마나 간단하게 설정할 수 있는지 알게 된 것이었습니다. 오래 전에 그 시대에 우리의 기술력에 기반하지 않은 완전히 모를 소리를 했다가 한동안 잔소리를 들었던 경험을 돌이켜 볼 때 레벨에 사운드를 배치하며 한 경험은 황당할 정도였습니다. 미리 소리 종류에 따라 감쇄 정도를 커브 에셋에 미리 정의해 놓고 사운드 큐에서 소리를 실시간으로 가공할 때 커브 에셋을 지정하면 3차원 공간에서 원하는 만큼 알아서 감쇄됩니다. 게다가 물체를 세울 때 소리가 전달되지 않거나 적당히 전달되기를 원하는 벽을 설정해 놓으면 그걸로 끝이었습니다.
소리는 벽 뒤로는 전달되지 않았고 이전에 TPS 게임에서 해 보고 싶었던 벽 뒤에서 걸어도 발소리가 잘 들리지는 않지만 무기 재장전 소리는 잘 들리는 동작을 예상보다 허탈할 정도로 간단히 만들 수 있었습니다. 만들어 놓고도 신기해서 레벨에서 소리를 내는 물체 주변과 주변의 벽을 포함한 공간을 빙빙 돌며 이게 어떻게 이렇게 간단히 되는지 한동안 신기해 했습니다. 하지만 그런 소리가 게임 플레이와 어울리고 또 게임디자인 관점에서 플레이에 올바른 영향을 주도록 튜닝 하는데는 이런 튜토리얼 수준의 지식이 아니라 진짜 제대로 된 경험이 필요할 거란 사실을 잘 알고 있고 이번에는 어쩔 수 없이 초보자가 작업했지만 앞으로는 그럴 수 없으리라는 사실을 잘 이해하고 있습니다.
전에 함께 일한 적 있는 엔지니어님과 아주 오랜만에 만나 이야기하다가 이전에는 언리얼 엔진을 다루는 여러 가지 방법이 고급 기술이었지만 현대에는 유튜브에서 튜토리얼을 검색해 그대로 따라할 수 있는 수준의 지식으로 더 이상 고급 기술이 아니며 현대에는 기술만으로는 다른 플레이어들과 경쟁하기 어렵고 그 기술을 잘 다뤄 의미 있는 결과를 만드는 경험과 과거의 고급 기술에 편견 없이 접근할 수 있는 사람들에게 오히려 장점이 있을 거라는 이야기를 나눴습니다. 이번에 게임에 어쩔 수 없이 튜토리얼 수준의 기술을 간신히 갖춘 사람이 사운드를 넣으며 같은 생각을 하게 만드는 경험을 했습니다. 과거에 고급 정보였던 어떤 기술들은 현대에 더 이상 고급 정보가 아니며 현대 플레이어들의 경쟁력은 그 기술에 기반해 의미 있는 결과를 만들어내는 경험에 있다는 생각이 듭니다.
결론. 유튜브에서 튜토리얼 몇 개를 본 상태로 상업용으로 개발하는 언리얼 환경에서 게임에 사운드를 생각보다 쉽게 넣을 수 있었고 그럴 듯한 상태에 도달했습니다. 하지만 사운드를 넣는 것과 그 사운드가 게임 상에서 고객에게 우리가 의도한 올바른 경험을 주는 것은 완전히 다른 이야기입니다. 과거에 고급 정보로 취급되던 기술 중 일부는 현대에 더 이상 그렇지 않으며 기술 보유 만으로는 경쟁력에 영향을 주지 않습니다. 현대 경쟁력의 핵심은 기술을 사용해 의미 있는 결과를 만들어내는 경험에 있습니다. 그리고 언리얼 엔진에서 3차원 공간에 사운드 넣는 기술 자체는 단순하게 잘 구성되어 있습니다.