Wwise SDK 2023.1.8
|
このページでは、Windowsグラフィカルユーザーインターフェース(GUI)の実装に関わる様々な要素について説明します。
注釈: Wwise Authoringアプリケーションは、macOSで稼働させるために、オープンソースプロジェクトWineに基づいたブリッジレイアCrossoverを使います。 Windows用にGUI実装を作成すれば、同じ実装がこのソリューションを通してmacOSでも動きます。 |
プラグインのプロパティにバインドされたコントロール機能のある、特定タイプのダイアログを、Wwiseがインスタンス化できるように、基底クラス AK::Wwise::Plugin::GUIWindows
が実装メソッドを提供します。また、あなたのプラグインビューインスタンスに向けられたWindowsイベントに対し、プラグインが行動できるように、標準Win32ウィンドウプロシージャ("WindowProc")が提供されます。
Wwise Authoringアプリケーションが以下のようにあなたのプラグインGUIをインスタンス化します。
AK::Wwise::Plugin::GUIWindows::GetDialog()
をコールして、特定タイプのダイアログがインスタンス化されるのを、プラグインがリクエストします( ダイアログアクイジション 参照)。以下のセクションで、メソッドごとの実装方法を説明します。
WindowsのWwise Authoring GUIは、Microsoft Foundation Classes (MFC)を使ってビルドされています。 プラグインにMFCを使用するかどうかは任意ですが、使う場合は、ライブラリの初期化が必要です。 これを提供するのは、サービス AK::Wwise::Plugin::PluginMFCWindows
です。ほかよりも先に初期化されるように、必ず最初の基底クラスにしてください。
注釈: あなたのプラグインのバックエンド部分では、MFCやその他のGUI関連ライブラリを必要としないはずなので、この基底クラスから派生 させないでください 。 |
リソースハンドルは、タイプ HINSTANCE で、 .rc
ファイルからコンパイルされたリソースデータを保持するあなたの動的ライブラリに対応しています。Microsoft Visual Studioを使って作成することができ、あなたのカスタムダイアログや、そのコンテンツを保持しています。 リソースファイルの作成方法など、詳細は、 Microsoftドキュメンテーション を参照してください。
デフォルトの実装では、MSVCリンカーがインジェクトしたbuiltinの、モジュールインスタンスが提供されています。
あなたのダイアログリソースを所有するのが、別のモジュールでない限り、この関数を実装する必要はありません。
リソースファイル( .rc
)を作成するには、 Creating Resource Files for Your Plug-in を参照してください。
現在、Wwiseが AK::Wwise::Plugin::eDialog
で定義するダイアログは、2タイプあります:
SettingsDialog
: Source EditorやEffect Editorのために使われる、メインのプラグインダイアログContentsEditorDialog
: SourceプラグインがContents Editorだけで使う、小さいダイアログ続いて、Wwiseに返されたダイアログが、提供された リソースハンドル を使ってインスタンス化されます。 プロパティを、あなたのダイアログ中のコントロールに紐づけるために、プラグインのXML定義にあるプロパティ名に、コントロールIDをマッピングした表が使われます。この表は、以下のようにマクロを使って作成されます:
この例で、表(table)はコントロールのIDC_MYPROPERTY_EDIT
(.rcファイルに伴うresource.h fileより)を、プロパティのMyProperty
にマッピングしますが、このプロパティはプラグインのXML定義で定義されたプロパティに連動する必要があります。
これで変数PropertyTable
がインスタンス化され、それをWwise AuthoringアプリケーションにGetDialog()で転送します:
この関数でfalseを返すと、ダイアログがインスタンス化されないだけで、その代わりにデフォルトのものがインスタンス化されます。
あなたのダイアログで使える具体的なコントロールや、それらをプロパティにバインドする方法など、詳細な説明については Wwise プラグインのダイアログリファレンス を参照してください。
UIが変更されたときにコントロールを有効・無効にするなど、指定したアクションが起きるようにするには、受信したウィンドウメッセージを AK::Wwise::Plugin::GUIWindows::WindowProc()
関数で解釈します:
Wwiseユーザーがプラグインのダイアログタイトルバーにある'?'アイコンをクリックすると、プラグインのフロントエンドで、 AK::Wwise::Plugin::GUIWindows::Help()
がコールされます。ヘルプを実装するには、HTMLHelp、WinHelp、サードパーティのヘルプブラウザなど、様々なツールを使えます。関数は、表示させるウィンドウの親として使用可能なウィンドウハンドルを、受け取ります。 AK::Wwise::Plugin::eDialog
パラメータが、Wwiseユーザーが開いているダイアログに合った、具体的なヘルプトピックを選択できるようにしてくれます。Helpリクエストにあなたが応対した場合は、この関数は true
を返し、それ以外では false
を返して、代わりにWwiseがPlug-in Manager関連のHelpトピックを表示します。
注釈: 前述の通り、ソースプラグインにはダイアログが2つあります。 あなたのソースプラグインで、2つのダイアログ用に別々のヘルプトピックがあれば、 AK::Wwise::Plugin::eDialog パラメータを利用してください。 |
HTMLヘルプを使うソースプラグインで、そのファイルへのパスがMFCによって提供される例を、以下に示します:
注意: AK::Wwise::Plugin::GUIWindows::Help() メソッドが、AfxGetApp()->HtmlHelp() を呼び出してはいけません。 Helpウィンドウを誤った親ウィンドウで起動してしまい、フローティングビューが予期しない動作を起こすためです。 代わりに、上の例で示されているように、 HtmlHelp() を NULL ウィンドウハンドルで使用するようにしてください。 |