게임 음향 커뮤니티에서 가장 흔한 질문 중 하나는 바로 '미들웨어 사용의 장점을 상사나 고객에게 어떻게 설명해야 하는가'입니다. 우리 음향 전문가의 입장에서 이 질문은 너무나 쉽게 들릴 수 있죠. 하지만 이 질문을 객관적으로 대답할 수 있으려면 고객의 입장에서 볼 필요가 있습니다.
미들웨어 없이 작업을 완료할 수 있을 텐데 왜 굳이 추가 비용을 들여서 미들웨어를 사용해야 할까요? 비용에 비해 어떤 장점이 있을까요? 오늘날 게임 개발 환경에서, 특히 적은 예산으로 작업하는 소규모 인디 팀에서 오디오 기능이 내장된 Unreal(언리얼)이나 Unity(유니티)와 같은 서드파티 엔진을 사용하는 올인원 솔루션이 점점 인기를 얻고 있습니다. 이러한 경우 특수화된 사운드 엔진으로의 투자를 어떻게 정당화할 수 있을까요?
프로젝트를 기획하는 프로듀서나 스튜디오 감독의 시점에서 라이선스 비용은 다른 곳에 쓸 수 없는 현금과 같습니다. 단일 플랫폼 예산으로 미화15만에서150만 달러를 가진 단일 플랫폼 프로젝트가 있다고 가정합시다. 이 프로젝트의 제작 예산에 따라 Level B 라이선스 비용은 6,000 달러가 됩니다. 이 예시에서 Wwise를 사용하는 것은 시니어 멤버 한 명, 혹은 주니어 멤버 1.5명의 한 달 월급과 같은 비용이 됩니다. 그렇다면 Wwise를 사용할 경우 아마 한 기능의 개발을 중단하거나, 보다 적은 에셋을 제작해야 하겠죠. 여기서 중요한 것은, 합당한 거래가 성립돼야 한다는 점입니다. 이 비용을 정당화하려면 Wwise를 사용할 경우 얻을 수 있는 이점이 고려 사항보다 얼마나 중요한지를 입증해야 합니다. 높은 수준의 관점에서 볼 때 이러한 입증은 사운드 디자이너와 프로그래머 모두가 소비하는 시간을 줄이면서 제작의 품질을 향상시킬 수 있죠.
Wwise 사용의 비용이 오디오 프로그래머를 한 달 동안 고용하는 비용과 같지만 실제로 오디오 프로그래머를 두 달 동안 고용하는 만큼의 비용을 아껴준다면, 이 수치만으로 쉽게 Wwise 사용의 정당성을 입증할 수 있을 것입니다. 그렇기 때문에 Wwise를 사용하면 사실상 프로듀서가 리소스를 더 얻어서 프로젝트의 차익을 늘일 수 있게 됩니다.
다시 말해 특정 기능이나 장점에 대해 얘기할 때, '이 기능이 시간을 줄여주거나 품질을 향상하는가'라는 질문을 자신에게 묻고 고객에게 답해야 합니다. 물론 자세한 답변은 프로젝트마다 기존 엔진에서 제공하는 기능의 요구 사항과 기본 사항에 따라 다를 수 있지만, 여기에서는 Wwise의 주요 기능으로 시간을 줄이고 품질을 향상시키는 방법에 대해 간단히 다뤄보겠습니다.
저작 작업 과정
Wwise에서 사운드 디자이너가 하는 대부분의 작업은 저작 애플리케이션에서 일어납니다. Authoring(저작) 작업 과정은 강력한 기능과 사운드 디자이너가 이해할 수 있는 언어로 된 도구를 창의적으로 제공하죠. 이에 대한 예시로 데시벨로 표현된 볼륨, 버스 믹싱 계층 구조, 엔벨로프(envelope), LFO, 그리고 매개 변수 곡선의 시각적 편집 등이 있습니다. 이러한 것들은 디지털 오디오 편집 프로그램(Digital Audio Workstation, DAW)과 샘플러에서 사용하는 언어와 동일하며 사운드 디자이너가 빠르고 정확하게 작업할 수 있게 해줍니다. 둘째로, 게임 오브젝트에서 오디오 기능을 분리하여 프로젝트에서 파일 접근에 대한 의존성을 최소화해줍니다. 씬, 맵 파일, 게임 오브젝트, 블루프린트는 모두 팀의 다른 멤버도 접근해야 하는 것들인데, Wwise를 사용하면 이러한 것을 변경할 필요 없이 대부분의 작업을 실행할 수 있죠. 이 기능은 사운드 디자이너의 시간뿐만 아니라 다른 팀 멤버의 시간 또한 절약해줍니다. (사운드 디자이너의 시간은 궁극적으로 품질에 영향을 미칩니다. 블루프린트 및 소스 컨트롤과 사투를 벌이거나 파일 접근을 기다릴 필요가 없다는 말은 곧 게임 음향을 더 뛰어나게 만들 시간이 늘어난다는 것이니까요!)
창의적인 기능
효과음의 설계와 구현에 있어 (VO와 음악은 나중에 다루겠습니다) Wwise의 핵심 기능은 바로 Actor-Mixer Hierarchy(액터 믹서 계층 구조)와 Random, Blend, Switch, Sequence라는 컨테이너 유형입니다. 이러한 네 가지 컨테이너 유형 (서로 둥지화하고 조합할 수 있음)을 사용하여 사운드 디자이너는 여러 가지 변형의 풀에서부터 랜덤으로 사운드를 선택하는 기본적인 작업부터 아주 복잡한 레이어링과 동적인 사운드 구조화에 이르기까지 엄청나게 다양한 사운드 작동 방식을 구성할 수 있습니다. 뿐만 아니라 실시간 매개 변수 제어(Real-Time Parameter Control, RTPC), Switch, State를 정의해, 게임으로부터 수신하면 다양한 사운드 속성에 매핑할 수 있습니다.
발자국 소리를 예로 들어 봅시다. 만약 캐릭터가 다섯 가지의 지표면에서 세 가지 다른 속도로 걸어야 한다면 각 순열에 대한 샘플을 담은 Random Container (예: Grass/Walk, Grass/Run), 각 순열을 '속도' 매개 변수나 Switch에 매핑하는 Blend나 Switch Container, 지표면을 전환하는 최상위 레벨의 Switch Container로 구조를 조합할 수 있습니다. 이 모든 것은 Wwise에서 몇 분 만에 조합할 수 있습니다. 그리고 코드에서는 각 발자국에 '발자국 소리 재생' Event를 연결하고 '지표면'과 '속도'가 변함에 따라 이에 대한 값을 설정하기만 하면 되죠.
또 다른 예시를 들어봅시다. 어택 부분, 꼬리 부분, 그리고 가까이에서만 들을 수 있는 '장치' 레이어로 구성된 무기 사운드가 있으며 각 레이어에 변형이 담겨 있다고 가정해봅시다. 이 사운드는 세 개의 Random Container를 조합하는 Blend Container를 사용하여 조합할 수 있습니다. 그리고 장치 레이어를 다양한 시간으로 지연할 수 있습니다. 물론 이 사운드 구조도 몇 분 만에 조합할 수 있으며 하나의 Event를 통해 모두 유발시킬 수 있답니다.
이러한 작동 방식을 처음부터 구현하고 시험해보려면 시간이 꽤 걸리며 저작 UI만큼 빠르게 작업을 완료할 수 없을 것입니다. 믿으셔도 됩니다! 제가 Unity를 사용해서 시도해봤기 때문에 잘 알고 있죠. 이러한 기본적인 컨테이너 유형을 구현하는 것 만으로 Level B 라이선스 비용만큼 예산이 들 겁니다. 뿐만 아니라 Wwise를 사용할 경우와 비교해 작업 과정 또한 간소하지 않으며 역량 또한 제한적일 가능성이 크죠.
프로파일러
Wwise의 가장 강력한 기능 중 하나는 바로 Profiler(프로파일러)입니다. Profiler는 게임을 실행하는 도중 저작 도구를 게임에 연결해주며 사운드 엔진에 일어나는 모든 일을 모니터링합니다. 수신되는 Event와 함께 사운드 시작, 정지, 혹은 볼륨과 위치 지정 정보의 변경 등 이에 따라 일어나는 Action이 실시간으로 표시됩니다. 뿐만 아니라 오류 메시지, 매개 변수 값, 리소스 사용 또한 표시할 수 있죠. Profiler는 디버깅과 최적화를 실행할 수 있는 훌륭한 도구이며 사운드가 의도한 대로 작동되지 않을 경우 그 이유를 빠르게 식별할 수 있어 많은 시간을 절약해줍니다.
현재 주요 엔진이 제공하는 도구 중에서 이 Profiler 만큼 '독창적인' 오디오 도구 세트는 없으며 Profiler의 기능을 독립적으로 구현하는 것은 엄청난 시간과 두뇌를 필요로 할 것입니다. 여기서 질문은 '구현하는 데 얼마나 들까요?'가 아니라 '이게 없으면 비용이 얼마나 들까요?'입니다. 똑같은 버그 하나라도 Profiler를 사용하면 사운드 디자이너가 빠르게 진단하고 고칠 수 있지만, 이게 없다면 프로그래머의 지원 및 대규모의 QA 시험뿐만 아니라 사운드 디자이너가 고치는 데 추가적인 시간이 필요할 수 있기 때문이죠. 전형적으로 프로젝트를 진행하는 동안 수십 가지의 버그가 발생할 수 있다는 점을 감안할 때, Wwise를 사용하면 적어도 며칠, 혹은 몇 주간의 작업을 절약할 것을 예상할 수 있습니다.
실시간 편집
Authoring Tool(저작 도구)가 게임에 연결되어 있을 때 (Profiler에 사용하는 동일한 연결을 통해) 실시간으로 편집할 수 있습니다. 이 기능은 우리가 게임을 실행하는 동시에 음향을 믹스하고 미세 조정할 수 있게 해줍니다. 실시간 편집 중 일부 게임 엔진이 작동하는 방식과 달리 Wwise는 세션이 끝날 때 변경 사항이 유지됩니다. 이러한 점은 레벨 믹싱에 아주 유용할 뿐만 아니라 RTPC 매핑, 감쇠, 효과 센드, 타이밍 속성, 혼합 등 수많은 사운드 속성과 작동 방식을 맥락에 따라 미세 조정할 수 있게 해줍니다. 이러한 실시간 편집은 사운드 디자이너가 작업을 반복하는 데 걸리는 시간을 줄여주며 믹싱과 조정의 정확도를 높여서 궁극적으로 품질을 향상시켜 줍니다.
동적 믹싱
Wwise는 또한, 게임 Event와 State 및 어느 시점에서든 재생할 수 있는 콘텐츠에 대해 동적 믹싱을 제어하는 다양한 방법을 제시합니다. HDR(High Dynamic Range, 고동적 범위)은 보다 조용한 사운드를 억제하고 보다 큰 소리의 인지적 라우드니스(역주: 인간이 주관적으로 느끼는 감각적 음량)를 높여서 재생 중인 컨텐츠의 라우드니스에 따라 믹스를 조정하도록 해줍니다. State는 Bus의 볼륨, Filtering(필터링), Effect(효과)를 변경할 수 있습니다. 또한 Ducking(덕킹) 또한 몇 번의 클릭 만으로 설정할 수 있습니다.
기본적인 덕킹 시스템은 주어진 유형의 사운드 재생 여부만 구분하기 때문에 구현하기 쉬운 편입니다. 하지만 미터링 방식의 덕킹 (Side-Chaining(사이드 체인))과 유연한 State 믹싱은 구현이 쉽지 않으며 특히 HDR은 엄청나게 복잡할 수 있습니다. Wwise 없이 이를 구현하려면 며칠, 또는 몇 주가 걸릴 것입니다.
상호작용 음악 시스템
대부분의 게임은 일종의 상호작용 혹은 동적 음악을 필요로 합니다. 이러한 음악은 게임 엔진에서 가장 잘 지원되지 않는 오디오 분야 중 하나죠. Wwise의 솔루션은 접근하고자 하는 모든 방식을 지원할 수 있을 만큼 유연하며 샘플의 정확한 동기화와 쉽게 구성할 수 있는 전환 효과를 제공합니다. Wwise는 State로 연동되는 시스템입니다. 다시 말해 게임이나 레벨 시작 후, 단지 음악 시스템을 시작하고 필요에 따라 State를 설정하는 것 외에 별다른 작업이 필요 없습니다.
타이밍이 정확하고 (음악 동기화에 필수적이죠) 사용하기 쉬운 상호작용 음악 플레이어를 프로그래머가 구현하려면 아무리 Wwise의 시스템과 비교하여 완전히 기초적인 시스템일지라도 몇 주가 걸릴 것입니다.
현지화 지원
상호작용 음악과 마찬가지로 VO 현지화 또한 대부분의 게임 엔진이 기본적으로 잘 지원하지 않는 분야 중 하나입니다. 하지만 Wwise에서는 너무나도 쉽게 작업할 수 있는 분야입니다. 대응하는 이름의 에셋을 드래그한 후 가져오기 대화창에서 해당 언어를 설정하기만 하면 됩니다. 그리고 코딩 측면에서는 언어를 설정하는 함수 하나만 호출하면 됩니다.
플랫폼 지원
크로스 플랫폼 개발은 일반적인 범용 엔진이 특히 강점으로 하는 부분이며 여기에는 오디오도 포함됩니다. 하지만 Wwise는 여전히 뭔가 남다른 것을 제공하고 있습니다. Wwise에서는 ShareSet (아래 참고)를 통해 컴프레션과 포맷 변환을 거시적이고 미시적인 수준에서 포괄적으로 제어할 수 있는데, 이는 플랫폼 별 콘텐츠 최적화를 빠르고 효과적으로 만들어주는 데 아주 큰 역할을 하죠.
Soundcaster (사운드캐스터) / 프로토타입화
Wwise의 설계에 있어 가장 중심이 되어 왔던 원칙은 바로 사운드 디자이너가 게임 코드에 최소한으로 의존하면서 사운드 작동 방식을 최대한 제어할 수 있도록 힘을 실어주는 것입니다. 무기를 발사할 경우 게임은 Wwise에 Event를 게시하기만 하면 되죠. 레이어링, 랜덤화, 사운드 요소 시퀀싱, 심지어 다른 사운드를 변경하는 등 앞으로 일어날 모든 일들은 바로 사운드 디자이너의 손에 달려있는 것입니다.
Soundcaster는 이러한 작동 방식을 게임에 구현하기 전, 혹은 게임이 허용하는 것보다 더 제어된 환경에서 게임 입력을 시뮬레이션하여 사운드 디자이너가 작동 방식을 오프라인으로 시험할 수 있게 해줍니다. 따라서 오디오와 코드 간에 의존성을 깨뜨린다는 컨셉은 코드를 작성하기 전에 구현 설계를 시험할 수 있게 해주죠. 결과적으로 신속한 프로토타입화 환경에서 무엇이 가능한지 명확하게 밝혀내고 시간이 걸리며 값비싼 코드 작업의 반복을 제거해줍니다.
ShareSet (공유세트)
ShareSet는 아마도 가장 잘 알려지지 않았지만 굉장히 가치가 있는 Wwise의 기능 중 하나일 것입니다. ShareSet는 근본적으로 Attenuation, Modulator, Effect, Conversion Settings의 재사용 가능한 설정 템플릿입니다. 그다지 매력적으로 들리는 기능이 아닐 수도 있습니다. 하지만 주목해주세요. 이 ShareSet는 사운드 디자이너가 거시적인 수준의 변경 사항을 만들고 미세한 세부 정보의 조정의 관리를 아주 효율적으로 수행할 수 있게 해준답니다.
아주 좋은 예시로 플랫폼의 최적화를 들 수 있습니다. 게임을 출시할 준비가 되었는데 PS4의 SoundBank가 메모리 예산을 초과한다고 가정해봅시다. 초과하는 이 4MB를 어떻게 깎아내릴 수 있을까요? ShareSet를 사용하면 컴프레션 설정을 조정하여 플랫폼 전체에 영향을 미칠 수 있습니다. 또는 전체 유형의 사운드에 맞춤 설정을 만들어 압축율을 변경하고, 다운샘플링하고, 심지어 강제로 모노로 줄여서 메모리 사용과 품질 간 균형을 맞출 수 있습니다.
동일한 방식으로 대규모나 소규모 유형의 사운드에 감쇠 설정을 적용하여 변경하고자 하는 모든 사운드에 변경 사항을 한 번에 적용할 수 있습니다.
이러한 기능은 시간, 효율성, 프로젝트의 관리에 있어 큰 장점을 가져다줍니다. 이러한 장점의 주요 수혜자는 바로 사운드 디자이너입니다. Wwise에서 사운드 디자이너는 설정을 변경하고, 시험하고, 다시 또 변경하는 데 시간을 낭비할 필요 없이 음향의 품질을 완벽하게 하는 데 전념할 수 있기 때문이죠.
결론
그래서 Wwise가 프로젝트에 전반적으로 어떤 이점을 주는 걸까요? 요약하자면, Wwise는 사운드 디자이너의 시간을 상당히 줄여주고, 효율적인 작업 과정을 확립하고, 콘텐츠를 제작하고 프로젝트 음향 품질을 높이는 데 집중할 수 있게 해줍니다. 또한 Wwise는 제어력과 창의적인 기능을 사운드 디자이너에게 맡겨서 코딩 시간을 최소화해주며, 이는 곧 프로그래머의 몇 주 혹은 몇 달 치 리소스를 최상의 목적으로 사용하도록 해주어 최적의 게임이나 프로젝트를 제작할 수 있게 해줄 것입니다.
댓글