目次

Wwise SDK 2021.1.1
プラグインのテスト

このドキュメントには、プラグインがWwiseプラットフォームのあらゆる側面と互換性を持つようにするための情報が含まれています。ソフトウェアの全エリアをカバーしていることを確認するための一連のガイドラインおよび具体的なテストの一覧がご覧いただけます。プラグインを大勢のオーディエンスに公開する場合には、ここに掲載されているガイドラインとテストは必要条件として考慮される必要があります。

一連のテストを実行することにとって、プラグインがより安定し、Wwise の全機能セットと連動する可能性が高くなります。

ガイドライン

ユーザーインターフェース

  • 最大サイズ: プラグイン UI のコンテンツは、小さなノートパソコンの画面に対応できるよう 1000x650 ピクセルのサイズに収まる必要があります。
  • サイズ変更: WindowProc 関数における WM_SIZE メッセージの処理をお勧めします。これによって、プラグインに与えられた重点に応じて、ユーザーはより小さいまたは大きいワークスペースを取得することができます。また、プラグインは、Wwiseレイアウトシステムにより良く適応できるようになります。
  • デフォルトコントロールの用途: デフォルトコントロールの使用は必須ではありませんが、これにはいくつかの利点があります:
    • RTPCをサポートするプロパティに対してRTPCアイコンが自動的に表示される。
    • コントロールの相互作用が Wwise 全体(スライダの動作、キーボード修飾子、コンテキストメニューなど)で標準である。
    • Link/Unlink がサポートされている(ソースプラグインの場合のみ)。
    • スライダ範囲がプロパティ定義に基づいて自動的に調整される。
  • 大文字: テキスト(ラベル、チェックボックス、ラジオボタン、ボタン、ツールチップなど)について、センテンススタイルの大文字を使用していることを確認。
  • モードレスダイアログ: プラグインウィンドウからモードレスダイアログ(非子)を作成しないでください。これにより、Wwise がレイアウトシステムと競合する可能性があり、潜在的にバグが作成される可能性があります。ただし、(Open/Save ファイルダイアログ、, User/System 設定、Message Box などに対する)これの使用は最小限に制限する必要があります。
  • フリッカーの回避: プラグインウィンドウのサイズ変更時にフリッカーが発生しないようにしてください。

機能性

  • RTPCのサポート: これが可能で道理にかなう場合は、プロパティに対して RTPC をサポートするようにしてください。これにより、ゲーム入力をプラグインプロパティにバインドし、柔軟性を向上することができます。
  • 非リニアスライダ: デシベルのボリュームスライダなど、値範囲の非線形可聴ディストリビューションを持つスライダに対しては、ピクセル範囲対プロパティ範囲の非リニアなディストリビューションを使用してください。
  • プロパティ制限の使用: XMLプラグイン定義でプロパティを定義する際、可能な場合は常にプロパティの制限範囲または列挙を定義してください。これらの制限は、次のために使用されました:

    • スライダーの範囲を自動的に調整
    • RTPCグラフで RTPCの範囲を決定する
    • プロジェクト読み込みで、プロパティ値を認証し調整し、プロジェクトの整合性を保ちます。

コーディング(サードパーティー)

