名前によるシーン ノードの選択

selectByName() 関数を使って、3ds Max の標準の[名前により選択](Select By Name)ダイアログ ボックスを開き、MAXScript ノード値の配列として返されるオブジェクトをユーザが選択できるようにします。

形式は次のとおりです。

selectByName [        title:<string>] [        buttonText:<string>] [         filter:<fn>] [        showHidden:<boolean>][        single:<boolean>]     

オプションのキーワード引数は次のように解釈されます。

title:"string     "

ダイアログ ウィンドウのタイトルを指定します。

buttonText:"string  "

ダイアログ内の[受諾] (accept)ボタンのラベル テキストを指定できるようにします。既定値は「Select」です。

showHidden:<boolean>

非表示になっていたり、フリーズされたオブジェクトが表示できるかどうかを制御します。既定値は false です。 このオプションは 3ds Max 8 より前のバージョンでは正しく機能しませんでした。現在は予想どおりに動作するようになりました。

single:<boolean>

セレクタ内で 1 個または複数のオブジェクトが選択できるかどうかを制御します。既定値は false で、複数のオブジェクトが選択でき、それらが配列として返されることを意味します。single:true を指定した場合、単一オブジェクトが配列としてではなく、そのまま返されます。

filter:<fn>

これは、MAXScript の他の部分で使われるフィルタ関数と同様のものです。指定する関数には引数を 1 つ指定する必要があります。この引数は現在のオブジェクトを組み込むかどうかをテストするもので、組み込む場合、関数は true を返し、組み込まない場合は false を返します。フィルタを指定しない場合は、すべてのオブジェクトが表示されます。

例:

次の関数は選択範囲をシェイプ オブジェクトに限定します。

    fn shape_filt obj = isKindOf obj Shape

この後、selectByName 関数を呼び出すと、非表示のシェイプを含む複数のシェイプを選択できます。

    theShapes =selectByName title:"Select Shapes" buttonText:"GET 'EM!" filter:shape_filt showHidden:true single:false

結果:

ユーザがダイアログ ボックスをキャンセルした場合、この関数は undefined を返します。