Wwise용 오디오 플러그인을 개발하는 것은 디지털 오디오 편집 프로그램 (DAW)에서 플러그인을 개발하는 것과 꽤 다릅니다. Wwise는 상호작용적이며 수많은 플랫폼을 지원하기 때문에 초보자가 모든 것을 이해하기가 매우 복잡하죠. 저희가 내부적으로 도구를 개발했음에도 불구하고 저희 플러그인 개발 파이프라인은 이해하기가 너무 어려워서 새로운 플러그인을 만드는 데 어려움을 겪었습니다. 그래서 더 많은 플러그인 개발자가 사용할 수 있도록 저희가 내부적으로 개발한 도구를 단순화하고 재작성하는 시간을 갖기로 했습니다. 이 글을 통해서 새로워진 도구를 자세히 살펴보고 이 도구를 이용해 Wwise용 오디오 플러그인을 직접 만들 수 있는 방법을 배워보세요!
잠깐, 근데 제 도구는 어디 있죠?
플러그인 개발 도구는 Wwise 2018.1.3.6784에서 처음 소개되었으며 현재 Wwise Launcher에서 다운로드하실 수 있습니다. 이 글을 따라서 플러그인을 직접 개발하시려면 플러그인 개발 도구와 Windows_vc140 SDK 플랫폼을 시스템에 설치하세요. 그리고 Python(모든 버전 사용 가능)과 Visual Studio 2015를 설치하셔야 합니다. 도구 자체는 /Path/To/Wwise 2018.1.3.6784/Scripts/Build/Plugins/wp.py에 있는 단일 진입점을 통해 접근하실 수 있습니다. 이 글에서는 간단히 wp를 사용해서 wp.py로의 전체 경로를 지정하겠습니다.
좀 더 수월한 작업을 위해 기본 틀 다지기
샘플은 정말 굉장하죠. 샘플을 사용하면 특정 프레임워크가 실제 환경에서 사용될 수 있는지를 확인할 수 있습니다. 이런 프레임워크를 처음 시작할 때 굉장히 중요한 부분이죠. 하지만 샘플을 살펴본 다음에는 어떻게 하나요? 제작하려는 애플리케이션에 가장 가까운 샘플의 중요하지 않은 부분을 삭제한 다음 거기에서부터 작업하시나요? 저는 개인적으로 이 과정에서 오류가 발생하기 쉬운 것 같아서 되도록이면 이 방법을 사용하지 않으려고 합니다. 이 문제를 해결하고 새로운 플러그인 제작 환경을 더 쾌적하게 하기 위해 저희는 가장 보편적인 플러그인 타입(효과, 음원, 싱크, 믹서)에서 사용할 때 기본 틀을 잡아주는 플러그인 생성기를 제작했습니다.
생성된 프로젝트에는 플러그인 제작을 시작하는 데 필요한 모든 파일이 담겨 있어요. 이 프로젝트에는, 아직은 거의 비어 있지만 작동할 수 있는 Sound Engine과 Wwise Authoring 플러그인의 코드뿐만 아니라 조금 있다 살펴볼 몇몇 설정 파일이 들어 있습니다.
몇 번이고 빌드하세요. 어디에서든 작동합니다.
Wwise가 지원하는 플랫폼은 정말이지 엄청나게 많습니다. 개발자에게는 놀라우면서도 불행한 소식이라고 할 수 있죠. 먼저, 게임 개발자가 지원되지 않는 플랫폼이 있지는 않은지 걱정할 필요 없이 Wwise를 엔진에 쉽게 통합할 수 있다는 장점이 있습니다. 반면, 플러그인 개발자 입장에서는 모든 플랫폼을 다 지원해야 하니 골머리를 앓기 마련이죠. 특히 일부 플랫폼은 라이선스까지 필요하니까요. 한 가지 대안으로 Windows 전용 플러그인을 제작해서 Wwise 안에서 효과를 미리 렌더링하는 방법을 사용할 수 있지만 그럴 경우 플러그인의 상호작용성이 아예 없어지게 됩니다.
새로운 개발 도구를 사용하면 Wwise가 지원하는 모든 플랫폼용으로 제작하고 관리하기가 훨씬 쉬워집니다. 여전히 해당 플랫폼의 개발 도구를 설치해야 하지만, 그러고 나면 간단히 wp만 호출하면 돼요.
빌드 결과는 wp가 호출되는 Wwise 폴더로 직접 출력되기 때문에 빌드-테스트-조정 주기를 예전보다 훨씬 짧게 해줍니다.
패키징의 신비로움
저는 개인적으로 패키징은 개발 과정에서 그냥 신비롭게 실행되어야 하는 부분이라고 생각합니다. 패키징 시스템을 직접 다시 구현하거나 작업해야 한다는 사실 하나를 깨우치겠다고 굳이 패키징 시스템의 작동 방식을 배울 필요는 없으니까요.
패키지 하위 명령은 주어진 플랫폼의 지정된 위치에서 빌드 결과물을 자동으로 가져오며 .tar.xz 포맷으로 보관합니다. 생성 번들 하위 명령은 모든 플랫폼이 패키징된 후에 실행되어야 하는 가장 마지막 단계입니다. 이 단계는 여러분의 플러그인 루트 폴더에 있는 bundle_template.json에서 bundle.json 파일을 생성해요. bundle_template.json 파일은 주석을 사용하여 자체적으로 문서화되며 플러그인에 대한 정보를 입력하기 위해 명령을 실행하기 전에 편집할 수 있습니다. 그런 다음 이 두 단계로 인해 생성되는 파일은 Wwise Launcher를 통해 공유하고 설치할 수 있습니다.
Wwise 플러그인을 넘어서
대상 호스트가 Wwise이든 DAW이든 상관없이 오디오 플러그인은 오디오 플러그인이에요. 대상 호스트의 일부 특정 사항을 떼어놓고 보면 모든 오디오 플러그인은 몇몇 디지털 신호 처리 코드를 구동하기 위해 실시간으로 편집할 수 있는 매개 변수를 가진 유저 인터페이스를 가지고 있습니다. 다시 말해 거의 동일한 코드 기반을 사용해서 Wwise와 DAW 둘 다 대상 호스트로 할 수도 있죠.
최근에 저는 JUCE 오디오 플러그인 개발 프레임워크를 사용해서 이 가능성을 연구해봤습니다. 그리고 올해 오디오 개발자 컨퍼런스(ADC 2018)에서 그 결과를 발표했어요.
여기에서 발표 자료를 확인하세요.
JUCE를 사용해서 Wwise용 오디오 플러그인을 제작하는 데 관심이 있으시다면 제가 발표한 Voluminous를 읽어보세요. 제 사례 연구서는 Github에서 확인하실 수 있습니다.
댓글