ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

MELのウインドウ作成について

ウインドウ作成についての備忘録。

MELを始めて最初に作ったツールは以下のような感じにしました。

//グローバルプロシージャ「ツール名」を定義
global proc vfxModelingTool()
{

//同じウインドウがある場合削除します
if(`window -ex vfxModelingTool` == true )deleteUI vfxModelingTool;

//サイズ変更不可・最小化と最大化ボタンなしでウインドウを作成
window -sizeable false -mnb false -mxb false -title "ウインドウ名" vfxModelingTool;

//カラムを作成
columnLayout -adjustableColumn true;

//具体的にボタンを配置してコマンドを割り当ててヘルプを用意
frameLayout -label "フレームのタイトル" -labelAlign "top";;
 columnLayout;
 gridLayout -numberOfColumns 2 -cellWidth 100 -cellHeight 40;
 button -label "ボタン名" -command "命令○○" -ann "Help:\n ○○します\n";
 button -label "ボタン名" -command "命令○○" -ann "Help:\n ○○します\n";
 setParent ..;
setParent ..;
}

//ウインドウ「vfxModelingTool」を表示
showWindow vfxModelingTool;
}


ボタンに割り当てる命令がシンプルな場合はそのまま記述しますが、何行にも渡る場合にはプロシージャを定義して関数化しました。大まかな構成はこちらの記事に書いてます。
単にシンプルな命令を2つ続けて書きたい時は「;(セミコロン)」で区切ればOKです。

ヘルプを書いておくとマニュアルの用意が省けて良いかも。
ボタンにカーソルを乗せて少し経つとポップアップ表示されます。