Heavy에서의 Wwise 지원 업데이트

오디오 프로그래밍

목차

소개

Heavy 또는 hvcc는 Pure Data 패치를 VST나 Daisy 펌웨어와 같은 다양한 컴파일 형식으로 변환하는 도구입니다. 원래 Enzien Audio에서 시작된 이 프로젝트는 현재 Wasted Audio에서 활발히 개발되고 있습니다.

Wwise 지원 부분은 오랫동안 업데이트가 필요했는데, 최근에 제가 이를 진행했습니다. Wwise 제너레이터를 Audiokinetic의 새로운 Plugin API로 업그레이드한 것 외에도 더 많은 채널 구성(5.1, 7.1, 7.1.4)을 지원하도록 했으며, 플러그인 내에서 이벤트를 게시할 수 있는 기능도 추가했습니다. 이 글에서는 새로운 기능을 살펴보고 설정 방법을 예시와 함께 소개하겠습니다.

소스 코드가 생성되는 방식에도 변화가 있었습니다. Visual Studio 프로젝트를 직접 생성하는 대신 Audiokinetic의 Development Tools에서 요구하는 형식으로 프로젝트가 생성되도록 변경되었습니다. 이 방식은 최종 사용자 입장에서 절차를 간소화했으며, 플러그인을 Audiokinetic 런처에서 설치 가능한 번들로 패키징할 수 있어 배포도 훨씬 수월해졌습니다.

모든 예제에서는 plugdata라는 훌륭한 Pure Data 포크를 사용할 예정입니다. plugdata에는 Heavy에서 지원하지 않는 오브젝트 사용 시 경고를 표시하는 'compile mode'가 포함되어 있습니다. 향후에는 plugdata에서 바로 Wwise 플러그인을 빌드하는 기능도 추가할 계획입니다.

설치 및 사용

Hvcc는 명령줄에서 설치할 수 있는 Python 도구입니다.

pip install hvcc

이 명령을 실행하면 터미널에 hvcc 명령어가 설치됩니다. 예를 들어, 아래는 문서를 출력하는 명령입니다.

hvcc -h

또한 올바른 종속성(dependencies)을 갖춘 Visual Studio를 설치해야 합니다. 2019 또는 2022 버전 모두 사용 가능하지만, 2022 버전은 Wwise 2022.1.5 이상에서만 지원됩니다. 설치해야 할 구체적인 구성 요소는 문서에 설명되어 있으므로, 여기서는 VS2019 설치 화면의 스크린샷만 예시로 첨부했습니다.

wwise_hvcc_vs2019

그림 1: 내 컴퓨터에 설치된 Visual Studio 패키지 목록입니다. UWP와 .NET 패키지는 무시해도 됩니다.

새로운 기능 요약

 

더 많은 채널 구성 지원

이전에는 모노 또는 스테레오 플러그인만 빌드할 수 있었습니다. 이번 변경으로 이제 소스 플러그인과 이펙트 플러그인 모두에서 5.1, 7.1, 7.1.4 구성을 빌드할 수 있게 되었습니다. 어떤 구성을 빌드할지는 [adc~][dac~] 오브젝트에 선언된 채널 수로 정의됩니다.

wwise_hvcc_multichannel

그림 2: 왼쪽 - 5.1 채널 볼륨 제어 이펙트. 오른쪽 - 볼륨 제어가 가능한 7.1 채널 55 Hz 오실레이터.

아쉽게도 Heavy 플러그인은 출력 장치가 변경되더라도 실시간으로 채널 구성을 전환할 수 없으므로, 버스에서 사용하려면 해당 버스를 필요한 구성으로 설정해야 합니다. Wwise는 필요에 따라 신호를 다운믹스하거나 업믹스합니다. 플러그인은 지원되지 않는 버스 구성으로 초기화될 경우 오류를 출력합니다.

wwise_hvcc_bus_config

