バージョン

menu_open
Wwise SDK 2021.1.14
プラグインのResourceファイルの作成方法

Resourceファイル(拡張子 .rc )は、プラグインが使うリソースを表して、カスタムグラフィカルインターフェースを作成するために使うファイルフォーマットです。 Resourceファイルは、Visual Studio Editorツールで簡単に管理でき、GUIをビルドするために、ウィジェットをキャンバスにドラッグ&ドロップできます。新しいプラグインのResourceファイルは、以下の手順で作成できます。

最初に、wp.pyで新しいプラグインを作成します(開発ツールについてよく知らない場合は、 開発ツールを使う を参照してください)。

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" new

プロンプトに回答し、プラグインが作成できたら、ディレクトリをプロジェクトフォルダに変えて premake をコールします。

cd MyNewFX
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" premake Authoring

生成されたソリューションファイル(.sln)をVisual Studio 2019で開き、プロジェクトフォルダがハイライトされていることを確認し(ソリューションフォルダと間違えると Add New Item の選択肢が違ってしまうので、注意してください)、Projectメニューで Add New Item... を選択します。ダイアログウィンドウで、左列の Resource を選択し、次に中央ペインで Resource File (.rc) を選択します。あなたのプロジェクトの WwisePlugin フォルダに、 Resource.rc という名のファイルが作成されます。

Resource Viewで Resource.rc ファイルを右クリックし、 Add Resource を選択します。 Add Resource ウィンドウで、Dialogを選択してNewボタンをクリックします。

注釈: DIALOGウィンドウを作成するときに、その Properties に、必ず以下のスタイルを設定してください:
  • Appearance/Border = None
  • Appearance/Clip Children = True
  • Appearance/Style = Child
  • Misc/Control = True
  • Misc/Control Parent = True

インターフェースの左側にある Toolbox タブを使えば、キャンバスにウィジェットをドラッグ&ドロップして、プラグインのグラフィカルインターフェースを構築することができるはずです。プロジェクトを保存すると、Resourceファイルが更新されます。

あなたのプロジェクトに Resource.rc ファイルを含めるには、もう一度premakeをコールします。そうすれば、次にプラグインをビルドしたときに、Resourceファイルに基づいて resource.h という名前のファイルが自動的に生成されます:

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build -c Release -x x64 -t vc160 Authoring

カスタムインターフェースを使うようにプラグインに指示するには、 AK::Wwise::Plugin::GUIWindows で提供されるメソッドをオーバーライドする必要があります。 以下のように、 Win32/PluginNamePluginGUI.hresource.h を含め、メソッドシグニチャを追加し、ウィンドウハンドルを格納するためのプライベート変数を作成します:

#pragma once
#include "../MyNewFXPlugin.h"
#include "../resource.h"
class MyNewFXPluginGUI final
    : public AK::Wwise::Plugin::PluginMFCWindows<>
    , public AK::Wwise::Plugin::GUIWindows
{
public:
    MyNewFXPluginGUI();
    HINSTANCE GetResourceHandle() const override;
    bool GetDialog(
        AK::Wwise::Plugin::eDialog in_eDialog,
        UINT& out_uiDialogID,
        AK::Wwise::Plugin::PopulateTableItem*& out_pTable
    ) const override;
 
    bool WindowProc(
        AK::Wwise::Plugin::eDialog in_eDialog,
        HWND in_hWnd,
        uint32_t in_message,
        WPARAM in_wParam,
        LPARAM in_lParam,
        LRESULT& out_lResult
    ) override;
private:
    HWND m_hwndPropView = nullptr;
};

Win32/PluginNamePluginGUI.cpp に、これらのメソッドの実装を追加します:

HINSTANCE MyNewFXPluginGUI::GetResourceHandle() const
{
    AFX_MANAGE_STATE( AfxGetStaticModuleState() );
    return AfxGetStaticModuleState()->m_hCurrentResourceHandle;
}
bool MyNewFXPluginGUI::GetDialog( AK::Wwise::Plugin::eDialog in_eDialog, UINT & out_uiDialogID, AK::Wwise::Plugin::PopulateTableItem *& out_pTable ) const
{
    AKASSERT( in_eDialog == AK::Wwise::Plugin::SettingsDialog );
    out_uiDialogID = IDD_DIALOG1;
    out_pTable = nullptr;
    return true;
}
bool MyNewFXPluginGUI::WindowProc( AK::Wwise::Plugin::eDialog in_eDialog, HWND in_hWnd, UINT in_message, WPARAM in_wParam, LPARAM in_lParam, LRESULT & out_lResult )
{
    switch ( in_message )
    {
    case WM_INITDIALOG:
        m_hwndPropView = in_hWnd;
        break;
    case WM_DESTROY:
        m_hwndPropView = NULL;
        break;
    }
    out_lResult = 0;
    return false;
}

リコンパイルしてプラグインをWwiseプロジェクトにロードします。これで、あなたの作成したカスタムグラフィカルインターフェースが表示されるはずです。


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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう