バージョン

menu_open
Wwise SDK 2023.1.3
Authoring Plug-in Library Format

このページで、プラグインのフォーマットや、Wwise Authoringプラグインを構成する各種パーツについて説明します。

Library Plug-in Container

Wwiseプラグインの動的ライブラリは、ライブラリが提供する全てのプラグインのリストが入ったプラグインコンテナを、エクスポートするライブラリです。このコンテナは、以下のように、マクロのセットを使ってあなたのプラグインライブラリに追加されます:

// Library "MyPlugin.dll"
// MyPluginLib.h
// MyPluginLib.cpp

これらのマクロは、コンテナ名を、プレフィックスや拡張子なしであなたのライブラリ名に必ず一致する引数としてとらえます。 各プラグインを、マクロ AK_ADD_PLUGIN_CLASS_TO_CONTAINER を使って追加できます。 以上は、あなたが wp.py 開発ツール を使ってプラグインを作成すると、全て自動的に行われます。

コマンド wp.py new を使って作成されたプラグインには、静的ライブラリとしてビルドできるサウンドエンジンの部分があり、Wwise Authoringのプラグイン動的ライブラリに自動的にリンクされます。 このサウンドエンジンの静的ライブラリは、あなたのゲームでリンクするときに再利用できます。

サウンドエンジンのプラグイン実装について、詳細は オーディオプラグイン サウンドエンジン部分の記述 を参照してください。

オーサリングプラグインの構造

Wwise Authoringプラグインは2つの部分で構成されていますが、1つは必須のバックエンド部分で、プラグインのプロパティがSoundBankに対してどのように書かれるのかのロジックを実装し、カスタムデータがあれば、それを管理します。もう1つのフロントエンド部分は必須ではなく、別クラスとして作成されます。後者は、カスタム化されたグラフィックユーザーインターフェースの実装を担います。 両者は、別々に、 AK_ADD_PLUGIN_CLASS_TO_CONTAINER マクロでプラグインコンテナに追加されます。

これら2つの部分の実装方法は、以下のセクションで詳しく説明します:

プラグインのプロパティの使い方については、合わせて Authoringプラグインのモデル も参照してください。

Requestコンポーネントとサービス

あなたのプラグインモデルなど、サービスを提供するコンポーネントは、"Request"インターフェース、例えば AK::Wwise::Plugin::RequestPropertySetProperty Set 参照)を使い、リクエストできます。 これらのサービスは、インスタンス時に、Wwise Authoringアプリケーションによってプラグインインスタンスに提供されます。

インターフェースによっては、実装が必要な完全にバーチャルなメソッドを追加し、Wwiseがそれをコールします。例えば、 AK::Wwise::Plugin::Source からの派生は、メソッド AK::Wwise::Plugin::Source::GetSourceDuration の実装が必要で、それはソースから期待される最小期間と最大期間をWwise Authoringに伝えます。

あなたのプラグインの中で、サービスとして使われるコンポーネントには全て、プレフィックス"Request"が付きます。これらのサービスが、あなたのプラグインが所有するオブジェクトを取り扱うときは、サービスメソッドと合わせて使うために、あなたのプラグインにメンバ変数として追加されるインスタンスを提供します(例 AK::Wwise::Plugin::RequestPropertySet は、 m_propertySet オブジェクトと合わせて使います)。 以下は、リクエストできるコンポーネントです:

注釈: これらのサービスの一部は、通知ハンドラーメソッドを追加しますが、それをオーバーライドすることもできます。

実装予定のインターフェースに、プレフィックスは付きません。以下は、追加可能なインターフェースです:

トラブルシューティング

問題が発生した場合は、Wwise ソースプラグインおよびエフェクトプラグインのトラブルシューティングガイド の Help をご利用ください。

#define AK_EXPORT_PLUGIN_CONTAINER(ContainerName)
(C++) Exports the plug-in container for a shared library.
#define AK_DEFINE_PLUGIN_CONTAINER(ContainerName)
(C++) Defines the unique plug-in container.
#define AK_DECLARE_PLUGIN_CONTAINER(ContainerName)
(C++) Declares the plug-in container.

このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう