これは考えられるかぎり最も短いスクリプトですが、それでも非常に強力で、役に立ちます。このスクリプトで、ユーザはシーン内のすべてのマテリアルを削除できるようになります。
関連トピック:
全体の流れ:
ボタン、メニューまたはショートカットとして使用する macroScript としてコードをパッケージ化します。
すべてのオブジェクトのマテリアル プロパティを undefined に設定して、マテリアルの割り当てを削除します。
MAXScript
macroScript NoMaterials category: "HowTo" ( $*.material = undefined )
macroScript NoMaterials category:"HowTo" (
macroScript は NoMaterials
と呼ばれます。
スクリプトを使用する場合は、[カスタマイズ...] (Customize...)に移動してスクリプトを[HowTo]カテゴリからツールバー、メニュー、またはクアッド メニューにドラッグするか、キーボード ショートカットを割り当てることができます。
これを配置するのに適切な場所は、3ds Max 5 のマテリアル エディタの新しいメニューです。
$*.material = undefined
$* はシーン内で検出されるすべてのオブジェクト名に対するワイルドカードであるため、MAXScript によってすべてのシーン オブジェクトが巡回されます。
マテリアル オブジェクトのプロパティの割り当てはマップ可能です。つまり、MAXScript が代入演算子「=」の左側にあるオブジェクトのコレクションを取得し、コレクション内のすべてのオブジェクトの内部をループによって巡回し、(値が undefined
の場合)右辺の式をそれらに割り当てます。
最初にオブジェクトが作成されるとき、.material
プロパティには既定値で undefined
が設定されます。
マテリアルがオブジェクトに割り当てられると、.material
プロパティはマテリアル オブジェクトを返します。
マテリアル プロパティを undefined
に設定すると、オブジェクトに対するマテリアルの割り当てが効率的に削除され、オブジェクトの既定状態に復元されます。
)
スクリプトを評価します。
スクリプトを使用する場合は、[カスタマイズ...] (Customize...)を使用して、スクリプトを[HowTo]カテゴリからツールバー、メニュー、またはクアッド メニューにドラッグするか、キーボード ショートカットを割り当てることができます。
3ds Max 5 以降では、マテリアル エディタのメニューをカスタマイズして、シーンのマテリアルをクリアする新しい項目を配置することができます。
スクリプトを起動します。すべてのマテリアルが削除されます。
この操作は非常に破壊的です。 はい/いいえの問い合わせを追加して、ユーザが自分の操作を確認するようにできます。以下を参照してください。
MAXScript のメッセージ ボックスおよび問い合わせダイアログ ボックス
戻る