サードパーティープラグインのベンダーは、次の要件に準拠している必要があります。社内タイトルのプログラマーもこれらに準拠することをお勧めします。

  • 安定性: プラグインはクラッシュ、アサート、フリーズまたはメモリリークしてはなりません。
  • メモリ割り当て: プラグインの Sound Engine 部分で new() または malloc() を呼び出さないでください。常に Wwise サウンドエンジンによってプラグインに渡される AK::IAkPluginMemAlloc アロケータを介して、 IAkPlugin.h で定義されるマクロ AK_PLUGIN_NEW、AK_PLUGIN_DELETE、AK_PLUGIN_ALLOC および AK_PLUGIN_FREE を使用してメモリを割り当ててください。
  • 割り当てメモリの確認: プラグインの Sound Engine 部分で、プラグインの使用の前に必ずメモリ割り当てが正常に行われていることを確認してください。メモリ割り当てが失敗した場合、プラグインは AK_Fail(該当する場合)で適切に返す必要があります。
  • サポートされたチャネル構成の宣言: プラグインの Sound Engine 部分は、サポートしないチャネル構成に対して AK_UnsupportedChannelConfig を返す必要があります。
  • プラグインのパフォーマンス: プラグインの実行時パフォーマンスは、その存続期間中、 AK::IAkInPlaceEffectPlugin::Execute() (または同等のもの)へのすべての呼び出しにわたってかなり一定である必要があります
    • 初期化、終了および、Sound Engine プラグイン API のその他全ての機能も Execute() より大幅に長くかかるべきではありません。
    • 非 RTPC 可能なパラメータが Wwise オーサリングツールで編集されプラグインにライブ適用された場合には、この制限は適用されません。最悪の場合にも、そのようなパラメータの変更には、プラグインの Sound Engine 部分をティアダウンし再初期化するのにかかる時間より長くかかってはいけません。
  • アサーション: ネイティブのアサートの代わりに AKASSERT マクロを使用してください。
    • 次のコード行をプラグインの Wwise 部分のメイン cpp ファイルに追加してください:DEFINEDUMMYASSERTHOOK;
    • このマクロは AudioPlugin.h で定義されており、プラグインの Sound Engine 部分が、Wwise オーサリングツールに使用されるDLL内に構築された際に適切にリンクされていることを保証するものです。
  • ユーザビリティ: プラグインはオーサリングツールへ挿入されたらすぐに機能する必要があります。「機能する」とは、soundbank 生成中にエラーを引き起こさず再生し、例えば、Effect Editor を開くなど任意のアクションをユーザーに依存することなく実行可能であることを意味します。
  • 同時実行: プラグインは複数のインスタンスに対するExecute() メソッドの同時実行を許容する必要があります(eventmgrthread_taskscheduling参照)。インスタンス間のデータ共有はスレッドセーフとする必要があります。

Unity 3D および Unreal4

これら両ゲームエンジンへの公式な Wwise の統合には、エフェクトに動的ライブラリを使用しています。幅広い利用者にプラグインを配布する意図がある場合には、サポートするすべてのプラットフォームに動的ライブラリを提供する必要があります。プラグインの動的ライブラリの詳細は、動的ライブラリを作成する を参照してください。

テスト

新規インスタンス(ソースプラグイン)

  1. Project Explorer で新しいSoundを作成
  2. Contents Editor でソースプラグインの新しい Instance を作成
  3. 新しく作成されたソースをダブルクリック
  4. デフォルト値が設定されていることを確認
  5. ソースを再生
  6. ソースが正常に再生していることを確認

新規インスタンス(エフェクトプラグイン)

  1. Project Explorer で既存サウンドをダブルクリック
  2. Property Editor で Effects タブに切り替え
  3. エフェクトID=0で、">>" ボタンをクリック
  4. エフェクトサブメニューで、"New..." を選択
  5. ワークユニットを選択
  6. Edit をクリック
  7. デフォルト値が設定されていることを確認
  8. Sound を再生
  9. エフェクトが適用された状態で Sound が再生していることを確認
  1. Project Explorer で既存サウンドをダブルクリック
  2. Property Editor で Effects タブに切り替え
  3. エフェクトID=0で、">>" ボタンをクリック
  4. エフェクトサブメニューで、"Default (Custom)" を選択
  5. Edit をクリック
  6. デフォルト値が設定されていることを確認
  7. Sound を再生
  8. エフェクトが適用された状態で Sound が再生していることを確認

エフェクトモード変更(エフェクトプラグイン)

  1. Project Explorerで既存サウンドをダブルクリック
  2. Property Editorで Effects タブに切り替え
  3. エフェクトID=0で、">>" ボタンをクリック
  4. エフェクトサブメニューで、"New..." を選択
  5. ワークユニットを選択
  6. Edit をクリック
  7. プロパティ値を変更
  8. Property Editor の Effect タブで Effect モードを "Define custom" に変更
  9. Edit をクリック
  10. エフェクトのプロパティ値が変更されていることを確認

