MEL を使用してアトリビュート コントロールを作成するには、次の操作を行います。
次の例では、floatSlider コントロールが MEL プロシージャ AEFloatSlider によって作成され、変更コマンド AEaddFloatSliderCB を使用しています。
global proc AEaddFloatSliderCB( string $plug, string $slider )
{
float $val = `floatSlider -q -v $slider`;
setAttr $plug $val;
}
global proc AEaddFloatSlider ( string $plug, string $label, string $annot )
{
// Body of callback
rowLayout -nc 2;
float $val = `getAttr $plug`;
string $slider;
text -label $label;
$slider = `floatSlider -annotation $annot -v $val`;
floatSlider -e -cc ("AEaddFloatSliderCB \"" + $plug + "\" \"" + $slider + "\"")
$slider;
setParent
}
次のパラメータが、MEL プロシージャで使用されます。
この手順により、プロシージャを含む MEL ファイルへのパスが Maya に提供されます。C:/myScripts というディレクトリにこのファイルを保存する場合、MEL コマンド ラインまたはスクリプト エディタ(Script Editor)に次のコマンドを入力します。
source "C:/myScripts/AEFloatSlider.mel";
テンプレート ファイルを作成するときに、アトリビュート宣言に <description language="cb"> タグを追加するか定義を表示し、MEL プロシージャへのコールバックを指定します。前述のプロシージャで定義されているカスタム スライダ コントロールを白熱光赤(Incandescence Red)アトリビュートに追加するには、次のように指定します。
<attribute name='incandescenceR' type='maya.float'>
<label>Incandescence Red</label>
<description language="cb">AEaddFloatSlider</description>
</attribute>
