Wwise SDK 2023.1.8
|
フロントエンドクラスは、グラフィカルユーザーインターフェースを実装するために、プラットフォームやツールキット専用のメソッドを提供します。 AK::Wwise::Plugin::GUIWindows
のようなフロントエンドクラスから派生したクラスを作成する必要があります。
以下がフロントエンドの役割です:
Windowsフロントエンドの実装について、詳細は Windowsフロントエンドの実装 を参照してください。
インストール時に表示させる通知を、プラグインに追加する方法については、 Plug-in First Time Creation Notice を参照してください。
注釈: 現在、グラフィカルユーザーインターフェース(GUI)に対応するWwise AuthoringプラットフォームはWindowsだけで、macOSも、オープンソースプロジェクトWineに基づいたブリッジレイアCrossoverを実行してこれを使います。 |
モニタリングとは、オーディオプラグインの状態を再生中に観察するプロセスのことです。
Authoringアプリケーションがゲームのプロファイリングをしているときや、ローカルでサウンドを再生中のときに、Authoringプラグインのインスタンスは、そのパラメータを使っている全ての再生中のインスタンスのモニタリングデータを受信することを、選択できます。そのモニタリングデータを使ってGUIの要素であるVUメーターや静的テキストなどを制御できます。例えばプラグインは、メータリング用に信号処理の中間状況を提供したり、ユーザーに表示するメモリ使用量などのパフォーマンスメトリックスなどを提供したりできます。
このセクションは、Authoring側のモニタリングに関するものです。 シリアライズと送信プロセスについては、 Sound Engineにおけるモニタリング を参照してください。
モニタリングデータを受信するのは、プラグインのAuthoring部分です。その流れの各段階を、以下に示します:
AK::Wwise::Plugin::Notifications::Monitor::NotifyMonitorData()
を通してモニタリングデータを受信するので、これを AK::Wwise::Plugin::Notifications::Monitor
インターフェースコンポーネントで実装する必要があります。受信するモニタリングデータは AK::Wwise::Plugin::MonitorData
のアレイです。あるゲームオブジェクトにポストされた再生中のインスタンス1つに対し、MonitorData
エレメントが1つあります。Authoringアプリケーションがこのアレイにフィルタを適用すれば、プラグインのフロントエンドに、内容にあったインスタンスだけを提供することができます。NotifyMonitorData
を実装してモニタリングデータをデシリアライズし、各 MonitorData
インスタンスに必要な情報を抽出します。そして、この情報を使い、ユーザーにプラグインの状態を伝えるGUI制御を更新します。注釈: AuthoringのメインUIスレッドで AK::Wwise::Plugin::Notifications::Monitor::NotifyMonitorData() をコールするので、アプリケーションが無反応となるのを防ぐためにも、実行時間の長いジョブは避けてください。 |
以下は、 NotifyMonitorData
を実装してモニタリングデータをデシリアライズする方法を示した、コードの一例です:
メータリングコンテンツやインスタンスごとの統計を提供するときに、複数のMonitorData
インスタンスに対応するのが負担になることがあります。必要条件を簡素化するために、例えばスピーカーコンフィギュレーションが一部のエレメントで違うといったようなエッジケースに基づき、MonitoringData
アレイの一部エレメントを無視することができます。また、メータリング中に各エレメントで報告された測定量の最大値を取るなど、モニタリングデータを統合することも選べます。
オブジェクトプロセッサは、個々のオブジェクトが所有するバッファを処理するオーディオプラグインから派生するものなので、複数のオブジェクトのモニタリングデータをまとめて、1つのMonitorData
として提供します。Wwiseにとってモニタリングデータは不透明で、MonitorData
はオブジェクトの情報を提供しません。もしこの情報が重要であれば、シリアライズのストラテジの実装者が、モニタリングデータに入れる判断をしてください。 さらにこれは、プラグインのサウンドエンジン部分と異なり、Authoringプラグインのタイプがオブジェクトプロセッサ用に異なるわけではなく、モニタリングデータのフォーマットは、サウンドエンジンとプラグインのAuthoring部分の間の契約であることを意味しています。オブジェクトプロセッサの詳細については、 Sound Engine Object Processorプラグインの作成 を参照してください。
Wwiseのコンテキストに変更があったときにプラグインが反応できるように、様々なサービスがノティフィケーションハンドラメソッドを提供しています。例えば、プロパティセットが管理するプロパティに変更があったときに、通知を受けられます(詳しくは プロパティ値のノティフィケーション を参照)。このセクションで、あなたのプラグインのフロントエンド部分と関連性の深いノティフィケーションの一部を、説明しています。
Wwiseユーザーがリストやキーボードショートカットを使って現在のプラットフォームを変更した場合、あなたのプラグインのインスタンスは、 AK::Wwise::Plugin::RequestHost
の派生によってホストサービスにリクエストすれば、通知を受けることができます。 そして、あなたのプラグインは、 AK::Wwise::Plugin::NotificationsHost::NotifyCurrentPlatformChanged()
メソッドを実装します。 これにより、あなたのダイアログが表示されるときに、現在の新しいプラットフォーム用に変われます。