SpectralMultiEffectは、Wwiseのプラグインです。ゲームのインタラクティブ性を強化し、サウンドデザイナーが実験したりオーディオを変容させたりするための充実したソースを提供することを目的に作成されました。オーディオ信号を変化させる様々なエフェクトと、ゲームで直接使えるようにオーディオデータそのものから情報を入手できるシステムが、主な機能です。
SpectralMultiEffectは、周波数スペクトルに対して行う処理で、信号を変換する複数の方法を提供します。最大3つのエフェクトを連続して設定でき、設定可能なすべてのパラメータを、ランタイムにWwiseのRTPC機能経由で制御できます。エフェクトのオン・オフ機能や、ランタイムに置き換える機能などが含まれます。
私は、サウンドデザイナーがサウンドコンテンツとゲームの間のやり取りを極める方法を求めていることに気付きました。このプラグインは、オーディオ信号から取得したデータを使い、ゲームの動きを直接左右したり制御したりする方法を探るためのプロジェクトでした。プレイバック中に、信号から取得したタイムドメインまたは周波数ドメインのデータをアプリケーションに提供し、好きな目的に使えます。ゲームと、オーディオコンテンツの間で、緊密な連携を確立させるのに、これは便利です。
複数のコールバックをセットとして提供し、開発者はこれを使ってリアルタイムでオーディオからデータを、複数のフォーマットで取得できます。プラグインをチャンネルやサウンドに直接添付できるので、このプラグインの、それぞれ専用のコールバックを持つ別々のインスタンスを通して、複数のデータストリームを設立することも可能です。
ゲーム用のオーディオプラグインは、よく知られた具体的な技術問題を解消するために作成されることが多いですが、SpectralMultiEffectはクリエイティブなツールと考えることができます。皆さんがこれを使い、探検するようなアプローチでオーディオを使って作業をすることで、おもしろいサウンドに出会い、ゲームの魅力的でインタラクティブなエクスペリエンスを作成することを、期待しています。
機能は、以下の通りです:
1. 周波数ドメインに適用する11種類のエフェクトとして、ピッチ変更、マルチバンドディレイ、スペクトルフリーズなどを提供します。
2. アプリケーションに送るタイムドメインまたは周波数ドメインの信号データを取得し、オーディオと、その他のゲーム要素を同期する可能性を提供します。
3. アプリケーションのモニタリング中に、Wwise Authoring Toolでオーディオを可視化させます。
4. サウンド変換の可能性を見せてくれるプリセットを提供します。自分の設定をつくり出すための出発点としても使えます。
SpectralMultiEffectの使い方
オーディオエフェクト
エフェクトを3つまで選択でき、これらは連続して適用します。プラグイン稼働中に、これらを選択していつでもオン・オフできます。さらに、±3オクターブの範囲で、音の長さに影響せずにピッチシフトを実行することもできます。
Wwise Authoring Toolの、エフェクト選択エリア
プラグインがアクティブであれば、入ってくるオーディオデータを周波数ドメインに変換します。再生用にタイムドメインに戻す前の、この段階で処理が行われます。
使いたいエフェクトを選択できたら、そのパラメータをRTPCシステムを使って制御します。色々とありますが、ここで有効にしたエフェクトに関連するものだけを制御すればいいのです。
プラグインのコールバックを通して、オーディオ信号データを取得。
ユーザーが定義したコールバックを使い、オーディオ信号からデータを取得できます。
選択肢として、タイムドメインのピークやRMS、そして周波数ドメインの周波数ビンやバンドなどがあります。ユーザーにデータを送るのは、エフェクト処理を適用する前または後です。
あなたのアプリケーション用に、オーディオ信号のデータを取得するには:
1. エフェクトのインスタンスをWwiseプロジェクト内で作成し、ランタイムにアプリケーションが分かるような固有の名前タグを付けます。
プラグインインスタンスを識別するタグを追加
ZcSpectralMultiEffectFXCallback.h のコールバック宣言
2. Initialization、Termination、Executeのコールバックを実装します。これらは、ファイル ZcSpectralMultiEffectFXCallback.h で宣言します。(このファイルはプラグインをインストールするときに、あなたのWwise includeディレクトリにコピーされるので、ソースコードで使うには、 #include ディレクティブを追加するだけです。)
Initializationコールバックは、希望するデータフォーマットを設定するために使います。これは、ZcSpectralMultiEffectDataFormat 構造のpassedを埋めることで行います。
プレイバック中に、Executeコールバックで、信号からのデータを、リクエストされたフォーマットでアプリケーションに提供します。ユーザーが設定した識別タグも受信し、プラグインの複数のプラグインインスタンスを管理しやすくします。
Terminationコールバックが、特定のプラグインインスタンスの操作が終了することを通知します。Initializationの際のアクションに合わせるために必要なクリーンアップの作業は、ここで行います。
オーサリングツールのモニタリング
自分のアプリケーションをWwise Authoring Toolでモニタリングするときに、プラグインのEffect Editorウィンドウで信号データを可視化できます。以下のスクリーンショットの通り、これをタイムドメインデータでも周波数ドメインデータでも行えます。
タイムドメイン - ピーク(Peaks) |
タイムドメイン - RMS |
周波数ドメイン - ビン(Bins) |
周波数ドメイン - バンド(Bands) |
プリセット
プリセットがいくつか入っているので、Authoring ToolのEffect Editorウィンドウ右下の、ドロップダウンメニューで選択できます。使ってみたいと思えるような設定例が、表示されます。これらに基づいてファクトリプリセットを生成したり、自分のプリセットを作成したりして、ほかのプラグインと同様にそれらを利用できます。
対応プラットフォーム
SpectralMultiEffectは、まずモバイル(Android、iOS)とデスクトップ(Mac / Windows)のプラットフォームに対応しています。今後、ゲームコンソールなどに対応を広げたいと考えています。あなたのプロジェクトのプラットフォーム用のSpectralMultiEffectを見てみたい場合は、 ウェブサイト 経由でご連絡ください。ユーザーの方々の関心に基づいて、近日追加するプラットフォームを検討したいと思います。
オーディオサンプル
SpectralMultiEffectを使ったオーディオ処理のサンプルを、3つ用意しました。
人の声の音声ファイル
このファイルは処理前の音声で始まりますが、SpectralMultiEffectの様々なエフェクトの組み合わせで、徐々に変化していく様子を聞いてください。
ピアノのサウンドファイル
最初のオーディオサンプルが、オリジナルの未処理の状態です。ほかのサンプルは、それぞれSpectralMultiEffectで違った処理が行われたものです。
ゴングのサウンドファイル
最初のオーディオサンプルが、オリジナルの未処理の状態です。ほかのサンプルは、それぞれSpectralMultiEffectで違った処理が行われたものです。
コメント