Materialbutton コントロールは、クリック時に 3ds Max の[マテリアル/マップ ブラウザ] (Material/Map Browser)を表示するボタンをロールアウト内に配置するために使用します。[マテリアル/マップ ブラウザ] (Material/Map Browser)ダイアログ ボックスにはマテリアルのみが表示されます。
構文は次のようになります。
materialbutton <name> [<caption>] [material:<material>] [images:<image_spec_array>] [toolTip:<string>] [border:<boolean>] [iconName:<filename> iconSize:<point2>]
materialbutton
項目の位置合わせの既定値は、#center
です。
例:
Rollout assign_material "Assign Material" ( label smtl_lbl "Set selected object's material to:" materialbutton choosemtl "Pick Material" on choosemtl picked mtl do ( print mtl if $ != undefined do $.material=mtl ) ) createDialog assign_material
パラメータ
material:
material
を使用してマテリアルを選択する前に materialbutton
プロパティによって返されるマテリアルの初期値です。既定は undefined
です。
images:
materialbutton
にビットマップ イメージを提供するためのイメージ仕様配列です。指定すると、<label>
は無視されて、materialbutton
の内容がビットマップに置き換えられます。
形式は次のとおりです。
images:#(<image>, <maskImage>, <count_integer>, \ <enabled_out_image_index>, <enabled_in_image_index>, \ <disabled_out_image_index>, <disabled_in_image_index>)
ここでは、<image>
および <maskImage>
は、ビットマップ ファイル名の文字列でも、MAXScript ビットマップ値でもかまいません。<count_integer>
には、ビットマップ内のサブイメージの数を指定し、image_index
値には、materialbutton
の 4 つの状態にビットマップのどのサブイメージを使用するかを指定します。
例:
bm1 = render camera:$cam01 outputSize:[80,60] ... materialbutton foo images:#(bm1, undefined, 1, 1, 1, 1, 1)
これは、
materialbutton
イメージとしてレンダリングを使用します。materialbutton decay images:#("dcybtns.bmp", "dcymask.bmp", 6, 1, 4, 1, 4)
これは、ビットマップのサブ イメージ 1 と 4 を使用します。
dcybtns.bmp
およびdcymask.bmp
は、それぞれmaterialbutton
のオフまたはオン状態に対応しています。イメージ ボタン も参照してください。
toolTip:
materialbutton
のツールチップのテキストを指定します。指定されない場合、ツールチップは表示されません。
border:
true に設定した場合、または指定しなかった場合、mapbutton は境界線付きで描画されます。これは、3ds Max 2009 より前のバージョンでは既定値の動作でした。
false に設定すると、materialbutton は境界線なしで描画され、UI の背景が付いたものになります。materialbuttonが有効になっている場合、materialbutton が押されたとき、またはボタンの上にマウスが置かれたときに境界線が表示されます。
3ds Max 2009 以降で使用可能です。
iconName:
ボタンのイメージとして使用するアイコンのファイル名です。iconName が指定されている場合、キャプションは無視されます。iconSize は iconName サイズを 100% DPI スケールで指定します。指定しない場合は、既定の[24,24]が使用されます。
iconSize:
iconName で指定された、100% DPI スケールのアイコンのサイズです。
プロパティ:
<materialbutton>.material Material
materialbutton
に使用する現在のマテリアル値です。マテリアルを選択していない場合は、material
パラメータによって指定されているマテリアル値を返します。
<materialbutton>.images Array
materialbutton
のイメージ設定の配列を設定します。
このプロパティは、書き込み専用です。
例:
-- re-render, update button bm1 = render() foo.images = #(bm1, undefined, 1, 1, 1, 1, 1)
<materialbutton>.tooltip String
チェックボタンのツールチップ文字列を取得/設定します。
3ds Max 9 以降 で使用可能です。
例:
rollout test "Test" ( mapbutton mat_test "Material Button" tooltip:"This is a material button" ) createDialog test test.mat_test.tooltip = "The tooltip has changed!"
イベント
on <materialbutton> picked <arg> do <expr>
ユーザが materialbutton
選択コマンド モードで[マテリアル/マップ ブラウザ] (Material/Map Browser)ダイアログ ボックスからマテリアルを選択すると呼び出されます。<arg>
引数は、選択したマテリアル値を含みます。[マテリアル/マップ ブラウザ] (Material/Map Browser)ダイアログ ボックスをキャンセルして閉じた場合は、このハンドラは呼び出されません。
on <materialbutton> rightclick do <expr>
ボタン上で右マウス ボタンが放されたときに、呼び出されます。3ds Max 8 以降 で使用可能です。
materialButton
がスクリプト化されたマテリアル プラグインのロールアウトで使用され、マテリアル エディタを開いた場合、これらは通常のマテリアルでのサブマテリアル ボタンと同様に機能します。この機能には、インスタンス/コピーでのドラッグ アンド ドロップをサポートしたり、割り当てたマテリアルを開く機能があります。 スクリプト マップ プラグインのロールアウトでは、materialButton
を使用できません。 3ds Max マテリアル エディタのアーキテクチャでは、サブマテリアルは別のマテリアルの子であることが前提となっています。このため、サブマテリアルをマップに割り当てようとすると、問題が発生します。