マテリアルの共通プロパティ、演算子、メソッド

プロパティ

<material>.name

すべてのマテリアル サブクラスは、name プロパティにアクセスし、コンストラクタ パラメータとして指定することができます。

<material>.effectsChannel

すべてのマテリアル サブクラスは、effectsChannel プロパティにアクセスし、コンストラクタ パラメータとして指定することができます。

<material>.showInViewport

マテリアル レベルの show-in-viewport 状態にアクセスします。showInViewport パラメータを使ってマテリアル コンストラクタの呼び出しで設定することもできます。

例:

    b=box()
    b.material = standard diffuseMap:(checker()) showInViewport:true

メソッド

assignNewName <material>

指定したマテリアルの名前を修正して、固有にします。マテリアル名は「Material #1」などのようになり、名前が固有になるように数字の部分が順番に増加します。

okMtlForScene <material>

マテリアル名をシーン内の他のマテリアルの名前に対してテストし、同じ名前がない場合は true、同じ名前がある場合は false を返します。同じ名前のマテリアルを使用しないように、マテリアルをシーンに割り当てる前にこのメソッドを呼び出してください。

getMTLMEditFlags ( <material> | <texture> ) setMTLMEditFlags ( <material> | <texture> ) <bitarray>

指定されたマテリアルまたはテクスチャの MEdit オプションを <bitarray> で取得および設定します。ビットがオンの場合、対応するオプションはオンになります。ビットの順序は、#{MTL_BEING_EDITED,BACKGROUND,BACKLIGHT,VIDEO_COLOR_CHECK} です。

最初のビットは、指定されたマテリアルまたはテクスチャのロールアウトが MEdit スロットに現在表示されている場合に設定されます。setMTLMEditFlags()では、このビットの状態は無視されます。

getMTLMeditObjType ( <material> | <texture> ) setMTLMeditObjType ( <material> | <texture> ) <integer>

指定されたマテリアルまたはテクスチャの MEdit サンプル オブジェクトのタイプを取得および設定します。有効な値は、1 - 球、2 - 円柱、3 - 立方体、4 - カスタムです。

getMTLMeditTiling ( <material> | <texture> ) setMTLMeditTiling ( <material> | <texture> ) <integer>

指定されたマテリアルまたはテクスチャの MEdit タイリングのタイプを取得および設定します。有効な値は、1 - 1x1; 2 - 2x2; 3 - 3x3; 4 - 4x4 です。

updateMTLInMedit ( <material> | <texture> )

MEdit およびマテリアル ブラウザを含む 3ds Max 全体で、マテリアルまたはテクスチャの更新を強制的に行う 3ds Max 通知のセットを実行します。

getMeditMaterial() および setMeditMaterial() 関数を使用してマテリアル エディタのマテリアルを取得および設定できます。また、editMaterials 仮想配列を使用して、マテリアル エディタからマテリアルを取得することもできます。詳細については、「マテリアル エディタ」および「MaterialLibrary 値」を参照してください。

次のメソッドは、3ds Max 6 以降で使用可能です。

<integer> getNumSubMtls <material>

このメソッドは、マテリアルのサブ マテリアルの数を返します。

<material> getSubMtl <material> <index>

このメソッドは、マテリアルのインデックス指定されたサブ マテリアルを返します。

setSubMtl <material> <index> <material>

このメソッドは、マテリアルのインデックス指定されたサブ マテリアルを指定したマテリアルに設定します。

getSubMtlSlotName <material> <index> [localizedName:<bool>]

このメソッドは、マテリアルのインデックス指定されたサブ マテリアルのスロット名を返します。

localizedName キーワード パラメータが true (既定値)の場合、ローカライズされた名前(UI に表示されているもの)が返されます。それ以外の場合は、ローカライズされていない名前が返されます。3ds Max 2022 以降で使用可能です。

<integer> getNumSubTexmaps (<material> | <texture>)

このメソッドは、マテリアルまたはテクスチャのサブ テクスチャの数を返します。

<material> getSubTexmap (<material> | <texture>) <index>

このメソッドは、マテリアルまたはテクスチャのインデックス指定されたサブ テクスチャを返します。

setSubTexmap (<material> | <texture>) <index> <texture>

このメソッドは、マテリアルまたはテクスチャのインデックス指定されたサブ テクスチャを指定したテクスチャに設定します。

getSubTexmapSlotName (<material> | <texture>) <index> [localizedName:<bool>]

このメソッドは、マテリアルまたはテクスチャのインデックス指定されたサブ テクスチャのスロット名を返します。

localizedName キーワード パラメータが true (既定値)の場合、ローカライズされた名前(UI に表示されているもの)が返されます。それ以外の場合は、ローカライズされていない名前が返されます。3ds Max 2022 以降で使用可能です。

<boolean> isMtlUsedInSceneMtl  <material> skipCustAttributes:<true> includeXrefScenes:<false> topLevelMtlOnly:<false>

3ds Max 2018 以降で使用可能: 指定したマテリアルまたはテクスチャマップが、シーン内のノードに割り当てられているいずれかのマテリアルによって何らかの方法で使用されている場合、この関数は true を返します。カスタム アトリビュートで保持されている MAXWrapper をスキップする場合は、skipCustAttributes を true に指定します。いずれかの外部参照シーンも検索する場合は、includeXrefScenes を true に設定します。各マテリアルの拡散反射光マップ(maps[1])を確認する場合のみ、topLevelMtlOnly を true に指定します。