그림 3: 멀티 채널 이펙트 플러그인이 포함된 버스는 반드시 구성을 명시적으로 설정해야 합니다.

임의의 이벤트 게시 및 RTPC 설정

이번 업데이트를 통해 이제 send 오브젝트로 Heavy 플러그인 내부에서 임의의 Wwise 이벤트를 트리거할 수 있게 되었습니다. 이는 RTPC를 출력할 수 있었던 방식과 유사합니다. 컨트롤 전용 플러그인도 만들 수 있는데 이는 실제로는 항상 무음을 출력하는 모노 소스 플러그인으로 컴파일됩니다. 이러한 플러그인은 입력 매개 변수를 기반으로 통계를 계산해 새로운 RTPC를 설정하거나, 입력된 RTPC를 이벤트로 변환하여 반응형 오디오 시스템을 구현할 수도 있습니다. 아래 그림에서 이를 위한 send 오브젝트의 주석을 확인할 수 있습니다.

참고로, Wwise 저작 도구는 시작 시 이벤트와 해당 데이터를 로드하지 않습니다. 즉, Wwise 저작 도구에서 실행 중인 플러그인에서 이벤트를 게시하면 Event ID not found 오류가 발생합니다. 이 문제를 해결하려면 Event 탭에서 해당 이벤트를 한 번 재생해 Wwise가 관련 데이터를 강제로 로드하도록 해야 합니다.

wwise_hvcc_control_only

그림 4: Param 1 값의 변화를 Play_Test_Sound 이벤트를 게시하는 트리거로 변환하고, Param 1과 Param 2의 평균값을 계산해 동일한 게임 오브젝트의 Param_Avg RTPC로 설정하는 컨트롤 전용 패치.

Audiokinetic 런처용 플러그인 패키징

Heavy가 Audiokinetic의 빌드 도구와 호환되는 프로젝트 형식을 생성하므로 이제 플러그인을 Audiokinetic 런처에서 설치할 수 있는 패키지로 묶을 수 있습니다. 이를 통해 커스텀 플러그인을 쉽게 배포할 수 있고, 다양한 플랫폼용 빌드를 포함하는 것도 가능합니다. Heavy 문서에서 단계별 가이드를 제공하므로 여기서는 따로 설명하지 않겠습니다.

한 가지 유의할 점이 있습니다. 현재, 플러그인이 Audiokinetic의 Wwise 버전 번호 체계와 동일한 형식을 따라야 합니다. 예를 들어, Wwise 2022.1을 대상으로 한다면 플러그인의 버전 번호는 2022.1.X.Y 형식이어야 합니다. 이러한 처리 방식을 원하지 않는 경우, Pure Data 패치를 변환할 때 생성되는 bundle_template.json 파일에서 대상 Wwise 버전을 수정할 수 있습니다.

작업을 간편하게 하고 안내된 지침을 따르려면, Audiokinetic 런처의 Set Environment Variables… 버튼을 클릭하여 WWISEROOTWWISESDK 환경 변수를 올바르게 설정해야 합니다.

wwise_hvcc_envvars

그림 5: WWISEROOTWWISESDK 환경 변수에 해당하는 설정.

맺음말

이상으로 Heavy에서의 Wwise에 대한 간단한 업데이트를 마칩니다. 제안이나 기능 요청이 있다면 Wasted Audio의 Discord 또는 GitHub에 남겨주세요.

그리고 Heavy를 아직 사용한 적이 없다면 Audiokinetic 블로그에 실린 천종 호우(Chenzhong Hou)의 연재 글 '사운드 디자이너가 PureData + Heavy를 사용하여 DSP 플러그인을 개발하는 법'을 참고하면 더 자세한 내용을 확인할 수 있습니다. 올해 초 Heavy를 활용해 멀티 채널 이펙트 플러그인 제작 경험을 소개한 벤 맥컬로우(Ben McCullough)께 특별히 감사드립니다. 그의 글로부터 더 많은 채널 구성을 지원하는 데 영감을 받았습니다.