親のコピー(エフェクトプラグイン)

  1. エフェクトを持つ Sound を作成
  2. エフェクトのプロパティ値を変更
  3. Project ExplorerでSoundをコピー(CTRL+C)
  4. Project Explorerで任意の場所に貼り付け(CTRL+V)
  5. コピーされた Sound にエフェクトが適用され、そのプロパティ値が変更されていることを確認

親のコピー(ソースプラグイン)

  1. ソースプラグインを持つ Sound を作成
  2. ソースのプロパティ値を変更
  3. Project Explorer で Sound をコピー(CTRL+C)
  4. Project Explorer で任意の場所に貼り付け (CTRL+V)
  5. コピーされた Sound がプロパティ値の変更された Source を含んでいることを確認

エフェクトの削除(エフェクトプラグイン)

  1. エフェクトを持つ Sound を作成
  2. エフェクトのプロパティ値を変更
  3. Property Editor の Effects タブでエフェクトを削除
  4. アンドゥ(元に戻す)(CTRL+Z)
  5. 変更されたプロパティ値とともにエフェクトが復元されていることを確認
  6. リドゥ(やり直す)(CTRL+Y)

サウンドの削除(エフェクトプラグイン)

  1. エフェクトを持つ Sound を作成
  2. エフェクトのプロパティ値を変更
  3. Project Explorer で Sound を削除
  4. アンドゥ(CTRL+Z)
  5. 変更されたプロパティ値とともにエフェクトが復元されていることを確認
  6. リドゥ(CTRL+Y)

サウンドの削除(ソースプラグイン)

  1. ソースプラグインを持つ Sound を作成
  2. ソースのプロパティ値を変更
  3. Contents Editor でソースを削除
  4. アンドゥ(CTRL+Z)
  5. 変更されたプロパティ値とともにソースが復元されていることを確認
  6. リドゥ(CTRL+Y)

サウンドの削除(ソースプラグイン)

  1. ソースプラグインを持つ Sound を作成
  2. ソースのプロパティ値を変更
  3. Project Explorerで Sound を削除
  4. アンドゥ(CTRL+Z)
  5. 変更されたプロパティ値とともにソースが復元されていることを確認
  6. リドゥ(CTRL+Y)

プロパティのアンドゥ

  1. 各プロパティまたは変更可能なエレメントについて:
    1. 値を変更
    2. Edit メニューを開く-Undo イベントの名前を確認
    3. アンドゥ
    4. リドゥ

パーシスタンス(永続性)

  1. 変更されたプロパティ値を持つソースまたはエフェクトプラグインを作成
  2. Project を保存
  3. Project を閉じる
  4. Project を再度開く
  5. 変更されたプロパティ値を持つソースまたはエフェクトが存在していることを確認

RTPCプロパティ名

  1. Source/Effect を持つ Sound を作成
  2. プラグイン RTPC タブで、">>" をクリック
  3. RTPCをサポートするすべてのプロパティがリストされていることを確認
  4. すべてのプロパティ名がセンテンススタイルの大文字を使用していることを確認

RTPCプロパティ範囲

  1. Source/Effect を持つ Sound を作成
  2. RTPCリストにすべてのプロパティを追加
  3. 各プロパティに対して:
    1. 範囲が正しいことを確認
    2. デフォルト値が正しいことを確認

再生時 RTPC 変更

  1. Source/Effect を持つ Sound を作成
  2. RTPC をサポートする各プロパティに対して:
    1. RTPC リストにプロパティを追加
    2. 親 Sound を再生
    3. 再生中、Property にバインドされている Game Parameter を変更

再生時プロパティ変更

  1. Source/Effect を持つ Sound を作成
  2. エフェクト/ソースを含む Soundを再生(Sound が短すぎる場合は、Sound ループを作成)
  3. 再生中、各プロパティに対して:
    1. 値を変更

サウンドルーピング

  1. Source/Effect を持つ Sound を作成
  2. Sound 上のループを有効にする(Infinite に設定)
  3. サウンドを再生
  4. グリッチが聞こえないことを確認
  5. 異なるプロパティ値でテストを再試行

