Wwiseプラグイン作成パイプラインが、シンプルに

インタラクティブオーディオ / サウンドデザイン / Wwiseの使い方やツール

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 とします。

 

1

未来に向けたスキャフォールディング(足場)

サンプルはとても便利です。特定のフレームワークを実際にどう使えばよいのかを見せてくれるので、初めて見るフレームワークの貴重な情報です。でもサンプルを全部読み終わったら、どうしますか?今ビルドしようとしているアプリケーションに一番近いサンプルから、単純に、大事でない部分を削除してから、作業を始めるのですか?個人的にはエラーが発生しやすいやり方だと思い、避けるようにしています。この問題を解決して新しいプラグインをもっと楽しくつくれるように、私たちはプラグインジェネレータを開発し、最も一般的なプラグインタイプ(エフェクト、ソース、シンク、ミキサーなど)のスキャフォールディングを用意しました。

3-4

自分のプラグインを開発し始めるのに必要なものがすべて、ここで生成されるプロジェクトに入っています。Sound EngineとWwise Authoringのコードが、ほぼ空っぽながら、機能する状態で入っていて、コンフィギュレーション用ファイルも一部入っています(これについてはのちほど詳しく)。

何回でもビルドでき、どこでも使える

非常に多くのプラットフォームに対応しているWwiseはデベロッパにとって喜ばしい反面、苦労もあります。ゲームデベロッパが自分のエンジンにWwiseをインテグレートする際に、自分達のターゲットプラットフォームをWwiseがすべてサポートできるのかを心配する必要がなく、楽に作業できます。一方、プラグインデベロッパとしては全プラットフォームに対応するのは大変で、特にライセンスが必要な場合は困ります。逆にWindows限定のプラグインを作成すればWwise上で事前にエフェクトをレンダリングするのに使えますが、プラグインのインタラクティブ性は損なわれます。

 

新しい開発ツールを利用すると、Wwiseが対応するプラットフォーム用に簡単に一括管理してビルドできます。プラットフォームの開発ツールは、やはりインストールが必要ですが、それさえ終われば、あとは wp をコールするだけです。

 

4
 
5

ビルドの結果を直接Wwiseディレクトリのwp をコールしたところにアウトプットするので、「ビルド・テスト・調整」のサイクルが今までより劇的に速まります。 

 

6

パッケージングという難題

パッケージングは、開発プロセスの中でも勝手に処理されるべき部分だと思っています。デベロッパが、Wwiseのパッケージングシステムをやっと理解できたと思ったら、結局は自分でもう一度やり直したり手作業するハメになるのでは、意味がありません。

7

8

Wwiseのパッケージのサブコマンドは、自動的にプラットフォームの既知の場所からビルドのアーティファクトを取得し、それを .tar.xz フォーマットで保存します。サブコマンドのgenerate-bundleが最後の処理なので、全てのプラットフォームをパッケージしたあとに実行するべきです。あなたのプラグインディレクトリのルートにある bundle_template.json を元に、 bundle.json ファイルを生成します。テンプレートのコメントを読むと、テンプレートの説明があり、コマンド実行前に編集すれば、プラグインの情報(イメージ画像、概要、ドキュメンテーションへのリンクなど)を入力できます。この最後の2つの処理の成果であるファイルは、Wwise Launcherを通してシェアしてインストールできます。

 

9

Wwiseプラグインとその先

結局オーディオプラグインは、目的のホストがWwiseであれDAWであれ、しょせんオーディオプラグインです。ターゲットとなるホストにそれぞれの特徴があるものの、どのオーディオプラグインも必ずユーザーインターフェースがあり、そのパラメータをリアルタイムで変更することでデジタル信号処理のコードを動かします。つまり、ほとんど同じコードをベースに使い、WwiseとDAWの両方をターゲットにすることが可能なはずです。

私は最近、この可能性をオーディオプラグイン開発フレームワークのJUCEを使い研究し、その成果を今年のAudio Developer Conference(ADC '18)で発表しました。

 

 プレゼンテーションに使ったスライドは ここにあります

JUCEを使ってWwiseのオーディオプラグインをつくるのに興味があれば、私が発表したVoluminousというケーススタディが参考になると思うので、私の Github で入手してみてください。また、当日使ったスライド画像やコンファレンスの動画は、用意ができたらこのブログ記事のコメント欄にリンクを掲載します。

2018-10-22_20-33-32

2018-10-22_20-36-23

 

 
Screen Shot 2017-12-14 at 5.24.24 PM.png

あなたも自分のプラグインを、Audiokinetic Storeに出してみませんか?

Subscribe

 

ジョエル・ロビショー(Joel Robichaud)

ソフトウェアデベロッパ

Audiokinetic

ジョエル・ロビショー(Joel Robichaud)

ソフトウェアデベロッパ

Audiokinetic

大学でコンピュータミュージックとコンピュータサイエンスを同時に学び、ソフトウェアデベロッパとして活躍中。AudiokineticのWwise Experienceチームの一員として、主にWwise AuthoringやWwise Launcherなど、ユーザが使用するソフトの開発を手掛ける。

 @joelrobichaud

コメント

Replyを残す

メールアドレスが公開されることはありません。

ほかの記事

サウンドデザイン学習ツールとしてのWwise

学校の卒業制作課題として作った私のゲームサウンド作品で、オーディオミドルウェアのWwiseを使用しました。このブログでは、Wwise導入経緯や制作過程について解説します。これからUnreal...

27.2.2018 - 作者 Rikuo Nemoto (根本陸男)

Wwiseプロジェクトで行う、ファイルのバージョン管理

29.5.2018 - 作者 ギヨーム・ルノー(GUILLAUME RENAUD)

ラウドネスプロセシングのベストプラクティス、第1章: ラウドネス測定(PART 2)

前回のブログラウドネスプロセシングのベストプラクティス、第1章(PART 1)で、楊 杰(Jie Yang、Digimonk)氏...

4.10.2018 - 作者 楊 杰(JIE YANG、DIGIMONK)

Wwise Motion Sourceで、振動を実現

振動機能を初めて体験したときのことを、覚えている?それは、もしかしたらNintendo 64のGolden Eye“Rumble...

13.3.2019 - 作者 マクシミリアン・シマール・ポワリエ(MAXIMILIEN SIMARD POIRIER)

ボイスチャットでゲームのソーシャル面を強化 : Wwise GME!

8.1.2020 - 作者 サイモン・アシュビー(Simon Ashby)

UIデザインを切り口に、UIオーディオを考える – パート 1

12.3.2020 - 作者 ジョセフ・マルチューク(JOSEPH MARCHUK)

ほかの記事

サウンドデザイン学習ツールとしてのWwise

学校の卒業制作課題として作った私のゲームサウンド作品で、オーディオミドルウェアのWwiseを使用しました。このブログでは、Wwise導入経緯や制作過程について解説します。これからUnreal...

Wwiseプロジェクトで行う、ファイルのバージョン管理

ラウドネスプロセシングのベストプラクティス、第1章: ラウドネス測定(PART 2)

前回のブログラウドネスプロセシングのベストプラクティス、第1章(PART 1)で、楊 杰(Jie Yang、Digimonk)氏...