유진 체르니 (Eugene Cherny)

유진 체르니 (Eugene Cherny)

현재 게임 업계에서 근무하고 있는 오디오 프로그래머입니다. 예술과 학계에서 약간의 경험이 있습니다. 게임 오디오를 사랑합니다.

https://eugn.ch/

댓글

댓글 달기

이메일 주소는 공개되지 않습니다.

다른 글

Wwise와 REAPER의 연결: Part 2 - ReaOpen

ReaOpen은 오디오 파일을 선택하고 원래의 REAPER 프로젝트를 쉽게 열 수 있는 무료의 가벼운 프로그램입니다. Windows와 Mac 모두에서 실행되며 Wwise,...

7.4.2020 - 작성자: 니콜라 루키치 (NIKOLA LUKIĆ)

누구나 사용할 수 있는 WAAPI - 제 1부: 개요

안녕하세요. 저는 왕양 (汪洋) 이라고 합니다 (혹은 ‘씨 예’, 溪夜라고도 불립니다). 저는 작년 하반기에 WAAPI에 대해 알게 되었습니다 (Wwise 저작 API). 저같이...

30.3.2021 - 작성자: 토마스 왕 (THOMAS WANG, 汪洋)

Wwise 저작 쿼리 언어, WAQL을 소개합니다

“Wwise는 스프레드시트(표 계산 소프트웨어) 같아요”. 이 말은 제가 사용자 환경팀으로서 자주 듣는 말입니다. 사실 Wwise는 사운드 디자인 도구이지만 사실 안을 들춰보면...

24.6.2021 - 작성자: 베르나르 로드리그 (Bernard Rodrigue)

UE5와 C++를 활용한 WAAPI 입문

이 글에는 Unreal에서 WAAPI를 사용하는 데 필요한 모든 정보가 담겨 있습니다. 이 글의 대부분은 Audiokinetic 문서, Wwise 업 온 에어 영상, AK 블로그에...

11.6.2025 - 작성자: 하비에르 주머(Javier Zumer)

Wwise Meter 플러그인을 활용한 애니메이션 립싱크

소개 이번 글은 Jater (Ruohao) Xu가 쓴 3부작 기술 블로그 시리즈의 마지막 편으로, 역붕괴: 베이커리 작전에 대한 작업을 공유합니다. Wwise를 사용하여 게임...

2.7.2025 - 작성자: Ruohao (Jater) Xu (루오하오 (제이터) 쉬)

기울어진 2D 뷰를 위한 커스터마이징 Wwise 리스너 위치 프로젝션 시스템

소개 이 글은 제이터 (루오하오) 쉬(Jater (Ruohao) Xu)가 '역붕괴: 베이커리 작전(Reverse Collapse: Code Name Bakery)'에서 진행한...

17.9.2025 - 작성자: Ruohao (Jater) Xu (루오하오 (제이터) 쉬)

다른 글

Wwise와 REAPER의 연결: Part 2 - ReaOpen

ReaOpen은 오디오 파일을 선택하고 원래의 REAPER 프로젝트를 쉽게 열 수 있는 무료의 가벼운 프로그램입니다. Windows와 Mac 모두에서 실행되며 Wwise,...

누구나 사용할 수 있는 WAAPI - 제 1부: 개요

안녕하세요. 저는 왕양 (汪洋) 이라고 합니다 (혹은 ‘씨 예’, 溪夜라고도 불립니다). 저는 작년 하반기에 WAAPI에 대해 알게 되었습니다 (Wwise 저작 API). 저같이...

Wwise 저작 쿼리 언어, WAQL을 소개합니다

“Wwise는 스프레드시트(표 계산 소프트웨어) 같아요”. 이 말은 제가 사용자 환경팀으로서 자주 듣는 말입니다. 사실 Wwise는 사운드 디자인 도구이지만 사실 안을 들춰보면...