コンテナルーピング

  1. Source/Effect を持つ Sound を作成
  2. Random Container に親 Sound を配置
  3. Random Container を次のように設定:PlayMode=Continuous、Loop=Infinite
  4. Random Container を再生
  5. グリッチが聞こえないことを確認
  6. 異なるプロパティ値でテストを再試行

サンプル精度のコンテナルーピング

  1. CSource/Effect を持つ Sound を作成
  2. Random Container に親 Sound を配置
  3. Random Container を次のように設定:PlayMode=Continuous、Loop=Infinit
  4. Random Container を次のように設定:Transition=Sample Accurate
  5. Random Container を再生
  6. グリッチが聞こえないことを確認
  7. 異なるプロパティ値でテストを再試行

Virtual Voices (Source Plug-ins)

  1. Project SettingsダイアログでVolume Thresholdを-5 dbに設定
  2. SourceでSoundを作成
  3. Property EditorのAdvanced Settingsタブで、WhenBelowVolumeThreshold=SendToVirtualVoiceを設定
  4. Soundを再生
  5. Sound Volume=-6 dbに設定
  6. グリッチが聞こえないことを確認
  7. Sound Volume=0 dbに設定
  8. グリッチが聞こえないことを確認
  9. 異なるプラグインプロパティ値でテストを再試行

サウンドにおけるマルチチャネルエフェクト(エフェクトプラグイン)

  1. 次のサウンド構成を持つ Sound が対象:0.1、1.0、1.1、2.0、2.1、4.0、4.1、5.0、5.1
  2. Sound にエフェクトを配置
  3. Sound を再生

バスにおけるマルチチャネルエフェクト(エフェクトプラグイン)

  1. Effect を持つ Bus を作成
  2. 次のサウンド構成を持つ Sound が対象:0.1、1.0、1.1、2.0、2.1、4.0、4.1、5.0、5.1
  3. Sound をこの Bus にルーティング
  4. Sound を再生

エフェクトを持つサウンドの多重再生(エフェクトプラグイン)

  1. Effect を持つ Sound を作成
  2. SoundCaster を使用して、Sound を同時に複数回再生

複数サウンドを持つバスにおけるエフェクト(エフェクトプラグイン)

  1. Effect を持つ Bus を作成
  2. この Bus にいくつかの Sound をルーティング
  3. SoundCaster を使用して、(この Bus にルーティングされた)複数の Sound を同時に再生

ゲーム内テスト

プラグインをゲーム内でテストするには、次のようにWwiseでテストしきれない領域を網羅する必要があります:

  • 他のプラットフォームで実行するコード: PS4、Xbox One、その他
  • SoundBank のプラグインパラメータの生成/読み込み
  • レンダリングされたエフェクト
  • 環境エフェクト

テストスクリプトを作成するために Game Simulator を使用して、ゲーム内テストを容易にすることができます。以下は、スクリプトを作成し、Game Simulator で実行するために必要な手順です。

  1. プロジェクト内で:
    1. SoundBank を作成
    2. Sound を再生するイベントを作成
    3. SoundBank にイベントを追加
    4. SoundBank を生成
  2. Game Simulator をインストール(ご使用の Wwise と同じバージョンである必要があります)
  3. Game Simulator インストールディレクトリ内 Scripts フォルダから AkSampleNoCoroutines.lua または AkSampleWithCoroutines.lua のコピーを作成。
  4. 独自のバンクがロードされるよう Lua スクリプトを変更し、イベントを再生。
  5. 選択したプラットフォーム上で、適切な Game Simulator を使用して lua スクリプトを実行。

レンダリングエフェクト(エフェクトプラグイン)

  1. Effect を持つ Sound を作成
  2. Property Editor の Effects タブでエフェクトの "Render" を有効にする。
  3. Sound をゲーム内で再生

トラブルシューティング

問題が発生した場合には、Wwise ソースプラグインおよびエフェクトプラグインのトラブルシューティングガイド から Help がご利用可能です。