Wwise SDK 2022.1.17
|
このページで、プラグインのフォーマットや、Wwise Authoringプラグインを構成する各種パーツについて説明します。
Wwiseプラグインの動的ライブラリは、ライブラリが提供する全てのプラグインのリストが入ったプラグインコンテナを、エクスポートするライブラリです。このコンテナは、以下のように、マクロのセットを使ってあなたのプラグインライブラリに追加されます:
これらのマクロは、コンテナ名を、プレフィックスや拡張子なしであなたのライブラリ名に必ず一致する引数としてとらえます。 各プラグインを、マクロ 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つの部分の実装方法は、以下のセクションで詳しく説明します:
AK::Wwise::Plugin::AudioPlugin
クラスの実装AK::Wwise::Plugin::GUIWindows
などのフロントエンドクラスの実装プラグインのプロパティの使い方については、合わせて Authoringプラグインのモデル も参照してください。
あなたのプラグインモデルなど、サービスを提供するコンポーネントは、"Request"インターフェース、例えば AK::Wwise::Plugin::RequestPropertySet
( Property 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::XmlReader
と AK::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 をご利用ください。