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.py へのフルパスを省略して wp とします。
未来に向けたスキャフォールディング(足場)
サンプルはとても便利です。特定のフレームワークを実際にどう使えばよいのかを見せてくれるので、初めて見るフレームワークの貴重な情報です。でもサンプルを全部読み終わったら、どうしますか?今ビルドしようとしているアプリケーションに一番近いサンプルから、単純に、大事でない部分を削除してから、作業を始めるのですか?個人的にはエラーが発生しやすいやり方だと思い、避けるようにしています。この問題を解決して新しいプラグインをもっと楽しくつくれるように、私たちはプラグインジェネレータを開発し、最も一般的なプラグインタイプ(エフェクト、ソース、シンク、ミキサーなど)のスキャフォールディングを用意しました。
自分のプラグインを開発し始めるのに必要なものがすべて、ここで生成されるプロジェクトに入っています。Sound EngineとWwise Authoringのコードが、ほぼ空っぽながら、機能する状態で入っていて、コンフィギュレーション用ファイルも一部入っています(これについてはのちほど詳しく)。
何回でもビルドでき、どこでも使える
非常に多くのプラットフォームに対応しているWwiseはデベロッパにとって喜ばしい反面、苦労もあります。ゲームデベロッパが自分のエンジンにWwiseをインテグレートする際に、自分達のターゲットプラットフォームをWwiseがすべてサポートできるのかを心配する必要がなく、楽に作業できます。一方、プラグインデベロッパとしては全プラットフォームに対応するのは大変で、特にライセンスが必要な場合は困ります。逆にWindows限定のプラグインを作成すればWwise上で事前にエフェクトをレンダリングするのに使えますが、プラグインのインタラクティブ性は損なわれます。
新しい開発ツールを利用すると、Wwiseが対応するプラットフォーム用に簡単に一括管理してビルドできます。プラットフォームの開発ツールは、やはりインストールが必要ですが、それさえ終われば、あとは wp をコールするだけです。
ビルドの結果を直接Wwiseディレクトリのwp をコールしたところにアウトプットするので、「ビルド・テスト・調整」のサイクルが今までより劇的に速まります。
パッケージングという難題
パッケージングは、開発プロセスの中でも勝手に処理されるべき部分だと思っています。デベロッパが、Wwiseのパッケージングシステムをやっと理解できたと思ったら、結局は自分でもう一度やり直したり手作業するハメになるのでは、意味がありません。
Wwiseのパッケージのサブコマンドは、自動的にプラットフォームの既知の場所からビルドのアーティファクトを取得し、それを .tar.xz フォーマットで保存します。サブコマンドのgenerate-bundleが最後の処理なので、全てのプラットフォームをパッケージしたあとに実行するべきです。あなたのプラグインディレクトリのルートにある bundle_template.json を元に、 bundle.json ファイルを生成します。テンプレートのコメントを読むと、テンプレートの説明があり、コマンド実行前に編集すれば、プラグインの情報(イメージ画像、概要、ドキュメンテーションへのリンクなど)を入力できます。この最後の2つの処理の成果であるファイルは、Wwise Launcherを通してシェアしてインストールできます。
Wwiseプラグインとその先
結局オーディオプラグインは、目的のホストがWwiseであれDAWであれ、しょせんオーディオプラグインです。ターゲットとなるホストにそれぞれの特徴があるものの、どのオーディオプラグインも必ずユーザーインターフェースがあり、そのパラメータをリアルタイムで変更することでデジタル信号処理のコードを動かします。つまり、ほとんど同じコードをベースに使い、WwiseとDAWの両方をターゲットにすることが可能なはずです。
私は最近、この可能性をオーディオプラグイン開発フレームワークのJUCEを使い研究し、その成果を今年のAudio Developer Conference(ADC '18)で発表しました。
プレゼンテーションに使ったスライドは ここにあります 。
JUCEを使ってWwiseのオーディオプラグインをつくるのに興味があれば、私が発表したVoluminousというケーススタディが参考になると思うので、私の Github で入手してみてください。また、当日使ったスライド画像やコンファレンスの動画は、用意ができたらこのブログ記事のコメント欄にリンクを掲載します。
コメント