バージョン

menu_open
警告:あなたのメジャーリリース ( 2021.1.14.8108 ) に該当する最新ドキュメンテーションが表示されています。特定バージョンのドキュメンテーションにアクセスするには、Audiokinetic Launcherでオフラインドキュメンテーションをダウンロードし、Wwise AuthoringのOffline Documentationオプションにチェックを入れてください。
Wwise SDK 2021.1.14
Authoring Plug-in Library Format

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

Library Plug-in Container

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

// Library "MyPlugin.dll"
// MyPluginLib.h
AK_DECLARE_PLUGIN_CONTAINER(MyPlugin);
// MyPluginLib.cpp
AK_DEFINE_PLUGIN_CONTAINER(MyPlugin);
AK_EXPORT_PLUGIN_CONTAINER(MyPlugin);

これらのマクロは、コンテナ名を、プレフィックスや拡張子なしであなたのライブラリ名に必ず一致する引数としてとらえます。 各プラグインを、マクロ 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 オブジェクトと合わせて使います)。 以下は、リクエストできるコンポーネントです:

  • AK::Wwise::Plugin::RequestHost : m_host と、Wwise Authoringアプリケーションとやり取りするための関数を提供
  • AK::Wwise::Plugin::RequestLinkBackend : m_backend と、あなたのバックエンドインスタンスに対してクエリを実行するための関数を提供
  • AK::Wwise::Plugin::RequestLinkFrontend : m_frontend と、フロントエンドインスタンスのアレイに対してクエリを実行する関数を提供
  • AK::Wwise::Plugin::RequestObjectMedia : m_objectMedia と、メディアファイルの取り扱いに関する関数を提供
  • AK::Wwise::Plugin::RequestObjectStore : m_objectStore と、内部オブジェクトの管理に関連する関数を提供
  • AK::Wwise::Plugin::RequestPropertySet : m_propertySet と、プロパティ値の取得や設定のための関数を提供。プラグインクラスが AK::Wwise::Plugin::AudioPlugin から派生した場合は、これが自動的にリクエストされます。
  • AK::Wwise::Plugin::RequestUndoManager : m_undoManager と、カスタムundoイベントやグループのログのための関数を提供
  • AK::Wwise::Plugin::RequestWrite : AK::Wwise::Plugin::DataWriter に必要なインスタンスサービスを提供。プラグインクラスが AK::Wwise::Plugin::AudioPlugin から派生した場合は、これが自動的にリクエストされます。
  • AK::Wwise::Plugin::RequestXml : XML ReaderとWriter( AK::Wwise::Plugin::XmlReaderAK::Wwise::Plugin::XmlWriter )に必要なインスタンスサービスを提供。プラグインクラスが AK::Wwise::Plugin::CustomData から派生した場合は、これが自動的にリクエストされます。
注釈: これらのサービスの一部は、通知ハンドラーメソッドを追加しますが、それをオーバーライドすることもできます。

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

  • AK::Wwise::Plugin::CustomData : カスタムデータ管理の関数を追加します。
  • AK::Wwise::Plugin::License : SoundBank生成中に、ライセンスをチェックする関数を追加します。
  • AK::Wwise::Plugin::MediaConverter : メディアのカスタム変換の関数を追加します。
  • AK::Wwise::Plugin::Notifications::Monitor : サウンドエンジンプラグインから、プロファイリングデータを受け取る関数を追加します。
  • AK::Wwise::Plugin::PropertyDisplayName : プロパティや、名前の付いた値の、XMLで定義された表示名をオーバーライドする関数を追加します。
  • AK::Wwise::Plugin::SinkDevices : カスタムオーディオデバイスを管理する関数を追加します。
  • AK::Wwise::Plugin::Source : ソースプラグイン関連の関数を追加します。

トラブルシューティング

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


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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう