バージョン

menu_open
Wwise SDK 2021.1.14
オーサリングプラグインのバックエンド

あなたのプラグインのバックエンドを作成するには、 AK::Wwise::Plugin::AudioPlugin から派生したクラスを作成する必要があります。 この基底クラスが、SoundBankに書き込むための関数など、Wwise Authoringプラグインの最も基本的なメソッドを提供します。

あなたのプラグインのメインモデルは Property Set ですが、 Custom Data も、プラグインのバックエンドによって管理することができます。

class BackendSourcePlugin
: public AK::Wwise::Plugin::AudioPlugin
, public AK::Wwise::Plugin::Source
{
public:
// AK::Wwise::Plugin::AudioPlugin
bool GetBankParameters(
const GUID& in_guidPlatform,
AK::Wwise::Plugin::DataWriter& in_dataWriter
) const override;
// AK::Wwise::Plugin::Source
bool GetSourceDuration(
double& out_dblMinDuration,
double& out_dblMaxDuration
) const override;
};
AK_ADD_PLUGIN_CLASS_TO_CONTAINER(
MyPlugin, // Add to container "MyPlugin"
BackendSourcePlugin, // Class to add to the container
SoundEngineSourcePlugin // Sound engine plug-in to which this plug-in corresponds
);

サウンドバンクの生成

要求があるとプラグインをコーディングして、現行の設定をバンクに保存する必要があります。 これは、 AK::Wwise::Plugin::AudioPlugin::GetBankParameters() メソッドを実装することにより実行可能です。

パラメータは、データブロックとしてサウンドバンクに書き込まれます。続いて、ブロックはサウンドバンクから直接サウンドエンジンプラグインのパラメータ構造体にロードされます。従って、サウンドエンジンプラグインのパラメータ構造体で宣言されているのと同じ順序でパラメータを記述する必要があります。詳細は、パラメータ ノード インターフェースの実装 をご覧ください。

例えば、次のパラメータ構造体を見てみましょう:

// Parameter structure for this effect.
struct AkFXSrcSineParams
{
AkReal32 fFrequency; // Frequency (in Hertz).
AkReal32 fGain; // Gain (in dBFS).
AkReal32 fDuration; // Sustain duration (only valid if finite).
};

以下の AK::Wwise::Plugin::AudioPlugin::GetBankParameters() の実装では、各プロパティの現在の値を取得し、適切なメソッドを使用して、パラメータとして受け取った AK::Wwise::Plugin::DataWriter オブジェクトで値を記述します。これらのアクションは、メンバがパラメータ構造体で定義された順序と同じ順序で実行されます。

bool MySourcePlugin::GetBankParameters(
const GUID& in_guidPlatform,
AK::Wwise::Plugin::DataWriter& in_dataWriter) const
{
bool result = true;
result &= in_dataWriter.WriteReal32(m_propertySet->GetReal32(in_guidPlatform, "Frequency"));
result &= in_dataWriter.WriteReal32(m_propertySet->GetReal32(in_guidPlatform, "Gain"));
result &= in_dataWriter.WriteReal32(m_propertySet->GetReal32(in_guidPlatform, "Duration"));
return result;
}
注釈: プロパティの現在値を取得するには、 AK::Wwise::Plugin::PropertySet の提供するゲッター関数を利用します。 リクエストするタイプが、XMLで指定されているタイプと完全に一致する必要があります。

異なるタイプのデータ記述に利用可能なメソッドに関する詳細については、 AK::Wwise::Plugin::DataWriter を参照してください。

ライセンス管理

SoundBank生成中に、Wwiseがプラグインに対し、プラグインが AK::Wwise::Plugin::License インターフェースで実装するライセンスステータスについてクエリします。プラグインは、 AK::Wwise::Plugin::LicenseStatus の列挙値の1つを返すために、 AK::Wwise::Plugin::License::GetLicenseStatus を実装できます。さらにプラグインは、その重大度を示すメッセージを、SoundBank生成ログに表示するために返すことができます。

LicenseStatus_Unlicensed や、LicenseStatus_Expired を返すと、プラグインがSoundBankに含まれることが、阻止されます。

ライセンスバリデーションのために、プラグインが自身のスキームを実装することができます。このファンクションで、絶対にサーバを同期的にクエリしてはならないので、注意してください。このファンクションは、すぐに返答を返す必要があります。

あなたのプラグインがAudiokineticに登録されていれば、Wwiseのライセンスシステムを活用できます。 以下の実装を使用すると、Wwise Project Licenseの中のライセンスステータスを確認します。

AK::Wwise::Plugin::LicenseStatus MyPlugin::GetLicenseStatus(
const GUID& in_guidPlatform,
char* out_pszMessage,
unsigned int in_uiBufferSize)
{
uint32_t uDaysToExpiry;
m_host.GetLicenseStatus(in_guidPlatform, eType, eStatus, uDaysToExpiry);
return eStatus;
}
float AkReal32
32-bit floating point
Definition: AkTypes.h:70
Wwise Authoring Plug-ins - Main include file.
LicenseType
License type.
Definition: Utilities.h:86
LicenseStatus
License status.
Definition: Utilities.h:94
Severity
Log message severity.
Definition: Utilities.h:104

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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう