menu
 
バージョン
2021.1.14.8108

2024.1.6.8842

2023.1.14.8770

2022.1.19.8584

2021.1.14.8108

2019.2.15.7667

2019.1.11.7296

2018.1.11.6987

2017.2.10.6745

2017.1.9.6501

2016.2.6.6153

2015.1.9.5624

menu

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ボタンをクリックします。

info 注釈: 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からはじめよう