optionMenu の変更

一方の optionMenu を変更すると、 もう一方の optionMenu も変更される MEL スクリプトの例です。
上の optionMenu に Paint Effect のブラシのフォルダ名、 下の optionMenu にそのフォルダに属するブラシのリストが表示されます。

作り方

  1. 以下の MEL スクリプトを、 optionMenuSample1.mel というファイル名で作成します。
    global proc optionMenuSample1(string $location)
    {
    	int $num = `optionMenu -q -ni brushesOptionMenu`;
    	string $fname = `optionMenu -q -v foldersOptionMenu`;
    	string $names[] = `getFileList -fld ($location + $fname + "/") -fs "*.mel"`;
    	int $i = 0;
    	for($n in $names)
    	{
    		if($i < $num)
    		{
    			menuItem -e -label $n ("brushesMenuItem" + $i);
    		}
    		else
    		{
    			menuItem -p brushesOptionMenu -label $n ("brushesMenuItem" + $i);
    		}
    		$i++;
    	}
    	for(; $i < $num; $i++)
    	{
    		deleteUI ("brushesMenuItem" + $i);
    	}
    }
    
    {
    	window;
    	columnLayout;
    	string $location = `getenv "MAYA_LOCATION"`;
    	$location += "/brushes/";
    	optionMenu -label "Folders" -cc ("optionMenuSample1(\"" + $location + "\")") foldersOptionMenu;
    	string $names[] = `getFileList -fld $location -fs "*"`;
    	for($n in $names)
    	{
    		menuItem -label $n;
    	}
    	optionMenu -label "Brushes" brushesOptionMenu;
    	$names = `getFileList -fld ($location + $names[0] + "/") -fs "*.mel"`;
    	int $i = 0;
    	for($n in $names)
    	{
    		menuItem -label $n ("brushesMenuItem" + $i);
    		$i++;
    	}
    	showWindow;
    }
     
    
  2. optionMenuSample1.mel を Maya に読み込み、実行します。
    optionMenuSample1 の実行結果
  3. 上の optionMenu を変更すると、下の optionMenu もそれにあわせて変更されます。
    optionMenuSample1 の変更結果

Home | Contents
Mail